[Sprint Samsung Galaxy S III] Didact74:
I realize most over here on the Sprint GS3 are probably running some sort of JB varient by now but those of us stuck on verizon cant play yet :). So I worked this mod out for the VW GS3 and figured I would share with anyone still running an ICS Sprint GS3. The code for making this work with a JB ROM is very similar from what I can tell. I think you can actually skip the smali edits entirely if you are running a JB ROM and just mod the layout files. Anyway here is the guide...

This will cover two scenarios.

1. Center Clock Applications

2. Stock Clock Applications

First one will be for Center Clock....

Decompile SystemUI and navigate to res/layout/tw_status_bar.xml

Find the following code

<com.android.systemui.statusbar.policy.Clock

Right above this line paste the following code

<com.android.systemui.statusbar.policy.DateView android:textAppearance="@style/TextAppearance.StatusBar.Date" android:gravity="right" android:id="@id/date" android:paddingRight="2.0dip" android:paddingTop="7.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:includeFontPadding="false" android:layout_weight="1.0" />

If you are running a JB ROM i am pretty sure you dont need to do this next part. ICS guys will want to continue....

Navigate to smali/com/android/systemui/statusbar/policy/dateview.smali

Find the following code

.method private final updateClock()V

Starting with and including the very next line, delete everything all the way to and including the first "end Method you come to and paste the following code in its place

.locals 9

.prologue
const v8, [B][COLOR="Red"]0x7f080002
[/COLOR][/B]
const/4 v5, 0x2

const/4 v7, 0x1

const/4 v6, 0x0

.line 92
invoke-virtual {p0}, Lcom/android/systemui/statusbar/policy/DateView;->getContext()Landroid/content/Context;

move-result-object v0

.line 93
.local v0, context:Landroid/content/Context;
new-instance v3, Ljava/util/Date;

invoke-direct {v3}, Ljava/util/Date;-><init>()V

.line 94
.local v3, now:Ljava/util/Date;
const-string v4, "EEE"

invoke-static {v4, v3}, Landroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence;

move-result-object v2

.line 95
.local v2, dow:Ljava/lang/CharSequence;
invoke-static {v0}, Landroid/text/format/DateFormat;->getLongDateFormat(Landroid/content/Context;)Ljava/text/DateFormat;

move-result-object v4

invoke-virtual {v4, v3}, Ljava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;

move-result-object v1

.line 98
.local v1, date:Ljava/lang/CharSequence;
sget-boolean v4, Lcom/android/systemui/statusbar/StatusBar;->useTouchWizGUI:Z

if-eqz v4, :cond_1

.line 99
sget-boolean v4, Lcom/android/systemui/statusbar/StatusBar;->canStatusBarHide:Z

if-eqz v4, :cond_0

.line 100

new-array v4, v5, [Ljava/lang/Object;

aput-object v1, v4, v6

aput-object v2, v4, v7

invoke-virtual {v0, v8, v4}, Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;

move-result-object v4

invoke-virtual {p0, v4}, Lcom/android/systemui/statusbar/policy/DateView;->setText(Ljava/lang/CharSequence;)V

.line 108
:goto_0
return-void

.line 102

:cond_0
const v4, [B][COLOR="red"]0x7f080003
[/COLOR][/B]
new-array v5, v5, [Ljava/lang/Object;

aput-object v2, v5, v6

aput-object v1, v5, v7

invoke-virtual {v0, v4, v5}, Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;

move-result-object v4

invoke-virtual {p0, v4}, Lcom/android/systemui/statusbar/policy/DateView;->setText(Ljava/lang/CharSequence;)V

goto :goto_0

.line 105
:cond_1

new-array v4, v5, [Ljava/lang/Object;

aput-object v2, v4, v6

aput-object v1, v4, v7

invoke-virtual {v0, v8, v4}, Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;

move-result-object v4

invoke-virtual {p0, v4}, Lcom/android/systemui/statusbar/policy/DateView;->setText(Ljava/lang/CharSequence;)V

goto :goto_0
.end method

Pay attention to the code above in RED. Those ID's must match up to the date ID's in your res/values/public.xml. If they dont you will need to change them.

Since this will also change the layout of the date in your dropdown menu, you may want to delete the date reference from there. If you do, this is how you delete it

Navigate to res/layout/tw_status_bar_expanded

Find the code that begins with the following and delete the entire line

<com.android.systemui.statusbar.policy.DateView

Thats it, recompile, chmod 644, and push to /system/app.

The next steps are for a stock clock setup. I have mine setup as a center clock so I will give you the basics for the stock clock. You may have to add some padding to tweak your location in the status bar. I will assume if you know how to de/recompile, you know how to pad your code.

In SystemUI Navigate to res/layout/tw_status_bar

Find the following code

<com.android.systemui.statusbar.policy.Clock

Add the following code on top of it

<com.android.systemui.statusbar.policy.DateView android:textAppearance="@style/TextAppearance.StatusBar.Date" android:gravity="left|center" android:id="@id/date" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:layout_toLeftOf="@id/clock" />

If you are running a JB ROM i am pretty sure you dont need to do this next part. ICS guys will want to continue....

Navigate to smali/com/android/systemui/statusbar/policy/dateview.smali

Find the following code

.method private final updateClock()V

Starting with and including the very next line, delete everything all the way to and including the first "end Method you come to and paste the following code in its place

.locals 9

.prologue
const v8, [B][COLOR="Red"]0x7f080002
[/COLOR][/B]
const/4 v5, 0x2

const/4 v7, 0x1

const/4 v6, 0x0

.line 92
invoke-virtual {p0}, Lcom/android/systemui/statusbar/policy/DateView;->getContext()Landroid/content/Context;

move-result-object v0

.line 93
.local v0, context:Landroid/content/Context;
new-instance v3, Ljava/util/Date;

invoke-direct {v3}, Ljava/util/Date;-><init>()V

.line 94
.local v3, now:Ljava/util/Date;
const-string v4, "EEE"

invoke-static {v4, v3}, Landroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence;

move-result-object v2

.line 95
.local v2, dow:Ljava/lang/CharSequence;
invoke-static {v0}, Landroid/text/format/DateFormat;->getLongDateFormat(Landroid/content/Context;)Ljava/text/DateFormat;

move-result-object v4

invoke-virtual {v4, v3}, Ljava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;

move-result-object v1

.line 98
.local v1, date:Ljava/lang/CharSequence;
sget-boolean v4, Lcom/android/systemui/statusbar/StatusBar;->useTouchWizGUI:Z

if-eqz v4, :cond_1

.line 99
sget-boolean v4, Lcom/android/systemui/statusbar/StatusBar;->canStatusBarHide:Z

if-eqz v4, :cond_0

.line 100

new-array v4, v5, [Ljava/lang/Object;

aput-object v1, v4, v6

aput-object v2, v4, v7

invoke-virtual {v0, v8, v4}, Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;

move-result-object v4

invoke-virtual {p0, v4}, Lcom/android/systemui/statusbar/policy/DateView;->setText(Ljava/lang/CharSequence;)V

.line 108
:goto_0
return-void

.line 102

:cond_0
const v4, [B][COLOR="red"]0x7f080003
[/COLOR][/B]
new-array v5, v5, [Ljava/lang/Object;

aput-object v2, v5, v6

aput-object v1, v5, v7

invoke-virtual {v0, v4, v5}, Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;

move-result-object v4

invoke-virtual {p0, v4}, Lcom/android/systemui/statusbar/policy/DateView;->setText(Ljava/lang/CharSequence;)V

goto :goto_0

.line 105
:cond_1

new-array v4, v5, [Ljava/lang/Object;

aput-object v2, v4, v6

aput-object v1, v4, v7

invoke-virtual {v0, v8, v4}, Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;

move-result-object v4

invoke-virtual {p0, v4}, Lcom/android/systemui/statusbar/policy/DateView;->setText(Ljava/lang/CharSequence;)V

goto :goto_0
.end method

Pay attention to the code above in RED. Those ID's must match up to the date ID's in your res/values/public.xml. If they dont you will need to change them.

Since this will also change the layout of the date in your dropdown menu, you may want to delete the date reference from there. If you do, this is how you delete it

Navigate to res/layout/tw_status_bar_expanded

Find the code that begins with the following and delete the entire line

<com.android.systemui.statusbar.policy.DateView

For the JB guys you will want to make one more edit....

Navigate to res/values/strings and modify the following code to look like below

<string name="status_bar_date_formatter">%2$s</string>
<string name="tw_status_bar_date_formatter">%2$s</string>

Thats it, recompile, chmod 644, and push to /system/app.

Hit the thanks button if this has been helpful to you!