THESE ZIP FILES ARE MEANT FOR A STOCK DEODEXED LG1 or LG7 ROM.
Make a Nandroid before flashing or Modding.
If you are running a custom ROM and you flash this zip it will most likey write over some of your current MODs/Themes. If you are running a custom ROM and want to try this MOD you have two options.
1. Flash it so you can see what it looks like on your ROM and if it borks anything Nandroid back.
2. Use the supplied guide to modify your own files
DEVS, If you want to incorporate this into your ROMs feel free, just shoot me some thanks and some credit.
I would like to thank the following for helping with these MODs:
Jeboo & Shoman94 - They pretty much wrote the toggle portion of the code for the GS2, I just ported over to work with the GS3
RMarkWald - Helped me straighten out some of the identifiers
Clark44 - General thanks
Okay,thats all for that. Lets get to the good stuff.....
This MOD will do the following based on how you want it to look.
-Center the clock in the Status Bar.
-Roll the clock out of the way if you get a notification.
-Make the AM/PM text size a step smaller.
-Add toggle On/Off functionality in Settings/Time and Date.
-Allow you to either toggle on/off am/pm or am/pm & Time all together.
SEE SCREEN SHOTs
The zip I am including will enable all of the above. If you want to mix-n-match the MODs, just use the guide below to add what you want.
This guide assumes you are familiar with de/recompiling. If you are not, there are a bunch of how-to's floating around.
The following APK's will be modified:
SystemUI.apk
SecSettings.apk
We will start with SecSettings.apk
THIS PART OF THE GUIDE WILL ADD THE TOGGLES TO REMOVE AM/PM AND OR TIME. THIER FUNCTIONALITY CAN BE FOUND IN SETTING/DATE AND TIME
Navigate to:
res/values/public.xml
find the following identifiers:
Change the entire lines to match the ones below in red
Navigate to:
res/values/strings.xml
Add the following lines below in red.
Navigate to:
res/xml/date_time_prefs.xml
Add the following below in red
Pause - At this point I suggest you compile SecSettings.apk and push to /system/app to verify the new toggles are in place. I like to stop every few steps to verify that the APK will at least compile so I know if I have made any mistakes.
Continuing on with SecSettings.apk....
Navigate to:
smali/com/android/settings/DateTimeSettings.smali
Add the following below in red
Find the following code
Starting with the very next line, delete everything up to and including the first ".end Method" you come to and paste the following code in its place
Find the following code
Starting with the very next line, delete everything up to and including the first ".end Method" you come to and paste the following code in its place
Thats it for SecSettins.apk. Recompile and push to /system/app and make sure the toggles are there. They wont function yet but they should be clickable at this point.
Decompile SystemUI
Navigate to smali/com/android/systemui/statusbar/policy/clock.smali
In the next step you will basically be C&P'ing the entire method. If you would like to use your editor to compare code and make only the changes you need thats fine, but for the sake of this guide and time, I am just having you copy and paste the entire method. I suggest you copy half the code and paste, then copy the other half and paste. Its too much to copy at one time..
Find the code
Starting with the very next line, delete everything up to and including the first ".end Method" you come to and paste (half at a time as described above) the following code in its place
Thats it for clock.smali
Navigate to smali/com/android/systemui/statusbar/phone/PhoneStatusBar.smali
Find the code
Starting with the very next line, delete everything up to and including the first ".end Method" you come to and paste the following code in its place
Thats it for the toggles, if you want you can recompile and push APK's to /system/app or you can continue adding some more functions below.
THIS PART OF THE CODE WILL CENTER THE CLOCK IN THE STATUS BAR
Still in SystemUI.apk
Navigate to res/layout/tw_status_bar.xml
Find the following code and DELETE it
FInd the following code
Add this right below it
Find the following code
Change it to this
THIS PART WILL MAKE THE AM/PM A SIZE SMALLER
Navigate to smali/com/android/systemui/statusbar/policy/clock.smali
Find the following code and remove whats in red and add whats in green
Thats it!!
Recompile
Chmod 644
Push to /system/app or create a zip and flash away.
IF YOU LIKE THIS MOD HIT THE THANKS BUTTON
Make a Nandroid before flashing or Modding.
If you are running a custom ROM and you flash this zip it will most likey write over some of your current MODs/Themes. If you are running a custom ROM and want to try this MOD you have two options.
1. Flash it so you can see what it looks like on your ROM and if it borks anything Nandroid back.
2. Use the supplied guide to modify your own files
DEVS, If you want to incorporate this into your ROMs feel free, just shoot me some thanks and some credit.
I would like to thank the following for helping with these MODs:
Jeboo & Shoman94 - They pretty much wrote the toggle portion of the code for the GS2, I just ported over to work with the GS3
RMarkWald - Helped me straighten out some of the identifiers
Clark44 - General thanks
Okay,thats all for that. Lets get to the good stuff.....
This MOD will do the following based on how you want it to look.
-Center the clock in the Status Bar.
-Roll the clock out of the way if you get a notification.
-Make the AM/PM text size a step smaller.
-Add toggle On/Off functionality in Settings/Time and Date.
-Allow you to either toggle on/off am/pm or am/pm & Time all together.
SEE SCREEN SHOTs
The zip I am including will enable all of the above. If you want to mix-n-match the MODs, just use the guide below to add what you want.
This guide assumes you are familiar with de/recompiling. If you are not, there are a bunch of how-to's floating around.
The following APK's will be modified:
SystemUI.apk
SecSettings.apk
We will start with SecSettings.apk
THIS PART OF THE GUIDE WILL ADD THE TOGGLES TO REMOVE AM/PM AND OR TIME. THIER FUNCTIONALITY CAN BE FOUND IN SETTING/DATE AND TIME
Navigate to:
res/values/public.xml
find the following identifiers:
Code:
0x7f0d05f8
0x7f0d05f9
0x7f0d05fa
0x7f0d05fb
Change the entire lines to match the ones below in red
Code:
<public type="string" name="tts_default_settings_section" id="0x7f0d05f7" />
<public type="string" name="disable_ampm" id="0x7f0d05f8" />
<public type="string" name="disable_ampm_text" id="0x7f0d05f9" />
<public type="string" name="disable_time" id="0x7f0d05fa" />
<public type="string" name="disable_time_text" id="0x7f0d05fb" />
<public type="string" name="tts_default_pitch_title" id="0x7f0d05fc" />
Navigate to:
res/values/strings.xml
Add the following lines below in red.
Code:
<string name="tts_default_settings_section">Default settings</string>
<string name="disable_ampm">Hide AM/PM</string>
<string name="disable_ampm_text">Remove AM/PM from time in status bar</string>
<string name="disable_time">Hide Time</string>
<string name="disable_time_text">Remove time from status bar</string>
<string name="tts_default_pitch_title">Pitch</string>
Navigate to:
res/xml/date_time_prefs.xml
Add the following below in red
Code:
<ListPreference android:title="@string/date_time_date_format" android:key="date_format" android:summary="mm/dd/yyyy" android:widgetLayout="@layout/round_more_icon" />
<CheckBoxPreference android:title="@string/disable_time" android:key="hide_time" android:summary="@string/disable_time_text" />
<CheckBoxPreference android:title="@string/disable_ampm" android:key="hide_ampm" android:summary="@string/disable_ampm_text" />
</PreferenceScreen>
Pause - At this point I suggest you compile SecSettings.apk and push to /system/app to verify the new toggles are in place. I like to stop every few steps to verify that the APK will at least compile so I know if I have made any mistakes.
Continuing on with SecSettings.apk....
Navigate to:
smali/com/android/settings/DateTimeSettings.smali
Add the following below in red
Code:
.field private mDummyDate:Ljava/util/Calendar;
.field private mHideAmPm:Landroid/preference/Preference;
.field private mHideTime:Landroid/preference/Preference;
.field private mIntentReceiver:Landroid/content/BroadcastReceiver;
Find the following code
Code:
iget-object v7, p0, Lcom/android/settings/DateTimeSettings;->mTimePref:Landroid/preference/Preference;
Starting with the very next line, delete everything up to and including the first ".end Method" you come to and paste the following code in its place
Code:
if-nez v0, :cond_6
move v4, v5
:goto_0
invoke-virtual {v7, v4}, Landroid/preference/Preference;->setEnabled(Z)V
.line 193
iget-object v7, p0, Lcom/android/settings/DateTimeSettings;->mDatePref:Landroid/preference/Preference;
if-nez v0, :cond_7
move v4, v5
:goto_1
invoke-virtual {v7, v4}, Landroid/preference/Preference;->setEnabled(Z)V
.line 194
iget-object v4, p0, Lcom/android/settings/DateTimeSettings;->mTimeZone:Landroid/preference/Preference;
if-nez v1, :cond_8
:goto_2
invoke-virtual {v4, v5}, Landroid/preference/Preference;->setEnabled(Z)V
.line 197
invoke-direct {p0}, Lcom/android/settings/DateTimeSettings;->applyEDMDateTimeChangePolicy()V
const-string v4, "hide_time"
invoke-virtual {p0, v4}, Lcom/android/settings/DateTimeSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v4
check-cast v4, Landroid/preference/Preference;
iput-object v4, p0, Lcom/android/settings/DateTimeSettings;->mHideTime:Landroid/preference/Preference;
const-string v4, "hide_ampm"
invoke-virtual {p0, v4}, Lcom/android/settings/DateTimeSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v4
check-cast v4, Landroid/preference/Preference;
iput-object v4, p0, Lcom/android/settings/DateTimeSettings;->mHideAmPm:Landroid/preference/Preference;
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mHideTime:Landroid/preference/Preference;
check-cast v0, Landroid/preference/CheckBoxPreference;
invoke-virtual {v0}, Landroid/preference/CheckBoxPreference;->isChecked()Z
move-result v0
if-eqz v0, :cond_4
const/4 v0, 0x0
iget-object v4, p0, Lcom/android/settings/DateTimeSettings;->mHideAmPm:Landroid/preference/Preference;
invoke-virtual {v4, v0}, Landroid/preference/Preference;->setEnabled(Z)V
iget-object v4, p0, Lcom/android/settings/DateTimeSettings;->mTime24Pref:Landroid/preference/Preference;
invoke-virtual {v4, v0}, Landroid/preference/Preference;->setEnabled(Z)V
:cond_4
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mTime24Pref:Landroid/preference/Preference;
check-cast v0, Landroid/preference/CheckBoxPreference;
invoke-virtual {v0}, Landroid/preference/CheckBoxPreference;->isChecked()Z
move-result v0
if-eqz v0, :cond_5
const/4 v0, 0x0
iget-object v4, p0, Lcom/android/settings/DateTimeSettings;->mHideAmPm:Landroid/preference/Preference;
invoke-virtual {v4, v0}, Landroid/preference/Preference;->setEnabled(Z)V
:cond_5
return-void
:cond_6
move v4, v6
.line 192
goto :goto_0
:cond_7
move v4, v6
.line 193
goto :goto_1
:cond_8
move v5, v6
.line 194
goto :goto_2
.end method
Find the following code
Code:
.method public onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z
Starting with the very next line, delete everything up to and including the first ".end Method" you come to and paste the following code in its place
Code:
.locals 6
.parameter "preferenceScreen"
.parameter "preference"
.prologue
const/4 v1, 0x1
.line 486
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mDatePref:Landroid/preference/Preference;
if-ne p2, v0, :cond_1
.line 487
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/android/settings/DateTimeSettings;->showDialog(I)V
.line 497
:cond_0
:goto_0
invoke-super {p0, p1, p2}, Lcom/android/settings/SettingsPreferenceFragment;->onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z
move-result v0
return v0
.line 488
:cond_1
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mTimePref:Landroid/preference/Preference;
if-ne p2, v0, :cond_2
.line 490
invoke-virtual {p0, v1}, Lcom/android/settings/DateTimeSettings;->removeDialog(I)V
.line 491
invoke-virtual {p0, v1}, Lcom/android/settings/DateTimeSettings;->showDialog(I)V
goto :goto_0
.line 492
:cond_2
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mTime24Pref:Landroid/preference/Preference;
if-ne p2, v0, :cond_4
.line 493
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mTime24Pref:Landroid/preference/Preference;
check-cast v0, Landroid/preference/CheckBoxPreference;
invoke-virtual {v0}, Landroid/preference/CheckBoxPreference;->isChecked()Z
move-result v0
invoke-direct {p0, v0}, Lcom/android/settings/DateTimeSettings;->set24Hour(Z)V
iget-object v1, p0, Lcom/android/settings/DateTimeSettings;->mHideAmPm:Landroid/preference/Preference;
if-nez v0, :cond_3
const/4 v0, 0x1
goto :goto_1
:cond_3
const/4 v0, 0x0
:goto_1
invoke-virtual {v1, v0}, Landroid/preference/Preference;->setEnabled(Z)V
.line 494
:goto_2
invoke-virtual {p0}, Lcom/android/settings/DateTimeSettings;->getActivity()Landroid/app/Activity;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/android/settings/DateTimeSettings;->updateTimeAndDateDisplay(Landroid/content/Context;)V
.line 495
invoke-direct {p0}, Lcom/android/settings/DateTimeSettings;->timeUpdated()V
goto :goto_0
:cond_4
const-string v3, "hide_ampm"
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mHideAmPm:Landroid/preference/Preference;
if-ne p2, v0, :cond_5
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mHideAmPm:Landroid/preference/Preference;
check-cast v0, Landroid/preference/CheckBoxPreference;
invoke-virtual {v0}, Landroid/preference/CheckBoxPreference;->isChecked()Z
move-result v2
invoke-virtual {p0}, Lcom/android/settings/DateTimeSettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v4, "hide_ampm"
invoke-static {v3, v4, v2}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto :goto_2
:cond_5
const-string v3, "hide_time"
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mHideTime:Landroid/preference/Preference;
if-ne p2, v0, :cond_0
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mHideTime:Landroid/preference/Preference;
check-cast v0, Landroid/preference/CheckBoxPreference;
invoke-virtual {v0}, Landroid/preference/CheckBoxPreference;->isChecked()Z
move-result v2
invoke-virtual {p0}, Lcom/android/settings/DateTimeSettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v4, "hide_time"
invoke-static {v3, v4, v2}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
if-nez v2, :cond_6
const/4 v2, 0x1
goto :goto_3
:cond_6
const/4 v2, 0x0
:goto_3
iget-object v1, p0, Lcom/android/settings/DateTimeSettings;->mHideAmPm:Landroid/preference/Preference;
invoke-virtual {v1, v2}, Landroid/preference/Preference;->setEnabled(Z)V
iget-object v1, p0, Lcom/android/settings/DateTimeSettings;->mTime24Pref:Landroid/preference/Preference;
invoke-virtual {v1, v2}, Landroid/preference/Preference;->setEnabled(Z)V
goto :goto_2
.end method
Thats it for SecSettins.apk. Recompile and push to /system/app and make sure the toggles are there. They wont function yet but they should be clickable at this point.
Decompile SystemUI
Navigate to smali/com/android/systemui/statusbar/policy/clock.smali
In the next step you will basically be C&P'ing the entire method. If you would like to use your editor to compare code and make only the changes you need thats fine, but for the sake of this guide and time, I am just having you copy and paste the entire method. I suggest you copy half the code and paste, then copy the other half and paste. Its too much to copy at one time..
Find the code
Code:
.method private final getSmallTime()Ljava/lang/CharSequence;
Starting with the very next line, delete everything up to and including the first ".end Method" you come to and paste (half at a time as described above) the following code in its place
Code:
.locals 22
invoke-virtual/range {p0 .. p0}, Lcom/android/systemui/statusbar/policy/Clock;->getContext()Landroid/content/Context;
move-result-object v8
invoke-virtual {v8}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v7, "hide_time"
const/4 v0, 0x0
invoke-static {v2, v7, v0}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v7
const/4 v0, 0x0
if-eqz v7, :cond_0
const/16 v0, 0x8
:cond_0
const v1, 0x7f0f0027
move-object/from16 v2, p0
invoke-virtual {v2, v1}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v1
invoke-virtual {v1, v0}, Landroid/view/View;->setVisibility(I)V
invoke-static {v8}, Landroid/text/format/DateFormat;->is24HourFormat(Landroid/content/Context;)Z
move-result v6
if-eqz v6, :cond_5
const v16, 0x104007e
:goto_0
const v2, 0xef00
const v3, 0xef01
move/from16 v0, v16
invoke-virtual {v8, v0}, Landroid/content/Context;->getString(I)Ljava/lang/String;
move-result-object v9
if-nez v6, :cond_1
invoke-virtual {v8}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "hide_ampm"
const/4 v0, 0x0
invoke-static {v2, v3, v0}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v7
const-string v0, "ampm"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "getint returned="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;)I
move v2, v7
if-eqz v2, :cond_1
const-string v9, "h:mm"
:cond_1
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/systemui/statusbar/policy/Clock;->mClockFormatString:Ljava/lang/String;
move-object/from16 v20, v0
move-object/from16 v0, v20
invoke-virtual {v9, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v20
if-eqz v20, :cond_2
if-nez v6, :cond_a
move-object/from16 v0, p0
iget-boolean v0, v0, Lcom/android/systemui/statusbar/policy/Clock;->mLocaleChanged:Z
move/from16 v20, v0
if-eqz v20, :cond_a
:cond_2
const/16 v20, 0x0
move/from16 v0, v20
move-object/from16 v1, p0
iput-boolean v0, v1, Lcom/android/systemui/statusbar/policy/Clock;->mLocaleChanged:Z
sget v20, Lcom/android/systemui/statusbar/policy/Clock;->AM_PM_STYLE:I
if-eqz v20, :cond_9
const/4 v4, -0x1
const/4 v15, 0x0
const/4 v11, 0x0
:goto_1
invoke-virtual {v9}, Ljava/lang/String;->length()I
move-result v20
move/from16 v0, v20
if-ge v11, v0, :cond_4
invoke-virtual {v9, v11}, Ljava/lang/String;->charAt(I)C
move-result v7
const/16 v20, 0x27
move/from16 v0, v20
if-ne v7, v0, :cond_3
if-nez v15, :cond_6
const/4 v15, 0x1
:cond_3
:goto_2
if-nez v15, :cond_7
const/16 v20, 0x61
move/from16 v0, v20
if-ne v7, v0, :cond_7
move v4, v11
:cond_4
if-ltz v4, :cond_9
move v5, v4
:goto_3
if-lez v4, :cond_8
add-int/lit8 v20, v4, -0x1
move/from16 v0, v20
invoke-virtual {v9, v0}, Ljava/lang/String;->charAt(I)C
move-result v20
invoke-static/range {v20 .. v20}, Ljava/lang/Character;->isWhitespace(C)Z
move-result v20
if-eqz v20, :cond_8
add-int/lit8 v4, v4, -0x1
goto :goto_3
:cond_5
const v16, 0x104007d
goto/16 :goto_0
:cond_6
const/4 v15, 0x0
goto :goto_2
:cond_7
add-int/lit8 v11, v11, 0x1
goto :goto_1
:cond_8
new-instance v20, Ljava/lang/StringBuilder;
invoke-direct/range {v20 .. v20}, Ljava/lang/StringBuilder;-><init>()V
const/16 v21, 0x0
move/from16 v0, v21
invoke-virtual {v9, v0, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v21
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
const v21, 0xef00
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v20
invoke-virtual {v9, v4, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v21
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
const-string v21, "a"
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
const v21, 0xef01
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v20
add-int/lit8 v21, v5, 0x1
move/from16 v0, v21
invoke-virtual {v9, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v21
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
invoke-virtual/range {v20 .. v20}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
:cond_9
new-instance v18, Ljava/text/SimpleDateFormat;
move-object/from16 v0, v18
invoke-direct {v0, v9}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;)V
move-object/from16 v0, v18
move-object/from16 v1, p0
iput-object v0, v1, Lcom/android/systemui/statusbar/policy/Clock;->mClockFormat:Ljava/text/SimpleDateFormat;
move-object/from16 v0, p0
iput-object v9, v0, Lcom/android/systemui/statusbar/policy/Clock;->mClockFormatString:Ljava/lang/String;
:goto_4
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/systemui/statusbar/policy/Clock;->mCalendar:Ljava/util/Calendar;
move-object/from16 v20, v0
invoke-virtual/range {v20 .. v20}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
move-result-object v20
move-object/from16 v0, v18
move-object/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
move-result-object v17
sget v20, Lcom/android/systemui/statusbar/policy/Clock;->AM_PM_STYLE:I
if-eqz v20, :cond_e
const v20, 0xef00
move-object/from16 v0, v17
move/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(I)I
move-result v12
const v20, 0xef01
move-object/from16 v0, v17
move/from16 v1, v20
invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(I)I
move-result v13
if-ltz v12, :cond_e
if-le v13, v12, :cond_e
new-instance v10, Landroid/text/SpannableStringBuilder;
move-object/from16 v0, v17
invoke-direct {v10, v0}, Landroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;)V
sget v20, Lcom/android/systemui/statusbar/policy/Clock;->AM_PM_STYLE:I
const/16 v21, 0x2
move/from16 v0, v20
move/from16 v1, v21
if-ne v0, v1, :cond_b
add-int/lit8 v20, v13, 0x1
move/from16 v0, v20
invoke-virtual {v10, v12, v0}, Landroid/text/SpannableStringBuilder;->delete(II)Landroid/text/SpannableStringBuilder;
:goto_5
return-object v10
:cond_a
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/systemui/statusbar/policy/Clock;->mClockFormat:Ljava/text/SimpleDateFormat;
move-object/from16 v18, v0
goto :goto_4
:cond_b
sget v20, Lcom/android/systemui/statusbar/policy/Clock;->AM_PM_STYLE:I
const/16 v21, 0x1
move/from16 v0, v20
move/from16 v1, v21
if-ne v0, v1, :cond_d
const v14, 0x3f333333
sget-boolean v20, Lcom/android/systemui/statusbar/StatusBar;->useTouchWizGUI:Z
if-eqz v20, :cond_c
sget-boolean v20, Lcom/android/systemui/statusbar/StatusBar;->canStatusBarHide:Z
if-nez v20, :cond_c
const/high16 v14, 0x3f00
:cond_c
new-instance v19, Landroid/text/style/RelativeSizeSpan;
move-object/from16 v0, v19
invoke-direct {v0, v14}, Landroid/text/style/RelativeSizeSpan;-><init>(F)V
const/16 v20, 0x22
move-object/from16 v0, v19
move/from16 v1, v20
invoke-virtual {v10, v0, v12, v13, v1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
:cond_d
add-int/lit8 v20, v13, 0x1
move/from16 v0, v20
invoke-virtual {v10, v13, v0}, Landroid/text/SpannableStringBuilder;->delete(II)Landroid/text/SpannableStringBuilder;
add-int/lit8 v20, v12, 0x1
move/from16 v0, v20
invoke-virtual {v10, v12, v0}, Landroid/text/SpannableStringBuilder;->delete(II)Landroid/text/SpannableStringBuilder;
goto :goto_5
:cond_e
move-object/from16 v10, v17
goto :goto_5
.end method
Thats it for clock.smali
Navigate to smali/com/android/systemui/statusbar/phone/PhoneStatusBar.smali
Find the code
Code:
.method public showClock(Z)V
Starting with the very next line, delete everything up to and including the first ".end Method" you come to and paste the following code in its place
Code:
.locals 3
iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
const v2, 0x7f0f0027
invoke-virtual {v1, v2}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->findViewById(I)Landroid/view/View;
move-result-object v0
if-eqz v0, :cond_1
if-eqz p1, :cond_2
const/4 v1, 0x0
iget-object v2, p0, Lcom/android/systemui/SystemUI;->mContext:Landroid/content/Context;
invoke-virtual {v2}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string p0, "hide_time"
invoke-static {v2, p0, v1}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
if-eqz v2, :cond_0
const/16 v1, 0x8
:cond_0
:goto_0
invoke-virtual {v0, v1}, Landroid/view/View;->setVisibility(I)V
:cond_1
return-void
:cond_2
const/16 v1, 0x8
goto :goto_0
.end method
Thats it for the toggles, if you want you can recompile and push APK's to /system/app or you can continue adding some more functions below.
THIS PART OF THE CODE WILL CENTER THE CLOCK IN THE STATUS BAR
Still in SystemUI.apk
Navigate to res/layout/tw_status_bar.xml
Find the following code and DELETE it
Code:
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ff959595" android:gravity="left|center" android:id="@id/clock" android:paddingLeft="3.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:includeFontPadding="false" />
FInd the following code
Code:
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
Add this right below it
Code:
<LinearLayout android:gravity="center" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ff959595" android:gravity="center" android:id="@id/clock" android:paddingTop="3.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:includeFontPadding="false" android:layout_weight="1.0" />
</LinearLayout>
Find the following code
Code:
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
Change it to this
Code:
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:background="@drawable/status_bar_bg_tile" android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
THIS PART WILL MAKE THE AM/PM A SIZE SMALLER
Navigate to smali/com/android/systemui/statusbar/policy/clock.smali
Find the following code and remove whats in red and add whats in green
Code:
# direct methods
.method static constructor <clinit>()V
.locals 1
.prologue
.line 78
const/4 v0, 0x0
const/4 v0, 0x1
sput v0, Lcom/android/systemui/statusbar/policy/Clock;->AM_PM_STYLE:I
return-void
.end method
Thats it!!
Recompile
Chmod 644
Push to /system/app or create a zip and flash away.
IF YOU LIKE THIS MOD HIT THE THANKS BUTTON