Saturday, February 15, 2014

SystemUI With Sense Recent App







ane yakin beda device beda scriptnya so bandingkan/compare dengan punya anda + feel :p
ty to  maanz "L" xda developer

1. Apktool
2. bisa decompile dan compile
3. 7zip
4. notepad++
5. backsmali


bismillahirrahmanirrahim...

1. Decompile framework-res.apk,
- /res/values/dimens.xml : rubah thumbnailnya:



Quote:
<dimen name="thumbnail_height">267.0dip</dimen>
<dimen name="thumbnail_width">168.0dip</dimen>
ente dapat menggantinya sesuai dg hh ente
compile framework-res.apk


2. Decompile SystemUI.apk,
- /res/values/bools.xml ganti:


Quote:
<bool name="config_recents_thumbnail_image_fits_to_xy">true</bool>

- /res/values/strings.xml:
tambahkan script di bawah

Quote:
<string name="recent_apps_title">Recent apps</string>

--/res/values/ids.xml:
tambahkan script di bawah ini gan

Quote:
<item type="id" name="recents_transition_background" />
<item type="id" name="recents_transition_placeholder_icon" />
<item type="id" name="recents_clear" />

- /res/layout/status_bar_no_recent_apps.xml:

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

- /res/layout/status_bar_expanded_header.xml:

Code:
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false"

- /res/layout/status_bar_recent_item.xml               tambahkan kode warna merah :

Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:paddingTop="@dimen/status_bar_recents_item_padding" android:paddingBottom="@dimen/status_bar_recents_item_padding" android:layout_width="fill_parent" android:layout_height="wrap_content"
  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>
        <ImageView android:gravity="center_horizontal" android:id="@id/app_icon" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="405.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" />
        <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="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="3.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>

- /res/layout/tw_status_bar_recent_panel.xml            tambahkan kode warna merah:  

Code:
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_centerVertical="true">
        <ImageView android:gravity="center" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="0.0dip" android:src="@drawable/status_bar_recents_background" />
        <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="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" />
        <LinearLayout android:layout_gravity.......................

- /res/layout-land/status_bar_recent_item.xml:

Code:
<?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:paddingTop="40.0dip" android:layout_width="192.0dip" android:layout_height="305.0dip" android:scaleType="centerInside" />
        </FrameLayout>
        <ImageView android:gravity="center_horizontal" android:id="@id/app_icon" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="225.0dip" android:scaleType="centerInside" android:adjustViewBounds="true" android:maxWidth="20.0dip" android:maxHeight="20.0dip" />
        <TextView android:textSize="12.0dip" 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="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="0.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="none" android:fadingEdgeLength="0.0dip" 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="3.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_label" android:layout_alignParentBottom="true" />
    </RelativeLayout>
</FrameLayout>

- /res/layout-land/tw_status_bar_recent_panel.xml:

Code:
<?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_centerVertical="true">
        <ImageView android:gravity="center" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="0.0dip" android:src="@drawable/status_bar_recents_background" />
        <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="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" />
        <LinearLayout android:layout_gravity..........................

download background untuk recent app nya di sini.
extract gambarnya ke       /res/drawable-nodpi/.

3. - smali/com/android/systemui/recent/RecentsPanelView.smali:
  bandingkan kode di bawah ini, dengan smali di systemui ente-

Code:
.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 783
    if-eqz p2, :cond_4

    .line 787
    const/16 v26, 0x4

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

    move-result v6

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

    move-result v24

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

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

    .line 783
    .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 785
    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 786
    .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 788
    .local v23, bitmapWithReflection:Landroid/graphics/Bitmap;
    new-instance v9, Landroid/graphics/Canvas;

    move-object/from16 v0, v23

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

    .line 789
    .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 800
    new-instance v14, Landroid/graphics/Paint;

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

    .line 801
    .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 802
    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 804
    new-instance v25, Landroid/graphics/Paint;

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

    .line 805
    .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;-><init>(FFFFIILandroid/graphics/Shader$TileMode;)V

    .line 808
    .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 809
    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;-><init>(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 810
    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 813
    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 817
    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 820
    :cond_0
    move-object/from16 v0, p0

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

    if-eqz v3, :cond_5

    .line 821
    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 830
    :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 831
    if-eqz p4, :cond_2

    .line 833
    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, 0x7f05000c

    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 837
    :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 839
    :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 841
    .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 823
    .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;-><init>()V

    .line 824
    .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 825
    .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 826
    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 827
    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

Ditulis Oleh : Unknown // 8:12 AM
Kategori:

2 comments:

 

Followers

Powered by Blogger.