[Nexus 4 Themes and Apps] Xdevillived666:
Sorry if reposted

These are the steps I followed to try and incorporate bubbles into an already existing dark holo themed 4.4 mms

How to Make a Bubble MMS

This Tutorial will add-on to the other one, this will be for those a little more advanced or would like some help making their MMS all that much more better. So the instructions and requirements still apply.

So first thing you going to need to is decompile your MMS.

Code:

apktool d Mms.apk

First /Res/Drawable/listitem_background.xml

You're going to take that xml and copy it in the same folder so you should have listitem_background.xml and listitem_background-copy.xml. Then take the listitem_background-copy.xml and rename it listitem_backgroundsend.xml needs to be this exactly.

Then open up each and take the listitem_background.xml and find the last line of code

Code:

<item android:state_selected="false" android:drawable="@drawable/recv_bg"/>

Yours will say [MENTION=1901967]androi[/MENTION]d:color/black you will need to change it to reflect what mine says exactly. Then go to the listitem_backgroundsend.xml and find the same line of code and make it say this

Code:

<item android:state_selected="false" android:drawable="@drawable/sent_bg" />

Yours will again say something similar to the last line, make sure to name it exactly. Save those and close em.

Next /Res/Layout/message_list_item_recv.xml and send.xml

You're going to open these two up and this will change the actual block that it uses and direct it to the new xml's. So open up recv first this one will only require one edit.

Look for

Code:

android:layout_height="@dimen/avatar_width_height" android:layout_alignParentLeft="true"

You will need to change the "true" to "false" this will keep the picture from stretching all the way to the other side of the screen and only wrap the text.

Then go ahead and open the send.xml, here we will make it direct the send image to the new xml that we made in the beginning.

Look for

Code:

android:id="@id/message_block" android:background="@drawable/listitem_background" android:layout_width="wrap_content"

You will want to rename "@drawable/listitem_background" to "@drawable/listitem_backgroundsend" this will direct it to that new xml to tell it where to grab the image. make sure to make the same edit from before changing the alightParentRight="false" . You will also want to MAKE SURE that android:layout_width="wrap_content" and not anything else, otherwise things get messy. Then save those and exit.

Now comes to the more involved part. Making the .9.png for recieve and send.

Go ahead and open up drawable-xhdpi and find the main messaging app icon. And select to edit with Gimp. IF you have gimp otherwise this part wont be very useful.. sorry.

Once thats done go ahead and go to Filters > Alpha to Logo > 3D outline. Once on that go ahead and make every number 1. By default it should be 5 10 5 make those all ones. Then make sure to hit the browse button and choose the very first box which should be white and title "clipboard". Hit okay and let it do its work. Then you will be left with a white outline and a white background. Then go up to Layers > Merge Down. Then Layers > Delete Layer. YES I KNOW IT WILL DELETE IT. Dont worry, just hit CTRL+Z twice. Then Once more hit Layers > Delete Layer and you should be left with JUST the white outline of the messaging icon. Save that or color it or whatever you want to do with it.

Now your going to need to go to your "tools" directory in the android-sdk. C:\android-sdk\tools then open select to run the draw9patch.bat it will open up a terminal then open up this giant Down arrow. Your going to want to drag and drop that image your created.

Now comes the fun part patching. This is way i do most of mine so feel free to just copy that.

I fill the bottom and the right side with a complete line on the boarder keeping in mind of where the context is on the right. And just a simple dot on the top and the left in the middle. Save that png and do it with the other one you should have made for send.

I have attached two sample's .9.pngs make sure to rename them properly.

Now rename both .9.pngs to recv_bg.9.png and sent_bg.9.png then keep those in the drawable-xhdpi folder. Close out of that folder and now build the APK.

This is the result I got after recompiling:

C:\apktool>apktool b Mms2

I: Using Apktool 2.0.0-Beta7 on Mms2

I: Checking whether sources has changed...

I: Smaling...

I: Checking whether resources has changed...

I: Building resources...

C:\apktool\Mms2\res\values\public.xml:47: error: Public entry identifier 0x7f020

282 entry index is larger than available symbols (index 642, total symbols 641).

C:\apktool\Mms2\res\values\public.xml:47: error: Public symbol drawable/text_col

or_black declared here is not defined.

C:\apktool\Mms2\res\values\public.xml:46: error: Public entry identifier 0x7f020

281 entry index is larger than available symbols (index 641, total symbols 641).

C:\apktool\Mms2\res\values\public.xml:46: error: Public symbol drawable/text_col

or_red declared here is not defined.

C:\apktool\Mms2\res\values\public.xml:42: error: Public symbol drawable/widget_c

onversation_read_selector_light declared here is not defined.

C:\apktool\Mms2\res\values\public.xml:44: error: Public symbol drawable/widget_c

onversation_unread_selector_light declared here is not defined.

Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.Androl

ibException: brut.common.BrutException: could not exec command: [C:\Users\Dennis

\AppData\Local\Temp\brut_util_Jar_5220909009312137600.tmp, p, --forced-package-i

d, 127, --min-sdk-version, 17, --target-sdk-version, 17, --version-code, 17, --v

ersion-name, 4.2.2-eng.baked.20130316.112447, -F, C:\Users\Dennis\AppData\Local\

Temp\APKTOOL3439026912640037008.tmp, -0, arsc, -I, C:\Users\Dennis\apktool\frame

work\1.apk, -S, C:\apktool\Mms2\res, -M, C:\apktool\Mms2\AndroidManifest.xml]

at brut.androlib.Androlib.buildResourcesFull(Androlib.java:434)

at brut.androlib.Androlib.buildResources(Androlib.java:362)

at brut.androlib.Androlib.build(Androlib.java:285)

at brut.androlib.Androlib.build(Androlib.java:258)

at brut.apktool.Main.cmdBuild(Main.java:233)

at brut.apktool.Main.main(Main.java:88)

Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not

exec command: [C:\Users\Dennis\AppData\Local\Temp\brut_util_Jar_522090900931213

7600.tmp, p, --forced-package-id, 127, --min-sdk-version, 17, --target-sdk-versi

on, 17, --version-code, 17, --version-name, 4.2.2-eng.baked.20130316.112447, -F,

C:\Users\Dennis\AppData\Local\Temp\APKTOOL3439026912640037008.tmp, -0, arsc, -I

, C:\Users\Dennis\apktool\framework\1.apk, -S, C:\apktool\Mms2\res, -M, C:\apkto

ol\Mms2\AndroidManifest.xml]

at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav

a:481)

at brut.androlib.Androlib.buildResourcesFull(Androlib.java:415)

... 5 more

Caused by: brut.common.BrutException: could not exec command: [C:\Users\Dennis\A

ppData\Local\Temp\brut_util_Jar_5220909009312137600.tmp, p, --forced-package-id,

127, --min-sdk-version, 17, --target-sdk-version, 17, --version-code, 17, --ver

sion-name, 4.2.2-eng.baked.20130316.112447, -F, C:\Users\Dennis\AppData\Local\Te

mp\APKTOOL3439026912640037008.tmp, -0, arsc, -I, C:\Users\Dennis\apktool\framewo

rk\1.apk, -S, C:\apktool\Mms2\res, -M, C:\apktool\Mms2\AndroidManifest.xml]

at brut.util.OS.exec(OS.java:89)

at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav

a:475)

... 6 more

Any input?