Mod Sense 4 style Task Switcher

abcdefghaniv Diperbarui 57 komentar
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




57 Komentar

  1. tanya bang kalo mau nambah clear all recent nya gmna ya

    BalasHapus
    Balasan
    1. 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.

      Hapus
  2. gan mau nanya untuk clear all recent biar work gmn??

    terima kasih sebelumnya

    BalasHapus
    Balasan
    1. mesti otak atik lagi file smali nya.
      agak sedikit ribet

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

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

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

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

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

      Hapus
    3. udah deodex belum itu ?

      Hapus
    4. udah full deodex gan....

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

      Hapus
    6. Komentar ini telah dihapus oleh pengarang.

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

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

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

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

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

      emang ROM yg ente pake apa ?

      Hapus
  5. 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)

    BalasHapus
  6. 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

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

    BalasHapus
  8. 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)

    BalasHapus
  9. 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 '('

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

    BalasHapus
  11. setiap recompile gagal, padahal udah ngikutin tutor

    BalasHapus
  12. Balasan
    1. ya justru dr pesan error petunjuk buat benerin nya.

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

    BalasHapus
    Balasan
    1. iya errornya apa ?
      kan bisa dicari tau.

      buatnya emang butuh proses, gak instan.

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

    BalasHapus
  15. screenshoot aja sii, atau taro di pastebin.

    BalasHapus
  16. udah gan sampe situ, maap ngerepotin

    BalasHapus
  17. udah gan di pastebin tapi seterusnya ane ga ngerti

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

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

      Hapus
  19. ane udah ngirim filenya ke haniv@live.com

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

      Hapus
  20. jadi harus di gimanain gan? please

    BalasHapus
    Balasan
    1. 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.

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

    BalasHapus
  22. gan tambah script ini di paling bawah atau sebelum resource



    BalasHapus
  23. gan minta solusix saat mau recompile framework gagal ??

    BalasHapus
    Balasan
    1. gagalnya gimana bro ?
      pesan errornya apa..

      Hapus
  24. W: could not find sources bro

    BalasHapus
  25. 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 ????

    BalasHapus
    Balasan
    1. 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

      Hapus
  26. kalo buat kaya app recent Lollipop ada gak bang?

    BalasHapus

- 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.