Mod Sense 4 style Task Switcher

Kalau kemaren ane share tentang WebOS style Task Switcher , Sekarang tentang Sense 4 Task Switcher untuk XPERIA E Dual / Android dengan OS JB 
Caranya hampir sama dengan yang kemaren. yaudah, langsung aja ke step by step nya yak..

Yang wajib diperlukan :
  1. apkmanager / apktool / Virtous / apkmultitools (salah satu aja, yg penting tools buat decompile/recompile)
  2. Notepad++ (recomended) kalo mau pake editor yg lain silakan.
  3. Paham cara gunain tools diatas :) bila perlu baca dulu ini Cara decompile/recompile apk
  4. Kesabaran
*Biasakan Backup sebelum melakukan Modding, klo gagal/bootloop/ga sesuai bisa di restore

Pertama
Pull file framework-res.apk dan SystemUI.apk dari Smartphone. bisa di pull pake adb, atau pake root explorer, letak file ada di
framework-res.apk : /system/framework/framework-res.apk
SystemUI.apk :  /system/app/SystemUI.apk

copy kedua file diatas di satu folder dengan folder apktool, Kemudian install framework di PC/Laptop dengan perintah :
apktool if framework-res.apk

Kedua.
Decompile framework-res.apk dengan perintah :
apktool d framework-res.apk

masuk ke folder hasil decompile, trus cari file ini res/values/dimens.xml edit pada bagian ini
<dimen name="thumbnail_height">240.0dip</dimen>

<dimen name="thumbnail_width">151.0dip</dimen>
*rubah pada bagian yang berwarna merah.

Simpan. kemudian recompile framework-res.apk dengan perintah :
apktool b framework-res


Ketiga.
Decompile SystemUI.apk dengan perintah :
apktool d SystemUI.apk

masuk ke folder hasil decompile, trus cari file ini res/values/bools.xml edit pada bagian ini
<bool name="config_recents_thumbnail_image_fits_to_xy">true</bool>
*rubah pada bagian yang berwarna merah.

masuk ke folder hasil decompile, trus cari file ini res/values/strings.xml tambah script ini di bagian paling bawah
<string name="recent_apps_title">Recent apps</string>

masuk ke folder hasil decompile, trus cari file ini res/values/ids.xml tambah script ini di bagian paling bawah (cek dulu, kalau sudah ada ga usah ditambahin lg)
<item type="id" name="recents_transition_background" />
<item type="id" name="recents_transition_placeholder_icon" />
<item type="id" name="recents_clear" />

masuk ke folder hasil decompile, trus cari file ini /res/layout/status_bar_no_recent_apps.xml
edit pada bagian ini:
<TextView android:textSize="20.0dip" android:textColor="@*android:color/white" 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" />
*rubah pada bagian yang berwarna merah.

masuk ke folder hasil decompile, trus cari file ini /res/layout/status_bar_expanded_header.xml
edit pada bagian ini:

<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false"
*rubah pada bagian yang berwarna merah.

masuk ke folder hasil decompile, trus cari file ini
/res/layout-port/status_bar_recent_item.xml
hapus semua isinya, dan replace dengan kode ini :
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:paddingLeft="@dimen/status_bar_recents_item_padding" android:paddingRight="@dimen/status_bar_recents_item_padding" android:layout_width="wrap_content" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <RelativeLayout android:layout_gravity="center_vertical" android:id="@id/recent_item" android:paddingTop="@*android:dimen/status_bar_height" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true">
        <FrameLayout android:id="@id/app_thumbnail" android:background="#00000000" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" android:foreground="#00000000" android:layout_centerInParent="true">
            <ImageView android:id="@id/app_thumbnail_image" android:layout_width="192.0dip" android:layout_height="305.0dip" android:layout_marginTop="15.0dip" android:layout_marginBottom="15.0dip" />
        </FrameLayout>
        <View android:id="@id/recents_callout_line" android:background="@drawable/recents_callout_line" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="1.0dip" android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin" android:layout_marginTop="3.0dip" android:layout_marginRight="3.0dip" android:layout_toLeftOf="@id/app_thumbnail" android:layout_below="@id/app_label" android:layout_alignParentLeft="true" />
        <ImageView android:gravity="center_horizontal" android:id="@id/app_icon" android:layout_width="192.0dip" android:layout_height="wrap_content" android:layout_marginTop="57.0dip" android:scaleType="centerInside" android:adjustViewBounds="true" android:maxWidth="@dimen/status_bar_recents_app_icon_max_width" android:maxHeight="@dimen/status_bar_recents_app_icon_max_height" android:layout_below="@id/app_thumbnail" />
        <TextView android:textSize="@dimen/status_bar_recents_app_label_text_size" android:textColor="@color/status_bar_recents_app_label_color" android:ellipsize="marquee" android:gravity="center_horizontal" android:id="@id/app_label" android:paddingTop="0.0dip" android:fadingEdge="none" android:fadingEdgeLength="0.0dip" android:layout_width="192.0dip" android:layout_height="fill_parent" android:layout_marginTop="7.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_icon" android:layout_alignParentBottom="true" />
        <TextView android:textSize="@dimen/status_bar_recents_app_description_text_size" android:ellipsize="marquee" android:id="@id/app_description" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_text_fading_edge_length" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin" android:layout_marginTop="40.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_label" android:layout_alignParentBottom="true" />
    </RelativeLayout>
