[flashable MOD added, post#2][GUIDE][ILLUSTRATED]Remove video call icon from dialpad!

Search This thread

stone_ship

Senior Member
Jul 17, 2010
509
178
Binghamton, NY
0. INTRO
One of the only things I like about the US firmwares for our phones is that the dialer actually looks normal. Those of you using Hellraiser on int'l firmwares have probably thought wtf is this fugly mess? It just drives me crazy, so I decided to write a guide to removing the video call icon, and decribe the basics of modding the dialer layout. This is not particularly advanced, but I'm not getting into any apktool specifics, so you will need to be comfortable with that before you try this.

First things first, thank you to jivy26 and dully79 for helping me out with this! And of course to Brut.alll for apktool.

Let's take a close look at this thing:

2cy5st3.png


Yup, you're supposed to make a call with that. Or a video call. Or a text message. Especially text message, because if you hit the menu button, you're presented with another way to text: 'Send message'.

</rant>​

1. GET RID OF VIDEO CALL ICON
I don't think there's any way to activate it in the US, so let's get rid of it.

a. Get a clean copy of Contacts.apk from your favorite i9100 firmware. The one I'm using is from XWKL1.
b. Decompile.
c. Open up res/layout/dialer_app.xml in a text editor.
d. We will be working in the last LinearLayout entry, find it.
e. We will use android:visibility="gone" to get rid of the icon. You can see that voicemailbutton is hidden by default.
Code:
<LinearLayout android:orientation="horizontal" android:id="@id/dialbuttonset" android:layout_width="314.0dip" android:layout_height="54.669983dip" android:layout_marginTop="2.6599731dip">
            <ImageButton android:id="@id/voicemailbutton" android:background="@drawable/call_dial_btn06" android:visibility="gone" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_voicemail_icon" />
            <ImageButton android:id="@id/callbutton" android:background="@drawable/call_dial_btn01" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_outgoingcall_icon" android:scaleType="fitXY" android:contentDescription="@string/call" />
            <ImageButton android:id="@id/videocallbutton" android:background="@drawable/call_dial_btn02" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_contacts_icon" android:scaleType="fitXY" android:contentDescription="@string/video_call" />
            <ImageButton android:id="@id/messagebutton" android:background="@drawable/call_dial_btn03" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_message_icon_04" android:scaleType="fitXY" android:contentDescription="@string/message" />
            <ImageButton android:id="@id/imageclear" android:background="@drawable/call_dial_btn06" android:nextFocusLeft="@id/messagebutton" android:nextFocusRight="@id/callbutton" android:layout_width="63.0dip" android:layout_height="52.899994dip" android:layout_marginLeft="6.0dip" android:layout_marginTop="1.0dip" android:src="@drawable/call_clear_btn_04" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
            <ImageButton android:id="@id/messagebutton_novt" android:background="@drawable/call_dial_btn05" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_message_icon_03" android:scaleType="fitXY" android:contentDescription="@string/message" />
            <ImageButton android:id="@id/imageclear_novt" android:background="@drawable/call_dial_btn06" android:layout_width="98.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_clear_btn_03" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
</LinearLayout>
f. Modify the relevant line by adding android:visibility="gone"
Code:
<ImageButton android:id="@id/videocallbutton" android:background="@drawable/call_dial_btn02" [COLOR="Blue"]android:visibility="gone"[/COLOR] android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_contacts_icon" android:scaleType="fitXY" android:contentDescription="@string/video_call" />
If you were to compile this now, it would look like this:

qqbd5k.png


Got rid of the video call button, but we've introduced new fugliness courtesy of messagebutton_novt and imageclear_novt. I'm really not sure what those are, but they were "next in line" in our layout, and removing videocallbutton revealed them.​

2. GET RID OF _NOVT BUTTONS
Who knows what these are, but the last thing we need is more buttons down here.

a. Apply android:visibility="gone" to the relevant lines:
Code:
<ImageButton android:id="@id/messagebutton_novt" android:background="@drawable/call_dial_btn05" [COLOR="Blue"]android:visibility="gone"[/COLOR] android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_message_icon_03" android:scaleType="fitXY" android:contentDescription="@string/message" />
<ImageButton android:id="@id/imageclear_novt" android:background="@drawable/call_dial_btn06" [COLOR="Blue"]android:visibility="gone"[/COLOR] android:layout_width="98.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_clear_btn_03" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
If you were to compile it at this point, it would look like this:

24655pt.png


Getting warmer.

3. CHANGE THE ORDER
I want to have the call button in the middle, so we have to move it.

a. Swap the order of the entries so callbutton is between messagebutton and imageclear
Code:
<LinearLayout android:orientation="horizontal" android:id="@id/dialbuttonset" android:layout_width="314.0dip" android:layout_height="54.669983dip" android:layout_marginTop="2.6599731dip">
            <ImageButton android:id="@id/voicemailbutton" android:background="@drawable/call_dial_btn06" android:visibility="gone" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_voicemail_icon" />
            <ImageButton android:id="@id/videocallbutton" android:background="@drawable/call_dial_btn02" android:visibility="gone" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_contacts_icon" android:scaleType="fitXY" android:contentDescription="@string/video_call" />
            <ImageButton android:id="@id/messagebutton" android:background="@drawable/call_dial_btn03" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_message_icon_04" android:scaleType="fitXY" android:contentDescription="@string/message" />
           [COLOR="Blue"] <ImageButton android:id="@id/callbutton" android:background="@drawable/call_dial_btn01" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_outgoingcall_icon" android:scaleType="fitXY" android:contentDescription="@string/call" />[/COLOR]
            <ImageButton android:id="@id/imageclear" android:background="@drawable/call_dial_btn06" android:nextFocusLeft="@id/messagebutton" android:nextFocusRight="@id/callbutton" android:layout_width="63.0dip" android:layout_height="52.899994dip" android:layout_marginLeft="6.0dip" android:layout_marginTop="1.0dip" android:src="@drawable/call_clear_btn_04" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
            <ImageButton android:id="@id/messagebutton_novt" android:background="@drawable/call_dial_btn05" android:visibility="gone" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_message_icon_03" android:scaleType="fitXY" android:contentDescription="@string/message" />
            <ImageButton android:id="@id/imageclear_novt" android:background="@drawable/call_dial_btn06" android:visibility="gone" android:layout_width="98.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_clear_btn_03" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
</LinearLayout>

So, here's what it would look like now:

2my2brk.png


Just have to align it

4. ALIGN IT
So there's many things you could do now. Stretching the message and clear icons to be the same width as the call button by setting android:layout_width="98.66998dip"would result in:

6qkx8n.png


To fix the stretching, you could modify the referenced images. But for simplicity's sake, we are just going to pad the margins so that everything lines up.

a. change the margin of messagebutton to 41.66998dip.
Code:
<ImageButton android:id="@id/messagebutton" android:background="@drawable/call_dial_btn03" android:layout_width="63.0dip" android:layout_height="54.669983dip" [COLOR="Blue"]android:layout_marginLeft="41.66998dip"[/COLOR] android:src="@drawable/call_message_icon_04" android:scaleType="fitXY" android:contentDescription="@string/message" />

b. Wait, where did that number come from??
c. Since we want everything to line up, it's easy to figure out how far to "push" the message button to the left by looking at the layout of the number area of the dialpad in our xml.
Each button is 98.66998dip wide, preceded by a 6.0dip margin.
messagebutton is 63.0dip wide.
98.66998-63.0==35.66998
Add the original 6.0dip for the left margin==41.66998​
d. SIDE NOTE: If you are a perfectionist, you can also make 2 small changes to the imageclear entry at this point to bring the layout in line with the rest of the buttons.
i. Remove the section in red (below) from the imageclear entry. (No other button has a top margin)

ii. Change the android:layout_height to 54.669983dip, which is what the rest of the buttons use. I can't imagine why only this button would need a tiny top margin, and smaller height, making it a tiny bit smaller than all the rest of the buttons. Samsung goofiness.

Code:
<ImageButton android:id="@id/imageclear" android:background="@drawable/call_dial_btn06" android:nextFocusLeft="@id/messagebutton" android:nextFocusRight="@id/callbutton" android:layout_width="63.0dip" [COLOR="Blue"]android:layout_height="54.669983dip"[/COLOR] android:layout_marginLeft="6.0dip" [COLOR="Red"]android:layout_marginTop="1.0dip"[/COLOR] android:src="@drawable/call_clear_btn_04" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />

e. Our final, modified section of xml will look like this:
Code:
<LinearLayout android:orientation="horizontal" android:id="@id/dialbuttonset" android:layout_width="314.0dip" android:layout_height="54.669983dip" android:layout_marginTop="2.6599731dip">
            <ImageButton android:id="@id/voicemailbutton" android:background="@drawable/call_dial_btn06" android:visibility="gone" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_voicemail_icon" />
            <ImageButton android:id="@id/videocallbutton" android:background="@drawable/call_dial_btn02" android:visibility="gone" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_contacts_icon" android:scaleType="fitXY" android:contentDescription="@string/video_call" />
            <ImageButton android:id="@id/messagebutton" android:background="@drawable/call_dial_btn03" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="41.66998dip" android:src="@drawable/call_message_icon_04" android:scaleType="fitXY" android:contentDescription="@string/message" />
            <ImageButton android:id="@id/callbutton" android:background="@drawable/call_dial_btn01" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_outgoingcall_icon" android:scaleType="fitXY" android:contentDescription="@string/call" />
            <ImageButton android:id="@id/imageclear" android:background="@drawable/call_dial_btn06" android:nextFocusLeft="@id/messagebutton" android:nextFocusRight="@id/callbutton" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_clear_btn_04" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
            <ImageButton android:id="@id/messagebutton_novt" android:background="@drawable/call_dial_btn05" android:visibility="gone" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_message_icon_03" android:scaleType="fitXY" android:contentDescription="@string/message" />
            <ImageButton android:id="@id/imageclear_novt" android:background="@drawable/call_dial_btn06" android:visibility="gone" android:layout_width="98.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_clear_btn_03" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
</LinearLayout>

f. Compile and push to phone and it should look like this:

ion4vo.png


 
Last edited:

stone_ship

Senior Member
Jul 17, 2010
509
178
Binghamton, NY
flashable VRTheme for i9100 firmwares!

This flashable VRTheme does the following:
1) Removes video call button.
2) Centers call button.
3) Replaces .pngs so that icons are not stretched.

Install:*
0) For international (i9100) 2.3.x firmwares only! Make sure the Contacts.apk is unthemed (stock).
1) Copy US_dialer_VRTheme.zip and VRTheme-Restore-Backup-v0.3.6.zip to your sdcard. Different kernels/versions of CWM recovery mount sdcard differently, so you might have to put it in sdcard/external_sd.
2) Flash from recovery.
3) Reboot. This wipes dalvik so please be patient. First boot can take 5 mins. or more.
*Tested on XWKL1 and XILA2 firmwares. It should work with almost any firmware version b/c the VRTheme just replaces the parts of the apk pertaining to the dialer. For unthemed ROMs only! If your ROM has a themed dialer, this will mess up the theme.

Revert:
0) The zip will automatically create a vrtheme-backup folder in the root of your sdcard in case something goes wrong.
1) Flash VRTheme-Restore-Backup-v0.3.6.zip from recovery.


If this works for people, please let me know what firmware you are on and I'll update the post with confirmed working versions.
NOTE: My phone is themed, so your tabs will look different (stock) as compared to the screenshot!

Thanks to:
VillainROM team for making this useful tool: http://xdaforums.com/showthread.php?t=1207017
D.O.C. for modifications and restore scripts



screenshot:
10pal1u.png
 

Attachments

  • US_dialer_VRTheme.zip
    2.8 MB · Views: 167
  • VRTheme-Restore-Backup-v0.3.6.zip
    139.9 KB · Views: 80
