[AT&T, Rogers, Bell, Telus Samsung Galaxy S III] loserskater:
This is an expansion on Didact's mods, so if you haven't already, you MUST implement his clock mod found here:

[MOD][GUIDE] Clock Statusbar Mod v2.0

It would help, but is not necessary to implement Didact's statusbar transparency mod found here:

[MOD][GUIDE] Real Time Statusbar Transparency Settings

I used the open source ColorPickerPreference found HERE

Note:

While you're going through SecSettings, you can remove everything involving statusbar transparency as the new mod has a color picker with an alpha (transparency) bar.

I've added the necessary code if you haven't implemented the transparency setting. It's only code in SystemUI.apk, so you don't need to change anything in SecSettings.apk.

What do these mods cover?

Added Left Clock

Fixed overlapping notifications on Center Clock

Change the color of the clock no matter the location

Change the color of the statusbar (transparency still works!)

We're going to be working with the following two files:

SecSettings.apk

SystemUI.apk

KEY

REMOVE what's in BLUE

ADD what's in RED

MODIFY what's in GREEN

Updates:

6-01-13

Updated ColorPicker so it keeps your color instead of reverting it when you leave and come back to the menu.

Moved all clock stuff to Display Settings to make it easier to change clock and statusbar color together.

You can revert your date_time_prefs.xml and DateTimeSettings.smali

Fixed issues with center/left clock causing the device/SystemUI to freeze when screen is turned off.

4-15-13

I've now added a ColorPicker so you can set any color/transparency you want!

Added code if you haven't implemented Didact's transparency mod.

First up, SecSettings.apk

Navigate to /res/values/arrays.xml

<string-array name="clock_style_entries">
<item>Right clock</item>
<item>Center clock</item>[COLOR="Red"]
<item>Left clock</item>[/COLOR]
<item>No clock</item>
</string-array>
<string-array name="clock_style_values">
<item>1</item>
<item>2</item>[COLOR="red"]
<item>3</item>[/COLOR]
<item>0</item>
</string-array>

Navigate to /res/values/ids.xml

[COLOR="Red"]<item type="id" name="color_picker_view">false</item>
<item type="id" name="old_color_panel">false</item>
<item type="id" name="new_color_panel">false</item>[/COLOR]

Next navigate to /res/values/strings.xml

[COLOR="red"]<string name="clock_cat">Clock options</string>
<string name="clock_color_title">Clock Color</string>
<string name="clock_color_summary">Change the color of the clock</string>
<string name="statusbar_color_title">Statusbar Color</string>
<string name="statusbar_color_summary">Change the color of the statusbar</string>
<string name="dialog_color_picker">Color Picker</string>
<string name="press_color_to_apply">Press on Color to apply</string>[/COLOR]

Navigate to /res/xml/display_settings.xml

Add the following wherever you would like it to show up in the menu

<com.loser.colorpicker.ColorPickerPreference android:persistent="false" android:title="@string/statusbar_color_title" android:key="statusbar_color" android:summary="@string/statusbar_color_summary" android:defaultValue="0xff000000" alphaSlider="true" />
<PreferenceCategory android:title="@string/clock_cat" android:key="clock_category" />
<ListPreference android:entries="@array/clock_style_entries" android:title="@string/clock_title_enable" android:key="clock_style" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/clock_style_values" />
<ListPreference android:entries="@array/clock_ampm_entries" android:title="@string/title_clock_ampm_entries" android:key="clock_am_pm_style" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/clock_ampm_values" />
<ListPreference android:entries="@array/clock_weekday_entries" android:title="@string/enable_clock_weekday" android:key="clock_weekday" android:summary="@string/enable_clock_weekday_summary" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/clock_weekday_values" />
<com.loser.colorpicker.ColorPickerPreference android:persistent="false" android:title="@string/clock_color_title" android:key="clock_color" android:summary="@string/clock_color_summary" android:defaultValue="0xffffffff" alphaSlider="true" />

Navigate to /smali/com/android/settings/DisplaySettings.smali

.field private mBrightnessPreference:Lcom/android/settings/BrightnessPreference;

.field private mBrightnessSliderPreference:Landroid/preference/CheckBoxPreference;

[COLOR="Red"].field mClockAmPmstyle:Landroid/preference/ListPreference;

.field mClockColor:Lcom/loser/colorpicker/ColorPickerPreference;

.field mClockStyle:Landroid/preference/ListPreference;

.field mClockWeekday:Landroid/preference/ListPreference;[/COLOR]

.field private mContextualPage:Landroid/preference/SwitchPreferenceScreen;

.field protected mContextualPageUncheckerHandler:Landroid/os/Handler;

.field private mSmartRotationAnimationImage:[I

.field private mSmartStayAnimationImage:[I

[COLOR="red"].field mStatusbarColor:Lcom/loser/colorpicker/ColorPickerPreference;[/COLOR]

.field mSupportFolderType:Z

.field private mTouchKeyLight:Landroid/preference/ListPreference;

.method private updateState()V

There's two sections here, make sure you scroll to the bottom.

iget-object v3, p0, Lcom/android/settings/DisplaySettings;->mDisplayBatteryLevel:Landroid/preference/CheckBoxPreference;

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v0

const-string v4, "display_battery_percentage"

invoke-static {v0, v4, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v0

if-eqz v0, :cond_4

move v0, v1

:goto_1
invoke-virtual {v3, v0}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V

[COLOR="red"]iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mStatusbarColor:Lcom/loser/colorpicker/ColorPickerPreference;

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v3

const-string v4, "statusbar_color"

const v5, -0xffffff

invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v3

invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

move-result-object v3

const/16 v5, 0x0

invoke-virtual {v0, v5, v3}, Lcom/loser/colorpicker/ColorPickerPreference;->onSetInitialValue(ZLjava/lang/Object;)V

iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mClockColor:Lcom/loser/colorpicker/ColorPickerPreference;

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v3

const-string v4, "clock_color"

const v5, -0x000000

invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v3

invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

move-result-object v3

const/16 v5, 0x0

invoke-virtual {v0, v5, v3}, Lcom/loser/colorpicker/ColorPickerPreference;->onSetInitialValue(ZLjava/lang/Object;)V[/COLOR]

iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mTouchKeyLight:Landroid/preference/ListPreference;

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v3

const-string v4, "button_key_light"

const/16 v5, 0x5dc

invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v3

invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

move-result-object v3

invoke-virtual {v0, v3}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V

[COLOR="red"]iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mClockStyle:Landroid/preference/ListPreference;

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v3

const-string v4, "clock_style"

const/16 v5, 0x0

invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v3

invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

move-result-object v3

invoke-virtual {v0, v3}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V

iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mClockAmPmstyle:Landroid/preference/ListPreference;

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v3

const-string v4, "clock_am_pm_style"

const/16 v5, 0x0

invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v3

invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

move-result-object v3

invoke-virtual {v0, v3}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V

iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mClockWeekday:Landroid/preference/ListPreference;

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v3

const-string v4, "clock_weekday"

const/16 v5, 0x0

invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v3

invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

move-result-object v3

invoke-virtual {v0, v3}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V[/COLOR]

.line 809
iget-boolean v0, p0, Lcom/android/settings/DisplaySettings;->mSupportFolderType:Z

if-eqz v0, :cond_0

.line 854
invoke-direct {p0}, Lcom/android/settings/DisplaySettings;->updateAccelerometerRotationSecondCheckbox()V

.method public onCreate(Landroid/os/Bundle;)V

const-string v11, "font_size"

invoke-virtual {p0, v11}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;

move-result-object v11

check-cast v11, Landroid/preference/ListPreference;

iput-object v11, p0, Lcom/android/settings/DisplaySettings;->mFontSizePref:Landroid/preference/ListPreference;

.line 409
iget-object v11, p0, Lcom/android/settings/DisplaySettings;->mFontSizePref:Landroid/preference/ListPreference;

invoke-virtual {v11, p0}, Landroid/preference/ListPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V

[COLOR="red"]const-string v11, "statusbar_color"

invoke-virtual {p0, v11}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;

move-result-object v11

check-cast v11, Lcom/loser/colorpicker/ColorPickerPreference;

iput-object v11, p0, Lcom/android/settings/DisplaySettings;->mStatusbarColor:Lcom/loser/colorpicker/ColorPickerPreference;

iget-object v11, p0, Lcom/android/settings/DisplaySettings;->mStatusbarColor:Lcom/loser/colorpicker/ColorPickerPreference;

const-string v11, "clock_color"

invoke-virtual {p0, v11}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;

move-result-object v11

check-cast v11, Lcom/loser/colorpicker/ColorPickerPreference;

iput-object v11, p0, Lcom/android/settings/DisplaySettings;->mClockColor:Lcom/loser/colorpicker/ColorPickerPreference;

iget-object v11, p0, Lcom/android/settings/DisplaySettings;->mClockColor:Lcom/loser/colorpicker/ColorPickerPreference;

invoke-virtual {v11, p0}, Lcom/loser/colorpicker/ColorPickerPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V

const-string v11, "clock_style"

invoke-virtual {p0, v11}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;

move-result-object v11

check-cast v11, Landroid/preference/ListPreference;

iput-object v11, p0, Lcom/android/settings/DisplaySettings;->mClockStyle:Landroid/preference/ListPreference;

iget-object v11, p0, Lcom/android/settings/DisplaySettings;->mClockStyle:Landroid/preference/ListPreference;

invoke-virtual {v11, p0}, Landroid/preference/ListPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V

const-string v11, "clock_am_pm_style"

invoke-virtual {p0, v11}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;

move-result-object v11

check-cast v11, Landroid/preference/ListPreference;

iput-object v11, p0, Lcom/android/settings/DisplaySettings;->mClockAmPmstyle:Landroid/preference/ListPreference;

iget-object v11, p0, Lcom/android/settings/DisplaySettings;->mClockAmPmstyle:Landroid/preference/ListPreference;

invoke-virtual {v11, p0}, Landroid/preference/ListPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V

const-string v11, "clock_weekday"

invoke-virtual {p0, v11}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;

move-result-object v11

check-cast v11, Landroid/preference/ListPreference;

iput-object v11, p0, Lcom/android/settings/DisplaySettings;->mClockWeekday:Landroid/preference/ListPreference;

iget-object v11, p0, Lcom/android/settings/DisplaySettings;->mClockWeekday:Landroid/preference/ListPreference;

invoke-virtual {v11, p0}, Landroid/preference/ListPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V[/COLOR]

.line 398
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getActivity()Landroid/app/Activity;

move-result-object v11

invoke-static {v11}, Lcom/android/settings/Utils;->isTablet(Landroid/content/Context;)Z

move-result v11

.method public onPreferenceChange(Landroid/preference/Preference;Ljava/lang/Object;)Z

:catch_2
move-exception v0

.line 1038
const-string v1, "DisplaySettings"

const-string v2, "could not persist Touch key light setting"

invoke-static {v1, v2, v0}, Landroid/util/Log;->secE(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

goto/16 :goto_4

.line 1040
:cond_9
[COLOR="red"]const-string v2, "statusbar_color"

invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v2

if-eqz v2, :cond_stat

invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

move-result-object v2

const-string v1, "^#"

const-string v3, ""

invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

move-result-object v3

invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I

move-result v1

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v2

const-string v3, "statusbar_color"

invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z

goto/16 :goto_4

:cond_stat
const-string v2, "clock_am_pm_style"

invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v2

if-eqz v2, :cond_ampm

.line 986
check-cast p2, Ljava/lang/String;

invoke-static {p2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I

move-result v0

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v1

const-string v2, "clock_am_pm_style"

invoke-static {v1, v2, v0}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z

.line 989
iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mClockAmPmstyle:Landroid/preference/ListPreference;

invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

move-result-object v0

invoke-virtual {v1, v0}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V

iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mClockAmPmstyle:Landroid/preference/ListPreference;

iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mClockAmPmstyle:Landroid/preference/ListPreference;

invoke-virtual {v1}, Landroid/preference/ListPreference;->getEntry()Ljava/lang/CharSequence;

move-result-object v1

invoke-virtual {v0, v1}, Landroid/preference/ListPreference;->setSummary(Ljava/lang/CharSequence;)V

goto/16 :goto_4

.line 993
:cond_ampm
const-string v2, "clock_style"

invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v2

if-eqz v2, :cond_style

.line 986
check-cast p2, Ljava/lang/String;

invoke-static {p2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I

move-result v0

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v1

const-string v2, "clock_style"

invoke-static {v1, v2, v0}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z

.line 989
iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mClockStyle:Landroid/preference/ListPreference;

invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

move-result-object v0

invoke-virtual {v1, v0}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V

iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mClockStyle:Landroid/preference/ListPreference;

iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mClockStyle:Landroid/preference/ListPreference;

invoke-virtual {v1}, Landroid/preference/ListPreference;->getEntry()Ljava/lang/CharSequence;

move-result-object v1

invoke-virtual {v0, v1}, Landroid/preference/ListPreference;->setSummary(Ljava/lang/CharSequence;)V

goto/16 :goto_4

.line 993
:cond_style
const-string v2, "clock_weekday"

invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v2

if-eqz v2, :cond_week

.line 986
check-cast p2, Ljava/lang/String;

invoke-static {p2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I

move-result v0

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v1

const-string v2, "clock_weekday"

invoke-static {v1, v2, v0}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z

.line 989
iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mClockWeekday:Landroid/preference/ListPreference;

invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

move-result-object v0

invoke-virtual {v1, v0}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V

iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mClockWeekday:Landroid/preference/ListPreference;

iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mClockWeekday:Landroid/preference/ListPreference;

invoke-virtual {v1}, Landroid/preference/ListPreference;->getEntry()Ljava/lang/CharSequence;

move-result-object v1

invoke-virtual {v0, v1}, Landroid/preference/ListPreference;->setSummary(Ljava/lang/CharSequence;)V

goto/16 :goto_4

.line 993
:cond_week
const-string v2, "clock_color"

invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v2

if-eqz v2, :cond_color

invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

move-result-object v2

const-string v1, "^#"

const-string v3, ""

invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

move-result-object v3

invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I

move-result v1

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v2

const-string v3, "clock_color"

invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z

goto/16 :goto_4

:cond_color[/COLOR]
const-string v2, "quick_launch"

invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v2

Now download the zip attached to this post and copy the smali and res folders. It should merge but not overwrite anything.

Now you're going to need to get some ids!!! Compile and then decompile.

Open /smali/com/loser/colorpicker/ColorPickerDialog.smali

There should be a total of 6 id's you need to get. Make sure you're looking at the type as there's a layout and string with the same name.

Look for them in /res/values/public.xml. You should now be good to go.