[Captivate Themes and Apps] TRusselo:
i found a guide in the Nexus S forums to Add date to the top bar. (and removed from dropdown)

ported to ICS SGS project (AOSP ICS) for captivate by ME!!!

DOWNLOADS AT BOTTOM OF 1st POST

built on RC3.1 but will work on all versions. no ICSSGS release is perfect, so not going to worry about multiple versions unless I feel there is a real reason to.

made the zip to delete .odex file as this apk is de-odexed. so IT WORKS ON BOTH!!!

Battery mod included.

Right Hand Date

( Giggidy.. I had a right hand date last night..)

Centered Date/Time

- smaller font

Made to work with trial and error combining two mod guides... and changing font size to 12. that was all me!

http://xdaforums.com/showthread.php?t=1491887

http://xdaforums.com/showthread.php?p=19760562#post19760562

Note: if you enable every statusbar icon(bt, vibrate,alarm,wifi etc) it will look messy cause the clock overlapse the icons...

Enjoy the Effin Mods!!

edits posted below.. the centre mod took a bit of playing around, original date centering guide was for AOKP (kang project) not AOSP (had centred time to begin with)

1. TO ADD DATE:

You have to decompile SystemUI.apk

Go to file: SystemUI.apk\res\layout\status_bar.xml

find the line looks like this... (line 15 ish..)

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

change android:paddingLeft= to "4.0dip"go to the beginning of the clock code and insert a line above it, paste this line above clock code

<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" />

so it will look like this.... (keeping spacing in-line)

</LinearLayout>
[COLOR=Red]<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" />
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="left|center" android:id="@id/clock" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />[/COLOR]
</LinearLayout>

above in the original clock line, I set the

android:paddingLeft="4.0dip"

(was 6.0dip) to the same value as date, so they have the same space at the left.

With this setup, you will always see date and then clock at the right of the statusbar(I haven't test something else yet).

if you want to delete the date from the notification header, do the following:

in the file: SystemUI.apk\res\layout\status_bar_expanded.xml delete the following line

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

and in the line

<ImageView android:id="@id/settings_button" android:paddingLeft="8.0dip" android:paddingRight="8.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_notify_quicksettings" android:layout_toRightOf="@id/date" android:contentDescription="@string/accessibility_settings_button" />

replace the

android:layout_toRightOf="@id/date"

with the following(it maybe not crucial, but I did it)

android:layout_alignParentLeft="true"

it should look something like that

the text size is probably looking different between date and clock, so in the file SystemUI.apk\res\values\styles.xml is the text size of both.

clock

<style name="TextAppearance.StatusBar.Clock" parent="@android:style/TextAppearance.StatusBar.Icon">
<item name="android:textSize">16.0dip</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">@android:color/holo_blue_light</item>
</style>

and date

<style name="TextAppearance.StatusBar.Date" parent="@android:style/TextAppearance.StatusBar.Icon">
<item name="android:textSize">16.0sp</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">@android:color/holo_blue_light</item>
</style>

I changed both with

<item name="android:textSize">12.0sp</item>

HOW TO CENTER CLOCK/DATE AFTER FIRST MOD

2. CLOCK FIRST...

-navigate to your decompiled folder and go to res>layout>status_bar.xml

-look for this line:

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

-delete the entire original clock line

-next go to the top of your status_bar.xml and place your cursor at the end of this line:

xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">

-press "enter" to create an empty line

-place your cursor at the beginning of that empty line and paste this line of code:

<LinearLayout android:gravity="center" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
<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" />
</LinearLayout>

-make sure everything lines up (see my xml below)

-lastly, find this line:

<LinearLayout android:orientation="horizontal" android:id="@id/ticker"

-right after "@id/ticker" add this drawable:

android:background="@drawable/status_bar_bg_tile"

3. NOW DATE....

now find, copy & delete (or cut) the line we modded in 1st part (adding date):

<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" />

and place it in the part pasted at the top, above the line...

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

so it will look like..... full xml - changes in RED..

<?xml version="1.0" encoding="utf-8"?><com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:background="@drawable/status_bar_background" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
[COLOR=#ff0000] xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">[/COLOR]
[COLOR=#ff0000] <LinearLayout android:gravity="center" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">[/COLOR]
[COLOR=#ff0000] <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" />[/COLOR]
[COLOR=#ff0000] <com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity "center" android:id="@id/clock" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />[/COLOR]
[COLOR=#ff0000] </LinearLayout>[/COLOR]
<LinearLayout android:orientation="horizontal" android:id="@id/icons" android:paddingLeft="6.0dip" android:paddingRight="6.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="horizontal" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" />
</LinearLayout>
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
<include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/signal_cluster_view" />
<ImageView android:id="@id/battery" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" [COLOR=#ff0000]android:background="@drawable/status_bar_bg_tile"[/COLOR]android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageSwitcher android:id="@id/tickerIcon" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:layout_marginRight="4.0dip">
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="center" />
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="center" />
</ImageSwitcher>
<com.android.systemui.statusbar.phone.TickerView android:id="@id/tickerText" android:paddingTop="2.0dip" android:paddingRight="10.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
</com.android.systemui.statusbar.phone.TickerView>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBarView>