[MOD][GUIDE][v2.0] Sense 4.0 style Multitasking on Stock ICS [Added Reflection]

Search This thread

Kayant

Senior Member
Jul 14, 2011
1,861
4,150
I think it should be clearly stated in the op that this doesn't work with apktool. You need to compile it from sources.




In case you haven't noticed... you need to work on your reading comprehension :D

Could you please tell me how i got the source but i don't know how to use the patch :(
Edit - found a way to do this :) but i don't know if it's right the right way :p
Thanks for the patch and mod ^_^ now that i know how to use it it's a lot easier than having to edit the files myself :)
 
Last edited:

acocalypso

Senior Member
Feb 7, 2011
491
254
i really like that mod, but yeah it would be nice, if someone could explain how to apply the patch.

greetz Aco
 

hansip87

Senior Member
Jan 14, 2011
2,916
2,242
Jakarta
evilisto, once again a nice mod you have :) But i wonder, any landscape icon bug with this kind of layout? Hopefully not. Thanks :)
 

evilisto

Senior Member
Nov 26, 2010
486
2,318
evilisto, once again a nice mod you have :) But i wonder, any landscape icon bug with this kind of layout? Hopefully not. Thanks :)

As you said... that landscape layout was the problem for me... :eek:

One of the reason is, I couldn't find original Sense 4.0 app switcher's landscape screenshot or video or other things. So after much consideration, I just removed landscape view and add "turn your screen" message. Like this :

zNiVA.png


Personally, I think this is not so bad but I don't know how other users feel...
 

TweetyPeety

Recognized Themer
Aug 22, 2010
1,710
1,569
also here, I think GUIDE should be deleted from the NAME, because everybody is asking how to do it and it is only a MOD, not a Guide...
 

evilisto

Senior Member
Nov 26, 2010
486
2,318
also here, I think GUIDE should be deleted from the NAME, because everybody is asking how to do it and it is only a MOD, not a Guide...

Isn't it better to remove this thread itself? If thread title is just "[MOD]", many people expect they can download flashable zip from this thread. And if not, many of them ask "Where is the mod???????" "How can I download this??"... and then, "Damn, this is not a mod....+ (blame me)" or ask me to make flashable zip for their device and rom.

Yes, this thread is maybe not a guide, just a patch. Then I have to post this thread as "[MOD][PATCH]"? If I did that, so many people will ask "How to apply your patch?? Flash in clockworkmod????"...

If someone doesn't know how to use this, they have to search about that before asking others. You can easily find answer by just typing 'how to use diff patch' in google.

http://lmgtfy.com/?q=how+to+use+diff+patch
 

miniura

Member
Oct 3, 2009
19
0
Isn't it better to remove this thread itself? If thread title is just "[MOD]", many people expect they can download flashable zip from this thread. And if not, many of them ask "Where is the mod???????" "How can I download this??"... and then, "Damn, this is not a mod....+ (blame me)" or ask me to make flashable zip for their device and rom.

Yes, this thread is maybe not a guide, just a patch. Then I have to post this thread as "[MOD][PATCH]"? If I did that, so many people will ask "How to apply your patch?? Flash in clockworkmod????"...

If someone doesn't know how to use this, they have to search about that before asking others. You can easily find answer by just typing 'how to use diff patch' in google.

http://lmgtfy.com/?q=how+to+use+diff+patch

Look, can you please just show us how you (or anyone else) patched these files in this scenario?

Don't think I'm a noob at this because I have posted <20 times (been on XDA for nearly two years now but I just don't post), I've edited framework-res.apk's, SystemUI.apk, servicesd.jar many times in the past but it's just that the concept of patching is new to me.
 

evilisto

Senior Member
Nov 26, 2010
486
2,318
Look, can you please just show us how you (or anyone else) patched these files in this scenario?

Don't think I'm a noob at this because I have posted <20 times (been on XDA for nearly two years now but I just don't post), I've edited framework-res.apk's, SystemUI.apk, servicesd.jar many times in the past but it's just that the concept of patching is new to me.

Yeah. I'll show you how to use this patch.

Code:
root@evilisto-desktop:~/patch_test/frameworks/base# patch -p2 < Sense-4.0-Multitasking.patch
patching file core/res/res/values/dimens.xml
patching file packages/SystemUI/res/drawable/nyandroid_anim.xml
patching file packages/SystemUI/res/layout/status_bar_no_recent_apps.xml
patching file packages/SystemUI/res/layout-land/status_bar_recent_panel.xml
patching file packages/SystemUI/res/layout-port/status_bar_recent_item.xml
patching file packages/SystemUI/res/layout-port/status_bar_recent_panel.xml
patching file packages/SystemUI/res/values/colors.xml
patching file packages/SystemUI/res/values/strings.xml
patching file packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
root@evilisto-desktop:~/patch_test/frameworks/base#

You can find this patching method in first searching result when you type "how to use diff patch".
http://lmgtfy.com/?q=how+to+use+diff+patch

I don't think you are noob. But I'm not sure what you did to understand when you don't know how to use this patch.
 

Kayant

Senior Member
Jul 14, 2011
1,861
4,150
Like you said evilisto people should search if they don't know how to do something........ We are all here to learn and google makes it easy to do that :p...
P.s I have used almost all your awesome mods and i must say using a patch is a lot easier and faster and It works all the time compared to trial and error with smali editing..... I hope you use more patches in future for your mods......
Thanks again for sharing ^_^
 

locomain

Senior Member
Jul 24, 2011
275
231
Vorden
hi
i tried it made it
error error
can someone post a zip cwm zip who has it working on 4.0.4? or just the complete modded systemui
thnx!
 
E

ezcats

Guest
Like you said evilisto people should search if they don't know how to do something........ We are all here to learn and google makes it easy to do that :p...
P.s I have used almost all your awesome mods and i must say using a patch is a lot easier and faster and It works all the time compared to trial and error with smali editing..... I hope you use more patches in future for your mods......
Thanks again for sharing ^_^

i searched..do you have to be using linux? where do you cd to when you apple the patch?
 

Kayant

Senior Member
Jul 14, 2011
1,861
4,150
i searched..do you have to be using linux? where do you cd to when you apple the patch?

Yh here is what i did probably not the right way to do it by hey it worked for me :p

I Copied the patch to my home folder
Then I ran this sudo patch -p0 < Sense-4.0-Multitasking.patch
It made a folder called b i then went to the folder then i copied the files that where needed from my source folder into the b folder...... U may need to open the folder as admin(it's has root permissions) to do it can't remember excatly.......,
Then i ran sudo patch -p0 < Sense-4.0-Multitasking.patch and there we have it files where patched :) then i copied the nyandriod images frameworks/base/packages/systemUI/res/drawable-no dpi and the patched files to my source as well.... I then cd into my source folder ran source build/envsetup.sh chose my device then ran mmm frameworks/base and volia modded ^_^ ..... Hope it helps :D....
 
Last edited:
  • Like
Reactions: sffmandrake
E

ezcats

Guest
Try Git Bash
http://code.google.com/p/msysgit/downloads/list

Right click patch and choice "Git Bash" .. you can type the command there but still i'm gettin errors


yep..got an error

Yh here is what i did probably not the right way to do it by hey it worked for me :p

I Copied the patch to my home folder
Then I ran this sudo patch -p0 < Sense-4.0-Multitasking.patch
It made a folder called b i then went to the folder then i copied the files that where needed from my source folder into the b folder...... U may need to open the folder as admin(it's has root permissions) to do it can't remember excatly.......,
Then i ran sudo patch -p0 < Sense-4.0-Multitasking.patch and there we have it files where patched :) then i copied the nyandriod images frameworks/base/packages/systemUI/res/drawable-no dpi and the patched files to my source as well.... I then cd into my source folder ran source build/envsetup.sh chose my device then ran mmm frameworks/base and volia modded ^_^ ..... Hope it helps :D....


i don't have linux though...sooo... :(
 

Kayant

Senior Member
Jul 14, 2011
1,861
4,150
i don't have linux though...sooo... :([/QUOTE]

I think i saw a program for windows when i was searching...... search on google u will probably find one.....
 

heliumv2

Senior Member
Jul 26, 2008
95
5
we need a 720p (XHDPI) version for the galaxy nexus, can please somebody make that?
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 56
    -----------------------------------------------------------------------------
    v1.1 to v2.0
    - added thumbnail reflection thanks to D4rKn3sSyS and Neil Davies :)
    -----------------------------------------------------------------------------

    -----------------------------------------------------------------------------
    v1.0 to v1.1
    - removed all resources (png files) : for other screen size devices..
    - minor layout fixes.
    - added landscape layout.
    -----------------------------------------------------------------------------

    This mod is originally posted on Nexus S theme forum :

    [MOD] Sense 4.0 style Multitasking on Stock ICS

    Preview :

    AfkNN.png



    This mod is related to SystemUI.apk and framework-res.apk, so making universal version for all devices and all roms is impossible. So here I post my source code for other users.. :)

    -----------------------------------------------------------------------------

    * Caution : All values are (basically) for HDPI=WVGA devices *


    How to :
    1) Apply patch(diff).
    2) Compile.
    3) Done :)


    * diff v2.0 : Download

    Code:
    diff -rupN ./a/core/res/res/values/dimens.xml ./b/core/res/res/values/dimens.xml
    --- ./a/core/res/res/values/dimens.xml	2012-04-25 11:31:16.000000000 +0900
    +++ ./b/core/res/res/values/dimens.xml	2012-04-27 00:22:57.951903000 +0900
    @@ -19,9 +19,9 @@
     -->
     <resources>
         <!-- The width that is used when creating thumbnails of applications. -->
    -    <dimen name="thumbnail_width">120dp</dimen>
    +    <dimen name="thumbnail_width">168dp</dimen>
         <!-- The height that is used when creating thumbnails of applications. -->
    -    <dimen name="thumbnail_height">120dp</dimen>
    +    <dimen name="thumbnail_height">267dp</dimen>
         <!-- The standard size (both width and height) of an application icon that
              will be displayed in the app launcher and elsewhere. -->
         <dimen name="app_icon_size">48dip</dimen>
    diff -rupN ./a/packages/SystemUI/res/drawable/status_bar_recents_background.xml ./b/packages/SystemUI/res/drawable/status_bar_recents_background.xml
    --- ./a/packages/SystemUI/res/drawable/status_bar_recents_background.xml	2012-04-25 11:31:16.000000000 +0900
    +++ ./b/packages/SystemUI/res/drawable/status_bar_recents_background.xml	2012-04-26 19:18:32.766622000 +0900
    @@ -16,10 +16,11 @@
      * limitations under the License.
      */
     -->
    -<shape xmlns:android="http://schemas.android.com/apk/res/android">
    +<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
         <gradient name="status_bar_recents_background"
    -        android:startColor="#e6000000"
    -        android:endColor="#c0000000"
    -        android:angle="@integer/status_bar_recents_bg_gradient_degrees"
    +        android:type="radial"
    +        android:startColor="#ff4a4a4a"
    +        android:endColor="#ff080808"
    +        android:gradientRadius="400"
             />
     </shape>
    diff -rupN ./a/packages/SystemUI/res/layout/status_bar_no_recent_apps.xml ./b/packages/SystemUI/res/layout/status_bar_no_recent_apps.xml
    --- ./a/packages/SystemUI/res/layout/status_bar_no_recent_apps.xml	2012-04-25 11:31:16.000000000 +0900
    +++ ./b/packages/SystemUI/res/layout/status_bar_no_recent_apps.xml	2012-04-26 19:54:23.777459000 +0900
    @@ -32,5 +32,6 @@
             android:text="@string/status_bar_no_recent_apps"
             android:gravity="center_horizontal"
             android:layout_gravity="center"
    +        android:visibility="gone"
         />
     </FrameLayout>
    diff -rupN ./a/packages/SystemUI/res/layout-land/status_bar_recent_item.xml ./b/packages/SystemUI/res/layout-land/status_bar_recent_item.xml
    --- ./a/packages/SystemUI/res/layout-land/status_bar_recent_item.xml	2012-04-25 11:31:16.000000000 +0900
    +++ ./b/packages/SystemUI/res/layout-land/status_bar_recent_item.xml	2012-05-07 04:53:08.705255000 +0900
    @@ -22,55 +22,53 @@
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_height="match_parent"
         android:layout_width="wrap_content"
    -    android:paddingLeft="@dimen/status_bar_recents_item_padding"
    -    android:paddingRight="@dimen/status_bar_recents_item_padding">
    +    android:paddingRight="@dimen/status_bar_recents_item_padding"
    +    android:paddingLeft="@dimen/status_bar_recents_item_padding">
     
         <RelativeLayout android:id="@+id/recent_item"
             android:layout_gravity="center_vertical"
             android:layout_height="wrap_content"
             android:layout_width="wrap_content"
    -        android:paddingTop="@*android:dimen/status_bar_height">
    +        android:paddingTop="@*android:dimen/status_bar_height"
    +        android:layout_centerInParent="true">
     
             <FrameLayout android:id="@+id/app_thumbnail"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
    -            android:layout_alignParentLeft="true"
    -            android:layout_alignParentTop="true"
    -            android:layout_marginTop="@dimen/status_bar_recents_thumbnail_top_margin"
    -            android:layout_marginLeft="@dimen/status_bar_recents_thumbnail_left_margin"
    -            android:background="@drawable/recents_thumbnail_bg"
    -            android:foreground="@drawable/recents_thumbnail_fg"
    +            android:layout_centerInParent="true"
    +            android:background="#00000000"
    +            android:foreground="#00000000"
                 android:visibility="invisible">
                 <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"
    +                android:layout_width="120.0dip"
    +                android:layout_height="320.0dip"
    +                android:scaleType="centerInside"
                 />
             </FrameLayout>
     
             <ImageView android:id="@+id/app_icon"
    -            android:layout_width="wrap_content"
    +            android:layout_width="match_parent"
                 android:layout_height="wrap_content"
    -            android:layout_marginTop="@dimen/status_bar_recents_app_icon_top_margin"
    -            android:layout_marginLeft="@dimen/status_bar_recents_app_icon_left_margin"
    -            android:layout_alignParentLeft="true"
    -            android:layout_alignParentTop="true"
    -            android:maxWidth="@dimen/status_bar_recents_app_icon_max_width"
    -            android:maxHeight="@dimen/status_bar_recents_app_icon_max_height"
    +            android:gravity="center_horizontal"
    +            android:layout_marginTop="232.0dip"
    +            android:maxWidth="35dp"
    +            android:maxHeight="35dp"
                 android:scaleType="centerInside"
                 android:adjustViewBounds="true"
             />
     
             <TextView android:id="@+id/app_label"
    -            android:layout_width="@dimen/status_bar_recents_app_label_width"
    +            android:layout_width="match_parent"
                 android:layout_height="wrap_content"
    -            android:textSize="@dimen/status_bar_recents_app_label_text_size"
    -            android:fadingEdge="horizontal"
    -            android:fadingEdgeLength="@dimen/status_bar_recents_fading_edge_length"
    +            android:gravity="center_horizontal"
    +            android:textSize="12dip"
    +            android:fadingEdge="none"
    +            android:fadingEdgeLength="0.0dip"
                 android:scrollHorizontally="true"
    -            android:layout_alignLeft="@id/app_thumbnail"
    -            android:layout_below="@id/app_thumbnail"
    -            android:layout_marginTop="@dimen/status_bar_recents_text_description_padding"
    -            android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin"
    +            android:layout_below="@id/app_icon"
    +            android:layout_alignParentBottom="true"
    +            android:paddingTop="0.0dip"
    +            android:layout_marginTop="0.0dip"
                 android:singleLine="true"
                 android:ellipsize="marquee"
                 android:textColor="@color/status_bar_recents_app_label_color"
    @@ -80,12 +78,13 @@
                 android:layout_width="@dimen/status_bar_recents_app_label_width"
                 android:layout_height="wrap_content"
                 android:textSize="@dimen/status_bar_recents_app_description_text_size"
    -            android:fadingEdge="horizontal"
    -            android:fadingEdgeLength="@dimen/status_bar_recents_fading_edge_length"
    +            android:fadingEdge="none"
    +            android:fadingEdgeLength="0dip"
                 android:scrollHorizontally="true"
    -            android:layout_alignLeft="@id/app_thumbnail"
    +            android:layout_alignParentBottom="true"
    +            android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin"
                 android:layout_below="@id/app_label"
    -            android:layout_marginTop="@dimen/status_bar_recents_text_description_padding"
    +            android:layout_marginTop="3.0dip"
                 android:singleLine="true"
                 android:ellipsize="marquee"
             />
    diff -rupN ./a/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml ./b/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml
    --- ./a/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml	2012-04-25 11:31:16.000000000 +0900
    +++ ./b/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml	2012-04-27 14:05:59.391168000 +0900
    @@ -29,27 +29,33 @@
             android:background="@drawable/status_bar_recents_background"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
    -        android:layout_alignParentBottom="true"
    -        android:clipToPadding="false"
    -        android:clipChildren="false">
    -
    -        <com.android.systemui.recent.RecentsHorizontalScrollView android:id="@+id/recents_container"
    -            android:layout_width="wrap_content"
    -            android:layout_height="match_parent"
    -            android:layout_marginRight="@dimen/status_bar_recents_right_glow_margin"
    -            android:divider="@null"
    -            android:stackFromBottom="true"
    -            android:fadingEdge="horizontal"
    -            android:scrollbars="none"
    -            android:fadingEdgeLength="@dimen/status_bar_recents_fading_edge_length"
    -            android:layout_gravity="bottom|left"
    -            android:orientation="horizontal"
    -            android:clipToPadding="false"
    -            android:clipChildren="false">
    +        android:layout_centerVertical="true">
    +
    +        <ImageView
    + 	    android:gravity="center"
    +	    android:layout_width="match_parent"
    + 	    android:layout_height="match_parent"
    +	    android:layout_marginTop="0.0dip"
    +  	    android:src="@drawable/status_bar_recents_background"
    +        />
    +
    +        <com.android.systemui.recent.RecentsHorizontalScrollView
    +	    android:id="@+id/recents_container"
    +	    android:layout_gravity="bottom|left|center"
    +	    android:scrollbars="none"
    +	    android:fadingEdge="none"
    +	    android:fadingEdgeLength="0.0dip"
    +	    android:clipChildren="false"
    +	    android:clipToPadding="false"
    +    	    android:layout_width="match_parent"
    +	    android:layout_height="wrap_content"
    +	    android:layout_marginRight="0.0dip"
    +	    android:stackFromBottom="true"
    +	    android:divider="@null">
     
                 <LinearLayout android:id="@+id/recents_linear_layout"
    -                android:layout_width="wrap_content"
    -                android:layout_height="match_parent"
    +                android:layout_width="match_parent"
    +                android:layout_height="wrap_content"
                     android:orientation="horizontal"
                     android:clipToPadding="false"
                     android:clipChildren="false">
    @@ -57,6 +63,16 @@
     
             </com.android.systemui.recent.RecentsHorizontalScrollView>
     
    +	<TextView
    +	    android:textSize="18.0dip"
    +	    android:textColor="#ffe5e5e5"
    +	    android:gravity="center_horizontal"
    +	    android:layout_marginTop="10.0dip"
    +	    android:layout_width="match_parent"
    +	    android:layout_height="wrap_content"
    +	    android:text="@string/recent_apps_title"
    +	/>
    +
         </FrameLayout>
     
         <include layout="@layout/status_bar_no_recent_apps"
    diff -rupN ./a/packages/SystemUI/res/layout-port/status_bar_recent_item.xml ./b/packages/SystemUI/res/layout-port/status_bar_recent_item.xml
    --- ./a/packages/SystemUI/res/layout-port/status_bar_recent_item.xml	2012-04-25 11:31:16.000000000 +0900
    +++ ./b/packages/SystemUI/res/layout-port/status_bar_recent_item.xml	2012-05-07 04:31:12.435246000 +0900
    @@ -20,69 +20,62 @@
     
     <FrameLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
    -    android:layout_height="wrap_content"
    -    android:layout_width="match_parent"
    -    android:paddingTop="@dimen/status_bar_recents_item_padding"
    -    android:paddingBottom="@dimen/status_bar_recents_item_padding">
    +    android:layout_height="match_parent"
    +    android:layout_width="wrap_content"
    +    android:paddingRight="@dimen/status_bar_recents_item_padding"
    +    android:paddingLeft="@dimen/status_bar_recents_item_padding">
     
         <RelativeLayout android:id="@+id/recent_item"
    -        android:layout_gravity="center_horizontal"
    +        android:layout_gravity="center_vertical"
             android:layout_height="wrap_content"
    -        android:layout_width="wrap_content">
    +        android:layout_width="wrap_content"
    +        android:paddingTop="@*android:dimen/status_bar_height"
    +        android:layout_centerInParent="true">
     
    -        <TextView android:id="@+id/app_label"
    -            android:layout_width="@dimen/status_bar_recents_app_label_width"
    -            android:layout_height="wrap_content"
    -            android:textSize="@dimen/status_bar_recents_app_label_text_size"
    -            android:fadingEdge="horizontal"
    -            android:fadingEdgeLength="@dimen/status_bar_recents_fading_edge_length"
    -            android:scrollHorizontally="true"
    -            android:layout_alignParentLeft="true"
    -            android:layout_alignTop="@id/app_icon"
    -            android:paddingTop="2dp"
    -            android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin"
    -            android:singleLine="true"
    -            android:ellipsize="marquee"
    -            android:textColor="@color/status_bar_recents_app_label_color"
    -        />
             <FrameLayout android:id="@+id/app_thumbnail"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
    -            android:layout_alignParentTop="true"
    -            android:layout_toRightOf="@id/app_label"
    -            android:layout_marginLeft="@dimen/status_bar_recents_thumbnail_left_margin"
    -            android:background="@drawable/recents_thumbnail_bg"
    -            android:foreground="@drawable/recents_thumbnail_fg"
    +            android:layout_centerInParent="true"
    +            android:background="#00000000"
    +            android:foreground="#00000000"
                 android:visibility="invisible">
                 <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"
    +                android:paddingTop="60dip"
    +                android:layout_marginTop="30.0dip"
    +                android:layout_width="212.0dip"
    +                android:layout_height="455.0dip"
    +                android:scaleType="centerInside"
                 />
             </FrameLayout>
    -        <View android:id="@+id/recents_callout_line"
    -            android:layout_width="@dimen/status_bar_recents_app_label_width"
    -            android:layout_height="1dip"
    -            android:layout_alignParentLeft="true"
    -            android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin"
    -            android:layout_toLeftOf="@id/app_thumbnail"
    -            android:layout_below="@id/app_label"
    -            android:layout_marginRight="3dip"
    -            android:layout_marginTop="3dip"
    -            android:background="@drawable/recents_callout_line"
    -        />
     
             <ImageView android:id="@+id/app_icon"
    -            android:layout_width="wrap_content"
    +            android:layout_width="match_parent"
                 android:layout_height="wrap_content"
    -            android:layout_toRightOf="@id/app_label"
    -            android:layout_marginLeft="@dimen/status_bar_recents_app_icon_left_margin"
    -            android:layout_marginTop="@dimen/status_bar_recents_app_icon_top_margin"
    +            android:gravity="center_horizontal"
    +            android:layout_marginTop="405.0dip"
                 android:maxWidth="@dimen/status_bar_recents_app_icon_max_width"
                 android:maxHeight="@dimen/status_bar_recents_app_icon_max_height"
                 android:scaleType="centerInside"
                 android:adjustViewBounds="true"
             />
     
    +        <TextView android:id="@+id/app_label"
    +            android:layout_width="match_parent"
    +            android:layout_height="wrap_content"
    +            android:gravity="center_horizontal"
    +            android:textSize="@dimen/status_bar_recents_app_label_text_size"
    +            android:fadingEdge="none"
    +            android:fadingEdgeLength="0.0dip"
    +            android:scrollHorizontally="true"
    +            android:layout_below="@id/app_icon"
    +            android:layout_alignParentBottom="true"
    +            android:paddingTop="0.0dip"
    +            android:layout_marginTop="3.0dip"
    +            android:singleLine="true"
    +            android:ellipsize="marquee"
    +            android:textColor="@color/status_bar_recents_app_label_color"
    +        />
    +
             <TextView android:id="@+id/app_description"
                 android:layout_width="@dimen/status_bar_recents_app_label_width"
                 android:layout_height="wrap_content"
    @@ -90,10 +83,10 @@
                 android:fadingEdge="horizontal"
                 android:fadingEdgeLength="@dimen/status_bar_recents_fading_edge_length"
                 android:scrollHorizontally="true"
    -            android:layout_alignParentLeft="true"
    +            android:layout_alignParentBottom="true"
                 android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin"
    -            android:layout_below="@id/recents_callout_line"
    -            android:layout_marginTop="3dip"
    +            android:layout_below="@id/app_label"
    +            android:layout_marginTop="40.0dip"
                 android:singleLine="true"
                 android:ellipsize="marquee"
             />
    diff -rupN ./a/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml ./b/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml
    --- ./a/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml	2012-04-25 11:31:16.000000000 +0900
    +++ ./b/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml	2012-04-27 14:11:39.881175000 +0900
    @@ -29,31 +29,49 @@
             android:background="@drawable/status_bar_recents_background"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
    -        android:layout_alignParentBottom="true">
    +        android:layout_centerVertical="true">
     
    -        <com.android.systemui.recent.RecentsVerticalScrollView
    -            android:id="@+id/recents_container"
    -            android:layout_width="match_parent"
    -            android:layout_height="wrap_content"
    -            android:layout_marginRight="0dp"
    -            android:divider="@null"
    -            android:stackFromBottom="true"
    -            android:fadingEdge="vertical"
    -            android:scrollbars="none"
    -            android:fadingEdgeLength="@*android:dimen/status_bar_height"
    -            android:layout_gravity="bottom|left"
    -            android:clipToPadding="false"
    -            android:clipChildren="false">
    +        <ImageView
    +	    android:gravity="center"
    +	    android:layout_width="match_parent"
    +	    android:layout_height="match_parent"
    +	    android:layout_marginTop="0.0dip"
    +	    android:src="@drawable/status_bar_recents_background"
    +	/>
    +
    +        <com.android.systemui.recent.RecentsHorizontalScrollView
    +	    android:id="@+id/recents_container"
    +	    android:layout_gravity="bottom|left|center"
    +	    android:scrollbars="none"
    +	    android:fadingEdge="none"
    +	    android:fadingEdgeLength="0.0dip"
    +	    android:clipChildren="false"
    +	    android:clipToPadding="false"
    +    	    android:layout_width="match_parent"
    +	    android:layout_height="wrap_content"
    +	    android:layout_marginRight="0.0dip"
    +	    android:stackFromBottom="true"
    +	    android:divider="@null">
     
                 <LinearLayout android:id="@+id/recents_linear_layout"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
    -                android:orientation="vertical"
    +                android:orientation="horizontal"
                     android:clipToPadding="false"
                     android:clipChildren="false">
                 </LinearLayout>
     
    -        </com.android.systemui.recent.RecentsVerticalScrollView>
    +        </com.android.systemui.recent.RecentsHorizontalScrollView>
    +
    +	<TextView
    +	    android:textSize="20.0dip"
    +	    android:textColor="#ffe5e5e5"
    +	    android:gravity="center_horizontal"
    +	    android:layout_marginTop="45.0dip"
    +	    android:layout_width="match_parent"
    +	    android:layout_height="wrap_content"
    +	    android:text="@string/recent_apps_title"
    +	/>
     
         </FrameLayout>
     
    diff -rupN ./a/packages/SystemUI/res/values/colors.xml ./b/packages/SystemUI/res/values/colors.xml
    --- ./a/packages/SystemUI/res/values/colors.xml	2012-04-25 11:31:16.000000000 +0900
    +++ ./b/packages/SystemUI/res/values/colors.xml	2012-04-26 19:46:08.367467000 +0900
    @@ -22,8 +22,8 @@
         <drawable name="notification_item_background_color_pressed">#ff257390</drawable>
         <drawable name="ticker_background_color">#ff1d1d1d</drawable>
         <drawable name="status_bar_background">#ff000000</drawable>
    -    <drawable name="status_bar_recents_background_solid">#b3000000</drawable>
    -    <drawable name="status_bar_recents_app_thumbnail_background">#88000000</drawable>
    +    <drawable name="status_bar_recents_background_solid">#00000000</drawable>
    +    <drawable name="status_bar_recents_app_thumbnail_background">#00000000</drawable>
         <color name="status_bar_recents_app_label_color">#ffffffff</color>
         <drawable name="status_bar_notification_row_background_color">#ff090909</drawable>
         <drawable name="notification_header_bg">#FF000000</drawable>
    diff -rupN ./a/packages/SystemUI/res/values/config.xml ./b/packages/SystemUI/res/values/config.xml
    --- ./a/packages/SystemUI/res/values/config.xml	2012-04-25 11:31:16.000000000 +0900
    +++ ./b/packages/SystemUI/res/values/config.xml	2012-04-26 20:20:19.237457000 +0900
    @@ -27,7 +27,7 @@
     
         <!-- Whether recents thumbnails should stretch in both x and y to fill their
          ImageView -->
    -    <bool name="config_recents_thumbnail_image_fits_to_xy">false</bool>
    +    <bool name="config_recents_thumbnail_image_fits_to_xy">true</bool>
     
         <!-- Control whether status bar should distinguish HSPA data icon form UMTS
         data icon on devices -->
    diff -rupN ./a/packages/SystemUI/res/values/dimens.xml ./b/packages/SystemUI/res/values/dimens.xml
    --- ./a/packages/SystemUI/res/values/dimens.xml	2012-04-25 11:31:16.000000000 +0900
    +++ ./b/packages/SystemUI/res/values/dimens.xml	2012-04-26 20:31:54.317462000 +0900
    @@ -21,9 +21,9 @@
     
         <!-- Recent Applications parameters -->
         <!-- Upper width limit for application icon -->
    -    <dimen name="status_bar_recents_app_icon_max_width">48dp</dimen>
    +    <dimen name="status_bar_recents_app_icon_max_width">42dp</dimen>
         <!-- Upper height limit for application icon -->
    -    <dimen name="status_bar_recents_app_icon_max_height">48dp</dimen>
    +    <dimen name="status_bar_recents_app_icon_max_height">42dp</dimen>
     
         <!-- Size of application thumbnail -->
         <dimen name="status_bar_recents_thumbnail_width">164dp</dimen>
    diff -rupN ./a/packages/SystemUI/res/values/strings.xml ./b/packages/SystemUI/res/values/strings.xml
    --- ./a/packages/SystemUI/res/values/strings.xml	2012-04-25 11:31:16.000000000 +0900
    +++ ./b/packages/SystemUI/res/values/strings.xml	2012-04-30 10:53:24.049658000 +0900
    @@ -377,4 +377,8 @@
     
         <!-- Content description of the clear button in the notification panel for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
         <string name="accessibility_clear_all">Clear all notifications.</string>
    +
    +    <!-- for Sense 4.0 style multitasking mod -->
    +    <string name="recent_apps_title">Recent apps</string>
    +
     </resources>
    diff -rupN ./a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java ./b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
    --- ./a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java	2012-04-25 11:31:16.000000000 +0900
    +++ ./b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java	2012-05-07 04:30:21.215261000 +0900
    @@ -24,9 +24,17 @@ import android.content.Intent;
     import android.content.res.Configuration;
     import android.content.res.Resources;
     import android.graphics.Bitmap;
    +import android.graphics.drawable.BitmapDrawable;
     import android.graphics.Matrix;
     import android.graphics.Shader.TileMode;
    -import android.graphics.drawable.BitmapDrawable;
    +import android.graphics.Color;
    +import android.graphics.Canvas;
    +import android.graphics.LinearGradient;
    +import android.graphics.Paint;
    +import android.graphics.PorterDuffXfermode;
    +import android.graphics.Bitmap.Config;
    +import android.graphics.PorterDuff.Mode;
    +import android.graphics.Shader.TileMode;
     import android.net.Uri;
     import android.provider.Settings;
     import android.util.AttributeSet;
    @@ -402,7 +410,32 @@ public class RecentsPanelView extends Re
                 // Should remove the default image in the frame
                 // that this now covers, to improve scrolling speed.
                 // That can't be done until the anim is complete though.
    -            h.thumbnailViewImage.setImageBitmap(thumbnail);
    +            final int reflectionGap = 4;
    +            int width = thumbnail.getWidth();
    +            int height = thumbnail.getHeight();
    +	
    +            Matrix matrix = new Matrix();
    +            matrix.preScale(1, -1);
    +	
    +            Bitmap reflectionImage = Bitmap.createBitmap(thumbnail, 0, height * 2 / 3, width, height/3, matrix, false);	    
    +            Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + height/3), Config.ARGB_8888);
    +	      
    +            Canvas canvas = new Canvas(bitmapWithReflection);
    +            canvas.drawBitmap(thumbnail, 0, 0, null);
    +            Paint defaultPaint = new Paint();
    +            canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);
    +            canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);
    +	        
    +            Paint paint = new Paint(); 
    +            LinearGradient shader = new LinearGradient(0, thumbnail.getHeight(), 0, 
    +              bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, 
    +              TileMode.CLAMP); 
    +            paint.setShader(shader); 
    +            paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); 
    +            canvas.drawRect(0, height, width, 
    +              bitmapWithReflection.getHeight() + reflectionGap, paint); 
    +
    +            h.thumbnailViewImage.setImageBitmap(bitmapWithReflection);
     
                 // scale the image to fill the full width of the ImageView. do this only if
                 // we haven't set a bitmap before, or if the bitmap size has changed
    @@ -410,7 +443,7 @@ public class RecentsPanelView extends Re
                     h.thumbnailViewImageBitmap.getWidth() != thumbnail.getWidth() ||
                     h.thumbnailViewImageBitmap.getHeight() != thumbnail.getHeight()) {
                     if (mFitThumbnailToXY) {
    -                    h.thumbnailViewImage.setScaleType(ScaleType.FIT_XY);
    +                    h.thumbnailViewImage.setRotationY(25.0f);
                     } else {
                         Matrix scaleMatrix = new Matrix();
                         float scale = mThumbnailWidth / (float) thumbnail.getWidth();

    -----------------------------------------------------------------------------

    Thanks to brucekey in rootzwiki
    (this mod is based on his WEBAOKP mod.)

    -----------------------------------------------------------------------------
    -----------------------------------------------------------------------------

    and Thanks to D4rKn3sSyS and Neil Davies
    for image reflection source code.


    -----------------------------------------------------------------------------
    6
    add on to this mod (smali direct edit)

    open this smali:
    systemui\smali\com\android\systemui\recent\Recents PanelView.smali

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

    locate the end of the .methode a few lines after:
    .end method

    replace the selection under ".method private xxxxxxxxxxxxxx" and ".end method" Replace the entire code selected with this one!

    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

    recompil and voila ;)
    5
    Aaand here's a last landscape try from me:
    shot000004i.png


    XMLs:
    http://www.mediafire.com/download.php?88c7hvqm1ascs77
    4
    Is it possible to post smali for code. i would like to put this in MIUI but unfortunately source is not available.

    Here (added 2 lines, those surrounded by "###")

    SystemUI\com\android\systemui\recent\RecentsPanelView.smali

    Code:
        .line 433
        iget-object v2, p1, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView;
    
        sget-object v3, Landroid/widget/ImageView$ScaleType;->MATRIX:Landroid/widget/ImageView$ScaleType;
    
        invoke-virtual {v2, v3}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V
    
        .line 434
        iget-object v2, p1, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView;
    
        invoke-virtual {v2, v1}, Landroid/widget/ImageView;->setImageMatrix(Landroid/graphics/Matrix;)V
    	
    	###
    	const/high16 v3, 0x41a0
    
            invoke-virtual {v2, v3}, Landroid/widget/ImageView;->setRotationY(F)V
    	###
        goto :goto_2e
    .end method
    4
    evilisto, why didn't you fix landscape?
    I mean, you did all the hard work and you couldn't fix landscape? :p

    Here's a little try by me (not perfect, but I guess it's better than nothing):
    shot000003u.png


    And here are my landscape XMLs (I've also attached my portrait XMLs, so you can compare):
    http://www.mediafire.com/download.php?1wf7w7jwb4wh59f