This mod is originally posted on Galaxy Wonder theme forum :
[MOD][CM10] Sense 4.0 style Multitasking - Recent apps
and @mnemonyc Guide on this Thread [MOD][CM10.1] Sense 4.0 style Task Manager - Recent apps [MDPI/LDPI DEVICES] but, this mod only work on CM10. I make this mod work on My XPERIA C1605 E Dual with StockROM firmware 11.3.A.2.1. maybe can be work on any JB rom and MDPI/LDPI DEVICES
Lets Modding...
Requirement:
- Apkmanager / apktool / virtous / apkmultitools (i am using apktool)
- Notepad + + (recomended) if you want to use another editor is no problem
- Understand how to use some tools above if necessary read this first How to decompile / recompile apk
- Patience
STEP 1
Pull the file framework-res.apk and SystemUI.apk from your phone. you can use adb pull, or use root explorer, the location of the file exists in :
framework-res.apk: /system/framework/framework-res.apk
SystemUI.apk: /system/app/SystemUI.apk
copy 2 files above in a folder with apktool folder, then install the framework on a PC / Laptop with the command:
Code:
apktool if framework-res.apk
STEP 2
Decompile framework-res.apk with the command:
Code:
apktool d framework-res.apk
find this file in res/values/dimens.xml
edit this section:
Code:
<dimen name="thumbnail_height">[COLOR="Red"]240.0dip[/COLOR]</dimen>
<dimen name="thumbnail_width">[COLOR="red"]151.0dip[/COLOR]</dimen>
Save. then recompile framework-res.apk with the command:
Code:
apktool b framework-res
STEP 3
Decompile SystemUI.apk with the command:
Code:
apktool d SystemUI.apk
find this file res/values/bools.xml
edit this section:
Code:
<bool name="config_recents_thumbnail_image_fits_to_xy">[COLOR="red"]true[/COLOR]</bool>
find this file res/values/strings.xml
add this script at the end
Code:
<string name="recent_apps_title">Recent apps</string>
find this file res/values/ids.xml
add this script at the end
Code:
<item type="id" name="recents_transition_background" />
<item type="id" name="recents_transition_placeholder_icon" />
<item type="id" name="recents_clear" />
find this file /res/layout/status_bar_no_recent_apps.xml
edit this section:
Code:
<TextView android:textSize="20.0dip" android:textColor="@*android:color/[COLOR="red"]white[/COLOR]" 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" />
find this file /res/layout/status_bar_expanded_header.xml
edit this section:
before :
Code:
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" [COLOR="red"]android:background="@drawable/notification_header_bg"[/COLOR] android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false"
change it to
Code:
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" [COLOR="red"]android:background="#ff000000" [/COLOR]android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false"
find this file /res/layout-port/status_bar_recent_item.xml
Delete the whole lines, and replace with this :
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: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>
find this file /res/layout-port/status_bar_recent_panel.xml
Delete the whole lines, and replace with this :
Code:
<?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>
find this file /res/layout-land/status_bar_recent_item.xml
Delete the whole lines, and replace with this :
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: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>
Findthis file /res/layout-land/status_bar_recent_panel.xml
Delete the whole lines, and replace with this :
Code:
<?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>
STEP 4
Find this file smali/com/android/systemui/recent/RecentsPanelView.smali
DELETE the whole line starting from this line
Code:
.method private updateThumbnail(Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;Landroid/graphics/Bitmap;ZZ)V
-
- until
-
.end method
REPLACE it with these lines :
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 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;-><init>()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;-><init>(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;-><init>()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;-><init>()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;-><init>(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;-><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 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;-><init>()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
And download this image
extract this to /res/drawable-nodpi/
Save. then recompile SystemUI.apk with the command:
Code:
apktool b SystemUI
STEP 5
Push the file framework-res.apk and SystemUI.apk to system.
framework-res.apk to /system/framework
SystemUI.apk to /system /app
*change the permissions be rw-r-r, and reboot.
SCREENSHOOT
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
CREDIT & THANKS TO :
- CyanogenMod
- XDA
- Adi_ais hiteru
- arco
- Evilisto
- mnemonyc
Would be really nice if you could upload your framework-res.apk and systemui.apk
Thanks added to tutorial.
TheXperiaE said:
Would be really nice if you could upload your framework-res.apk and systemui.apk
Thanks added to tutorial.
Click to expand...
Click to collapse
done sir..
thread was updated with modded systemui.apk and framework-res.apk attached.
E1nzte1N said:
done sir..
thread was updated with modded systemui.apk and framework-res.apk attached.
Click to expand...
Click to collapse
End up in bootloops after pushing files to system/.
Fix it please?
TheXperiaE said:
End up in bootloops after pushing files to system/.
Fix it please?
Click to expand...
Click to collapse
are u use stockROM ?
E1nzte1N said:
are u use stockROM ?
Click to expand...
Click to collapse
CM10 by hsr0.
TheXperiaE said:
CM10 by hsr0.
Click to expand...
Click to collapse
i am use stockROM. if you flash my framework-res.apk and SystemUI.apk , you will get a bootloop.
send me your framework-res.apk and SystemUI.apk, i will mod for your CM10.
E1nzte1N said:
i am use stockROM. if you flash my framework-res.apk and SystemUI.apk , you will get a bootloop.
send me your framework-res.apk and SystemUI.apk, i will mod for your CM10.
Click to expand...
Click to collapse
Oh darn,lol,I saw CM10 in thread,so I flashed it.
will give files by tomorrow.
TheXperiaE said:
Oh darn,lol,I saw CM10 in thread,so I flashed it.
will give files by tomorrow.
Click to expand...
Click to collapse
oh.. miscomunnication
emh.., This mod is originally posted on Galaxy Wonder theme forum :
[MOD][CM10] Sense 4.0 style Multitasking - Recent apps
and @mnemonyc Guide on this Thread [MOD][CM10.1] Sense 4.0 style Task Manager - Recent apps [MDPI/LDPI DEVICES] but, this mod only work on CM10. I make this mod work on My XPERIA C1605 E Dual with StockROM firmware 11.3.A.2.1
i am make this thread for guide to make @mnemonyc thread can work to stockROM. if you use cm10, you can follow from this thread [MOD][CM10.1] Sense 4.0 style Task Manager - Recent apps [MDPI/LDPI DEVICES]
Bootloops in Xperia E running .13 fw as well.
TheXperiaE said:
Bootloops in Xperia E running .13 fw as well.
Click to expand...
Click to collapse
can you attach your framework-res.apk and SystemUI.apk sir ?
I've tried this mod on my Samsung galaxy Rush stock 4.1.2, and it does not allow me to pick a task in recents without force closing/crashing, please help me get this mod fully working.
Here is my systemUI and framework untouched. Hopefully you'll have better luck then me
https://docs.google.com/file/d/0B_DNsulDtL2_aF9GZUdiUjhIbzQ/edit?usp=docslist_api
+1 Thanks
Really great guide!!
I did it on my MT6589 Cross A88. :victory:
E1nzte1N said:
done sir..
thread was updated with modded systemui.apk and framework-res.apk attached.
Click to expand...
Click to collapse
Can you mod these files (from E single) for me? What a pity I don't have a PC >.<
Oh, and does it needs deodex? Sr for bad English.
buinghia98 said:
Can you mod these files (from E single) for me? What a pity I don't have a PC >.<
Oh, and does it needs deodex? Sr for bad English.
Click to expand...
Click to collapse
i will mod it,
E1nzte1N said:
i will mod it,
Click to expand...
Click to collapse
2 Questions for you:
1. Do this needs deodexed rom? And mine's finished yet?
2. Can you make the ios7 style? If u can, plz share
buinghia98 said:
2 Questions for you:
1. Do this needs deodexed rom? And mine's finished yet?
2. Can you make the ios7 style? If u can, plz share
Click to expand...
Click to collapse
1. yes. this is needs deodexed rom.
2. i can't bro.
i need to fix my java , my computer 1 day ago get crashed. and i reset my comp.
Good,,,,,
Nice Work....
Would try it on my Xperia Miro.....
Clear task button
nice tutorial bro :fingers-crossed:
i didnt xperience bootloop on following those guides, but one thing i notice, although i did follow all the instructions, my clear button task doesnt work, when i click it, nothing happens, can u please show me the code on how to clear those recent apps? tnx in advance :good:
Can you mod these files ??? Pleaseee !
View attachment 2649655
Related
I have been working on this MOD for a long time now and can finally say I got it working 100%!
What Does this MOD do?
- This is a much improved version of the older time and am/pm mod that allowed you to remove time and/or am/pm from the statusbar. This new version introduces a list preference UI with several new options the older MOD did not have. See attached Pictures.
This new MOD will allow you to:
Code:
[B][COLOR="DarkRed"][CENTER]Remove time
Center the clock in statusbar
move the clock to stock location
remove clock from statusbar
remove am/pm
change am/pm to small size
change am/pm to large size
add abbreviated day of week to status bar small size
add abbreviated day of week to status bar large size
remove abbreviated day of week from the status bar[/CENTER]
[/COLOR][/B]
All these changes will work on the fly with no reboot necessary.
There are a few new smali files that had to be created and extensive changes to some existing smali files. Due to the large amount of changes needed this guide will only cover the changes that are semi-easy to show/explain. For the new files and the files with large amounts of changes I will be uploading a zip with the entire smali file and notes on where they need to be placed.
I used a lot of examples from the CM team to code this MOD and it would have been very difficult without those examples so big props go to them !!
There is a lot to do here so lets get started....
We will be working with several system files. They include:
SystemUI
SecSettings
framework-res
Lets begin with SecSettings.
Decompile SecSettings and navigate to res/values/arrays
Add the following at the end of the file
Code:
<string-array name="clock_style_entries">
<item>Right clock</item>
<item>Center clock</item>
<item>No clock</item>
</string-array>
<string-array name="clock_style_values">
<item>1</item>
<item>2</item>
<item>0</item>
</string-array>
<string-array name="clock_ampm_entries">
<item>"Don't show"</item>
<item>Small AM/PM</item>
<item>Regular AM/PM</item>
</string-array>
<string-array name="clock_ampm_values">
<item>2</item>
<item>1</item>
<item>0</item>
</string-array>
<string-array name="clock_weekday_entries">
<item>"Don't show"</item>
<item>Small weekday</item>
<item>Regular weekday</item>
</string-array>
<string-array name="clock_weekday_values">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
Navigate to res/values/strings and add the following
Code:
<string name="enable_clock_weekday">Day of the week</string>
<string name="enable_clock_weekday_summary">Abbreviated day of the week in statusbar</string>
<string name="clock_cat">Clock options</string>
<string name="clock_title_enable">Clock style</string>
<string name="title_clock_ampm_entries">AM/PM style</string>
Navigate to res/xml/date_time_prefs.xml and replace all code with the following
Code:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/date_and_time"
xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference android:title="@string/date_time_auto" android:key="auto_time" android:summaryOn="@string/date_time_auto_summaryOn" android:summaryOff="@string/date_time_auto_summaryOff" />
<Preference android:title="@string/date_time_set_date" android:key="date" android:summary="03/10/2008" android:widgetLayout="@layout/round_more_icon" />
<Preference android:title="@string/date_time_set_time" android:key="time" android:summary="12:00am" android:widgetLayout="@layout/round_more_icon" />
<PreferenceCategory android:title="@string/clock_cat" android:key="clock_category">
<ListPreference android:entries="@array/clock_style_entries" android:title="@string/clock_title_enable" android:key="clock_style" android:entryValues="@array/clock_style_values" />
<ListPreference android:entries="@array/clock_ampm_entries" android:title="@string/title_clock_ampm_entries" android:key="clock_am_pm_style" android:entryValues="@array/clock_ampm_values" />
<ListPreference android:entries="@array/clock_weekday_entries" android:title="@string/enable_clock_weekday" android:key="clock_weekday" android:summary="@string/enable_clock_weekday_summary" android:entryValues="@array/clock_weekday_values" />
</PreferenceCategory>
<CheckBoxPreference android:title="@string/zone_auto" android:key="auto_zone" android:summaryOn="@string/zone_auto_summaryOn" android:summaryOff="@string/zone_auto_summaryOff" />
<PreferenceScreen android:title="@string/date_time_set_timezone" android:key="timezone" android:summary="GMT-8:00" android:fragment="com.android.settings.ZonePicker" />
<CheckBoxPreference android:title="@string/date_time_24hour" android:key="24 hour" android:summaryOn="@string/date_time_24_hour_sample" android:summaryOff="@string/date_time_12_hour_sample" />
<ListPreference android:title="@string/date_time_date_format" android:key="date_format" android:summary="mm/dd/yyyy" android:widgetLayout="@layout/round_more_icon" />
</PreferenceScreen>
Navigate to smali/com/android/settings/DateTimeSettings.smali and add the following in RED
Code:
# instance fields
.field private mAutoTimePref:Landroid/preference/CheckBoxPreference;
.field private mAutoTimeZonePref:Landroid/preference/CheckBoxPreference;
[COLOR="Red"].field mClockAmPmstyle:Landroid/preference/ListPreference;
.field mClockStyle:Landroid/preference/ListPreference;
.field mClockWeekday:Landroid/preference/ListPreference;
[/COLOR]
.field private mDateFormat:Landroid/preference/ListPreference;
.field private mDatePref:Landroid/preference/Preference;
Code:
# interfaces
.implements Landroid/app/DatePickerDialog$OnDateSetListener;
.implements Landroid/app/TimePickerDialog$OnTimeSetListener;
[COLOR="Red"].implements Landroid/preference/Preference$OnPreferenceChangeListener;[/COLOR]
.implements Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;
Find the following method
Code:
.method public onCreate(Landroid/os/Bundle;)V
Replace that entire method with the following code
Code:
.method public onCreate(Landroid/os/Bundle;)V
.locals 4
.parameter "savedInstanceState"
.prologue
.line 132
invoke-super {p0, p1}, Lcom/android/settings/SettingsPreferenceFragment;->onCreate(Landroid/os/Bundle;)V
invoke-virtual {p0}, Lcom/android/settings/DateTimeSettings;->getActivity()Landroid/app/Activity;
move-result-object v0
invoke-virtual {v0}, Landroid/app/Activity;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
.line 134
const v0, 0x7f07001c
invoke-virtual {p0, v0}, Lcom/android/settings/DateTimeSettings;->addPreferencesFromResource(I)V
const-string v0, "clock_style"
invoke-virtual {p0, v0}, Lcom/android/settings/DateTimeSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v0
check-cast v0, Landroid/preference/ListPreference;
iput-object v0, p0, Lcom/android/settings/DateTimeSettings;->mClockStyle:Landroid/preference/ListPreference;
const-string v0, "clock_style"
const/4 v1, 0x0
invoke-static {v3, v0, v1}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v0
iget-object v2, p0, Lcom/android/settings/DateTimeSettings;->mClockStyle:Landroid/preference/ListPreference;
invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V
iget-object v2, p0, Lcom/android/settings/DateTimeSettings;->mClockStyle:Landroid/preference/ListPreference;
invoke-virtual {v2, p0}, Landroid/preference/SwitchPreferenceScreen;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
const-string v0, "clock_am_pm_style"
invoke-virtual {p0, v0}, Lcom/android/settings/DateTimeSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v0
check-cast v0, Landroid/preference/ListPreference;
iput-object v0, p0, Lcom/android/settings/DateTimeSettings;->mClockAmPmstyle:Landroid/preference/ListPreference;
const-string v0, "clock_am_pm_style"
const/4 v1, 0x0
invoke-static {v3, v0, v1}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v0
iget-object v2, p0, Lcom/android/settings/DateTimeSettings;->mClockAmPmstyle:Landroid/preference/ListPreference;
invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V
iget-object v2, p0, Lcom/android/settings/DateTimeSettings;->mClockAmPmstyle:Landroid/preference/ListPreference;
invoke-virtual {v2, p0}, Landroid/preference/SwitchPreferenceScreen;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
const-string v0, "clock_weekday"
invoke-virtual {p0, v0}, Lcom/android/settings/DateTimeSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v0
check-cast v0, Landroid/preference/ListPreference;
iput-object v0, p0, Lcom/android/settings/DateTimeSettings;->mClockWeekday:Landroid/preference/ListPreference;
const-string v0, "clock_weekday"
const/4 v1, 0x0
invoke-static {v3, v0, v1}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v0
iget-object v2, p0, Lcom/android/settings/DateTimeSettings;->mClockWeekday:Landroid/preference/ListPreference;
invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V
iget-object v2, p0, Lcom/android/settings/DateTimeSettings;->mClockWeekday:Landroid/preference/ListPreference;
invoke-virtual {v2, p0}, Landroid/preference/SwitchPreferenceScreen;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
.line 135
invoke-virtual {p0}, Lcom/android/settings/DateTimeSettings;->getResources()Landroid/content/res/Resources;
move-result-object v0
sput-object v0, Lcom/android/settings/DateTimeSettings;->resources:Landroid/content/res/Resources;
.line 136
invoke-direct {p0}, Lcom/android/settings/DateTimeSettings;->initUI()V
.line 139
new-instance v0, Lcom/android/settings/DateTimeSettings$SettingsObserver;
new-instance v1, Landroid/os/Handler;
invoke-direct {v1}, Landroid/os/Handler;-><init>()V
invoke-direct {v0, p0, v1}, Lcom/android/settings/DateTimeSettings$SettingsObserver;-><init>(Lcom/android/settings/DateTimeSettings;Landroid/os/Handler;)V
iput-object v0, p0, Lcom/android/settings/DateTimeSettings;->mSettingsObserver:Lcom/android/settings/DateTimeSettings$SettingsObserver;
.line 141
return-void
.end method
You will now create the following new method by pasting the following code right after the "oncreate" method you just pasted
Code:
.method public onPreferenceChange(Landroid/preference/Preference;Ljava/lang/Object;)Z
.locals 3
.parameter "preference"
.parameter "objValue"
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mClockStyle:Landroid/preference/ListPreference;
if-ne p1, v0, :cond_0
check-cast p2, Ljava/lang/String;
invoke-static {p2}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DateTimeSettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
const-string v2, "clock_style"
invoke-static {v0, v2, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
:cond_0
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mClockAmPmstyle:Landroid/preference/ListPreference;
if-ne p1, v0, :cond_1
check-cast p2, Ljava/lang/String;
invoke-static {p2}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DateTimeSettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
const-string v2, "clock_am_pm_style"
invoke-static {v0, v2, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
:cond_1
iget-object v0, p0, Lcom/android/settings/DateTimeSettings;->mClockWeekday:Landroid/preference/ListPreference;
if-ne p1, v0, :cond_2
check-cast p2, Ljava/lang/String;
invoke-static {p2}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DateTimeSettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
const-string v2, "clock_weekday"
invoke-static {v0, v2, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
:cond_2
const/4 v0, 0x1
return v0
.end method
Thats it for SecSettings, recompile and set it aside.
Decompile SystemUI and navigate to res/values/layout/tw_status_bar.xml
Replace the entire file with the following code
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:id="@id/status_bar" android:background="@drawable/status_bar_background" android:focusable="true" android:fitsSystemWindows="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/center_clock_layout" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.ClockCenter android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:id="@id/center_clock" android:paddingLeft="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
</LinearLayout>
<ImageView android:id="@id/notification_lights_out" android:paddingLeft="6.0dip" android:paddingBottom="2.0dip" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" />
<LinearLayout android:orientation="horizontal" android:id="@id/icons" android:paddingLeft="0.0dip" android:paddingRight="2.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="horizontal" android:id="@id/left_icons" android:paddingLeft="4.0dip" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<TextView android:textSize="15.0dip" android:gravity="center_vertical" android:id="@id/carrierLabel" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
<ImageView android:id="@id/operatorLogoIcon" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/tw_stat_notify_operator_logo" />
<ImageView android:id="@id/doNotDisturbIcon" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tw_dnd" android:alpha="0.7" android:scaleX="0.85" android:scaleY="0.85" />
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" />
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/right_icons" android:paddingRight="4.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true">
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
<include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/tw_signal_cluster_view" />
<TextView android:textSize="12.0dip" android:textColor="#ffa6a6a6" android:layout_gravity="center" android:id="@id/battery_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_network_name_separator" />
<ImageView android:gravity="center" android:id="@id/battery" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ff959595" android:ellipsize="none" android:gravity="left|center" android:id="@id/clock" android:paddingLeft="3.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:includeFontPadding="false" />
</LinearLayout>
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageSwitcher android:id="@id/tickerIcon" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:layout_marginRight="4.0dip">
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="centerInside" />
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="centerInside" />
</ImageSwitcher>
<com.android.systemui.statusbar.phone.TickerView android:id="@id/tickerText" android:paddingTop="2.0dip" android:paddingRight="10.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:id="@id/ticker_text_view_old" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:id="@id/ticker_text_view_new" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
</com.android.systemui.statusbar.phone.TickerView>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBarView>
Navigate to res/values/ids
Paste the following somewhere in the file
Code:
<item type="id" name="center_clock">false</item>
<item type="id" name="center_clock_layout">false</item>
Navigate to smali/com/android/systemui/phone/PhoneStatusBar.smali
Find the following method
Code:
.method public showClock(Z)V
Replace the entire method with the following code
Code:
.method public showClock(Z)V
.locals 8
.parameter
.prologue
const/16 v3, 0x8
const/4 v2, 0x0
const/4 v1, 0x1
.line 1151
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
if-nez v0, :cond_1
.line 1162
:cond_0
:goto_0
return-void
.line 1152
:cond_1
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
const v4, 0x7f0d003d
invoke-virtual {v0, v4}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->findViewById(I)Landroid/view/View;
move-result-object v4
.line 1153
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
const v5, 0x7f0d011f
invoke-virtual {v0, v5}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->findViewById(I)Landroid/view/View;
move-result-object v5
.line 1154
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
const-string v6, "clock_style"
invoke-static {v0, v6, v1}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v0
if-ne v0, v1, :cond_3
move v0, v1
.line 1155
:goto_1
iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
invoke-virtual {v6}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v6
const-string v7, "clock_style"
invoke-static {v6, v7, v1}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v6
const/4 v7, 0x2
if-ne v6, v7, :cond_4
.line 1156
:goto_2
if-eqz v0, :cond_2
if-eqz v4, :cond_2
.line 1157
if-eqz p1, :cond_5
move v0, v2
:goto_3
invoke-virtual {v4, v0}, Landroid/view/View;->setVisibility(I)V
.line 1159
:cond_2
if-eqz v1, :cond_0
if-eqz v5, :cond_0
.line 1160
if-eqz p1, :cond_6
:goto_4
invoke-virtual {v5, v2}, Landroid/view/View;->setVisibility(I)V
goto :goto_0
:cond_3
move v0, v2
.line 1154
goto :goto_1
:cond_4
move v1, v2
.line 1155
goto :goto_2
:cond_5
move v0, v3
.line 1157
goto :goto_3
:cond_6
move v2, v3
.line 1160
goto :goto_4
.end method
Find the following method
Code:
.method protected makeStatusBarView()Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
Find the following code in the method and add the parts in RED
Code:
invoke-virtual {v9, v10}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->findViewById(I)Landroid/view/View;
move-result-object v9
check-cast v9, Landroid/widget/LinearLayout;
iput-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mIcons:Landroid/widget/LinearLayout;
[COLOR="red"]iget-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
const v10, 0x7f0d0120
invoke-virtual {v9, v10}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->findViewById(I)Landroid/view/View;
move-result-object v9
check-cast v9, Landroid/widget/LinearLayout;
iput-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mCenterClockLayout:Landroid/widget/LinearLayout;
[/COLOR]
.line 627
iget-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;
const v10, 0x7f0d003e
invoke-virtual {v9, v10}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->findViewById(I)Landroid/view/View;
move-result-object v9
iput-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mTickerView:Landroid/view/View;
Now comes the part where we have ALOT of changes. I am going to attach a zip file that will contain the following files
Code:
-PhoneStatusBar$MyTicker.smali - this file goes in smali/com/android/systemui/phone
-Clock.smali - this file goes in smali/com/android/systemui/policy
-Clock$1.smali - this file goes in smali/com/android/systemui/policy
-Clock$SettingsObserver.smali - this file goes in smali/com/android/systemui/policy
-ClockCenter.smali - this file goes in smali/com/android/systemui/policy
-ClockStock$1.smali - this file goes in smali/com/android/systemui/policy
-ClockStock.smali - this file goes in smali/com/android/systemui/policy
Add and/or replace the existing files with the new ones above
I mentioned we will be working with framework-res and while we are not modifying any files in framework-res you will need to refer to res/values/public if you run into issues with copy and pasting the new code/files. There are quite a few unique ID's that need to match those in the "public" xml both in SystemUI and framework-res. If you have issues getting this working, you will need to verify you have the right IDs in the new and revised files. Like I said, its a tough MOD with a lot involved. I will be posting up a flashable zip later tomorrow but it will have other MODs built into it in addition to this time MOD.
Good luck, enjoy and feel free to ask questions if you have them. There is an outside chance I forgot something in this guide but I am sure we will figure it out once DEVs get going with it.
DEVs, feel free to use this MOD, just shoot me some credit and hit the thanks button.
I have completed another MOD that involves 7 new selectable lockscreens similar to the Alliance MOD. I will be releasing this soon. See the attached pic for a preview.
You will find a download in the thread link right below this instruction that covers this MOD plus many more for download. You must be
running a stock deodex blk3 rom. The flash will break your theme if you are running one.
MULTI-MOD
Have fun!!
http://www.youtube.com/watch?v=XaKrGmEymF4
So I see the option for lack screens. So will this add the aosp lock screen to a ROM that doesn't have it??
sent from my blue police box flying through time!!!
Awesome! Greatly appreciated.
Edit: Do you plan on making a flashable version? I don't fully understand how to get this to work.
Sent from my SCH-I535 using Tapatalk 2
Incredible work!
What a beast!
wow dude you are a beast!!
thank you!
Yo thank you so much for this man! I literally cannot wait until your lockscreen's mod is out. That will be so legit!! Thanks again
I added a YouTube vid at the end of the OP.
Thanks
sbreen94 said:
Yo thank you so much for this man! I literally cannot wait until your lockscreen's mod is out. That will be so legit!! Thanks again
Click to expand...
Click to collapse
There will be a dev releasing it in one of his ROMs soon
Didact74 said:
There will be a dev releasing it in one of his ROMs soon
Click to expand...
Click to collapse
Let me guess.. Puremotive?
Sent from my SCH-I535 using xda app-developers app
so sick
cant wait to give this a go
kudos brother!
Didact74 said:
There will be a dev releasing it in one of his ROMs soon
Click to expand...
Click to collapse
Can we keep it a GalaxyMod secret? haha
mpetruzz said:
So I see the option for lack screens. So will this add the aosp lock screen to a ROM that doesn't have it??
sent from my blue police box flying through time!!!
Click to expand...
Click to collapse
hank3fan said:
Awesome! Greatly appreciated.
Edit: Do you plan on making a flashable version? I don't fully understand how to get this to work.
Sent from my SCH-I535 using Tapatalk 2
Click to expand...
Click to collapse
Enjoy!
MULTI MOD
Thank you for all your hard work Brother. It is GREATLY appreciated.
-h311s|DR0ID
.
Lol at breaking wind. Thanks for the mod and the laugh!
Sent from my SCH-I535 using Tapatalk 2
Thanks for sharing all your mods.
People like you make xda a better place, and make our devices kick a$$.
No problem Guys.....enjoy the MOD!
Also, I added one missed step in the guide. Its an addition to SecSettings DateTime.smali.
no go on liquid 4.2.1 beta 3.1... stuck on boot animation
Sent from my SCH-I535 using Tapatalk 2
montebello13 said:
no go on liquid 4.2.1 beta 3.1... stuck on boot animation
Sent from my SCH-I535 using Tapatalk 2
Click to expand...
Click to collapse
This is for Touchwiz Jelly Bean Roms......
hello and thanks for ur mod my question is one of the pics that u show it looks like ur status bar is transparent is it possble to add it to the clock. thanks in advance
Haiya Devs....
Good news for ya... Now All MDPI CM10 devices could have one of awesome Lockscreens
Yeaahh... BlackBerry 10 Lockscreen Style!
If you guys (MDPI CM10 users) had succeded to port from HDPI/ XHDPI CM10 by using THIS methode,
I knew it won't Unlocked didn't ya...? :silly:
It's all about WaveView.smali couldn't touched on MDPI devices due have to resized
Let's do this things.....
Requirements:
PC
Knowledge on how to use Apktool or Similar Tools
Notepad++ (Devs always use this)
Winrar or 7z
A Cup of Coffee (Yeaahh...)
1. Decompile android.policy.jar > Navigate to \com\android\internal\policy\impl\ KeyguardViewManager.smali
Open it with Notepad++ and search this code:
Code:
const v4, 0x4100800
Change it to:
Code:
const v4, 0x4000800
Save and recompile
2. Decompile services.jar > Navigate to \com\android\server\wm\WindowAnimator.smali
Open it with Notepad++ and search this code:
Code:
.method private updateWindowsAndWallpaperLocked()V
Use FIND/ SEARCH feature and search this code:
Code:
.end method
Just Mark it... This methode will help you to avoid mistaken from deleted, because we will delete and replace long enough codes...
Then Mark and delete whole lines from:
Code:
.method private updateWindowsAndWallpaperLocked()V
[COLOR="DeepSkyBlue"]To[/COLOR] .end method
Now Replace with this:
Code:
.method private updateWindowsAndWallpaperLocked()V
.registers 19
.prologue
.line 203
move-object/from16 v0, p0
iget v15, v0, Lcom/android/server/wm/WindowAnimator;->mAnimTransactionSequence:I
add-int/lit8 v15, v15, 0x1
move-object/from16 v0, p0
iput v15, v0, Lcom/android/server/wm/WindowAnimator;->mAnimTransactionSequence:I
.line 205
const/4 v10, 0x0
.line 206
.local v10, unForceHiding:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Lcom/android/server/wm/WindowStateAnimator;>;"
const/4 v11, 0x0
.line 208
.local v11, wallpaperInUnForceHiding:Z
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
iget-object v15, v15, Lcom/android/server/wm/WindowManagerService;->mWindows:Ljava/util/ArrayList;
invoke-virtual {v15}, Ljava/util/ArrayList;->size()I
move-result v15
add-int/lit8 v8, v15, -0x1
.local v8, i:I
:goto_18
if-ltz v8, :cond_271
.line 209
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
iget-object v15, v15, Lcom/android/server/wm/WindowManagerService;->mWindows:Ljava/util/ArrayList;
invoke-virtual {v15, v8}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v13
check-cast v13, Lcom/android/server/wm/WindowState;
.line 210
.local v13, win:Lcom/android/server/wm/WindowState;
iget-object v14, v13, Lcom/android/server/wm/WindowState;->mWinAnimator:Lcom/android/server/wm/WindowStateAnimator;
.line 211
.local v14, winAnimator:Lcom/android/server/wm/WindowStateAnimator;
iget v6, v14, Lcom/android/server/wm/WindowStateAnimator;->mAttrFlags:I
.line 213
.local v6, flags:I
iget-object v15, v14, Lcom/android/server/wm/WindowStateAnimator;->mSurface:Landroid/view/Surface;
if-eqz v15, :cond_14d
.line 214
iget-boolean v12, v14, Lcom/android/server/wm/WindowStateAnimator;->mWasAnimating:Z
.line 215
.local v12, wasAnimating:Z
move-object/from16 v0, p0
iget-wide v15, v0, Lcom/android/server/wm/WindowAnimator;->mCurrentTime:J
invoke-virtual/range {v14 .. v16}, Lcom/android/server/wm/WindowStateAnimator;->stepAnimationLocked(J)Z
move-result v9
.line 225
.local v9, nowAnimating:Z
if-eqz v9, :cond_82
.line 226
iget-object v15, v14, Lcom/android/server/wm/WindowStateAnimator;->mAnimation:Landroid/view/animation/Animation;
if-eqz v15, :cond_7d
.line 227
const/high16 v15, 0x10
and-int/2addr v15, v6
if-eqz v15, :cond_4f
iget-object v15, v14, Lcom/android/server/wm/WindowStateAnimator;->mAnimation:Landroid/view/animation/Animation;
invoke-virtual {v15}, Landroid/view/animation/Animation;->getDetachWallpaper()Z
move-result v15
if-eqz v15, :cond_4f
.line 229
move-object/from16 v0, p0
iput-object v13, v0, Lcom/android/server/wm/WindowAnimator;->mDetachedWallpaper:Lcom/android/server/wm/WindowState;
.line 231
:cond_4f
iget-object v15, v14, Lcom/android/server/wm/WindowStateAnimator;->mAnimation:Landroid/view/animation/Animation;
invoke-virtual {v15}, Landroid/view/animation/Animation;->getBackgroundColor()I
move-result v4
.line 232
.local v4, backgroundColor:I
if-eqz v4, :cond_7d
.line 233
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mWindowAnimationBackground:Lcom/android/server/wm/WindowState;
if-eqz v15, :cond_75
iget v15, v14, Lcom/android/server/wm/WindowStateAnimator;->mAnimLayer:I
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mWindowAnimationBackground:Lcom/android/server/wm/WindowState;
move-object/from16 v16, v0
move-object/from16 v0, v16
iget-object v0, v0, Lcom/android/server/wm/WindowState;->mWinAnimator:Lcom/android/server/wm/WindowStateAnimator;
move-object/from16 v16, v0
move-object/from16 v0, v16
iget v0, v0, Lcom/android/server/wm/WindowStateAnimator;->mAnimLayer:I
move/from16 v16, v0
move/from16 v0, v16
if-ge v15, v0, :cond_7d
.line 236
:cond_75
move-object/from16 v0, p0
iput-object v13, v0, Lcom/android/server/wm/WindowAnimator;->mWindowAnimationBackground:Lcom/android/server/wm/WindowState;
.line 237
move-object/from16 v0, p0
iput v4, v0, Lcom/android/server/wm/WindowAnimator;->mWindowAnimationBackgroundColor:I
.line 241
.end local v4 #backgroundColor:I
:cond_7d
const/4 v15, 0x1
move-object/from16 v0, p0
iput-boolean v15, v0, Lcom/android/server/wm/WindowAnimator;->mAnimating:Z
.line 247
:cond_82
iget-object v15, v13, Lcom/android/server/wm/WindowState;->mAppToken:Lcom/android/server/wm/AppWindowToken;
if-nez v15, :cond_1ac
const/4 v2, 0x0
.line 249
.local v2, appAnimator:Lcom/android/server/wm/AppWindowAnimator;
:goto_87
if-eqz v2, :cond_d0
iget-object v15, v2, Lcom/android/server/wm/AppWindowAnimator;->animation:Landroid/view/animation/Animation;
if-eqz v15, :cond_d0
iget-boolean v15, v2, Lcom/android/server/wm/AppWindowAnimator;->animating:Z
if-eqz v15, :cond_d0
.line 251
const/high16 v15, 0x10
and-int/2addr v15, v6
if-eqz v15, :cond_a2
iget-object v15, v2, Lcom/android/server/wm/AppWindowAnimator;->animation:Landroid/view/animation/Animation;
invoke-virtual {v15}, Landroid/view/animation/Animation;->getDetachWallpaper()Z
move-result v15
if-eqz v15, :cond_a2
.line 253
move-object/from16 v0, p0
iput-object v13, v0, Lcom/android/server/wm/WindowAnimator;->mDetachedWallpaper:Lcom/android/server/wm/WindowState;
.line 255
:cond_a2
iget-object v15, v2, Lcom/android/server/wm/AppWindowAnimator;->animation:Landroid/view/animation/Animation;
invoke-virtual {v15}, Landroid/view/animation/Animation;->getBackgroundColor()I
move-result v4
.line 256
.restart local v4 #backgroundColor:I
if-eqz v4, :cond_d0
.line 257
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mWindowAnimationBackground:Lcom/android/server/wm/WindowState;
if-eqz v15, :cond_c8
iget v15, v14, Lcom/android/server/wm/WindowStateAnimator;->mAnimLayer:I
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mWindowAnimationBackground:Lcom/android/server/wm/WindowState;
move-object/from16 v16, v0
move-object/from16 v0, v16
iget-object v0, v0, Lcom/android/server/wm/WindowState;->mWinAnimator:Lcom/android/server/wm/WindowStateAnimator;
move-object/from16 v16, v0
move-object/from16 v0, v16
iget v0, v0, Lcom/android/server/wm/WindowStateAnimator;->mAnimLayer:I
move/from16 v16, v0
move/from16 v0, v16
if-ge v15, v0, :cond_d0
.line 260
:cond_c8
move-object/from16 v0, p0
iput-object v13, v0, Lcom/android/server/wm/WindowAnimator;->mWindowAnimationBackground:Lcom/android/server/wm/WindowState;
.line 261
move-object/from16 v0, p0
iput v4, v0, Lcom/android/server/wm/WindowAnimator;->mWindowAnimationBackgroundColor:I
.line 266
.end local v4 #backgroundColor:I
:cond_d0
if-eqz v12, :cond_101
iget-boolean v15, v14, Lcom/android/server/wm/WindowStateAnimator;->mAnimating:Z
if-nez v15, :cond_101
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
iget-object v15, v15, Lcom/android/server/wm/WindowManagerService;->mWallpaperTarget:Lcom/android/server/wm/WindowState;
if-ne v15, v13, :cond_101
.line 267
move-object/from16 v0, p0
iget v15, v0, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
or-int/lit8 v15, v15, 0x2
move-object/from16 v0, p0
iput v15, v0, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
.line 268
move-object/from16 v0, p0
iget v15, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:I
or-int/lit8 v15, v15, 0x4
move-object/from16 v0, p0
iput v15, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:I
.line 270
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
const-string v16, "updateWindowsAndWallpaperLocked 2"
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:I
move/from16 v17, v0
invoke-virtual/range {v15 .. v17}, Lcom/android/server/wm/WindowManagerService;->debugLayoutRepeats(Ljava/lang/String;I)V
.line 275
:cond_101
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mPolicy:Landroid/view/WindowManagerPolicy;
iget-object v0, v13, Lcom/android/server/wm/WindowState;->mAttrs:Landroid/view/WindowManager$LayoutParams;
move-object/from16 v16, v0
move-object/from16 v0, v16
invoke-interface {v15, v13, v0}, Landroid/view/WindowManagerPolicy;->doesForceHide(Landroid/view/WindowManagerPolicy$WindowState;Landroid/view/WindowManager$LayoutParams;)Z
move-result v15
if-eqz v15, :cond_1b2
.line 276
if-nez v12, :cond_142
if-eqz v9, :cond_142
.line 280
move-object/from16 v0, p0
iget v15, v0, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
or-int/lit8 v15, v15, 0x4
move-object/from16 v0, p0
iput v15, v0, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
.line 281
move-object/from16 v0, p0
iget v15, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:I
or-int/lit8 v15, v15, 0x4
move-object/from16 v0, p0
iput v15, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:I
.line 283
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
const-string v16, "updateWindowsAndWallpaperLocked 3"
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:I
move/from16 v17, v0
invoke-virtual/range {v15 .. v17}, Lcom/android/server/wm/WindowManagerService;->debugLayoutRepeats(Ljava/lang/String;I)V
.line 286
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
const/16 v16, 0x1
move/from16 v0, v16
iput-boolean v0, v15, Lcom/android/server/wm/WindowManagerService;->mFocusMayChange:Z
.line 288
:cond_142
invoke-virtual {v13}, Lcom/android/server/wm/WindowState;->isReadyForDisplay()Z
move-result v15
if-eqz v15, :cond_14d
.line 289
const/4 v15, 0x0
move-object/from16 v0, p0
iput v15, v0, Lcom/android/server/wm/WindowAnimator;->mForceHiding:I
.line 344
.end local v2 #appAnimator:Lcom/android/server/wm/AppWindowAnimator;
.end local v9 #nowAnimating:Z
.end local v12 #wasAnimating:Z
:cond_14d
:goto_14d
iget-object v3, v13, Lcom/android/server/wm/WindowState;->mAppToken:Lcom/android/server/wm/AppWindowToken;
.line 345
.local v3, atoken:Lcom/android/server/wm/AppWindowToken;
iget v15, v14, Lcom/android/server/wm/WindowStateAnimator;->mDrawState:I
const/16 v16, 0x3
move/from16 v0, v16
if-ne v15, v0, :cond_17c
.line 346
if-eqz v3, :cond_15d
iget-boolean v15, v3, Lcom/android/server/wm/AppWindowToken;->allDrawn:Z
if-eqz v15, :cond_17c
.line 347
:cond_15d
invoke-virtual {v14}, Lcom/android/server/wm/WindowStateAnimator;->performShowLocked()Z
move-result v15
if-eqz v15, :cond_17c
.line 348
move-object/from16 v0, p0
iget v15, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:I
or-int/lit8 v15, v15, 0x8
move-object/from16 v0, p0
iput v15, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:I
.line 350
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
const-string v16, "updateWindowsAndWallpaperLocked 5"
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:I
move/from16 v17, v0
invoke-virtual/range {v15 .. v17}, Lcom/android/server/wm/WindowManagerService;->debugLayoutRepeats(Ljava/lang/String;I)V
.line 356
:cond_17c
if-nez v3, :cond_26d
const/4 v2, 0x0
.line 358
.restart local v2 #appAnimator:Lcom/android/server/wm/AppWindowAnimator;
:goto_17f
if-eqz v2, :cond_1a8
iget-object v15, v2, Lcom/android/server/wm/AppWindowAnimator;->thumbnail:Landroid/view/Surface;
if-eqz v15, :cond_1a8
.line 359
iget v15, v2, Lcom/android/server/wm/AppWindowAnimator;->thumbnailTransactionSeq:I
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mAnimTransactionSequence:I
move/from16 v16, v0
move/from16 v0, v16
if-eq v15, v0, :cond_19a
.line 360
move-object/from16 v0, p0
iget v15, v0, Lcom/android/server/wm/WindowAnimator;->mAnimTransactionSequence:I
iput v15, v2, Lcom/android/server/wm/AppWindowAnimator;->thumbnailTransactionSeq:I
.line 361
const/4 v15, 0x0
iput v15, v2, Lcom/android/server/wm/AppWindowAnimator;->thumbnailLayer:I
.line 363
:cond_19a
iget v15, v2, Lcom/android/server/wm/AppWindowAnimator;->thumbnailLayer:I
iget v0, v14, Lcom/android/server/wm/WindowStateAnimator;->mAnimLayer:I
move/from16 v16, v0
move/from16 v0, v16
if-ge v15, v0, :cond_1a8
.line 364
iget v15, v14, Lcom/android/server/wm/WindowStateAnimator;->mAnimLayer:I
iput v15, v2, Lcom/android/server/wm/AppWindowAnimator;->thumbnailLayer:I
.line 208
:cond_1a8
add-int/lit8 v8, v8, -0x1
goto/16 :goto_18
.line 247
.end local v2 #appAnimator:Lcom/android/server/wm/AppWindowAnimator;
.end local v3 #atoken:Lcom/android/server/wm/AppWindowToken;
.restart local v9 #nowAnimating:Z
.restart local v12 #wasAnimating:Z
:cond_1ac
iget-object v15, v13, Lcom/android/server/wm/WindowState;->mAppToken:Lcom/android/server/wm/AppWindowToken;
iget-object v2, v15, Lcom/android/server/wm/AppWindowToken;->mAppAnimator:Lcom/android/server/wm/AppWindowAnimator;
goto/16 :goto_87
.line 300
.restart local v2 #appAnimator:Lcom/android/server/wm/AppWindowAnimator;
:cond_1b2
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mPolicy:Landroid/view/WindowManagerPolicy;
iget-object v0, v13, Lcom/android/server/wm/WindowState;->mAttrs:Landroid/view/WindowManager$LayoutParams;
move-object/from16 v16, v0
move-object/from16 v0, v16
invoke-interface {v15, v13, v0}, Landroid/view/WindowManagerPolicy;->canBeForceHidden(Landroid/view/WindowManagerPolicy$WindowState;Landroid/view/WindowManager$LayoutParams;)Z
move-result v15
if-eqz v15, :cond_14d
.line 301
iget v15, v14, Lcom/android/server/wm/WindowStateAnimator;->mAttrFlags:I
const/high16 v16, 0x8
and-int v15, v15, v16
if-nez v15, :cond_21e
const/4 v7, 0x1
.line 304
.local v7, hideWhenLocked:Z
:goto_1cb
move-object/from16 v0, p0
iget v15, v0, Lcom/android/server/wm/WindowAnimator;->mForceHiding:I
const/16 v16, 0x1
move/from16 v0, v16
if-ne v15, v0, :cond_1dd
invoke-virtual {v14}, Lcom/android/server/wm/WindowStateAnimator;->isAnimating()Z
move-result v15
if-eqz v15, :cond_1e9
if-nez v7, :cond_1e9
:cond_1dd
move-object/from16 v0, p0
iget v15, v0, Lcom/android/server/wm/WindowAnimator;->mForceHiding:I
const/16 v16, 0x2
move/from16 v0, v16
if-ne v15, v0, :cond_220
if-eqz v7, :cond_220
.line 307
:cond_1e9
const/4 v15, 0x0
const/16 v16, 0x0
move/from16 v0, v16
invoke-virtual {v13, v15, v0}, Lcom/android/server/wm/WindowState;->hideLw(ZZ)Z
move-result v5
.line 333
.local v5, changed:Z
:cond_1f2
:goto_1f2
if-eqz v5, :cond_14d
const/high16 v15, 0x10
and-int/2addr v15, v6
if-eqz v15, :cond_14d
.line 334
move-object/from16 v0, p0
iget v15, v0, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
or-int/lit8 v15, v15, 0x2
move-object/from16 v0, p0
iput v15, v0, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
.line 335
move-object/from16 v0, p0
iget v15, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:I
or-int/lit8 v15, v15, 0x4
move-object/from16 v0, p0
iput v15, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:I
.line 337
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
const-string v16, "updateWindowsAndWallpaperLocked 4"
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:I
move/from16 v17, v0
invoke-virtual/range {v15 .. v17}, Lcom/android/server/wm/WindowManagerService;->debugLayoutRepeats(Ljava/lang/String;I)V
goto/16 :goto_14d
.line 301
.end local v5 #changed:Z
.end local v7 #hideWhenLocked:Z
:cond_21e
const/4 v7, 0x0
goto :goto_1cb
.line 311
.restart local v7 #hideWhenLocked:Z
:cond_220
const/4 v15, 0x0
const/16 v16, 0x0
move/from16 v0, v16
invoke-virtual {v13, v15, v0}, Lcom/android/server/wm/WindowState;->showLw(ZZ)Z
move-result v5
.line 314
.restart local v5 #changed:Z
if-eqz v5, :cond_1f2
.line 315
move-object/from16 v0, p0
iget v15, v0, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
and-int/lit8 v15, v15, 0x4
if-eqz v15, :cond_24e
invoke-virtual {v13}, Lcom/android/server/wm/WindowState;->isVisibleNow()Z
move-result v15
if-eqz v15, :cond_24e
.line 317
if-nez v10, :cond_240
.line 318
new-instance v10, Ljava/util/ArrayList;
.end local v10 #unForceHiding:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Lcom/android/server/wm/WindowStateAnimator;>;"
invoke-direct {v10}, Ljava/util/ArrayList;-><init>()V
.line 320
.restart local v10 #unForceHiding:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Lcom/android/server/wm/WindowStateAnimator;>;"
:cond_240
invoke-virtual {v10, v14}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 321
iget-object v15, v13, Lcom/android/server/wm/WindowState;->mAttrs:Landroid/view/WindowManager$LayoutParams;
iget v15, v15, Landroid/view/WindowManager$LayoutParams;->flags:I
const/high16 v16, 0x10
and-int v15, v15, v16
if-eqz v15, :cond_24e
.line 322
const/4 v11, 0x1
.line 325
:cond_24e
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mCurrentFocus:Lcom/android/server/wm/WindowState;
if-eqz v15, :cond_262
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mCurrentFocus:Lcom/android/server/wm/WindowState;
iget v15, v15, Lcom/android/server/wm/WindowState;->mLayer:I
iget v0, v13, Lcom/android/server/wm/WindowState;->mLayer:I
move/from16 v16, v0
move/from16 v0, v16
if-ge v15, v0, :cond_1f2
.line 329
:cond_262
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
const/16 v16, 0x1
move/from16 v0, v16
iput-boolean v0, v15, Lcom/android/server/wm/WindowManagerService;->mFocusMayChange:Z
goto :goto_1f2
.line 356
.end local v2 #appAnimator:Lcom/android/server/wm/AppWindowAnimator;
.end local v5 #changed:Z
.end local v7 #hideWhenLocked:Z
.end local v9 #nowAnimating:Z
.end local v12 #wasAnimating:Z
.restart local v3 #atoken:Lcom/android/server/wm/AppWindowToken;
:cond_26d
iget-object v2, v3, Lcom/android/server/wm/AppWindowToken;->mAppAnimator:Lcom/android/server/wm/AppWindowAnimator;
goto/16 :goto_17f
.line 371
.end local v3 #atoken:Lcom/android/server/wm/AppWindowToken;
.end local v6 #flags:I
.end local v13 #win:Lcom/android/server/wm/WindowState;
.end local v14 #winAnimator:Lcom/android/server/wm/WindowStateAnimator;
:cond_271
if-eqz v10, :cond_294
.line 372
invoke-virtual {v10}, Ljava/util/ArrayList;->size()I
move-result v15
add-int/lit8 v8, v15, -0x1
:goto_279
if-ltz v8, :cond_294
.line 373
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/server/wm/WindowAnimator;->mPolicy:Landroid/view/WindowManagerPolicy;
invoke-interface {v15, v11}, Landroid/view/WindowManagerPolicy;->createForceHideEnterAnimation(Z)Landroid/view/animation/Animation;
move-result-object v1
.line 374
.local v1, a:Landroid/view/animation/Animation;
if-eqz v1, :cond_291
.line 375
invoke-virtual {v10, v8}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v14
check-cast v14, Lcom/android/server/wm/WindowStateAnimator;
.line 376
.restart local v14 #winAnimator:Lcom/android/server/wm/WindowStateAnimator;
invoke-virtual {v14, v1}, Lcom/android/server/wm/WindowStateAnimator;->setAnimation(Landroid/view/animation/Animation;)V
.line 377
const/4 v15, 0x1
iput-boolean v15, v14, Lcom/android/server/wm/WindowStateAnimator;->mAnimationIsEntrance:Z
.line 372
.end local v14 #winAnimator:Lcom/android/server/wm/WindowStateAnimator;
:cond_291
add-int/lit8 v8, v8, -0x1
goto :goto_279
.line 381
.end local v1 #a:Landroid/view/animation/Animation;
:cond_294
return-void
.end method
Save and recompile
You may skip this steps if you won't have Transparent view lockscreen background (only wallpaper viewed)
Next:
3. Decompile your framework-res.apk > Navigate to \res\layout\keyguard_screen_tab_unlock.xml
Open it with Notepad++ and delete the whole lines then replace with this:
Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:gravity="center_horizontal" android:layout_width="320.0dip" android:layout_height="480.0dip"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.android.internal.widget.WaveView android:id="@id/unlock_widget" android:layout_width="fill_parent" android:layout_height="fill_parent" />
<GridLayout android:gravity="center_horizontal" android:orientation="vertical" android:id="@id/root" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.internal.widget.DigitalClock android:id="@id/time" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="36.0dip" android:layout_marginBottom="4.0dip">
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_clock_font_size" android:textColor="@color/lockscreen_clock_background" android:ellipsize="none" android:id="@id/timeDisplayBackground" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="6.0dip" android:singleLine="true" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_clock_font_size" android:textColor="@color/lockscreen_clock_foreground" android:ellipsize="none" android:id="@id/timeDisplayForeground" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="6.0dip" android:singleLine="true" android:layout_alignLeft="@id/timeDisplayBackground" android:layout_alignTop="@id/timeDisplayBackground" />
</com.android.internal.widget.DigitalClock>
<LinearLayout android:orientation="horizontal" android:id="@id/date_line" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:ellipsize="marquee" android:id="@id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:ellipsize="marquee" android:id="@id/alarm_status" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="16.0dip" android:singleLine="true" android:drawablePadding="4.0dip" />
</LinearLayout>
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:ellipsize="marquee" android:id="@id/status1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:drawablePadding="4.0dip" />
<RelativeLayout android:orientation="horizontal" android:id="@id/weather_panel" android:paddingTop="4.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content">
<ImageView android:id="@id/weather_image" android:paddingLeft="8.0dip" android:paddingRight="8.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_dialog_alert" android:layout_centerHorizontal="true" android:layout_centerVertical="true" />
<RelativeLayout android:orientation="horizontal" android:padding="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/weather_image" android:layout_centerVertical="true">
<TextView android:textSize="14.0sp" android:textStyle="bold" android:textColor="?textColorPrimary" android:ellipsize="marquee" android:gravity="right" android:id="@id/weather_city" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:layout_alignParentRight="true" />
<TextView android:textSize="12.0sp" android:textColor="?textColorPrimary" android:ellipsize="marquee" android:gravity="right" android:id="@id/weather_condition" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:layout_below="@id/weather_city" android:layout_alignParentRight="true" />
<TextView android:textSize="8.0sp" android:textColor="?textColorSecondary" android:gravity="right" android:id="@id/update_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/weather_condition" android:layout_alignParentRight="true" />
</RelativeLayout>
<RelativeLayout android:orientation="horizontal" android:id="@id/weather_temps_panel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/weather_image" android:layout_centerVertical="true">
<TextView android:textSize="20.0sp" android:textColor="?textColorPrimary" android:id="@id/weather_temp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" />
<View android:id="@id/weather_divider" android:background="@drawable/divider_horizontal_dark" android:layout_width="44.0dip" android:layout_height="1.0dip" android:layout_below="@id/weather_temp" />
<TextView android:textSize="12.0sp" android:textColor="?textColorPrimary" android:id="@id/weather_low_high" android:paddingTop="2.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/weather_divider" android:layout_centerHorizontal="true" />
</RelativeLayout>
</RelativeLayout>
<Space android:layout_gravity="fill" />
<Button android:layout_gravity="right" android:id="@id/emergencyCallButton" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4.0dip" android:layout_marginRight="16.0dip" android:text="@string/lockscreen_emergency_call" android:drawableLeft="@drawable/lockscreen_emergency_button" android:drawablePadding="4.0dip" style="?android:attr/buttonBarButtonStyle" />
<RelativeLayout android:layout_width="fill_parent" android:layout_height="302.0dip">
<LinearLayout android:gravity="center_vertical" android:id="@id/calendar_panel" android:paddingLeft="12.0dip" android:paddingRight="12.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="28.0dip">
<ImageView android:gravity="center" android:layout_gravity="center_vertical" android:layout_width="36.0dip" android:layout_height="wrap_content" android:src="@drawable/ic_lock_idle_calendar" />
<View android:background="@drawable/divider_horizontal_dark" android:paddingTop="6.0dip" android:paddingBottom="6.0dip" android:layout_width="1.0dip" android:layout_height="fill_parent" />
<RelativeLayout android:paddingLeft="4.0dip" android:paddingTop="6.0dip" android:paddingBottom="6.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textSize="14.0sp" android:textColor="?textColorPrimary" android:ellipsize="marquee" android:id="@id/calendar_event_title" android:fadingEdge="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textSize="12.0sp" android:textColor="?textColorSecondary" android:ellipsize="marquee" android:id="@id/calendar_event_details" android:focusable="true" android:focusableInTouchMode="true" android:fadingEdge="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/calendar_event_title" android:layout_alignLeft="@id/calendar_event_title" android:marqueeRepeatLimit="marquee_forever" />
</RelativeLayout>
</LinearLayout>
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="0.0sp" android:textColor="?textColorSecondary" android:ellipsize="marquee" android:gravity="center_horizontal" android:id="@id/carrier" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="12.0dip" android:singleLine="true" android:maxLength="0" android:layout_alignParentBottom="true" />
</RelativeLayout>
<LinearLayout android:gravity="center" android:orientation="horizontal" android:layout_width="fill_parent" android:weightSum="2.0" style="?android:attr/buttonBarStyle">
<Button android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:layout_gravity="center_horizontal" android:id="@id/emergencyCallButton" android:visibility="gone" android:layout_width="0.0dip" android:layout_height="wrap_content" android:text="@string/lockscreen_emergency_call" android:drawableLeft="@drawable/lockscreen_emergency_button" android:drawablePadding="0.0dip" android:layout_weight="1.0" style="?android:attr/buttonBarButtonStyle" />
</LinearLayout>
<include android:layout_gravity="fill" android:id="@id/transport" android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_column="0" android:layout_row="0" android:layout_rowSpan="5" android:layout_columnSpan="1" layout="@layout/keyguard_transport_control" />
</GridLayout>
</RelativeLayout>
Save it
If you have \layout-mdpi\ folder inside your framework-res, you have to do the same thing as mentioned above... in my case, i have this folder and keyguard_screen_tab_unlock.xml inside...
4. Download > extract the MDPI-Resources attached above
Copy the Whole .pngs > send it to \res\drawable-mdpi\
Save and recompile
5. Decompile back your recompiled framework-res.apk > Navigate to \res\values\public.xml
Just open it, we have to do nothing with it... just leave it open because we will do compare...
6. Decompile framework.jar > Navigate to \smali\com\android\internal\widget\ Delete your WaveView.smali or just replace with mine (on extracted MDPI-Resources)
Now open it and let's do compare with our leaved public.xml
Should be look like this:
Code:
[COLOR="DeepSkyBlue"]WaveView.smali[/COLOR] [COLOR="DeepSkyBlue"]New public.xml[/COLOR]
line 198 -> 0x104050f <public type="string" name="description_target_camera" id="0x0104050f" />
line 306 -> 0x1080622 <public type="drawable" name="unlock_ring" id="0x01080622" />
line 355 -> 0x1080623 <public type="drawable" name="unlock_wave" id="0x01080623" />
line 404 -> 0x1080620 <public type="drawable" name="unlock_default" id="0x01080620" />
line 453 -> 0x1080621 <public type="drawable" name="unlock_halo" id="0x01080621" />
If your public.xml ids are different with WaveView.smali ids, you have to change those ids on WaveView.smali with NO zero number after "x" code as public.xml ids...
7. Done, recompile your framework.jar
8. Download my empty Flashable_Zippy.zip > Open it with Winrar or 7z (Just open/ Not extract) > Navigate to \system\framework\
9. Send the whole modified files/ drag and drop (android.policy.jar, services.jar, framework.jar and framework-res.apk) into it
10. Flash and Enjoy.... :fingers-crossed:
CREDITS:
CM Team for making Those things possible
Evilisto for the first guy founder :hatsoff:
Adi Aisiteru Reborn for making this like easily (Terima kasih untuk WaveView.smali nya Gan)
My brother for resized WaveView.smali (You're Linux pro, but why you hate Android?)
Google
My Coffee
Some Screenies
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
great tuts bro.... i follow your guide.. but after flashing i dont get BBlock..still XZ lock..and i try to disable xz lock with rename unpnxtlockscreen.apk to unpnxtlockscreen.apk_... but after i booting and wake up i get bootlop....can u explain what happens....
Nathan Ali Ashari said:
great tuts bro.... i follow your guide.. but after flashing i dont get BBlock..still XZ lock..and i try to disable xz lock with rename unpnxtlockscreen.apk to unpnxtlockscreen.apk_... but after i booting and wake up i get bootlop....can u explain what happens....
Click to expand...
Click to collapse
there's something missing or maybe you forgot to change the ids?
use your logcat then...
I manage to try this and voila, omg it worked on my Xperia Mini! Thank you so much!
Btw, the 1px bug is present on this, how do I removed it? and also how to remove the white background behind the clock? thanks!
JovieBrett said:
I manage to try this and voila, omg it worked on my Xperia Mini! Thank you so much!
Btw, the 1px bug is present on this, how do I removed it? and also how to remove the white background behind the clock? thanks!
Click to expand...
Click to collapse
1px bug? i have no bug at all...
change the unlock_default.png with completely transparent png
yayakuya said:
1px bug? i have no bug at all...
change the unlock_default.png with completely transparent png
Click to expand...
Click to collapse
The one line black pixel when I hover up the shadow...
And when music is activated, the lockscreen cannot be opened.
JovieBrett said:
The one line black pixel when I hover up the shadow...
And when music is activated, the lockscreen cannot be opened.
Click to expand...
Click to collapse
aah... i see... you will get that from any, any BB10 lockscreen mod on any devices, if they still using @evilisto's methode...
it is the edge of wave.png...
don't worry... you still can unlock it while music player running...
just swipe it as you just normally unlocked.. the wave is hidden behind album... :cyclops:
yayakuya said:
aah... i see... you will get that from any, any BB10 lockscreen mod on any devices, if they still using @evilisto's methode...
it is the edge of wave.png...
don't worry... you still can unlock it while music player running...
just swipe it as you just normally unlocked.. the wave is hidden behind album... :cyclops:
Click to expand...
Click to collapse
Ohh ok, thank you so much!
yayakuya said:
aah... i see... you will get that from any, any BB10 lockscreen mod on any devices, if they still using @evilisto's methode...
it is the edge of wave.png...
don't worry... you still can unlock it while music player running...
just swipe it as you just normally unlocked.. the wave is hidden behind album... :cyclops:
Click to expand...
Click to collapse
very nice guide.. but for base stock ROM what to edit?
@yayakuya
I did everything correctly and now I have only transparent lockscreen...
This is how to make sense of recent app, and of course for Micromax A110, based on JB 4.1 v1.11
Requirements
PHP:
1. Knowledge abaout compile/decompile apk
2. Notepad++
3. Apk tool/Apk multi tool
4. SystemUI.apk and framework-res.apk
OK Lets start ::
framework-res.apk
1. Decompile your framework-res.apk
2. Go to values/dimens and change thumbnail size
Code:
<dimen name="thumbnail_height">267.0dip</dimen>
<dimen name="thumbnail_width">168.0dip</dimen>
3. Done, Recompile
SystemUI
1. Decompile your SystemUI
2. Go to values/bools and change this
Code:
<bool name="config_recents_thumbnail_image_fits_to_xy">[COLOR="Red"]true[/COLOR]</bool>
3. Open string, and add this
Code:
<string name="recent_apps_title">Recent apps</string>
4. Open ids and add this
Code:
<item type="id" name="recents_clear">false</item>
5. Open res/layout/status_bar_no_recent_apps.xml , and replace with this
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:textSize="20.0dip" android:textColor="@*android:color/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" />
</FrameLayout>
6. Open res/layout-land/status_bar_recent_item.xml , and replace with this
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: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>
7. Open res/layout-land/status_bar_recent_panel.xml , and replace with this
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:background="#ff000000" 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="18.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" />
</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>
8. Open res/layout-port/status_bar_recent_item.xml , and replace with this
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:layout_width="192.0dip" android:layout_height="305.0dip" android:layout_marginTop="25.0dip" android:layout_marginBottom="15.0dip" />
</FrameLayout>
<ImageView android:gravity="center_horizontal" android:id="@id/app_icon" android:layout_width="192.0dip" android:layout_height="wrap_content" android:layout_marginTop="27.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="30.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_label" android:layout_alignParentBottom="true" />
</RelativeLayout>
</FrameLayout>
9. Open res/layout-port/status_bar_recent_panel.xml , and replace with this
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:background="@drawable/#ff000000" 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="18.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" />
</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>
10. And the last open smali/com/android/systemui/recen/RecentsPanelView.smali and find this
Code:
.method private updateThumbnail(Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;Landroid/graphics/Bitmap;ZZ)V
and delete that line until .end method, and replace with this
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 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;-><init>()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;-><init>(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;-><init>()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;-><init>()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;-><init>(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;-><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 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;-><init>()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
11. Recompile your SystemUI
12. Done
13. Push it, and taraaa
SS On attachments
Thanks to jeetu for his tread :: http://forum.xda-developers.com/showthread.php?t=2403735
Original Post :: http://archiveandroid.blogspot.com/...howComment=1392121068859#c6213501692009221740
Don't say thanks if i help you, but press it :good:
------------------------------
------------------------------
[COLOR="#Blue"]Hi Sir's...
Its MD here..
Today i will share how to add Recent sense in JB4.2.2 devices with mobile apktools 2.0 beta 7 version...Easy and 100% working way...
Though there a lot of guide in xda and i tried them all...But unfortunately none of them working with my mtk6572 jb4.2.2 device...So i found this way and now going to share it...
One request...Don't copy my guide please...[/COLOR]
------------------------------
First nessesary tools :
1.Apktools...
2.Notepad++...
3.Knowledge in Decompiling and recompileing...
4.Your Framework and Your SystemUI...
5.and a cool brain...
------------------------------
[COLOR="#Black"]Warnings!:
1.First do everythings at your own risk...
2.Don't try with odexed Roms...
3.Take on NanAndroid backup...
4.Any kind of damaged MD will not Responsiable...
5.This works good with JB4.2.2 devices...and it should work in jb 4.1.2 too...maybe also work in ics device...But don't try in KK and GB devices and in any Samsung devices...
[/COLOR]
------------------------------
At first decompile your Framework-res and your SystemUI in a new folder...
------------------------------
------------
Step -1...:
------------
First go to new folder (where you decompiled you framework and SystemUI)...Then go to framework-res_src folder/res/values/dimens.xml and open it with Notepad++...
Then search these codes:
<dimen name="thumbnail_height">***.0dip</dimen>
<dimen name="thumbnail_width">***.0dip</dimen>
After searching change the dpi code of your xml like mine...
<dimen name="thumbnail_height">240.0dip</dimen>
<dimen name="thumbnail_width">151.0dip</dimen>
Done!Now save it and recompile and sign your framework...
------------------------------
------------
Step -2...:
------------
Now go to your decompiled SystemUI_src/res/values/bools.xml and search this line :
name="config_recents_thumbnail_image_fits_to_xy">false</bool>
Now change false to true...
it should like this :
name="config_recents_thumbnail_image_fits_to_xy">true</bool>
Done!Now save it and open ids.xml and search these codes first...If don't found them then add these codes in ids.xml before resource...
<item type="id" name="recents_transition_background">false</item>
<item type="id" name="recents_transition_placeholder_icon">false</item>
<item type="id" name="recents_clear">false</item>
It should look like this :
<item type="id" name="recents_transition_background">false</item>
<item type="id" name="recents_transition_placeholder_icon">false</item>
<item type="id" name="recents_clear">false</item>
</resources>
Done!Save it and open strings.xml and search this code...if you don't find it then add this line before resource...
<string name="recent_apps_title">Recent Apps</string>
It should look like this :
<string name="recent_apps_title">Recent Apps</string>
</resources>
Done!Now save it...
------------------------------
------------
Step -3...:
------------
Now go to SystemUI_src/smali/com/android/sustemui/recent/Recentpanelview.smali and search this code :
.method private updateThumbnail(Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;Landroid/graphics/Bitmap;ZZ)V
-
-
-bla___bla...
-bla___bla...
-
-
goto :goto_0
.end method
After finding this code select all line and replaced them with these lines:
Code:
.method private updateThumbnail(Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;Landroid/graphics/Bitmap;ZZ)V
.locals 30
.param p1, "h" # Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;
.param p2, "thumbnail" # Landroid/graphics/Bitmap;
.param p3, "show" # Z
.param p4, "anim" # Z
.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;-><init>()V
.line 418
.local v8, "matrix":Landroid/graphics/Matrix;
const/high16 v3, 0x3f800000
const/high16 v4, -0x40800000
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;-><init>(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;-><init>()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;-><init>()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;-><init>(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;-><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 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, 0x41c80000
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;-><init>()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
Done!Now save it...
[COLOR="#Blue"]
N.B.->Be carefull with these codes...Don't make any mistake there...I hope you understand that what i want to say ...If you not understanding that what i say download the mdsamli.zip from attechment extract it and open Recentpanelview.smali...And search these codes and try to understand...
(see in my Recentpanelview.smali line 965-1362) [/COLOR]
------------------------------
Final Step 4 & 5
------------------------------
------------
Step -4...:
------------
Now download mdsystemui.zip from the attachment and extract it in SystemUI_src (which you decompiled in new folder with the framework-res) and replace all files Done!
Everythings done!
Now Recompile your SystemUI and Sign it and rename it...
Then make one flashable patch of them and flash and Enjoy Recent Sense 4...
------------------------------
-----------------------
Step -5 (Optinoal)...:
-----------------------
Well guys after following my step-4 if you face any problem in recompiling follow this step carefully...
In this step you need to compare some xmls with myone...if you find any lines which are not added in your xmls but added in my xmls,you must need to add these line before or after correct lines...
First delete your Decompiled SystemUI and again decompile it and follow steps 1,2,3 and skip step 4 and follow step 5 in stead of step 4...
Now go to your decompiled SystemUI and go to res/layout and open Status_bar_no_recent_apps.xml in Notepad++ and compare them with this lines ->
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:textSize="20.0dip" android:textColor="@android:color/holo_blue_light" android:gravity="center_horizontal" android:layout_gravity="center" android:id="@id/recents_no_apps_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_no_recent_apps" />
</FrameLayout>
Done!Now save it...
Now go to your decompiled SystemUI and go to res/layout and open Status_bar_recent_item.xml in Notepad++ and compare them with this lines ->
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:clipChildren="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:importantForAccessibility="no"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout android:layout_gravity="center_horizontal" android:id="@id/recent_item" android:clipChildren="false" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:textSize="@dimen/status_bar_recents_app_label_text_size" android:textColor="@color/status_bar_recents_app_label_color" android:ellipsize="marquee" android:id="@id/app_label" android:paddingTop="2.0dip" 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:scrollHorizontally="true" android:singleLine="true" android:layout_alignTop="@id/app_icon" android:layout_alignParentLeft="true" android:importantForAccessibility="no" />
<FrameLayout android:id="@id/app_thumbnail" android:background="@drawable/recents_thumbnail_bg" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/status_bar_recents_thumbnail_left_margin" android:foreground="@drawable/recents_thumbnail_fg" android:layout_toRightOf="@id/app_label" android:layout_alignParentTop="true">
<ImageView android:id="@id/app_thumbnail_image" android:layout_width="@dimen/status_bar_recents_thumbnail_width" android:layout_height="@dimen/status_bar_recents_thumbnail_height" />
</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:id="@id/app_icon" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/status_bar_recents_app_icon_left_margin" android:layout_marginTop="@dimen/status_bar_recents_app_icon_top_margin" 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_toRightOf="@id/app_label" />
<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="3.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/recents_callout_line" android:layout_alignParentLeft="true" />
</RelativeLayout>
</FrameLayout>
Done!Now save it...
Now go to your decompiled SystemUI and go to res/layout and open Status_bar_recent_panel.xml in Notepad++ and compare them with this lines ->
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_alignParentBottom="true">
<com.android.systemui.recent.RecentsVerticalScrollView android:layout_gravity="bottom|left|center" android:id="@id/recents_container" android:scrollbars="none" android:fadingEdge="vertical" android:fadingEdgeLength="@dimen/status_bar_recents_scroll_fading_edge_length" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="0.0dip" android:stackFromBottom="true" android:divider="@null">
<LinearLayout android:orientation="vertical" android:id="@id/recents_linear_layout" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</com.android.systemui.recent.RecentsVerticalScrollView>
</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>
Done!Now save it...
Now go to your decompiled SystemUI and go to res/layout-land and open Status_bar_recent_item.xml in Notepad++ and compare them with this lines ->
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: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>
Done!Now save it...
Now go to your decompiled SystsmUI and go to res/layout-land and open Status_bar_recent_panel.xml in Notepad++ and compare them with this lines ->
Code:
<?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" />
</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>
Done!Now save it...
Now go to your decompiled SystemUI and go to res/layout-port and open Status_bar_recent_item.xml in Notepad++ and compare them with this lines ->
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: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>
Done!Now save it...
Now go to your decompiled SystemUI and go to res/layout-port and open Status_bar_recent_panel.xml in Notepad++ and compare them with this lines ->
Code:
<?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" />
</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>
Done!Now save it...
N.B->
In some SystemUI you may not find Status_bar_recent_item.xml and Status_bar_recent_panel.xml in layout-port...So,if you not found these xmls then don't try this guide...It will not work...Try with Another SystemUI which has these xmls...Thanks!
Done!Everythings...Now download mdsdrawable-nodpi.zip from attachment and extract it to your SystemUI_src/res/drawable-nodpi folder...
If not make any mistake in editing these xmls and smali,you can successfully recompile your SystemUI...
------------------------------
------------------------------
------------
Credits...:
------------
1.Xtreme team...
2.RSS bro...
3.Adhi Sir...
------------------------------
------------------------------
Well guys thats all i want to share...
Happy modding And Never Stop Customizations...
Post By:MD's...
[COLOR="#Black"]Hit a thanks botton if you like my work... [/COLOR]
------------------------------
------------------------------
Attachements.....
All Attachments....
Request
At first thanks for this post.
I tryed this may time but i faced problem to recompile error in my mobile.i have not.so cordially request you to make this recent style for me.
In the attachment i give me system ui and framework-res.apk
Sorry for disturb
Thanks in advance
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This is the most customizable clock seen to date.
Add individual items so you can have any layout to wish also you can set the following for each item.
Clock position: Left, Right, Center
Changeable for each item:
Text color
Text font
text size
Set gravity top, center, bottom
Selectable items are :
Hour (24) e.g.: 13
Hour (12) e.g.: 1
Minutes
Seconds
Day (numeric) eg: 02
Day (short) e.g.: Tue
Day (long) e.g.: Tuesday
Month (numeric) eg: 01
Month (short) e.g.: Jan
Month (long) e.g.: January
Year (short) e.g.: 15
Year (long) e.g.: 2015
Am-Pm
:
/
-
Space
You can also save/load your clock layouts
I cannot explain the full nature of this mod so give it a go.
1.Unzip the download files and place all of the MinitClock.smali files into SystemUI.apk/com/android/systemui/policy folder.
2.Make the changes to status_bar.xml as seen below. I have also include both the files below so you can run a diff to see the changes.
XML Source Code: status_bar.xml - Original
Code:
<com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:id="@id/status_bar" android:background="@drawable/system_bar_background" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<FrameLayout android:id="@id/call_background" android:background="@color/call_background_idle_color" android:layout_width="fill_parent" android:layout_height="fill_parent" />
<ImageView android:id="@id/notification_lights_out" android:paddingBottom="2.0dip" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:paddingStart="6.0dip" />
<LinearLayout android:orientation="horizontal" android:id="@id/status_bar_contents" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingStart="@dimen/status_bar_contents_padding_start" android:paddingEnd="@dimen/status_bar_contents_padding_end">
<com.android.systemui.statusbar.AlphaOptimizedFrameLayout android:orientation="horizontal" android:id="@id/notification_icon_area" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<com.android.keyguard.AlphaOptimizedLinearLayout android:id="@id/notification_icon_area_inner" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentStart="true" />
</com.android.keyguard.AlphaOptimizedLinearLayout>
</com.android.systemui.statusbar.AlphaOptimizedFrameLayout>
<com.android.keyguard.AlphaOptimizedLinearLayout android:orientation="horizontal" android:id="@id/system_icon_area" android:layout_width="wrap_content" android:layout_height="fill_parent">
<TextView android:textSize="12.0dip" android:textColor="#ffffffff" android:gravity="center_vertical" android:id="@id/knoxCustomStatusBarText" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="fill_parent" android:includeFontPadding="false" />
<include layout="@layout/system_icons" />
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="start|center" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:paddingStart="@dimen/status_bar_clock_padding_start" />
</com.android.keyguard.AlphaOptimizedLinearLayout>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBarView>
XML Source Code: status_bar.xml - Modded
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:id="@id/status_bar" android:background="@drawable/system_bar_background" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
[COLOR="red"]xmlns:threeminit="http://threeminit.com">[/COLOR]
[COLOR="red"]<com.android.systemui.statusbar.policy.MinitClock threeminit:position="1" android:id="@+id/minitclock" android:gravity="center" android:layout_width="fill_parent" android:layout_height="fill_parent" android:singleLine="true" />[/COLOR]
<FrameLayout android:id="@id/call_background" android:background="@color/call_background_idle_color" android:layout_width="fill_parent" android:layout_height="fill_parent" />
<ImageView android:id="@id/notification_lights_out" android:paddingBottom="2.0dip" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:paddingStart="6.0dip" />
<LinearLayout android:orientation="horizontal" android:id="@id/status_bar_contents" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingStart="@dimen/status_bar_contents_padding_start" android:paddingEnd="@dimen/status_bar_contents_padding_end">
<com.android.systemui.statusbar.AlphaOptimizedFrameLayout android:orientation="horizontal" android:id="@id/notification_icon_area" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<com.android.keyguard.AlphaOptimizedLinearLayout android:id="@id/notification_icon_area_inner" android:layout_width="fill_parent" android:layout_height="fill_parent">
[COLOR="red"]<com.android.systemui.statusbar.policy.MinitClock threeminit:position="2" android:gravity="left|center" android:id="@+id/minitclock" android:layout_width="wrap_content" android:layout_height="fill_parent" />[/COLOR]
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentStart="true" />
</com.android.keyguard.AlphaOptimizedLinearLayout>
</com.android.systemui.statusbar.AlphaOptimizedFrameLayout>
<com.android.keyguard.AlphaOptimizedLinearLayout android:orientation="horizontal" android:id="@id/system_icon_area" android:layout_width="wrap_content" android:layout_height="fill_parent">
<TextView android:textSize="12.0dip" android:textColor="#ffffffff" android:gravity="center_vertical" android:id="@id/knoxCustomStatusBarText" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="fill_parent" android:includeFontPadding="false" />
<include layout="@layout/system_icons" />
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="start|center" android:id="@id/clock" [COLOR="red"]android:layout_width="0dp" android:layout_height="0dp" [/COLOR]android:singleLine="true" android:paddingStart="@dimen/status_bar_clock_padding_start" />
[COLOR="red"]<com.android.systemui.statusbar.policy.MinitClock threeminit:position="0" android:gravity="start|center" android:id="@+id/minitclock" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:paddingStart="@dimen/status_bar_clock_padding_start" />[/COLOR]
</com.android.keyguard.AlphaOptimizedLinearLayout>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBarView>
Note there are 4 added lines 5,6,12,21 dont miss line 5 or your apk wont recompile. Also note the attributes threeminitosition="0" these mean:
threeminitosition="0" = right clock
threeminitosition="1" = center clock
threeminitosition="2" = left clock
adjust these as you need them.
3. Install the included apk.
You are free to use and bake this mod and app into your rom provided you give full and proper credits and you provide a link to this thread. Also, you cannot alter in any way without permission from me first.
This is not a open source project and I share with you as is. All codes belong to me and are copyrighted.
3Minit Clock Mod v2.0
3Minit Clock Mod Git
My wife and kids for giving up their time with me so I can do this. Love you guys.
@pas2001 for icons and testing
XDA:DevDB Information
3Minit Clock Mod, App for all devices (see above for details)
Contributors
gharrington
Version Information
Status: Stable
Current Stable Version: 2.0
Created 2016-06-17
Last Updated 2016-06-21
XDA:DevDB Information
3Minit Clock Mod, App for all devices (see above for details)
Contributors
gharrington
Source Code: https://github.com/gharrington/3Minit_Clock_Mod.git
Version Information
Status: Stable
Current Stable Version: 2.0
Created 2016-06-17
Last Updated 2016-06-23
Changelog
v2.0 22/06/2016
Added show/hide clock
Added gravity for clock items top, center, bottom
Made it easier to click clock location settings
v1.1 18/06/2016
Fixed issue where app would crash on some devices.
V1.0 16/06/2016
Initial release
Extra Guides to improve mod more
How to hide clock on lockscreen
Navigate to SystemUI/smali/com/android/systemui/statusbar/phone and open StatusBarIconController
Look for
Code:
.field private mLinearOutSlowIn:Landroid/view/animation/Interpolator;
around line 61
directly after this add
Code:
.field private mMinitClock:Lcom/android/systemui/statusbar/policy/MinitClock;
Find the constructor around line 111
Code:
.method public constructor <init>(Landroid/content/Context;Landroid/view/View;Landroid/view/View;Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)V
and before it returns add
Code:
invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
const-string v1, "minitclock"
const-string v2, "id"
invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
move-result v0
invoke-virtual {p2, v0}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0, Lcom/android/systemui/statusbar/policy/MinitClock;
iput-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mMinitClock:Lcom/android/systemui/statusbar/policy/MinitClock;
Find the method
Code:
.method private animateHide(Landroid/view/View;Z)V
Replace the whole method with
Code:
.method private animateHide(Landroid/view/View;Z)V
.locals 8
.param p1, "v" # Landroid/view/View;
.param p2, "flag" # Z
.prologue
const-wide/16 v6, 0xa0
const-wide/16 v4, 0x0
const/4 v2, 0x0
.line 38
invoke-virtual {p1}, Landroid/view/View;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0}, Landroid/view/ViewPropertyAnimator;->cancel()V
.line 39
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mMinitClock:Lcom/android/systemui/statusbar/policy/MinitClock;
invoke-virtual {v0}, Lcom/android/systemui/statusbar/policy/MinitClock;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0}, Landroid/view/ViewPropertyAnimator;->cancel()V
.line 41
if-nez p2, :cond_0
.line 42
invoke-virtual {p1, v2}, Landroid/view/View;->setAlpha(F)V
.line 43
const/4 v0, 0x4
invoke-virtual {p1, v0}, Landroid/view/View;->setVisibility(I)V
.line 44
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mMinitClock:Lcom/android/systemui/statusbar/policy/MinitClock;
invoke-virtual {v0, v2}, Lcom/android/systemui/statusbar/policy/MinitClock;->setAlpha(F)V
.line 45
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mMinitClock:Lcom/android/systemui/statusbar/policy/MinitClock;
const/16 v1, 0x8
invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/policy/MinitClock;->setVisibility(I)V
.line 63
:goto_0
return-void
.line 48
:cond_0
invoke-virtual {p1}, Landroid/view/View;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v2}, Landroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v6, v7}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v4, v5}, Landroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
move-result-object v0
sget-object v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->ALPHA_OUT:Landroid/view/animation/Interpolator;
invoke-virtual {v0, v1}, Landroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;
move-result-object v0
new-instance v1, Lcom/android/systemui/statusbar/phone/StatusBarIconController$1;
invoke-direct {v1, p0, p1}, Lcom/android/systemui/statusbar/phone/StatusBarIconController$1;-><init>(Lcom/android/systemui/statusbar/phone/StatusBarIconController;Landroid/view/View;)V
invoke-virtual {v0, v1}, Landroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
.line 55
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mMinitClock:Lcom/android/systemui/statusbar/policy/MinitClock;
invoke-virtual {v0}, Lcom/android/systemui/statusbar/policy/MinitClock;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v2}, Landroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v6, v7}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v4, v5}, Landroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
move-result-object v0
sget-object v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->ALPHA_OUT:Landroid/view/animation/Interpolator;
invoke-virtual {v0, v1}, Landroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;
move-result-object v0
new-instance v1, Lcom/android/systemui/statusbar/phone/StatusBarIconController$99;
invoke-direct {v1, p0, p1}, Lcom/android/systemui/statusbar/phone/StatusBarIconController$99;-><init>(Lcom/android/systemui/statusbar/phone/StatusBarIconController;Landroid/view/View;)V
invoke-virtual {v0, v1}, Landroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
goto :goto_0
.end method
Find the method
Code:
.method private animateShow(Landroid/view/View;Z)V
Replace the whole method with
Code:
.method private animateShow(Landroid/view/View;Z)V
.locals 8
.param p1, "view" # Landroid/view/View;
.param p2, "flag" # Z
.prologue
const-wide/16 v6, 0xa0
const-wide/16 v4, 0x32
const/4 v3, 0x0
const/4 v1, 0x0
const/high16 v2, 0x3f800000 # 1.0f
.line 67
invoke-virtual {p1}, Landroid/view/View;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0}, Landroid/view/ViewPropertyAnimator;->cancel()V
.line 68
invoke-virtual {p1, v1}, Landroid/view/View;->setVisibility(I)V
.line 69
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mMinitClock:Lcom/android/systemui/statusbar/policy/MinitClock;
invoke-virtual {v0}, Lcom/android/systemui/statusbar/policy/MinitClock;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0}, Landroid/view/ViewPropertyAnimator;->cancel()V
.line 70
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mMinitClock:Lcom/android/systemui/statusbar/policy/MinitClock;
invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/policy/MinitClock;->setVisibility(I)V
.line 71
if-nez p2, :cond_1
.line 73
invoke-virtual {p1, v2}, Landroid/view/View;->setAlpha(F)V
.line 74
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mMinitClock:Lcom/android/systemui/statusbar/policy/MinitClock;
invoke-virtual {v0, v2}, Lcom/android/systemui/statusbar/policy/MinitClock;->setAlpha(F)V
.line 86
:cond_0
:goto_0
return-void
.line 77
:cond_1
invoke-virtual {p1}, Landroid/view/View;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v2}, Landroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v6, v7}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
move-result-object v0
sget-object v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->ALPHA_IN:Landroid/view/animation/Interpolator;
invoke-virtual {v0, v1}, Landroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v4, v5}, Landroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v3}, Landroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
.line 78
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mMinitClock:Lcom/android/systemui/statusbar/policy/MinitClock;
invoke-virtual {v0}, Lcom/android/systemui/statusbar/policy/MinitClock;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v2}, Landroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v6, v7}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
move-result-object v0
sget-object v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->ALPHA_IN:Landroid/view/animation/Interpolator;
invoke-virtual {v0, v1}, Landroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v4, v5}, Landroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0, v3}, Landroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
.line 79
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mPhoneStatusBar:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;
invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->isKeyguardFadingAway()Z
move-result v0
if-eqz v0, :cond_0
.line 81
invoke-virtual {p1}, Landroid/view/View;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v0
iget-object v1, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mPhoneStatusBar:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;
invoke-virtual {v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->getKeyguardFadingAwayDuration()J
move-result-wide v2
invoke-virtual {v0, v2, v3}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
move-result-object v0
iget-object v1, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mLinearOutSlowIn:Landroid/view/animation/Interpolator;
invoke-virtual {v0, v1}, Landroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;
move-result-object v0
iget-object v1, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mPhoneStatusBar:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;
invoke-virtual {v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->getKeyguardFadingAwayDelay()J
move-result-wide v2
invoke-virtual {v0, v2, v3}, Landroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0}, Landroid/view/ViewPropertyAnimator;->start()V
.line 82
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mMinitClock:Lcom/android/systemui/statusbar/policy/MinitClock;
invoke-virtual {v0}, Lcom/android/systemui/statusbar/policy/MinitClock;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v0
iget-object v1, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mPhoneStatusBar:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;
invoke-virtual {v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->getKeyguardFadingAwayDuration()J
move-result-wide v2
invoke-virtual {v0, v2, v3}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
move-result-object v0
iget-object v1, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mLinearOutSlowIn:Landroid/view/animation/Interpolator;
invoke-virtual {v0, v1}, Landroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;
move-result-object v0
iget-object v1, p0, Lcom/android/systemui/statusbar/phone/StatusBarIconController;->mPhoneStatusBar:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;
invoke-virtual {v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->getKeyguardFadingAwayDelay()J
move-result-wide v2
invoke-virtual {v0, v2, v3}, Landroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
move-result-object v0
invoke-virtual {v0}, Landroid/view/ViewPropertyAnimator;->start()V
goto/16 :goto_0
.end method
Add the smali files from the zip attached below named HideBattery.zip
Recompile and done
Great apk again. Thanks alot sir.
Sent from my SM-G935F using Tapatalk
done
Great. Haven't tried it yet but for sure it has to be good stuff shared by @gharrington ?
Sent from my SM-G935F using Tapatalk
gharrington said:
3Minit Clock Mod
This is the most customizable clock seen to date.
Add individual items so you can have any layout to wish also you can set the following for each item.
Clock position: Left, Right, Center
Changeable for each item:
Text color
Text font
text size
Selectable items are :
Hour (24) e.g.: 13
Hour (12) e.g.: 1
Minutes
Seconds
Day (numeric) eg: 02
Day (short) e.g.: Tue
Day (long) e.g.: Tuesday
Month (numeric) eg: 01
Month (short) e.g.: Jan
Month (long) e.g.: January
Year (short) e.g.: 15
Year (long) e.g.: 2015
Am-Pm
:
/
-
Space
You can also save/load your clock layouts
I cannot explain the full nature of this mod so give it a go.
Implementation Guide
1.Unzip the download files and place all of the MinitClock.smali files into SystemUI.apk/com/android/systemui/policy folder.
2.Make the changes to status_bar.xml as seen below. I have also include both the files below so you can run a diff to see the changes.
XML Source Code: status_bar.xml - Original
Code:
<com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:id="@id/status_bar" android:background="@drawable/system_bar_background" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<FrameLayout android:id="@id/call_background" android:background="@color/call_background_idle_color" android:layout_width="fill_parent" android:layout_height="fill_parent" />
<ImageView android:id="@id/notification_lights_out" android:paddingBottom="2.0dip" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:paddingStart="6.0dip" />
<LinearLayout android:orientation="horizontal" android:id="@id/status_bar_contents" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingStart="@dimen/status_bar_contents_padding_start" android:paddingEnd="@dimen/status_bar_contents_padding_end">
<com.android.systemui.statusbar.AlphaOptimizedFrameLayout android:orientation="horizontal" android:id="@id/notification_icon_area" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<com.android.keyguard.AlphaOptimizedLinearLayout android:id="@id/notification_icon_area_inner" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentStart="true" />
</com.android.keyguard.AlphaOptimizedLinearLayout>
</com.android.systemui.statusbar.AlphaOptimizedFrameLayout>
<com.android.keyguard.AlphaOptimizedLinearLayout android:orientation="horizontal" android:id="@id/system_icon_area" android:layout_width="wrap_content" android:layout_height="fill_parent">
<TextView android:textSize="12.0dip" android:textColor="#ffffffff" android:gravity="center_vertical" android:id="@id/knoxCustomStatusBarText" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="fill_parent" android:includeFontPadding="false" />
<include layout="@layout/system_icons" />
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="start|center" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:paddingStart="@dimen/status_bar_clock_padding_start" />
</com.android.keyguard.AlphaOptimizedLinearLayout>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBarView>
XML Source Code: status_bar.xml - Modded
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:id="@id/status_bar" android:background="@drawable/system_bar_background" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
xmlns:threeminit="http://threeminit.com">
<com.android.systemui.statusbar.policy.MinitClock threeminit:position="1" android:id="@+id/minitclock" android:gravity="center" android:layout_width="fill_parent" android:layout_height="fill_parent" android:singleLine="true" />
<FrameLayout android:id="@id/call_background" android:background="@color/call_background_idle_color" android:layout_width="fill_parent" android:layout_height="fill_parent" />
<ImageView android:id="@id/notification_lights_out" android:paddingBottom="2.0dip" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:paddingStart="6.0dip" />
<LinearLayout android:orientation="horizontal" android:id="@id/status_bar_contents" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingStart="@dimen/status_bar_contents_padding_start" android:paddingEnd="@dimen/status_bar_contents_padding_end">
<com.android.systemui.statusbar.AlphaOptimizedFrameLayout android:orientation="horizontal" android:id="@id/notification_icon_area" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<com.android.keyguard.AlphaOptimizedLinearLayout android:id="@id/notification_icon_area_inner" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.MinitClock threeminit:position="2" android:gravity="left|center" android:id="@+id/minitclock" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentStart="true" />
</com.android.keyguard.AlphaOptimizedLinearLayout>
</com.android.systemui.statusbar.AlphaOptimizedFrameLayout>
<com.android.keyguard.AlphaOptimizedLinearLayout android:orientation="horizontal" android:id="@id/system_icon_area" android:layout_width="wrap_content" android:layout_height="fill_parent">
<TextView android:textSize="12.0dip" android:textColor="#ffffffff" android:gravity="center_vertical" android:id="@id/knoxCustomStatusBarText" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="fill_parent" android:includeFontPadding="false" />
<include layout="@layout/system_icons" />
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="start|center" android:id="@id/clock" android:layout_width="0dp" android:layout_height="0dp" android:singleLine="true" android:paddingStart="@dimen/status_bar_clock_padding_start" />
<com.android.systemui.statusbar.policy.MinitClock threeminit:position="0" android:gravity="start|center" android:id="@+id/minitclock" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:paddingStart="@dimen/status_bar_clock_padding_start" />
</com.android.keyguard.AlphaOptimizedLinearLayout>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBarView>
Note there are 4 added lines 5,6,12,21 dont miss line 5 or your apk wont recompile. Also note the attributes threeminitosition="0" these mean:
threeminitosition="0" = right clock
threeminitosition="1" = center clock
threeminitosition="2" = left clock
adjust these as you need them.
3. Install the included apk.
You are free to use and bake this mod and app into your rom provided you give full and proper credits and you provide a link to this thread. Also, you cannot alter in any way without permission from me first.
This is not a open source project and I share with you as is. All codes belong to me and are copyrighted.
Downloads
3Minit Clock Mod v1.0
XDA:DevDB Information
3Minit Clock Mod, App for all devices (see above for details)
Contributors
gharrington
Version Information
Status: Stable
Current Stable Version: 1.0
Created 2016-06-17
Last Updated 2016-06-16
Click to expand...
Click to collapse
great mod tnx
Mod is done. But 3minit clock app not run. My rom 6.0.1
nguyentankiet said:
Mod is done. But 3minit clock app not run. My rom 6.0.1
Click to expand...
Click to collapse
Please download a logcat from playstore and get me a log?
gharrington said:
Please download a logcat from playstore and get me a log?
Click to expand...
Click to collapse
Seem this is issue? Logcat say font not found
Yes that's the issue I will fix and upload update asap
Sent from my SM-G935F using Tapatalk
gharrington said:
Yes that's the issue I will fix and upload update asap
Sent from my SM-G935F using Tapatalk
Click to expand...
Click to collapse
Waiting and test it
nguyentankiet said:
Mod is done. But 3minit clock app not run. My rom 6.0.1
Click to expand...
Click to collapse
New version is release please reinstall the app and ensure the files in system/font folder get copied across if you dont have it.
http://www.mediafire.com/download/s6gz8x3tnxs3lox/3Minit_Clock_Mod_v1.1.zip
gharrington said:
New version is release please reinstall the app and ensure the files in system/font folder get copied across if you dont have it.
http://www.mediafire.com/download/s6gz8x3tnxs3lox/3Minit_Clock_Mod_v1.1.zip
Click to expand...
Click to collapse
Thank you Gary. It's working great. May I ask for a feature request if possible? I am missing marshmallow tint feature that colors get inverted on a light statusbar. Though I am not sure it should be fixed on clock smalis or other smalis. But by applying any custom clock smali we would lose that tint feature.
Sent from my SM-G935F using Tapatalk
gharrington said:
New version is release please reinstall the app and ensure the files in system/font folder get copied across if you dont have it.
http://www.mediafire.com/download/s6gz8x3tnxs3lox/3Minit_Clock_Mod_v1.1.zip
Click to expand...
Click to collapse
Work fine
Thank you...
https://youtu.be/1NPdt0-Nwxk
snifing said:
https://youtu.be/1NPdt0-Nwxk
Click to expand...
Click to collapse
[emoji106] [emoji106] [emoji106]
Sent from my SM-G928F using XDA-Developers mobile app
BUG REPORT
If you set textsize from 15 to 8 and apply changes and go back to set textsize there is standing 15 but its 8. if you slide it correct it to 8
Hope you understand
is it possible if you set textsize smaler you can choose up, down or center horizontal?? its always center
also if its possible to switch off not only three positions like potatoe clock
also if possible a option to swipe items between the others f.e. to add space between later. now you must delete items and add space and than add items back
Mod installed successfully on my lg g4. I played little with right clock padding but now all is fine. Good job @gharrington like always and thnks for your works
Inviato dal mio LG-H815 utilizzando Tapatalk
asc1977 said:
BUG REPORT
If you set textsize from 15 to 8 and apply changes and go back to set textsize there is standing 15 but its 8. if you slide it correct it to 8
Hope you understand
is it possible if you set textsize smaler you can choose up, down or center horizontal?? its always center
also if its possible to switch off not only three positions like potatoe clock
also if possible a option to swipe items between the others f.e. to add space between later. now you must delete items and add space and than add items back
Click to expand...
Click to collapse
Thanks for the report:
If you set textsize from 15 to 8 and apply changes and go back to set textsize there is standing 15 but its 8. if you slide it correct it to 8 is fixed
is it possible if you set textsize smaler you can choose up, down or center horizontal?? its always center is being added now (For now you could just add the attribute android:gravity="bottom" to the lines added in status_bar.xml
also if its possible to switch off not only three positions like potatoe clock will be added
if possible a option to swipe items between the others f.e. to add space between later. now you must delete items and add space and than add items back will be added