Last edited:
  • Like
Reactions: jdbeitz

LiLChris06

Senior Member
Nov 23, 2011
2,381
1,261
XDA
Going to give this a try now, thanks! :)

Ugh getting a bunch of compile errors, maybe cause its too late for me doing this...
 
Last edited:

RockRatt

Senior Member
Aug 1, 2010
4,101
3,711
Tried the zip file on xila3 and it did not remove video button. Also tried manually and failed last night. I will try manually again today. Can anyone upload the xila2 or xla4 stock contacts with this done already? I also tried grabbing the xila2 contacts from lilrom to see if i could modify it but then i lose the phone and contact buttons completely.

If someone else has better luck here is the stock contacts.apk for xila3 firmware. I still am not having any luck with getting rid of that damned video call button. http://db.tt/Fg3emi5O

Also here is my modified xila3 contacts.apk that i have already got most the things working except getting rid of the video button and resizing the buttons. The layout/dialer.app just doesn't open up correctly on notepad++ or on my phone. Same thing either way. I tried starting a layout/dialer.app from scratch but then i get a acore.process error and force close when i try to open the dialer after making the changes. http://db.tt/7KmD3fM4

Sent From My KickAss ATT SGS2 SPORTING CM7
 
Last edited:

stone_ship

Senior Member
Jul 17, 2010
509
178
Binghamton, NY
Tried the zip file on xila3 and it did not remove video button. Also tried manually and failed last night. I will try manually again today. Can anyone upload the xila2 or xla4 stock contacts with this done already? I also tried grabbing the xila2 contacts from lilrom to see if i could modify it but then i lose the phone and contact buttons completely.

