[Samsung Galaxy SL i9003] TopDroid:
GUIDE

Guide

This is not my work. All the credit goes to SpaceCaker for the Original Guide.

I have modified the guide a bit to work with CM10.1 and instead of ugly buttons, it will show icon like the one in following picture:

​

1. Decompile SystemUI.apk

2. In res/layout/status_bar_no_recent_apps.xml, add:

<ImageView android:layout_gravity="fill_horizontal|top|center" android:clickable="true" android:layout_width="50.0dip" android:layout_height="50.0dip" android:src="@drawable/ic_recents_task" android:scaleType="center" android:onClick="openTaskManager" />

So it'll look like:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:textSize="20.0dip" android:textColor="@*android:color/holo_blue_light" android:gravity="center_horizontal" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_no_recent_apps" />
[B]<ImageView android:layout_gravity="fill_horizontal|top|center" android:clickable="true" android:layout_width="50.0dip" android:layout_height="50.0dip" android:src="@drawable/ic_recents_task" android:scaleType="center" android:onClick="openTaskManager" />[/B]
</FrameLayout>

3. In res/layout/status_bar_recent_panel.xml, add:

<ImageView android:layout_gravity="fill_horizontal|top|center" android:clickable="true" android:layout_width="50.0dip" android:layout_height="50.0dip" android:src="@drawable/ic_recents_task" android:scaleType="center" android:onClick="openTaskManager" />

So it'll look like:

<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:recentItemLayout="@layout/status_bar_recent_item"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<FrameLayout android:id="@id/recents_bg_protect" android:background="@drawable/status_bar_recents_background" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true">
<com.android.systemui.recent.RecentsVerticalScrollView android:layout_gravity="bottom|left|center" android:id="@id/recents_container" android:scrollbars="none" android:fadingEdge="vertical" android:fadingEdgeLength="@dimen/status_bar_recents_scroll_fading_edge_length" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="0.0dip" android:stackFromBottom="true" android:divider="@null">
<LinearLayout android:orientation="vertical" android:id="@id/recents_linear_layout" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</com.android.systemui.recent.RecentsVerticalScrollView>
<ImageView android:layout_gravity="top|right|center" android:id="@id/recents_clear" android:clickable="true" android:layout_width="50.0dip" android:layout_height="50.0dip" android:src="@drawable/ic_recents_clear" android:scaleType="center" />
</FrameLayout>
<include android:id="@id/recents_no_apps" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/status_bar_no_recent_apps" />
[B] <ImageView android:layout_gravity="fill_horizontal|top|center" android:clickable="true" android:layout_width="50.0dip" android:layout_height="50.0dip" android:src="@drawable/ic_recents_task" android:scaleType="center" android:onClick="openTaskManager" />[/B]
</com.android.systemui.recent.RecentsPanelView>

4. In res/layout/system_bar_recent_panel.xml, add:

<ImageView android:layout_gravity="fill_horizontal|top|center" android:clickable="true" android:layout_width="50.0dip" android:layout_height="50.0dip" android:src="@drawable/ic_recents_task" android:scaleType="center" android:onClick="openTaskManager" />

So it'll look like this:

<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:clipChildren="false" android:clipToPadding="false" android:layout_width="wrap_content" android:layout_height="fill_parent" systemui:recentItemLayout="@layout/system_bar_recent_item"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<FrameLayout android:id="@id/recents_bg_protect" android:background="@drawable/recents_bg_protect_tile" android:clipChildren="false" android:clipToPadding="false" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginBottom="@*android:dimen/system_bar_height" android:layout_alignParentBottom="true">
<com.android.systemui.recent.RecentsVerticalScrollView android:layout_gravity="bottom|left|center" android:id="@id/recents_container" android:scrollbars="none" android:fadingEdge="vertical" android:fadingEdgeLength="20.0dip" android:clipChildren="false" android:clipToPadding="false" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="@dimen/status_bar_recents_right_glow_margin" android:stackFromBottom="true" android:divider="@null">
<LinearLayout android:orientation="vertical" android:id="@id/recents_linear_layout" android:clipChildren="false" android:clipToPadding="false" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</com.android.systemui.recent.RecentsVerticalScrollView>
<ImageView android:layout_gravity="bottom|left|center" android:id="@id/recents_clear" android:clickable="true" android:layout_width="50.0dip" android:layout_height="50.0dip" android:src="@drawable/ic_recents_clear" android:scaleType="center" />
<include android:id="@id/recents_no_apps" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="58.0dip" android:layout_marginBottom="36.0dip" layout="@layout/system_bar_no_recent_apps" />
</FrameLayout>
<com.android.systemui.recent.StatusBarTouchProxy android:id="@id/status_bar_touch_proxy" android:layout_width="fill_parent" android:layout_height="@*android:dimen/system_bar_height" android:layout_alignParentLeft="true" android:layout_alignParentBottom="true" />
[B] <ImageView android:layout_gravity="fill_horizontal|top|center" android:clickable="true" android:layout_width="50.0dip" android:layout_height="50.0dip" android:src="@drawable/ic_recents_task" android:scaleType="center" android:onClick="openTaskManager" />[/B]
</com.android.systemui.recent.RecentsPanelView>

5. In res/layout-land/status_bar_recent_panel.xml, add:

<ImageView android:layout_gravity="fill_horizontal|top|center" android:clickable="true" android:layout_width="50.0dip" android:layout_height="50.0dip" android:src="@drawable/ic_recents_task" android:scaleType="center" android:onClick="openTaskManager" />

So it'll look like this:

<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:recentItemLayout="@layout/status_bar_recent_item"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<FrameLayout android:id="@id/recents_bg_protect" android:background="@drawable/status_bar_recents_background" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true">
<com.android.systemui.recent.RecentsHorizontalScrollView android:layout_gravity="right" android:id="@id/recents_container" android:scrollbars="none" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_scroll_fading_edge_length" android:layout_width="wrap_content" android:layout_height="fill_parent">
<LinearLayout android:orientation="horizontal" android:id="@id/recents_linear_layout" android:layout_width="wrap_content" android:layout_height="fill_parent" />
</com.android.systemui.recent.RecentsHorizontalScrollView>
<ImageView android:layout_gravity="top|right|center" android:id="@id/recents_clear" android:clickable="true" android:layout_width="50.0dip" android:layout_height="50.0dip" android:src="@drawable/ic_recents_clear" android:scaleType="center" />
</FrameLayout>
<include android:id="@id/recents_no_apps" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/status_bar_no_recent_apps" />
[B]<ImageView android:layout_gravity="fill_horizontal|top|center" android:clickable="true" android:layout_width="50.0dip" android:layout_height="50.0dip" android:src="@drawable/ic_recents_task" android:scaleType="center" android:onClick="openTaskManager" />[/B]
</com.android.systemui.recent.RecentsPanelView>

6. In smali/com/android/systemui/recent/RecentsActivity.smali, at the bottom add:

.method public openTaskManager(Landroid/view/View;)V
.locals 5
.parameter "view"

.prologue
.line 99
.line 100
:try_start_0
new-instance v1, Landroid/content/Intent;

invoke-direct {v1}, Landroid/content/Intent;-><init>()V

.line 102
.local v1, intent:Landroid/content/Intent;
const-string v2, "android.intent.action.MAIN"

invoke-virtual {v1, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;

.line 105
const/high16 v2, 0x1000

invoke-virtual {v1, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;

.line 107
const-string v2, "com.sec.android.app.controlpanel"

const-string v3, "com.sec.android.app.controlpanel.activity.JobManagerActivity"

invoke-virtual {v1, v2, v3}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;

invoke-virtual {p0, v1}, Lcom/android/systemui/SystemUIService;->startActivity(Landroid/content/Intent;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

.line 109
.line 112
.end local v1 #intent:Landroid/content/Intent;
:goto_0
return-void

.line 115
:catch_0
move-exception v0

.line 117
.local v0, e:Ljava/lang/Exception;
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V

goto :goto_0
.end method

7. Download the attached zip file and extract it.

8. Put recents_task_pressed.png and recents_task_unpressed.png in res/drawable-hdpi/

9. Put ic_recents_task.xml in res/drawable/

10. Recompile SystemUI