[MOD][v2.0] Sense 4.0 style Multitasking (IMM76D / AOKP M5 / CM9 20120521)

Search This thread

evilisto

Senior Member
Nov 26, 2010
486
2,318
*Updated to v2.0 :)

Preview :

AfkNN.png


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

Download v2.0 :

* for GSM Nexus S

- Stock Deodexed IMM76D : http://www.mediafire.com/?6rhhktkubdiy482
- AOKP Milestone 5 : http://www.mediafire.com/?k35yv1s9ib6pyln
- CM9 nightly 20120521 : http://www.mediafire.com/?qnuu9bm7yy8jer3

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

Guide (source diff) v2.0 :

[GUIDE] Sense 4.0 style Multitasking on Stock ICS

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

Changelog :

Code:
[B]v2.0[/B]
- Added thumbnail reflection thanks to [B][COLOR="Blue"]D4rKn3sSyS[/COLOR][/B] and [B][COLOR="blue"]Neil Davies[/COLOR][/B]

[B]v1.1[/B]
- Minor layout fixes.
- Added landscape layout.

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

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

-----------------------------------------------------------------------------
 
Last edited:

Shadow-Nexus

Senior Member
May 13, 2011
2,435
500
Phoenix
no.... and sorry AOKP rom users...:eek: I don't have much time to compile this mod for each roms, so I compiled stock AOSP version only and made cm9 and pete version using that. this is not much difficult because all these roms have same "recent apps" source code... but AOKP rom's source code is little different because of its horizontal(WebOS style) app switcher option. so to make AOKP version, i think compiled from source code is better than editing smali. (mainly because i don't know much about smali editing :eek: :eek:...)

but i think... if many users requested this, they can easily include this mod in their rom as another app switcher option..

anyway, i'll post source diff soon so you can easily compile aokp version yourself. :)

Ok cool you should show roman from the aokp team your mods so he can include them in aokp
 

albedebbi

Senior Member
Nov 3, 2008
294
70
This is the best and beautiful mod that I ever flashed! Thanks man ;)

Inviato dal mio Nexus S usando Tapatalk
 

JohnCorleone

Senior Member
Dec 19, 2010
16,188
5,864
Whittier,CA
I went ahead and tested NS4G version. It does work well but tiles aren't tilted unless it just looks that way from the video

Sent from my Nexus S 4G using xda premium
 

Attachments

  • uploadfromtaptalk1333966784967.jpg
    uploadfromtaptalk1333966784967.jpg
    24.8 KB · Views: 3,635
  • uploadfromtaptalk1333966799264.jpg
    uploadfromtaptalk1333966799264.jpg
    16.2 KB · Views: 3,634
Last edited:

JohnCorleone

Senior Member
Dec 19, 2010
16,188
5,864
Whittier,CA
Sent from my Nexus S 4G using Tapatalk 2 Beta-5
 

Attachments

  • uploadfromtaptalk1333967033683.jpg
    uploadfromtaptalk1333967033683.jpg
    46.3 KB · Views: 3,654
  • uploadfromtaptalk1333967049669.jpg
    uploadfromtaptalk1333967049669.jpg
    32.6 KB · Views: 3,901

Imppy

Senior Member
Sep 29, 2009
2,166
154
Would this work on roscala from? Since it is very similar to bug less?

Sent from my Nexus S using Tapatalk
 

MrDrumngun

Senior Member
May 24, 2011
451
24
I flashed the NS4G version for Pete's figuring it would work since BB is practically stock. No dice. Sent me into a bootloop. Darn... It would get stuck on the screen where it's trying to update all the apps and it stops.
 

songyi_lsy

Member
Sep 28, 2011
15
0
Hi, i just flashed the gsm stock imm76d version on my i9020t. The tiles aren't tilted as well. Not sure if its just me though. Great work btw! :)
 

Top Liked Posts

  • There are no posts matching your filters.
  • 39
    *Updated to v2.0 :)

    Preview :

    AfkNN.png


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

    Download v2.0 :

    * for GSM Nexus S

    - Stock Deodexed IMM76D : http://www.mediafire.com/?6rhhktkubdiy482
    - AOKP Milestone 5 : http://www.mediafire.com/?k35yv1s9ib6pyln
    - CM9 nightly 20120521 : http://www.mediafire.com/?qnuu9bm7yy8jer3

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

    Guide (source diff) v2.0 :

    [GUIDE] Sense 4.0 style Multitasking on Stock ICS

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

    Changelog :

    Code:
    [B]v2.0[/B]
    - Added thumbnail reflection thanks to [B][COLOR="Blue"]D4rKn3sSyS[/COLOR][/B] and [B][COLOR="blue"]Neil Davies[/COLOR][/B]
    
    [B]v1.1[/B]
    - Minor layout fixes.
    - Added landscape layout.

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

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

    -----------------------------------------------------------------------------
    5
    update

    AOKP build 31 version is added.. :)
    3
    smali edit for reflection (add on for this mod)

    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 ;)
    2
    updated to v1.1

    This version include some minor layout fixes and proper landscape layout. :)
    (More details and patch download is here : http://xdaforums.com/showpost.php?p=25507518&postcount=71)

    i9HL9.png


    And AOKP and CM9 version is updated too..
    (Milestone 5 and nightly 20120429)
    2
    Something you might want to add: Kill-All-Button.
    Not sure if this takes you too far off "stock" sense but just wanted to mention it. It maybe needs some nicer design though :)
    https://github.com/IceColdSandwich/...mmit/cfba7e4e20fa29abfded7ae1ee754917820bda82
    https://github.com/IceColdSandwich/...mmit/4ffddf7b1b8e8513ff43e32ea808a480ba20c49a