Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

[MOD][HOWTO] Change ICS App Switcher to Windows Phone 7 Style

OP evilisto

18th March 2012, 07:17 AM   |  #1  
evilisto's Avatar
OP Senior Member
Thanks Meter: 2,349
 
486 posts
Join Date:Joined: Nov 2010
WP7(Mango?) app switcher is like this :




and i made similar thing by modifying ics app switcher layout.

preview :





flashable mod is originally posted in nexus s theme forum.
[MOD] Change ICS App Switcher to Windows Phone 7 Style

this mod is related to framework-res.apk and SystemUI.apk so making universal version for any devices is difficult. so i write this simple guide for other rom / device users.

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

* framework-res.apk

- /res/values/dimens.xml : change thumbnail size to..

Code:
    <dimen name="thumbnail_height">305.0dip</dimen>
    <dimen name="thumbnail_width">192.0dip</dimen>
these values are wvga devices only. if you have mdpi or xhdpi device, you have to adjust these values suitable to your screen size.


* SystemUI.apk

- /res/values/bools.xml
Code:
 
   <bool name="config_recents_thumbnail_image_fits_to_xy">true</bool>
- /res/values/drawables.xml
Code:
    <item type="drawable" name="status_bar_recents_background_solid">#ff33b1e1</item>
- /res/layout/status_bar_no_recent_apps.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:background="@drawable/status_bar_recents_background_solid" 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="@color/status_bar_recents_app_label_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" />
</FrameLayout>

- /res/layout-port/status_bar_recent_item.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:paddingLeft="@dimen/status_bar_recents_item_padding" android:paddingRight="@dimen/status_bar_recents_item_padding" android:layout_width="wrap_content" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <RelativeLayout android:layout_gravity="center_vertical" android:id="@id/recent_item" android:paddingTop="@android:dimen/status_bar_height" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true">
        <FrameLayout android:id="@id/app_thumbnail" android:background="@drawable/recents_thumbnail_bg" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:foreground="@drawable/recents_thumbnail_fg" android:layout_centerInParent="true">
            <ImageView android:id="@id/app_thumbnail_image" android:layout_width="192.0dip" android:layout_height="305.0dip" />
            <ImageView android:id="@id/app_icon" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/status_bar_recents_app_icon_left_margin" android:layout_marginTop="0.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_alignParentLeft="true" android:layout_alignParentTop="true" />
        </FrameLayout>
        <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="0.0dip" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_fading_edge_length" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="fill_parent" android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin" android:layout_marginTop="100.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_thumbnail" android:layout_alignLeft="@id/app_thumbnail" 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_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_alignLeft="@id/app_thumbnail" android:layout_alignParentBottom="true" />
    </RelativeLayout>
</FrameLayout>

- /res/layout-port/status_bar_recent_panel.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:layout_width="fill_parent" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <FrameLayout android:id="@id/recents_bg_protect" android:background="@drawable/status_bar_recents_background_solid" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true">
        <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>
    </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>

and you'd better to edit landscape layout too..

- /res/layout-land/status_bar_recent_item.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:paddingLeft="@dimen/status_bar_recents_item_padding" android:paddingRight="@dimen/status_bar_recents_item_padding" android:layout_width="wrap_content" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <RelativeLayout android:layout_gravity="center_vertical" android:id="@id/recent_item" android:paddingTop="@android:dimen/status_bar_height" android:layout_width="wrap_content" android:layout_height="wrap_content">
        <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:layout_marginTop="@dimen/status_bar_recents_thumbnail_top_margin" android:foreground="@drawable/recents_thumbnail_fg" android:layout_alignParentLeft="true" android:layout_alignParentTop="true">
            <ImageView android:id="@id/app_thumbnail_image" android:layout_width="115.0dip" android:layout_height="183.0dip" />
        </FrameLayout>
        <ImageView android:id="@id/app_icon" android:visibility="gone" 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_alignParentLeft="true" android:layout_alignParentTop="true" />
        <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:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_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="@dimen/status_bar_recents_text_description_padding" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_thumbnail" android:layout_alignLeft="@id/app_thumbnail" />
        <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_fading_edge_length" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="wrap_content" android:layout_marginTop="@dimen/status_bar_recents_text_description_padding" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_label" android:layout_alignLeft="@id/app_thumbnail" />
    </RelativeLayout>
</FrameLayout>

- /res/layout-land/status_bar_recent_panel.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:layout_width="fill_parent" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <FrameLayout android:id="@id/recents_bg_protect" android:background="@drawable/status_bar_recents_background" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true">
        <com.android.systemui.recent.RecentsHorizontalScrollView android:layout_gravity="bottom|left|center" android:orientation="horizontal" android:id="@id/recents_container" android:scrollbars="none" android:fadingEdge="none" android:fadingEdgeLength="0.0dip" 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>
    </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>
-----------------------------------------------------------------------------

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

-----------------------------------------------------------------------------
Last edited by evilisto; 29th March 2012 at 01:54 PM. Reason: clean up
The Following 68 Users Say Thank You to evilisto For This Useful Post: [ View ]
18th March 2012, 11:16 AM   |  #2  
Mazda's Avatar
Recognized Developer
Flag Milton, Florida ✖✖✖✖✖✖✖✖✖✖
Thanks Meter: 10,408
 
4,729 posts
Join Date:Joined: Oct 2008
More
Looks good bro!! I hope you don't mind BUT I put this mod in my thread over in the EVO section. I gave you full credit for this MOD but I just wanted to share it with my peeps over there.....THANKS AGAIN for everything that you do in the Android community!
18th March 2012, 08:58 PM   |  #3  
baliriot's Avatar
Senior Member
Flag Shah Alam
Thanks Meter: 266
 
744 posts
Join Date:Joined: Nov 2010
More
Thumbs up
beautiful...
19th March 2012, 07:41 PM   |  #4  
Senior Member
Flag Matrand
Thanks Meter: 22
 
427 posts
Join Date:Joined: Feb 2009
More
Doesn't work :(
I am unable to decompile and compile with apktool, apk manager and APK multitool.
Can I upload the framework-res.apk and systemui.apk and someone do it for me?
It might be something about Windows 8 that the sdk doesn't like
19th March 2012, 07:59 PM   |  #5  
Senior Member
Thanks Meter: 23
 
172 posts
Join Date:Joined: Nov 2011
More
Hi, is there any way how to make launcher show up in this taskswitcher? Thanks
19th March 2012, 10:04 PM   |  #6  
carvajaljn's Avatar
Senior Member
En algun lugar de mexico
Thanks Meter: 22
 
227 posts
Join Date:Joined: May 2011
More
can you port for samsung galaxy s2 please
20th March 2012, 03:16 AM   |  #7  
rashid.fairus's Avatar
Senior Member
Flag Klang
Thanks Meter: 232
 
1,065 posts
Join Date:Joined: Dec 2011
More
nice!!!

Sent from my LT18i
20th March 2012, 03:31 AM   |  #8  
cooladityarai's Avatar
Senior Member
Thanks Meter: 69
 
314 posts
Join Date:Joined: Jul 2011
More
I will really love to have this mod....but can anyone tell me plz what will be the values for qvga screen....????
Thanks

Sent from my GT-I5500 using Tapatalk
20th March 2012, 07:47 PM   |  #9  
Senior Member
Flag Matrand
Thanks Meter: 22
 
427 posts
Join Date:Joined: Feb 2009
More
Please?
Could someone compile these two for me?
http://www.mediafire.com/download.php?1cr5p09pxcyamw7

Made it work after a while. is there a way to make the thumbnail look less blurry?
Last edited by perern; 20th March 2012 at 09:25 PM. Reason: Finally made it
21st March 2012, 11:33 PM   |  #10  
netwokz's Avatar
Senior Member
Flag Phoenix, AZ
Thanks Meter: 314
 
884 posts
Join Date:Joined: Jul 2010
More
evilisto, is there anyway to move the text for the pages down? I resized my pages because of my screen resolution(540x960). But as you can see they are not below the pages. Also can you change the color of the text? Thanks for the write up, I like the a lot all ready.
Last edited by netwokz; 21st March 2012 at 11:37 PM. Reason: Edit pic upload

Post Reply Subscribe to Thread

Tags
ics app switcher multitask
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes