{
"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
Related
hey dev's,
in kqb i can choose a lockscreen wallpaper in settings>display>wallpapers for the tab unlock, but this wallpaper is not visible on the background of pin/password/pattern view. is there a solution to fetch the wallpaper in the keyguards-xml's?
the header of keyguard_screen_unlock_portrait.xml looks like this
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient android:gravity="center_horizontal" android:orientation="vertical" [COLOR="Red"]android:background="#70000000"[/COLOR] android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
i can only set colours?
I would, however, that the background is displayed which i choose in settings.
is there a solution for custom wallpaper support on all locks?
sorry for bad english i hope you understand what i mean. thanks for anwser
put the wallpaper in drawable-hdpi called: lockbg.png (or so)
and change it to: android:background="@drawable/lockbg"
thanks for reply,
yeah, but i want to make the lockscreen wallpaper easyly changeable, because i'm trying to build an own rom
i used google, i read a feld hundrets of threads, but nowhere i can find a solution for fetch the wallpaper which i setup in settings. everybody is asking and no one has a how-to.
i looked in the jkay-lockscreens codes, there is a implement of lockscreenwallpaper.smali in android.policy.jar. perherps someone can port this?!
Code:
.class Lcom/android/internal/policy/impl/LockscreenWallpaper;
.super Landroid/widget/FrameLayout;
.source "LockscreenWallpaper.java"
# instance fields
.field private final TAG:Ljava/lang/String;
.field private final WALLPAPER_IMAGE_PATH:Ljava/lang/String;
.field bitmapWallpaper:Landroid/graphics/Bitmap;
.field private mLockScreenWallpaperImage:Landroid/widget/ImageView;
# direct methods
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.registers 4
.parameter "context"
.parameter "attrs"
.prologue
.line 26
invoke-direct {p0, p1}, Landroid/widget/FrameLayout;-><init>(Landroid/content/Context;)V
.line 17
const-string v0, "LockscreenWallpaperUpdater"
iput-object v0, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->TAG:Ljava/lang/String;
.line 19
const-string v0, "/data/data/com.aokp.romcontrol/files/lockscreen_wallpaper.jpg"
iput-object v0, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->WALLPAPER_IMAGE_PATH:Ljava/lang/String;
.line 28
invoke-virtual {p0}, Lcom/android/internal/policy/impl/LockscreenWallpaper;->setLockScreenWallpaper()V
.line 29
return-void
.end method
# virtual methods
.method protected onDetachedFromWindow()V
.registers 2
.prologue
.line 48
iget-object v0, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->bitmapWallpaper:Landroid/graphics/Bitmap;
if-eqz v0, :cond_9
.line 49
iget-object v0, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->bitmapWallpaper:Landroid/graphics/Bitmap;
invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V
.line 51
:cond_9
invoke-static {}, Ljava/lang/System;->gc()V
.line 52
invoke-super {p0}, Landroid/widget/FrameLayout;->onDetachedFromWindow()V
.line 53
return-void
.end method
.method public setLockScreenWallpaper()V
.registers 6
.prologue
const/4 v4, -0x1
.line 32
new-instance v1, Ljava/io/File;
const-string v2, "/data/data/com.aokp.romcontrol/files/lockscreen_wallpaper.jpg"
invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 34
.local v1, file:Ljava/io/File;
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_3e
.line 35
new-instance v2, Landroid/widget/ImageView;
invoke-virtual {p0}, Lcom/android/internal/policy/impl/LockscreenWallpaper;->getContext()Landroid/content/Context;
move-result-object v3
invoke-direct {v2, v3}, Landroid/widget/ImageView;-><init>(Landroid/content/Context;)V
iput-object v2, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->mLockScreenWallpaperImage:Landroid/widget/ImageView;
.line 36
iget-object v2, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->mLockScreenWallpaperImage:Landroid/widget/ImageView;
sget-object v3, Landroid/widget/ImageView$ScaleType;->CENTER_CROP:Landroid/widget/ImageView$ScaleType;
invoke-virtual {v2, v3}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V
.line 37
iget-object v2, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->mLockScreenWallpaperImage:Landroid/widget/ImageView;
invoke-virtual {p0, v2, v4, v4}, Lcom/android/internal/policy/impl/LockscreenWallpaper;->addView(Landroid/view/View;II)V
.line 38
const-string v2, "/data/data/com.aokp.romcontrol/files/lockscreen_wallpaper.jpg"
invoke-static {v2}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;)Landroid/graphics/Bitmap;
move-result-object v2
iput-object v2, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->bitmapWallpaper:Landroid/graphics/Bitmap;
.line 39
new-instance v0, Landroid/graphics/drawable/BitmapDrawable;
invoke-virtual {p0}, Lcom/android/internal/policy/impl/LockscreenWallpaper;->getResources()Landroid/content/res/Resources;
move-result-object v2
iget-object v3, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->bitmapWallpaper:Landroid/graphics/Bitmap;
invoke-direct {v0, v2, v3}, Landroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V
.line 40
.local v0, d:Landroid/graphics/drawable/Drawable;
iget-object v2, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->mLockScreenWallpaperImage:Landroid/widget/ImageView;
invoke-virtual {v2, v0}, Landroid/widget/ImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
.line 44
.end local v0 #d:Landroid/graphics/drawable/Drawable;
:goto_3d
return-void
.line 42
:cond_3e
invoke-virtual {p0}, Lcom/android/internal/policy/impl/LockscreenWallpaper;->removeAllViews()V
goto :goto_3d
.end method
texten said:
thanks for reply,
yeah, but i want to make the lockscreen wallpaper easyly changeable, because i'm trying to build an own rom
i used google, i read a feld hundrets of threads, but nowhere i can find a solution for fetch the wallpaper which i setup in settings. everybody is asking and no one has a how-to.
i looked in the jkay-lockscreens codes, there is a implement of lockscreenwallpaper.smali in android.policy.jar. perherps someone can port this?!
Code:
.class Lcom/android/internal/policy/impl/LockscreenWallpaper;
.super Landroid/widget/FrameLayout;
.source "LockscreenWallpaper.java"
# instance fields
.field private final TAG:Ljava/lang/String;
.field private final WALLPAPER_IMAGE_PATH:Ljava/lang/String;
.field bitmapWallpaper:Landroid/graphics/Bitmap;
.field private mLockScreenWallpaperImage:Landroid/widget/ImageView;
# direct methods
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.registers 4
.parameter "context"
.parameter "attrs"
.prologue
.line 26
invoke-direct {p0, p1}, Landroid/widget/FrameLayout;-><init>(Landroid/content/Context;)V
.line 17
const-string v0, "LockscreenWallpaperUpdater"
iput-object v0, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->TAG:Ljava/lang/String;
.line 19
const-string v0, "/data/data/com.aokp.romcontrol/files/lockscreen_wallpaper.jpg"
iput-object v0, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->WALLPAPER_IMAGE_PATH:Ljava/lang/String;
.line 28
invoke-virtual {p0}, Lcom/android/internal/policy/impl/LockscreenWallpaper;->setLockScreenWallpaper()V
.line 29
return-void
.end method
# virtual methods
.method protected onDetachedFromWindow()V
.registers 2
.prologue
.line 48
iget-object v0, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->bitmapWallpaper:Landroid/graphics/Bitmap;
if-eqz v0, :cond_9
.line 49
iget-object v0, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->bitmapWallpaper:Landroid/graphics/Bitmap;
invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V
.line 51
:cond_9
invoke-static {}, Ljava/lang/System;->gc()V
.line 52
invoke-super {p0}, Landroid/widget/FrameLayout;->onDetachedFromWindow()V
.line 53
return-void
.end method
.method public setLockScreenWallpaper()V
.registers 6
.prologue
const/4 v4, -0x1
.line 32
new-instance v1, Ljava/io/File;
const-string v2, "/data/data/com.aokp.romcontrol/files/lockscreen_wallpaper.jpg"
invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 34
.local v1, file:Ljava/io/File;
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_3e
.line 35
new-instance v2, Landroid/widget/ImageView;
invoke-virtual {p0}, Lcom/android/internal/policy/impl/LockscreenWallpaper;->getContext()Landroid/content/Context;
move-result-object v3
invoke-direct {v2, v3}, Landroid/widget/ImageView;-><init>(Landroid/content/Context;)V
iput-object v2, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->mLockScreenWallpaperImage:Landroid/widget/ImageView;
.line 36
iget-object v2, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->mLockScreenWallpaperImage:Landroid/widget/ImageView;
sget-object v3, Landroid/widget/ImageView$ScaleType;->CENTER_CROP:Landroid/widget/ImageView$ScaleType;
invoke-virtual {v2, v3}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V
.line 37
iget-object v2, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->mLockScreenWallpaperImage:Landroid/widget/ImageView;
invoke-virtual {p0, v2, v4, v4}, Lcom/android/internal/policy/impl/LockscreenWallpaper;->addView(Landroid/view/View;II)V
.line 38
const-string v2, "/data/data/com.aokp.romcontrol/files/lockscreen_wallpaper.jpg"
invoke-static {v2}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;)Landroid/graphics/Bitmap;
move-result-object v2
iput-object v2, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->bitmapWallpaper:Landroid/graphics/Bitmap;
.line 39
new-instance v0, Landroid/graphics/drawable/BitmapDrawable;
invoke-virtual {p0}, Lcom/android/internal/policy/impl/LockscreenWallpaper;->getResources()Landroid/content/res/Resources;
move-result-object v2
iget-object v3, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->bitmapWallpaper:Landroid/graphics/Bitmap;
invoke-direct {v0, v2, v3}, Landroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V
.line 40
.local v0, d:Landroid/graphics/drawable/Drawable;
iget-object v2, p0, Lcom/android/internal/policy/impl/LockscreenWallpaper;->mLockScreenWallpaperImage:Landroid/widget/ImageView;
invoke-virtual {v2, v0}, Landroid/widget/ImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
.line 44
.end local v0 #d:Landroid/graphics/drawable/Drawable;
:goto_3d
return-void
.line 42
:cond_3e
invoke-virtual {p0}, Lcom/android/internal/policy/impl/LockscreenWallpaper;->removeAllViews()V
goto :goto_3d
.end method
Click to expand...
Click to collapse
just copy the file from that android.policy.jar to your android.policy.jar thats all
so the lockscreenwallpaper.smali must not customize for kqb?
ok,than i have troubles with building the sourcecode for keyguard_screen_unlock_portrait.xml
i tried so many ways, but cant make it usefull. help please. here are the uncostumized codes
KQB Stock keyguard_screen_unlock_portrait.xml:
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient android:gravity="center_horizontal" android:orientation="vertical" android:background="#70000000" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textAppearance="?textAppearanceMedium" android:ellipsize="marquee" android:gravity="bottom|right|center" android:id="@id/carrier" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6.0dip" android:layout_marginRight="8.0dip" android:singleLine="true" android:layout_toRightOf="@id/time" android:layout_alignParentTop="true" android:layout_alignParentRight="true" />
<com.android.internal.widget.DigitalClock android:id="@id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20.0dip" android:layout_marginTop="15.0dip" android:layout_alignParentLeft="true" android:layout_alignParentTop="true">
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="56.0sp" android:ellipsize="none" android:gravity="bottom" android:id="@id/timeDisplay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="6.0dip" android:singleLine="true" android:shadowColor="#c0000000" android:shadowDx="0.0" android:shadowDy="0.0" android:shadowRadius="3.0" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="18.0sp" android:ellipsize="none" android:gravity="bottom" android:id="@id/am_pm" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="4.0dip" android:singleLine="true" android:shadowColor="#c0000000" android:shadowDx="0.0" android:shadowDy="0.0" android:shadowRadius="3.0" />
</com.android.internal.widget.DigitalClock>
<TextView android:textAppearance="?textAppearanceMedium" android:id="@id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="24.0dip" android:layout_below="@id/time" />
</RelativeLayout>
<View android:id="@id/divider" android:background="@drawable/divider_horizontal_dark" android:layout_width="fill_parent" android:layout_height="1.0dip" android:layout_marginTop="8.0dip" android:layout_marginBottom="8.0dip" />
<LinearLayout android:gravity="left" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="12.0dip" android:layout_marginTop="0.0dip">
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="18.0sp" android:id="@id/status1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="8.0dip" android:drawablePadding="4.0dip" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="18.0sp" android:id="@id/statusSep" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginRight="5.0dip" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="18.0sp" android:id="@id/status2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="8.0dip" android:drawablePadding="4.0dip" android:layout_alignParentTop="true" />
</LinearLayout>
<com.android.internal.widget.LockPatternView android:id="@id/lockPattern" android:layout_width="fill_parent" android:layout_height="0.0dip" android:layout_marginTop="2.0dip" android:layout_weight="1.0" android:aspect="@string/lock_pattern_view_aspect" />
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
<RelativeLayout android:id="@id/footerNormal" android:layout_width="fill_parent" android:layout_height="fill_parent">
<Button android:id="@id/emergencyCallAlone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/lockscreen_emergency_call" android:drawableLeft="@drawable/ic_emergency" android:drawablePadding="8.0dip" android:layout_centerInParent="true" style="@style/Widget.Button.Transparent" />
</RelativeLayout>
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/footerForgotPattern" android:layout_width="fill_parent" android:layout_height="fill_parent">
<Button android:id="@id/emergencyCallTogether" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_marginLeft="4.0dip" android:layout_marginTop="4.0dip" android:layout_marginRight="2.0dip" android:layout_marginBottom="4.0dip" android:text="@string/lockscreen_emergency_call" android:drawableLeft="@drawable/ic_emergency" android:drawablePadding="8.0dip" android:layout_weight="1.0" style="@style/Widget.Button.Transparent" />
<Button android:id="@id/forgotPattern" android:visibility="invisible" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_marginLeft="2.0dip" android:layout_marginTop="4.0dip" android:layout_marginRight="4.0dip" android:layout_marginBottom="4.0dip" android:layout_weight="1.0" style="@style/Widget.Button.Transparent" />
</LinearLayout>
</FrameLayout>
</com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient>
big thanks for your help.
it would be nice, we can make it possible
and now i have found a source of jkays keyguard_screen_unlock_portrait.xml
with the implement:
Code:
[COLOR="Red"] <com.android.internal.policy.impl.LockscreenWallpaper
android:id="@id/lockscreen_wallpaper" android:layout_width="fill_parent"
android:layout_height="fill_parent" />[/COLOR]
Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.android.internal.policy.impl.LockscreenWallpaper android:id="@id/lockscreen_wallpaper" android:layout_width="fill_parent" android:layout_height="fill_parent" />
<GridLayout android:gravity="center_horizontal" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.android.internal.widget.DigitalClock android:layout_gravity="right" android:id="@id/time" android:layout_marginTop="@dimen/keyguard_lockscreen_status_line_clockfont_top_margin" android:layout_marginRight="@dimen/keyguard_lockscreen_status_line_font_right_margin" android:layout_marginBottom="@dimen/keyguard_lockscreen_status_line_clockfont_bottom_margin">
<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: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:singleLine="true" />
</com.android.internal.widget.DigitalClock>
<LinearLayout android:layout_gravity="right" android:orientation="horizontal" android:layout_marginRight="@dimen/keyguard_lockscreen_status_line_font_right_margin">
<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>
<com.android.internal.policy.impl.WeatherText android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:ellipsize="end" android:gravity="right" android:layout_gravity="fill_horizontal" android:id="@id/weather" android:layout_marginRight="@dimen/keyguard_lockscreen_status_line_font_right_margin" android:singleLine="true" android:drawablePadding="4.0dip" />
<ViewFlipper android:layout_gravity="right" android:id="@id/calendar" android:layout_marginRight="@dimen/keyguard_lockscreen_status_line_font_right_margin" android:drawablePadding="4.0dip" android:inAnimation="@anim/calendar_fadein" android:outAnimation="@anim/calendar_fadeout" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:ellipsize="marquee" android:layout_gravity="right" android:id="@id/status1" android:layout_marginRight="@dimen/keyguard_lockscreen_status_line_font_right_margin" android:singleLine="true" android:drawablePadding="4.0dip" />
<Space android:layout_gravity="fill" />
<com.android.internal.widget.LockPatternView android:layout_gravity="center_horizontal" android:id="@id/lockPattern" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="8.0dip" android:layout_marginRight="8.0dip" android:layout_marginBottom="4.0dip" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:ellipsize="marquee" android:layout_gravity="center_horizontal" android:id="@id/carrier" android:singleLine="true" />
<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: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" />
<Button android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:layout_gravity="center_horizontal" android:id="@id/forgotPatternButton" android:layout_width="0.0dip" android:layout_height="wrap_content" android:text="@string/lockscreen_forgot_pattern_button_text" android:drawableLeft="@drawable/lockscreen_forgot_password_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="6" android:layout_columnSpan="1" layout="@layout/keyguard_transport_control" />
<TextView android:layout_gravity="fill" android:id="@id/faceLockAreaView" android:background="@color/facelock_color_background" android:visibility="invisible" android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_marginTop="8.0dip" android:layout_marginBottom="8.0dip" android:layout_column="0" android:layout_row="6" android:layout_rowSpan="1" android:layout_columnSpan="1" />
</GridLayout>
</RelativeLayout>
is someone there who can make it working in kqb?
edit: found it in an aosp-rom, seems its not jkay
texten said:
and now i have found a source of jkays keyguard_screen_unlock_portrait.xml
with the implement:
Code:
[COLOR="Red"] <com.android.internal.policy.impl.LockscreenWallpaper
android:id="@id/lockscreen_wallpaper" android:layout_width="fill_parent"
android:layout_height="fill_parent" />[/COLOR]
Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.android.internal.policy.impl.LockscreenWallpaper android:id="@id/lockscreen_wallpaper" android:layout_width="fill_parent" android:layout_height="fill_parent" />
<GridLayout android:gravity="center_horizontal" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.android.internal.widget.DigitalClock android:layout_gravity="right" android:id="@id/time" android:layout_marginTop="@dimen/keyguard_lockscreen_status_line_clockfont_top_margin" android:layout_marginRight="@dimen/keyguard_lockscreen_status_line_font_right_margin" android:layout_marginBottom="@dimen/keyguard_lockscreen_status_line_clockfont_bottom_margin">
<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: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:singleLine="true" />
</com.android.internal.widget.DigitalClock>
<LinearLayout android:layout_gravity="right" android:orientation="horizontal" android:layout_marginRight="@dimen/keyguard_lockscreen_status_line_font_right_margin">
<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>
<com.android.internal.policy.impl.WeatherText android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:ellipsize="end" android:gravity="right" android:layout_gravity="fill_horizontal" android:id="@id/weather" android:layout_marginRight="@dimen/keyguard_lockscreen_status_line_font_right_margin" android:singleLine="true" android:drawablePadding="4.0dip" />
<ViewFlipper android:layout_gravity="right" android:id="@id/calendar" android:layout_marginRight="@dimen/keyguard_lockscreen_status_line_font_right_margin" android:drawablePadding="4.0dip" android:inAnimation="@anim/calendar_fadein" android:outAnimation="@anim/calendar_fadeout" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:ellipsize="marquee" android:layout_gravity="right" android:id="@id/status1" android:layout_marginRight="@dimen/keyguard_lockscreen_status_line_font_right_margin" android:singleLine="true" android:drawablePadding="4.0dip" />
<Space android:layout_gravity="fill" />
<com.android.internal.widget.LockPatternView android:layout_gravity="center_horizontal" android:id="@id/lockPattern" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="8.0dip" android:layout_marginRight="8.0dip" android:layout_marginBottom="4.0dip" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:ellipsize="marquee" android:layout_gravity="center_horizontal" android:id="@id/carrier" android:singleLine="true" />
<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: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" />
<Button android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:layout_gravity="center_horizontal" android:id="@id/forgotPatternButton" android:layout_width="0.0dip" android:layout_height="wrap_content" android:text="@string/lockscreen_forgot_pattern_button_text" android:drawableLeft="@drawable/lockscreen_forgot_password_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="6" android:layout_columnSpan="1" layout="@layout/keyguard_transport_control" />
<TextView android:layout_gravity="fill" android:id="@id/faceLockAreaView" android:background="@color/facelock_color_background" android:visibility="invisible" android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_marginTop="8.0dip" android:layout_marginBottom="8.0dip" android:layout_column="0" android:layout_row="6" android:layout_rowSpan="1" android:layout_columnSpan="1" />
</GridLayout>
</RelativeLayout>
is someone there who can make it working in kqb?
edit: found it in an aosp-rom, seems its not jkay
Click to expand...
Click to collapse
Do it like this, in the file "keyguard_screen_unlock_portrait.xml" you have to examine each line and look for the values starting with a "@", these lines need to be present in the files in /values/, so if the things are missing just add them from the aosp rom,
for example:
looking at the android:id="@id/lockscreen_wallpaper" part, this means you will need to have the "lockscreen_wallpaper" id inside /values/ids.xml, if the id doesn't exist in that file you simply need to copy it from aosp rom. do that process for all custom variables/ids/colors/dimens, etc
Also when compiling just look at the log, it will say where the error is present, (you use apk manager?)
thanks, i will try it later, must go to bed.
will report if it's work.
yes i am using apk manager.
i'm no noob, just a beginner in xml and java
perherps you can try it for your broodrom?!
for now,thank you very much.
ok, cant sleep before given it a try.
but nothing happens:
included the lockscreen_wallpaper id in values/ids.xml
packed the lockscreenwallpaper.smali in android.policy.jar
and included the implementcode.
but i think, my xml-knowledge is not good enough, i have just good html/css knowledge
here is my new code:
red color for changes on stock kqb keyguard_screen_unlock_portrait.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
[COLOR="Red"]<RelativeLayout android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.android.internal.policy.impl.LockscreenWallpaper android:id="@id/lockscreen_wallpaper" android:layout_width="fill_parent" android:layout_height="fill_parent" />[/COLOR]
<com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient android:gravity="center_horizontal" android:orientation="vertical" android:background="#70000000" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textAppearance="?textAppearanceMedium" android:ellipsize="marquee" android:gravity="bottom|right|center" android:id="@id/carrier" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6.0dip" android:layout_marginRight="8.0dip" android:singleLine="true" android:layout_toRightOf="@id/time" android:layout_alignParentTop="true" android:layout_alignParentRight="true" />
<com.android.internal.widget.DigitalClock android:id="@id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20.0dip" android:layout_marginTop="15.0dip" android:layout_alignParentLeft="true" android:layout_alignParentTop="true">
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="56.0sp" android:ellipsize="none" android:gravity="bottom" android:id="@id/timeDisplay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="6.0dip" android:singleLine="true" android:shadowColor="#c0000000" android:shadowDx="0.0" android:shadowDy="0.0" android:shadowRadius="3.0" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="18.0sp" android:ellipsize="none" android:gravity="bottom" android:id="@id/am_pm" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="4.0dip" android:singleLine="true" android:shadowColor="#c0000000" android:shadowDx="0.0" android:shadowDy="0.0" android:shadowRadius="3.0" />
</com.android.internal.widget.DigitalClock>
<TextView android:textAppearance="?textAppearanceMedium" android:id="@id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="24.0dip" android:layout_below="@id/time" />
</RelativeLayout>
<View android:id="@id/divider" android:background="@drawable/divider_horizontal_dark" android:layout_width="fill_parent" android:layout_height="1.0dip" android:layout_marginTop="8.0dip" android:layout_marginBottom="8.0dip" />
<LinearLayout android:gravity="left" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="12.0dip" android:layout_marginTop="0.0dip">
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="18.0sp" android:id="@id/status1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="8.0dip" android:drawablePadding="4.0dip" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="18.0sp" android:id="@id/statusSep" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginRight="5.0dip" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="18.0sp" android:id="@id/status2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="8.0dip" android:drawablePadding="4.0dip" android:layout_alignParentTop="true" />
</LinearLayout>
<com.android.internal.widget.LockPatternView android:id="@id/lockPattern" android:layout_width="fill_parent" android:layout_height="0.0dip" android:layout_marginTop="2.0dip" android:layout_weight="1.0" android:aspect="@string/lock_pattern_view_aspect" />
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
<RelativeLayout android:id="@id/footerNormal" android:layout_width="fill_parent" android:layout_height="fill_parent">
<Button android:id="@id/emergencyCallAlone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/lockscreen_emergency_call" android:drawableLeft="@drawable/ic_emergency" android:drawablePadding="8.0dip" android:layout_centerInParent="true" style="@style/Widget.Button.Transparent" />
</RelativeLayout>
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/footerForgotPattern" android:layout_width="fill_parent" android:layout_height="fill_parent">
<Button android:id="@id/emergencyCallTogether" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_marginLeft="4.0dip" android:layout_marginTop="4.0dip" android:layout_marginRight="2.0dip" android:layout_marginBottom="4.0dip" android:text="@string/lockscreen_emergency_call" android:drawableLeft="@drawable/ic_emergency" android:drawablePadding="8.0dip" android:layout_weight="1.0" style="@style/Widget.Button.Transparent" />
<Button android:id="@id/forgotPattern" android:visibility="invisible" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_marginLeft="2.0dip" android:layout_marginTop="4.0dip" android:layout_marginRight="4.0dip" android:layout_marginBottom="4.0dip" android:layout_weight="1.0" style="@style/Widget.Button.Transparent" />
</LinearLayout>
</FrameLayout>
</com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient>
[COLOR="Red"]</RelativeLayout>[/COLOR]
i my mind the puzzle-lockscreen supports lockscreen-wallpaper too, the code of kqb stock zzz_keyguard_screen_puzzle_lock.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:id="@id/root" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
[COLOR="Red"]<ImageView android:id="@id/zzz_lockscreen_wallpaper01" android:layout_width="fill_parent" android:layout_height="fill_parent" />[/COLOR]
<RelativeLayout android:id="@id/zzz_background01" android:background="@drawable/zzz_unlock_puzzle_bg" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout android:id="@id/zzz_puzzlelockfullbg" android:background="@drawable/zzz_unlock_blackbg" android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:textSize="18.669983dip" android:typeface="sans" android:textColor="#ffffffff" android:gravity="right" android:id="@id/carrier" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10.669983dip" android:layout_marginBottom="475.32812dip" android:singleLine="true" android:shadowColor="#ff000000" android:shadowDx="1.0" android:shadowDy="1.0" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" />
<RelativeLayout android:id="@id/zzz_sweepglass" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="80.0dip" android:layout_alignParentBottom="true">
<ImageView android:id="@id/zzz_sweepglasseffect" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<TextView android:textSize="20.0dip" android:typeface="sans" android:textColor="#ffffffff" android:ellipsize="marquee" android:id="@id/zzz_sweepglasstext02" android:paddingLeft="6.0dip" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:singleLine="true" android:shadowColor="#ff000000" android:shadowDx="1.0" android:shadowDy="1.0" android:layout_centerHorizontal="true" android:marqueeRepeatLimit="marquee_forever" />
</RelativeLayout>
</RelativeLayout>
<LinearLayout android:id="@id/zzz_puzzlenoticalllayout" android:background="@drawable/zzz_unlock_puzzle_noti_icon_call" android:layout_width="113.32999dip" android:layout_height="88.0dip" android:layout_marginLeft="16.0dip" android:layout_marginTop="166.0dip">
<TextView android:typeface="sans" android:textColor="#ffffffff" android:id="@id/zzz_puzzlenoticalltext" android:layout_width="28.0dip" android:layout_height="wrap_content" android:layout_marginLeft="60.0dip" android:layout_marginTop="17.0dip" android:shadowColor="#ff000000" android:shadowDx="1.0" android:shadowDy="1.0" />
</LinearLayout>
<LinearLayout android:id="@id/zzz_puzzlenotimaillayout" android:background="@drawable/zzz_unlock_puzzle_noti_icon_mail" android:layout_width="113.32999dip" android:layout_height="88.0dip" android:layout_marginLeft="16.0dip" android:layout_marginTop="270.66406dip">
<TextView android:typeface="sans" android:textColor="#ffffffff" android:id="@id/zzz_puzzlenotimailtext" android:layout_width="28.0dip" android:layout_height="wrap_content" android:layout_marginLeft="60.0dip" android:layout_marginTop="17.0dip" android:shadowColor="#ff000000" android:shadowDx="1.0" android:shadowDy="1.0" />
</LinearLayout>
<LinearLayout android:id="@id/zzz_puzzlematchlayout" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="206.66998dip" android:layout_marginTop="236.0dip">
<ImageView android:id="@id/zzz_puzzlematch" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</RelativeLayout>
</FrameLayout>
so whats the right solution to make it possible?
#1 with implement of lockscreenwallpaper.smali and "lockscreen_wallpaper"
or
#2 customize like puzzle-lockscreen with "zzz_lockscreen_wallpaper01"
or
something other...
btw: where can i find the source for the new lockscreen? found the clockwidget, but not its integration for this:
perherps we can take the source for wrapping wallpaper from that xml, if someone had found
{
"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"
}
I think i know how to give it a custom lockscreen wallpaper
We have to add some things to lockscreen.smali and an other in android.policy.jar
I can give it a try
But not until, cause im going to bed now
Sent from my GT-I9001 using XDA
SkillCam said:
I think i know how to give it a custom lockscreen wallpaper
We have to add some things to lockscreen.smali and an other in android.policy.jar
I can give it a try
But not until, cause im going to bed now
Sent from my GT-I9001 using XDA
Click to expand...
Click to collapse
thank you, allready thought no one will give it a try, but everyone want this mod :/
It shouldnt be that hard, cause its the same way to give the aosp lockscreen a custom lockscreen wallpaper
I'll give it a try when im back from school
Edit: for which version should i make that fix xxKQB or?
Sent from my GT-I9001 using XDA
last release is KQB , thanks a lot.
Lockscreen
I made the first version at the moment but i can't test it cause i have arky's ICS rom at my phone and don't want to install XXKQB now. So you may test it for me
but make a nandroid backup first
please share decompiled files, so i can include these for trying. have a lot of mods in kqb which wil break, when i replace with apk and jar.
need modified smali and modified xml
and instructions
edit: or give me a few minutes, so i will flash stock and than can try
Try it
yes Try and say me if it works and if it does work i can give you the files
stuck on a boot loop
:/
SkillCam said:
yes Try and say me if it works and if it does work i can give you the files
Click to expand...
Click to collapse
just share the source, your ideas, with us. maybe together we'll find a solution
try that please
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
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
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