If someone else has better luck here is the stock contacts.apk for xila3 firmware. I still am not having any luck with getting rid of that damned video call button. http://db.tt/Fg3emi5O

Also here is my modified xila3 contacts.apk that i have already got most the things working except getting rid of the video button and resizing the buttons. The layout/dialer.app just doesn't open up correctly on notepad++ or on my phone. Same thing either way. I tried starting a layout/dialer.app from scratch but then i get a acore.process error and force close when i try to open the dialer after making the changes. http://db.tt/7KmD3fM4

Sent From My KickAss ATT SGS2 SPORTING CM7
Something is up. I tried to have a look at your modified apk and got an error saying archive could be damaged. Anyway, here's the XILA3 modded for you. I didn't use the apk from your link, so maybe there's something wrong with that file. idk anyway, enjoy ;)
 

Attachments

  • Contacts.apk
    4.8 MB · Views: 158

RockRatt

Senior Member
Aug 1, 2010
4,101
3,711
Something is up. I tried to have a look at your modified apk and got an error saying archive could be damaged. Anyway, here's the XILA3 modded for you. I didn't use the apk from your link, so maybe there's something wrong with that file. idk anyway, enjoy ;)

A BIG THANKS for the help. I will add a link to your thread with a Thanks on my CobraRom Post. Wish I knew where I was messing up though. Here is the finished detail I was going for Thanks to you I am happy with it. Now to start messing with the Phone.ask file. Thanks again Rich

Sent From My KickAss ATT SGS2 SPORTING CM7
 

Attachments

  • uploadfromtaptalk1331529607531.jpg
    uploadfromtaptalk1331529607531.jpg
    17.3 KB · Views: 196

RockRatt

Senior Member
Aug 1, 2010
4,101
3,711
Stone_Ship since you know better than I, do you know where/what file I need to change to get rid of the phone.apk? Video call button as seen kn screen shot? I can deal with the first screenshot of the incall dialer but after I hit end call the second screen comes up that I would like to remove or change. I have been able to modify it to exactly my liking without the video call button and such and it works fine except when it goes back to the dialer i get a process.phone error and I lose my signal for a few seconds. Hope you can point me in the right direction.


Sent From My KickAss ATT SGS2 SPORTING CM7
 

Attachments

  • uploadfromtaptalk1331792592710.jpg
    uploadfromtaptalk1331792592710.jpg
    43.3 KB · Views: 137
  • uploadfromtaptalk1331792652807.jpg
    uploadfromtaptalk1331792652807.jpg
    36 KB · Views: 129
  • uploadfromtaptalk1331792815949.jpg
    uploadfromtaptalk1331792815949.jpg
    38.8 KB · Views: 141

stone_ship

Senior Member
Jul 17, 2010
509
178
Binghamton, NY
Stone_Ship since you know better than I, do you know where/what file I need to change to get rid of the phone.apk? Video call button as seen kn screen shot? I can deal with the first screenshot of the incall dialer but after I hit end call the second screen comes up that I would like to remove or change. I have been able to modify it to exactly my liking without the video call button and such and it works fine except when it goes back to the dialer i get a process.phone error and I lose my signal for a few seconds. Hope you can point me in the right direction.


Sent From My KickAss ATT SGS2 SPORTING CM7
How did you get rid of the video call button? I tried the android:visibility=gone trick on endcall_buttons_view.xml but it did nothing. On the other hand, it didn't FC either. Let me know what you did and I'll try it out.
 

RockRatt

Senior Member
Aug 1, 2010
4,101
3,711
How did you get rid of the video call button? I tried the android:visibility=gone trick on endcall_buttons_view.xml but it did nothing. On the other hand, it didn't FC either. Let me know what you did and I'll try it out.

I am not sure how I got rid of the video call button from the first screen shot, I just changed out some of the icons with matching names but different pictures and then the video buttons would be gone. But then i would get the force close once i end the call. With the pics above where it still has the second screen with the video call button and the first screen without it I do not get a force close. Again I just have been trying to swap out some of the .png files is all. I can upload two different apk files if that would help. One with EVERYTHING I want it to be like without any video call buttons but the force close, and the other as the screen shots above that I get NO force closes after endimg call.
NoForceclose but has video button:
http://db.tt/kXzPVtbg
Like But Has force close after call.
http://db.tt/bL5VP5eo


Sent From My KickAss ATT SGS2 SPORTING CM7
 
Last edited:

stone_ship

Senior Member
Jul 17, 2010
509
178
Binghamton, NY
I am not sure how I got rid of the video call button from the first screen shot, I just changed out some of the icons with matching names but different pictures and then the video buttons would be gone. But then i would get the force close once i end the call. With the pics above where it still has the second screen with the video call button and the first screen without it I do not get a force close. Again I just have been trying to swap out some of the .png files is all. I can upload two different apk files if that would help. One with EVERYTHING I want it to be like without any video call buttons but the force close, and the other as the screen shots above that I get NO force closes after endimg call.
NoForceclose but has video button:
http://db.tt/kXzPVtbg
Like But Has force close after call.
http://db.tt/bL5VP5eo


Sent From My KickAss ATT SGS2 SPORTING CM7
I tested both files on my phone running KL1 and neither gives me FCs. Like But Has Force Close doesn't even go to that Call ended screen. Kinda neat. Are your permissions messed up? They should be 644 (rw-r--r--).
I think you already have what you want in your hands, but just have to figure out where the problem is. Maybe fresh install from an unmodified firmware base?
 

RockRatt

Senior Member
Aug 1, 2010
4,101
3,711
I tested both files on my phone running KL1 and neither gives me FCs. Like But Has Force Close doesn't even go to that Call ended screen. Kinda neat. Are your permissions messed up? They should be 644 (rw-r--r--).
I think you already have what you want in your hands, but just have to figure out where the problem is. Maybe fresh install from an unmodified firmware base?

Ya I have put them in system/app with the correct rw/r/r and also just pushed them in without changing permissions then rebooted each time. I have run fix permissions from recovery and also tried via Rom manager also. I downloaded wanamlites version and started from scratcb and also sammys released version also, flashed it via mobile odin, put root explorer back on and pulled the whole system file, then started from scratch. I do not get the force close when i make a call but once i hit end call the screen sticks for a few seconds, then I get a popup that says force close. It loses cell signal completely for a few seconds then cell signal comes back on.
After reading your last message I tried tow other things also, one was to try and edit with notepad++ the endcall.view.xml to visibility=gone and also I totally deleted out the endcall_buttons_view.xml and endcall_buttons_view_land.xml which worked to completely get rid of the extra screen and went right back to the dialer but still gave the process.phone error message. Thanks for trying with me. I will keep testing it out.

Sent From My KickAss ATT SGS2 SPORTING CM7
 

stone_ship

Senior Member
Jul 17, 2010
509
178
Binghamton, NY
Something strange is definitely going on. I did make a couple of test calls with no FCs. You can try running ddms to see if you can see what's causing the errors. I'm not very good at reading those, but if you post it, I bet someone can help.
 

RockRatt

Senior Member
Aug 1, 2010
4,101
3,711
Well i took the one I like already, went in and edited the endcall_button_view.xml for visibility=gone and tben zipped it back up. Applied it, then recreated my rom and installed the rom and nkw so far I am not getting the force close issue I was having. Weird, so far it works pretty much as I put the links to you above. I will test it out a bit more and see how it goes. THANKS again for the help and ideas.

Sent From My KickAss ATT SGS2 SPORTING CM7
 

RockRatt

Senior Member
Aug 1, 2010
4,101
3,711
Glad it worked out for you. Sounds like you basically short circuited the app so it can't show the call ended screen.

I kind of like the way it turned out, thanks for the help and guidance man! I posted a link in the OP to point to your post. Thanks again, Rich

Sent From My KickAss ATT SGS2 SPORTING CM7
 

Top Liked Posts

  • There are no posts matching your filters.
  • 8
    0. INTRO
    One of the only things I like about the US firmwares for our phones is that the dialer actually looks normal. Those of you using Hellraiser on int'l firmwares have probably thought wtf is this fugly mess? It just drives me crazy, so I decided to write a guide to removing the video call icon, and decribe the basics of modding the dialer layout. This is not particularly advanced, but I'm not getting into any apktool specifics, so you will need to be comfortable with that before you try this.

    First things first, thank you to jivy26 and dully79 for helping me out with this! And of course to Brut.alll for apktool.

    Let's take a close look at this thing:

    2cy5st3.png


    Yup, you're supposed to make a call with that. Or a video call. Or a text message. Especially text message, because if you hit the menu button, you're presented with another way to text: 'Send message'.

    </rant>​

    1. GET RID OF VIDEO CALL ICON
    I don't think there's any way to activate it in the US, so let's get rid of it.

    a. Get a clean copy of Contacts.apk from your favorite i9100 firmware. The one I'm using is from XWKL1.
    b. Decompile.
    c. Open up res/layout/dialer_app.xml in a text editor.
    d. We will be working in the last LinearLayout entry, find it.
    e. We will use android:visibility="gone" to get rid of the icon. You can see that voicemailbutton is hidden by default.
    Code:
    <LinearLayout android:orientation="horizontal" android:id="@id/dialbuttonset" android:layout_width="314.0dip" android:layout_height="54.669983dip" android:layout_marginTop="2.6599731dip">
                <ImageButton android:id="@id/voicemailbutton" android:background="@drawable/call_dial_btn06" android:visibility="gone" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_voicemail_icon" />
                <ImageButton android:id="@id/callbutton" android:background="@drawable/call_dial_btn01" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_outgoingcall_icon" android:scaleType="fitXY" android:contentDescription="@string/call" />
                <ImageButton android:id="@id/videocallbutton" android:background="@drawable/call_dial_btn02" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_contacts_icon" android:scaleType="fitXY" android:contentDescription="@string/video_call" />
                <ImageButton android:id="@id/messagebutton" android:background="@drawable/call_dial_btn03" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_message_icon_04" android:scaleType="fitXY" android:contentDescription="@string/message" />
                <ImageButton android:id="@id/imageclear" android:background="@drawable/call_dial_btn06" android:nextFocusLeft="@id/messagebutton" android:nextFocusRight="@id/callbutton" android:layout_width="63.0dip" android:layout_height="52.899994dip" android:layout_marginLeft="6.0dip" android:layout_marginTop="1.0dip" android:src="@drawable/call_clear_btn_04" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
                <ImageButton android:id="@id/messagebutton_novt" android:background="@drawable/call_dial_btn05" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_message_icon_03" android:scaleType="fitXY" android:contentDescription="@string/message" />
                <ImageButton android:id="@id/imageclear_novt" android:background="@drawable/call_dial_btn06" android:layout_width="98.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_clear_btn_03" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
    </LinearLayout>
    f. Modify the relevant line by adding android:visibility="gone"
    Code:
    <ImageButton android:id="@id/videocallbutton" android:background="@drawable/call_dial_btn02" [COLOR="Blue"]android:visibility="gone"[/COLOR] android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_contacts_icon" android:scaleType="fitXY" android:contentDescription="@string/video_call" />
    If you were to compile this now, it would look like this:

    qqbd5k.png


    Got rid of the video call button, but we've introduced new fugliness courtesy of messagebutton_novt and imageclear_novt. I'm really not sure what those are, but they were "next in line" in our layout, and removing videocallbutton revealed them.​

    2. GET RID OF _NOVT BUTTONS
    Who knows what these are, but the last thing we need is more buttons down here.

    a. Apply android:visibility="gone" to the relevant lines:
    Code:
    <ImageButton android:id="@id/messagebutton_novt" android:background="@drawable/call_dial_btn05" [COLOR="Blue"]android:visibility="gone"[/COLOR] android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_message_icon_03" android:scaleType="fitXY" android:contentDescription="@string/message" />
    <ImageButton android:id="@id/imageclear_novt" android:background="@drawable/call_dial_btn06" [COLOR="Blue"]android:visibility="gone"[/COLOR] android:layout_width="98.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_clear_btn_03" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
    If you were to compile it at this point, it would look like this:

    24655pt.png


    Getting warmer.

    3. CHANGE THE ORDER
    I want to have the call button in the middle, so we have to move it.

    a. Swap the order of the entries so callbutton is between messagebutton and imageclear
    Code:
    <LinearLayout android:orientation="horizontal" android:id="@id/dialbuttonset" android:layout_width="314.0dip" android:layout_height="54.669983dip" android:layout_marginTop="2.6599731dip">
                <ImageButton android:id="@id/voicemailbutton" android:background="@drawable/call_dial_btn06" android:visibility="gone" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_voicemail_icon" />
                <ImageButton android:id="@id/videocallbutton" android:background="@drawable/call_dial_btn02" android:visibility="gone" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_contacts_icon" android:scaleType="fitXY" android:contentDescription="@string/video_call" />
                <ImageButton android:id="@id/messagebutton" android:background="@drawable/call_dial_btn03" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_message_icon_04" android:scaleType="fitXY" android:contentDescription="@string/message" />
               [COLOR="Blue"] <ImageButton android:id="@id/callbutton" android:background="@drawable/call_dial_btn01" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_outgoingcall_icon" android:scaleType="fitXY" android:contentDescription="@string/call" />[/COLOR]
                <ImageButton android:id="@id/imageclear" android:background="@drawable/call_dial_btn06" android:nextFocusLeft="@id/messagebutton" android:nextFocusRight="@id/callbutton" android:layout_width="63.0dip" android:layout_height="52.899994dip" android:layout_marginLeft="6.0dip" android:layout_marginTop="1.0dip" android:src="@drawable/call_clear_btn_04" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
                <ImageButton android:id="@id/messagebutton_novt" android:background="@drawable/call_dial_btn05" android:visibility="gone" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_message_icon_03" android:scaleType="fitXY" android:contentDescription="@string/message" />
                <ImageButton android:id="@id/imageclear_novt" android:background="@drawable/call_dial_btn06" android:visibility="gone" android:layout_width="98.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_clear_btn_03" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
    </LinearLayout>

    So, here's what it would look like now:

    2my2brk.png


    Just have to align it

    4. ALIGN IT
    So there's many things you could do now. Stretching the message and clear icons to be the same width as the call button by setting android:layout_width="98.66998dip"would result in:

    6qkx8n.png


    To fix the stretching, you could modify the referenced images. But for simplicity's sake, we are just going to pad the margins so that everything lines up.

    a. change the margin of messagebutton to 41.66998dip.
    Code:
    <ImageButton android:id="@id/messagebutton" android:background="@drawable/call_dial_btn03" android:layout_width="63.0dip" android:layout_height="54.669983dip" [COLOR="Blue"]android:layout_marginLeft="41.66998dip"[/COLOR] android:src="@drawable/call_message_icon_04" android:scaleType="fitXY" android:contentDescription="@string/message" />

    b. Wait, where did that number come from??
    c. Since we want everything to line up, it's easy to figure out how far to "push" the message button to the left by looking at the layout of the number area of the dialpad in our xml.
    Each button is 98.66998dip wide, preceded by a 6.0dip margin.
    messagebutton is 63.0dip wide.
    98.66998-63.0==35.66998
    Add the original 6.0dip for the left margin==41.66998​
    d. SIDE NOTE: If you are a perfectionist, you can also make 2 small changes to the imageclear entry at this point to bring the layout in line with the rest of the buttons.
    i. Remove the section in red (below) from the imageclear entry. (No other button has a top margin)

    ii. Change the android:layout_height to 54.669983dip, which is what the rest of the buttons use. I can't imagine why only this button would need a tiny top margin, and smaller height, making it a tiny bit smaller than all the rest of the buttons. Samsung goofiness.

    Code:
    <ImageButton android:id="@id/imageclear" android:background="@drawable/call_dial_btn06" android:nextFocusLeft="@id/messagebutton" android:nextFocusRight="@id/callbutton" android:layout_width="63.0dip" [COLOR="Blue"]android:layout_height="54.669983dip"[/COLOR] android:layout_marginLeft="6.0dip" [COLOR="Red"]android:layout_marginTop="1.0dip"[/COLOR] android:src="@drawable/call_clear_btn_04" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />

    e. Our final, modified section of xml will look like this:
    Code:
    <LinearLayout android:orientation="horizontal" android:id="@id/dialbuttonset" android:layout_width="314.0dip" android:layout_height="54.669983dip" android:layout_marginTop="2.6599731dip">
                <ImageButton android:id="@id/voicemailbutton" android:background="@drawable/call_dial_btn06" android:visibility="gone" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_voicemail_icon" />
                <ImageButton android:id="@id/videocallbutton" android:background="@drawable/call_dial_btn02" android:visibility="gone" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_contacts_icon" android:scaleType="fitXY" android:contentDescription="@string/video_call" />
                <ImageButton android:id="@id/messagebutton" android:background="@drawable/call_dial_btn03" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="41.66998dip" android:src="@drawable/call_message_icon_04" android:scaleType="fitXY" android:contentDescription="@string/message" />
                <ImageButton android:id="@id/callbutton" android:background="@drawable/call_dial_btn01" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_outgoingcall_icon" android:scaleType="fitXY" android:contentDescription="@string/call" />
                <ImageButton android:id="@id/imageclear" android:background="@drawable/call_dial_btn06" android:nextFocusLeft="@id/messagebutton" android:nextFocusRight="@id/callbutton" android:layout_width="63.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_clear_btn_04" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
                <ImageButton android:id="@id/messagebutton_novt" android:background="@drawable/call_dial_btn05" android:visibility="gone" android:layout_width="98.66998dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_message_icon_03" android:scaleType="fitXY" android:contentDescription="@string/message" />
                <ImageButton android:id="@id/imageclear_novt" android:background="@drawable/call_dial_btn06" android:visibility="gone" android:layout_width="98.0dip" android:layout_height="54.669983dip" android:layout_marginLeft="6.0dip" android:src="@drawable/call_clear_btn_03" android:scaleType="fitXY" android:contentDescription="@string/description_delete_button" />
    </LinearLayout>

    f. Compile and push to phone and it should look like this:

    ion4vo.png


    1
    flashable VRTheme for i9100 firmwares!

    This flashable VRTheme does the following:
    1) Removes video call button.
    2) Centers call button.
    3) Replaces .pngs so that icons are not stretched.

    Install:*
    0) For international (i9100) 2.3.x firmwares only! Make sure the Contacts.apk is unthemed (stock).
    1) Copy US_dialer_VRTheme.zip and VRTheme-Restore-Backup-v0.3.6.zip to your sdcard. Different kernels/versions of CWM recovery mount sdcard differently, so you might have to put it in sdcard/external_sd.
    2) Flash from recovery.
    3) Reboot. This wipes dalvik so please be patient. First boot can take 5 mins. or more.
    *Tested on XWKL1 and XILA2 firmwares. It should work with almost any firmware version b/c the VRTheme just replaces the parts of the apk pertaining to the dialer. For unthemed ROMs only! If your ROM has a themed dialer, this will mess up the theme.

    Revert:
    0) The zip will automatically create a vrtheme-backup folder in the root of your sdcard in case something goes wrong.
    1) Flash VRTheme-Restore-Backup-v0.3.6.zip from recovery.


    If this works for people, please let me know what firmware you are on and I'll update the post with confirmed working versions.
    NOTE: My phone is themed, so your tabs will look different (stock) as compared to the screenshot!

    Thanks to:
    VillainROM team for making this useful tool: http://xdaforums.com/showthread.php?t=1207017
    D.O.C. for modifications and restore scripts



    screenshot:
    10pal1u.png