</FrameLayout>

masuk ke folder hasil decompile, trus cari file ini
/res/layout-port/status_bar_recent_panel.xml
hapus semua isinya, dan replace dengan kode ini :
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:background="@drawable/sense_port" 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">
    <View android:id="@id/recents_transition_background" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" />
    <FrameLayout android:id="@id/recents_bg_protect" android:background="#00000000" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true">
        <ImageView android:id="@id/recents_transition_placeholder_icon" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" />
        <com.android.systemui.recent.RecentsHorizontalScrollView android:layout_gravity="bottom|left|center" android:id="@id/recents_container" android:scrollbars="none" android:fadingEdge="none" android:fadingEdgeLength="0.0dip" 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="horizontal" 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.RecentsHorizontalScrollView>
        <TextView android:textSize="20.0dip" android:textColor="@color/status_bar_recents_app_label_color" android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="43.0dip" android:text="@string/recent_apps_title" />
        <ImageView android:layout_gravity="top|right|center" android:id="@id/recents_clear" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_notify_clear" />
    </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" />
</com.android.systemui.recent.RecentsPanelView>

masuk ke folder hasil decompile, trus cari file ini
/res/layout-land/status_bar_recent_item.xml
hapus semua isinya, dan replace dengan kode ini :

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:paddingLeft="@dimen/status_bar_recents_item_padding" android:paddingRight="@dimen/status_bar_recents_item_padding" android:layout_width="wrap_content" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <RelativeLayout android:layout_gravity="center_vertical" android:id="@id/recent_item" android:paddingTop="@*android:dimen/status_bar_height" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true">
        <FrameLayout android:id="@id/app_thumbnail" android:background="#00000000" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" android:foreground="#00000000" android:layout_centerInParent="true">
            <ImageView android:id="@id/app_thumbnail_image" android:layout_width="137.0dip" android:layout_height="217.0dip" android:layout_marginTop="10.0dip" android:layout_marginBottom="20.0dip" />
        </FrameLayout>
        <ImageView android:gravity="center_horizontal" android:id="@id/app_icon" android:layout_width="50.0dip" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginTop="10.0dip" android:scaleType="centerInside" android:adjustViewBounds="true" android:maxWidth="35.0dip" android:maxHeight="35.0dip" android:layout_below="@id/app_thumbnail" />
        <TextView android:textSize="@dimen/status_bar_recents_app_label_text_size" android:textColor="@color/status_bar_recents_app_label_color" android:ellipsize="marquee" android:gravity="center" android:id="@id/app_label" android:paddingTop="0.0dip" android:fadingEdge="none" android:fadingEdgeLength="0.0dip" android:layout_width="70.0dip" android:layout_height="fill_parent" android:scrollHorizontally="true" android:singleLine="true" android:layout_toRightOf="@id/app_icon" android:layout_below="@id/app_thumbnail" />
        <TextView android:textSize="@dimen/status_bar_recents_app_description_text_size" android:ellipsize="marquee" android:id="@id/app_description" android:visibility="gone" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_text_fading_edge_length" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin" android:layout_marginTop="40.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_label" android:layout_alignParentBottom="true" />
    </RelativeLayout>
</FrameLayout>

masuk ke folder hasil decompile, trus cari file ini
/res/layout-land/status_bar_recent_panel.xml
hapus semua isinya, dan replace dengan kode ini :

<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:background="@drawable/sense_land" 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">
    <View android:id="@id/recents_transition_background" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" />
    <FrameLayout android:id="@id/recents_bg_protect" android:background="#00000000" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true">
        <ImageView android:id="@id/recents_transition_placeholder_icon" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" />
        <com.android.systemui.recent.RecentsHorizontalScrollView android:layout_gravity="bottom|right|center" android:orientation="horizontal" android:id="@id/recents_container" android:scrollbars="none" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_scroll_fading_edge_length" android:clipChildren="false" android:clipToPadding="false" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginRight="@dimen/status_bar_recents_right_glow_margin" android:stackFromBottom="true" android:divider="@null">
            <LinearLayout android:orientation="horizontal" android:id="@id/recents_linear_layout" android:clipChildren="false" android:clipToPadding="false" android:layout_width="wrap_content" android:layout_height="fill_parent" />
        </com.android.systemui.recent.RecentsHorizontalScrollView>
        <TextView android:textSize="20.0dip" android:textColor="@color/status_bar_recents_app_label_color" android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5.0dip" android:text="@string/recent_apps_title" />
        <ImageView android:layout_gravity="top|right|center" android:id="@id/recents_clear" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_notify_clear" />
    </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" />
</com.android.systemui.recent.RecentsPanelView>

masuk ke folder hasil decompile, trus cari file ini
smali/com/android/systemui/recent/RecentsPanelView.smali
cari method ini :

.method private updateThumbnail(Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;Landroid/graphics/Bitmap;ZZ)V

    -
    - hapus line yang
    - ada disini
    - sampe disini
    -

.end method
*hapus line yang ada di dlm method diatas

Ganti dengan method ini :
.method private updateThumbnail(Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;Landroid/graphics/Bitmap;ZZ)V
    .locals 30
    .parameter "h"
    .parameter "thumbnail"
    .parameter "show"
    .parameter "anim"

    .prologue
    .line 409
    if-eqz p2, :cond_4

    .line 413
    const/16 v26, 0x4

    .line 414
    .local v26, reflectionGap:I
    invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v6

    .line 415
    .local v6, width:I
    invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v24

    .line 417
    .local v24, height:I
    new-instance v8, Landroid/graphics/Matrix;

    invoke-direct {v8}, Landroid/graphics/Matrix;->()V

    .line 418
    .local v8, matrix:Landroid/graphics/Matrix;
    const/high16 v3, 0x3f80

    const/high16 v4, -0x4080

    invoke-virtual {v8, v3, v4}, Landroid/graphics/Matrix;->preScale(FF)Z

    .line 420
    const/4 v4, 0x0

    mul-int/lit8 v3, v24, 0x2

    div-int/lit8 v5, v3, 0x3

    div-int/lit8 v7, v24, 0x3

    const/4 v9, 0x0

    move-object/from16 v3, p2

    invoke-static/range {v3 .. v9}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;

    move-result-object v27

    .line 421
    .local v27, reflectionImage:Landroid/graphics/Bitmap;
    div-int/lit8 v3, v24, 0x3

    add-int v3, v3, v24

    sget-object v4, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;

    invoke-static {v6, v3, v4}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;

    move-result-object v23

    .line 423
    .local v23, bitmapWithReflection:Landroid/graphics/Bitmap;
    new-instance v9, Landroid/graphics/Canvas;

    move-object/from16 v0, v23

    invoke-direct {v9, v0}, Landroid/graphics/Canvas;->(Landroid/graphics/Bitmap;)V

    .line 424
    .local v9, canvas:Landroid/graphics/Canvas;
    const/4 v3, 0x0

    const/4 v4, 0x0

    const/4 v5, 0x0

    move-object/from16 v0, p2

    invoke-virtual {v9, v0, v3, v4, v5}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V

    .line 425
    new-instance v14, Landroid/graphics/Paint;

    invoke-direct {v14}, Landroid/graphics/Paint;->()V

    .line 426
    .local v14, defaultPaint:Landroid/graphics/Paint;
    const/4 v10, 0x0

    move/from16 v0, v24

    int-to-float v11, v0

    int-to-float v12, v6

    add-int/lit8 v3, v24, 0x4

    int-to-float v13, v3

    invoke-virtual/range {v9 .. v14}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V

    .line 427
    const/4 v3, 0x0

    add-int/lit8 v4, v24, 0x4

    int-to-float v4, v4

    const/4 v5, 0x0

    move-object/from16 v0, v27

    invoke-virtual {v9, v0, v3, v4, v5}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V

    .line 429
    new-instance v25, Landroid/graphics/Paint;

    invoke-direct/range {v25 .. v25}, Landroid/graphics/Paint;->()V

    .line 430
    .local v25, paint:Landroid/graphics/Paint;
    new-instance v15, Landroid/graphics/LinearGradient;

    const/16 v16, 0x0

    invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v3

    int-to-float v0, v3

    move/from16 v17, v0

    const/16 v18, 0x0

    invoke-virtual/range {v23 .. v23}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v3

    add-int/lit8 v3, v3, 0x4

    int-to-float v0, v3

    move/from16 v19, v0

    const v20, 0x70ffffff

    const v21, 0xffffff

    sget-object v22, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;

    invoke-direct/range {v15 .. v22}, Landroid/graphics/LinearGradient;->(FFFFIILandroid/graphics/Shader$TileMode;)V

    .line 433
    .local v15, shader:Landroid/graphics/LinearGradient;
    move-object/from16 v0, v25

    invoke-virtual {v0, v15}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;

    .line 434
    new-instance v3, Landroid/graphics/PorterDuffXfermode;

    sget-object v4, Landroid/graphics/PorterDuff$Mode;->DST_IN:Landroid/graphics/PorterDuff$Mode;

    invoke-direct {v3, v4}, Landroid/graphics/PorterDuffXfermode;->(Landroid/graphics/PorterDuff$Mode;)V

    move-object/from16 v0, v25

    invoke-virtual {v0, v3}, Landroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;

    .line 435
    const/16 v17, 0x0

    move/from16 v0, v24

    int-to-float v0, v0

    move/from16 v18, v0

    int-to-float v0, v6

    move/from16 v19, v0

    invoke-virtual/range {v23 .. v23}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v3

    add-int/lit8 v3, v3, 0x4

    int-to-float v0, v3

    move/from16 v20, v0

    move-object/from16 v16, v9

    move-object/from16 v21, v25

    invoke-virtual/range {v16 .. v21}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V

    .line 438
    move-object/from16 v0, p1

    iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView;

    move-object/from16 v0, v23

    invoke-virtual {v3, v0}, Landroid/widget/ImageView;->setImageBitmap(Landroid/graphics/Bitmap;)V

    .line 442
    move-object/from16 v0, p1

    iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImageBitmap:Landroid/graphics/Bitmap;

    if-eqz v3, :cond_0

    move-object/from16 v0, p1

    iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImageBitmap:Landroid/graphics/Bitmap;

    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v3

    invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v4

    if-ne v3, v4, :cond_0

    move-object/from16 v0, p1

    iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImageBitmap:Landroid/graphics/Bitmap;

    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v3

    invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v4

    if-eq v3, v4, :cond_1

    .line 445
    :cond_0
    move-object/from16 v0, p0

    iget-boolean v3, v0, Lcom/android/systemui/recent/RecentsPanelView;->mFitThumbnailToXY:Z

    if-eqz v3, :cond_5

    .line 446
    move-object/from16 v0, p1

    iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView;

    const/high16 v4, 0x41c8

    invoke-virtual {v3, v4}, Landroid/widget/ImageView;->setRotationY(F)V

    .line 455
    :cond_1
    :goto_0
    if-eqz p3, :cond_3

    move-object/from16 v0, p1

    iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailView:Landroid/view/View;

    invoke-virtual {v3}, Landroid/view/View;->getVisibility()I

    move-result v3

    if-eqz v3, :cond_3

    .line 456
    if-eqz p4, :cond_2

    .line 457
    move-object/from16 v0, p1

    iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailView:Landroid/view/View;

    move-object/from16 v0, p0

    iget-object v4, v0, Lcom/android/systemui/recent/RecentsPanelView;->mContext:Landroid/content/Context;

    const v5, 0x7f04000f

    invoke-static {v4, v5}, Landroid/view/animation/AnimationUtils;->loadAnimation(Landroid/content/Context;I)Landroid/view/animation/Animation;

    move-result-object v4

    invoke-virtual {v3, v4}, Landroid/view/View;->setAnimation(Landroid/view/animation/Animation;)V

    .line 460
    :cond_2
    move-object/from16 v0, p1

    iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailView:Landroid/view/View;

    const/4 v4, 0x0

    invoke-virtual {v3, v4}, Landroid/view/View;->setVisibility(I)V

    .line 462
    :cond_3
    move-object/from16 v0, p2

    move-object/from16 v1, p1

    iput-object v0, v1, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImageBitmap:Landroid/graphics/Bitmap;

    .line 464
    .end local v6           #width:I
    .end local v8           #matrix:Landroid/graphics/Matrix;
    .end local v9           #canvas:Landroid/graphics/Canvas;
    .end local v14           #defaultPaint:Landroid/graphics/Paint;
    .end local v15           #shader:Landroid/graphics/LinearGradient;
    .end local v23           #bitmapWithReflection:Landroid/graphics/Bitmap;
    .end local v24           #height:I
    .end local v25           #paint:Landroid/graphics/Paint;
    .end local v26           #reflectionGap:I
    .end local v27           #reflectionImage:Landroid/graphics/Bitmap;
    :cond_4
    return-void

    .line 448
    .restart local v6       #width:I
    .restart local v8       #matrix:Landroid/graphics/Matrix;
    .restart local v9       #canvas:Landroid/graphics/Canvas;
    .restart local v14       #defaultPaint:Landroid/graphics/Paint;
    .restart local v15       #shader:Landroid/graphics/LinearGradient;
    .restart local v23       #bitmapWithReflection:Landroid/graphics/Bitmap;
    .restart local v24       #height:I
    .restart local v25       #paint:Landroid/graphics/Paint;
    .restart local v26       #reflectionGap:I
    .restart local v27       #reflectionImage:Landroid/graphics/Bitmap;
    :cond_5
    new-instance v29, Landroid/graphics/Matrix;

    invoke-direct/range {v29 .. v29}, Landroid/graphics/Matrix;->()V

    .line 449
    .local v29, scaleMatrix:Landroid/graphics/Matrix;
    move-object/from16 v0, p0

    iget v3, v0, Lcom/android/systemui/recent/RecentsPanelView;->mThumbnailWidth:I

    int-to-float v3, v3

    invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v4

    int-to-float v4, v4

    div-float v28, v3, v4

    .line 450
    .local v28, scale:F
    move-object/from16 v0, v29

    move/from16 v1, v28

    move/from16 v2, v28

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Matrix;->setScale(FF)V

    .line 451
    move-object/from16 v0, p1

    iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView;

    sget-object v4, Landroid/widget/ImageView$ScaleType;->MATRIX:Landroid/widget/ImageView$ScaleType;

    invoke-virtual {v3, v4}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V

    .line 452
    move-object/from16 v0, p1

    iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView;

    move-object/from16 v0, v29

    invoke-virtual {v3, v0}, Landroid/widget/ImageView;->setImageMatrix(Landroid/graphics/Matrix;)V

    goto :goto_0
.end method

Keempat.
Download file ini https://www.dropbox.com/s/ebk8u7traq8mh3i/drawable-nodpi.zip
Ekstrak , dan copy ke folder ini 
 /res/drawable-nodpi/


Simpan. kemudian recompile SystemUI.apk dengan perintah :
apktool b SystemUI

Kelima.Signing file apk yang td udah di recompile. (caranya ada di tutorial Cara Decompile dan Compile di Android di step 5)

Terakhir.
Push file framework-res.apk dan  SystemUI.apk ke system.
framework-res.apk ke /system/framework
SystemUI.apk ke /system/app

*rubah permission menjadi rw-r-r, dan reboot.

CREDIT & THANKS TO :
- CyanogenMod
- XDA
- Adi_ais hiteru
- arco
- Evilisto
- mnemonyc


Screenshoot

Porting Sense 4 style Task Switcher



Porting Sense 4 style Task Switcher




Previous
Next Post »

57 komentar

Tulis komentar
Unknown
AUTHOR
5/3/14 00:46 delete

tanya bang kalo mau nambah clear all recent nya gmna ya

Reply
avatar
abcdefghaniv
AUTHOR
5/3/14 08:36 delete

kalo untuk MOD yg ini emang itu clear all nya ga work.
ada satu MOD lagi yg sense 4 kaya gini, yg clear all nya work. tp lupa dimana link nya.
di XDA pokoknya. kmaren.

Reply
avatar
APLIKASI HP
AUTHOR
14/3/14 00:42 delete

gan mau nanya untuk clear all recent biar work gmn??

terima kasih sebelumnya

Reply
avatar
abcdefghaniv
AUTHOR
14/3/14 08:19 delete

mesti otak atik lagi file smali nya.
agak sedikit ribet

Reply
avatar
Unknown
AUTHOR
31/3/14 05:29 delete

maaf gan bisa tolong seretin tut nya, ga nemu nemu ni hhe, makasi sblum nya :$

Reply
avatar
abcdefghaniv
AUTHOR
31/3/14 14:59 delete

http://forum.xda-developers.com/xperia-j-e/themes-apps/guide-sense-4-style-task-switcher-t2565882

Reply
avatar
Unknown
AUTHOR
2/4/14 10:23 delete

bang nanya, folder values kok g ada ya di hasil decompile nya ane??

Reply
avatar
abcdefghaniv
AUTHOR
2/4/14 10:25 delete

setiap android, pasti ada folder itu bro..
di folder hasil decompile trus di dalem /res/values

Reply
avatar
Unknown
AUTHOR
2/4/14 10:46 delete

ni ss nya bang http://pbrd.co/1pLKtOt :)

Reply
avatar
abcdefghaniv
AUTHOR
2/4/14 10:50 delete

udah deodex belum itu ?

Reply
avatar
Unknown
AUTHOR
2/4/14 12:59 delete

udah full deodex gan....

Reply
avatar
abcdefghaniv
AUTHOR
2/4/14 13:02 delete

coba kirim file framework-res.apk sama SystemUI.apk nya ke haniv@live.com
biar ane cek.

Reply
avatar
Unknown
AUTHOR
2/4/14 20:38 delete Komentar ini telah dihapus oleh pengarang.
avatar
Unknown
AUTHOR
2/4/14 22:41 delete

gan klo gni kurang apaan ya, kronologi nya copy paste script di atas http://pbrd.co/1pR7UFS

Reply
avatar
abcdefghaniv
AUTHOR
2/4/14 23:20 delete

itu ada yang salah. coba perhatikan lagi waktu edit file smali nya.

copas sih copas, tp penempatan kode-kodenya harus tepat.

Reply
avatar
diezah
AUTHOR
9/4/14 09:48 delete

gan mau nanya di hh ane file status_bar_recent_item.xml , status_bar_recent_panel.xml kok ga ada di folder layout-port ,

Reply
avatar
abcdefghaniv
AUTHOR
9/4/14 10:59 delete

coba cari di layout.
kalo di stockROM xperia emang ada di layout-port sedangkan CM10 ada di layout.

emang ROM yg ente pake apa ?

Reply
avatar
diezah
AUTHOR
9/4/14 12:10 delete

rom ori cross a11 gan ,tadi emang ada masalh pas recompile ,ane coba lagi ,ane tambahkan aja di layout-port status_bar_recent_item.xml sama recent_panel.xml dengan script dari agan , sukses gan ,trimakasih banyak gan tutornya , mantap (y)

Reply
avatar
17/4/14 17:35 delete

gan kok eror parameter ya....

../../../storage/sdcard0/apktool/SystemUI_src/smali/com/android/systemui/recent/RecentsPanelView.smali[945,4] Error for input '.parameter': Invalid directive
../../../storage/sdcard0/apktool/SystemUI_src/smali/com/android/systemui/recent/RecentsPanelView.smali[946,4] Error for input '.parameter': Invalid directive
../../../storage/sdcard0/apktool/SystemUI_src/smali/com/android/systemui/recent/RecentsPanelView.smali[945,15] mismatched input '"h"' expecting END_METHOD_DIRECTIVE
../../../storage/sdcard0/apktool/SystemUI_src/smali/com/android/systemui/recent/RecentsPanelView.smali[947,4] Error for input '.parameter': Invalid directive
../../../storage/sdcard0/apktool/SystemUI_src/smali/com/android/systemui/recent/RecentsPanelView.smali[948,4] Error for input '.parameter': Invalid directive
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: com/android/systemui/recent/RecentsPanelView.smali

Reply
avatar
abcdefghaniv
AUTHOR
18/4/14 00:31 delete

pake apktool versi 1.5.2

Reply
avatar
Rian Wahyudi
AUTHOR
20/6/14 15:01 delete

selalu error di smali pas compile perasaan penempatannya udah bener deh , bisa bantu ga bro ?

Reply
avatar
Rian Wahyudi
AUTHOR
20/6/14 16:09 delete

nih errornya bro :

I: Checking whether sources has changed...
I: Smaling...
[622,51] no viable alternative at input '('
[667,55] no viable alternative at input '('
[684,51] no viable alternative at input '('
[718,64] no viable alternative at input '('
[752,73] no viable alternative at input '('
[765,67] no viable alternative at input '('
[942,65] no viable alternative at input '('
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: C:\Users\Rian Wahyudi\Desktop\APK-Multi-Tool\other\..\proj
ects\SystemUI.apk\smali\com\android\systemui\recent\RecentsPanelView.smali
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:45)
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:33)
at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:66)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:50)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:37)
at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:257)
at brut.androlib.Androlib.buildSources(Androlib.java:214)
at brut.androlib.Androlib.build(Androlib.java:205)
at brut.androlib.Androlib.build(Androlib.java:176)
at brut.apktool.Main.cmdBuild(Main.java:228)
at brut.apktool.Main.main(Main.java:79)

Reply
avatar
abcdefghaniv
AUTHOR
21/6/14 09:43 delete

coba cek lagi, di ebebrapa line ini
[622,51] no viable alternative at input '('
[667,55] no viable alternative at input '('
[684,51] no viable alternative at input '('
[718,64] no viable alternative at input '('
[752,73] no viable alternative at input '('
[765,67] no viable alternative at input '('
[942,65] no viable alternative at input '('

Reply
avatar
willy reza
AUTHOR
31/12/14 12:09 delete

gan, please editin systemui punya aku, udah berbagai cara gagal mulu setiap recompilenya, please gan haniv

Reply
avatar
abcdefghaniv
AUTHOR
31/12/14 12:16 delete

gagalnya dimana ?

Reply
avatar
willy reza
AUTHOR
31/12/14 13:07 delete

setiap recompile gagal, padahal udah ngikutin tutor

Reply
avatar
abcdefghaniv
AUTHOR
31/12/14 13:08 delete

pesan errornya apa ?

Reply
avatar
willy reza
AUTHOR
31/12/14 13:14 delete

banyak banget gan

Reply
avatar
abcdefghaniv
AUTHOR
31/12/14 13:16 delete

ya justru dr pesan error petunjuk buat benerin nya.

Reply
avatar
willy reza
AUTHOR
31/12/14 13:18 delete

tapi yang errornya bukan dari hasil editan ane, ada tulisan locksreen yang error dan sebagainya

Reply
avatar
abcdefghaniv
AUTHOR
31/12/14 13:20 delete

iya errornya apa ?
kan bisa dicari tau.

buatnya emang butuh proses, gak instan.

Reply
avatar
willy reza
AUTHOR
31/12/14 13:21 delete

ane kasih ss nya ya

Reply
avatar
abcdefghaniv
AUTHOR
31/12/14 13:23 delete

tampilin pesan errornya

Reply
avatar
willy reza
AUTHOR
31/12/14 13:33 delete

HTML Anda tidak bisa diterima: Harus paling banyak dalam 4.096 karakter
gan gak cukup pas ane paste malah ada tulisan begitu

Reply
avatar
abcdefghaniv
AUTHOR
31/12/14 13:36 delete

screenshoot aja sii, atau taro di pastebin.

Reply
avatar
willy reza
AUTHOR
31/12/14 13:44 delete

udah gan sampe situ, maap ngerepotin

Reply
avatar
abcdefghaniv
AUTHOR
31/12/14 13:46 delete

taro di pastebin aja. -_-

Reply
avatar
willy reza
AUTHOR
31/12/14 13:55 delete

udah gan di pastebin tapi seterusnya ane ga ngerti

Reply
avatar
abcdefghaniv
AUTHOR
31/12/14 13:56 delete

LInknya paste disini

Reply
avatar
willy reza
AUTHOR
6/1/15 14:51 delete

gan punya akun dropbox?
soalnya ane mau ngirim pesan error saat recompile

Reply
avatar
abcdefghaniv
AUTHOR
6/1/15 14:54 delete

gak punya.
errornya taro notepad, trus upload di situs2 hostingan file

Reply
avatar
willy reza
AUTHOR
6/1/15 15:11 delete

ane udah ngirim filenya ke haniv@live.com

Reply
avatar
abcdefghaniv
AUTHOR
6/1/15 15:54 delete

Banyak id yang gak ada valuenya. belum di deklarasiin , variabel di SystemUI.xml belum ada di ids.xml

Reply
avatar
willy reza
AUTHOR
6/1/15 16:38 delete

jadi harus di gimanain gan? please

Reply
avatar
abcdefghaniv
AUTHOR
6/1/15 16:42 delete

kalo sesuai tutorial diatas, pasti bisa..
diatas itu cm nambah id ini doang. gak ada yg laen
<item type="id" name="recents_transition_background" />
<item type="id" name="recents_transition_placeholder_icon" />
<item type="id" name="recents_clear" />

tp di pesan eror ente ada bnyak id yg gak dikenal,
dan itu gak ada hubungannya sama mod task switcer ini. (gak perlu )

ambil systemUI + framework-res asli dr HH ente,
decompile. ikutin tutorial diatas.

Reply
avatar
willy reza
AUTHOR
6/1/15 16:48 delete

padahal ane udah sama persis ngikutin tutor diatas, terus ga ada lagi yang di tambahin

Reply
avatar
willy reza
AUTHOR
6/1/15 17:29 delete

gan tambah script ini di paling bawah atau sebelum resource



Reply
avatar
abcdefghaniv
AUTHOR
7/1/15 08:20 delete

script yg mana ?

Reply
avatar
Unknown
AUTHOR
8/1/15 00:33 delete

gan minta solusix saat mau recompile framework gagal ??

Reply
avatar
abcdefghaniv
AUTHOR
8/1/15 13:46 delete

gagalnya gimana bro ?
pesan errornya apa..

Reply
avatar
Unknown
AUTHOR
8/1/15 16:40 delete

W: could not find sources bro

Reply
avatar
Unknown
AUTHOR
8/1/15 16:54 delete

padahal kan cuma height n widht aja d ubah kan bro d framework,pas mau d recompile gagal ( w: could not find sources )
slhx dmn yah bro ????

Reply
avatar
abcdefghaniv
AUTHOR
9/1/15 08:10 delete

langkah keempat yg copy gambar nya juga udah?

itu yg could not find resource itu pesan error lengkapnya gimana bro, itu kan nyari sesuatu.. tp gak ada. nah di pesan error itu harusnya ada petunjuknya

Reply
avatar
Unknown
AUTHOR
9/1/15 19:51 delete

ok gan berhasil

Reply
avatar
Unknown
AUTHOR
10/9/15 12:18 delete

kalo buat kaya app recent Lollipop ada gak bang?

Reply
avatar
abcdefghaniv
AUTHOR
10/9/15 15:26 delete

di XDA Ada nih, tinggal cobain aja
Cara buat recent task Lolipop

Reply
avatar

- Kritik dan saran sangat saya nantikan untuk kemajuan blog ini.
- Silakan report, jika ada link yang mati.
- Mohon untuk berkomentar sesuai dengan tema postingan.
- Dilarang berkomentar yang mencantumkan LINK AKTIF.
ConversionConversion EmoticonEmoticon