[MOD] [LIH/LJ1/LJ2/LJ4/LJ5/LK4/LKC deodex] back/menu long press kills foreground app

d8389

Senior Member
Feb 11, 2010
848
813
0
Thanks to Sorg, Poppuri, Pako, Wanam.


2 level reboot menu from Wanam also included.

The mod actually developed by sorg and implemented into poppuri ROM with 2 another mods. One of them is too complicated idnd changes whole logic of hard buttons behavior. I just separated it from another ones.

Warning:
Installing of this mod will:
1. Remove another hard keys related mods like volume long press etc.
2. Remove old TV effect.
I dislike this mods, so they are not implemented.
3. Replace power menu with one from WanamLite ROM.

If you need tis mods, please ask autors of mod or ROM for implementing this one or do it yourself.



v2 Update.
Always vibrate, also if nothing killed.
Kills launchers.

Excluded App list:
com.android.providers.applications
com.sec.android.app.clockpackage
com.sec.android.widgetapp.alarmclock
com.sec.phone
com.android.settings
com.android.defcontainer
com.android.contacts
com.sec.android.app.factorymode

v3 - Will not kill launchers, but always provide feedback
 

Attachments

Last edited:

d8389

Senior Member
Feb 11, 2010
848
813
0
To implement into another ROM/file:

1. Decompile android.policy.jar (both from attachment and from your ROM).
2. Copy PhoneWindowManager$BackLongPress.smali into
\android.policy.jar.out\com\android\internal\policy\impl\
3. Merge changes from \android.policy.jar.out\com\android\internal\policy\impl\PhoneWindowManager.smali to your file.
You can use original file from LIH ROM to find differences.
4. Recompile.
 
Last edited:

zenosteam

Senior Member
Jan 18, 2011
1,675
197
0
oran
Work on hyper light DLJ1 1.1.5
finally I don't need to install jkay
Tap talk killed now with kill back key:D

Envoyé depuis mon GT-I9300 avec Tapatalk
 
  • Like
Reactions: j0ep0

androidphone2012

Senior Member
Feb 11, 2012
385
410
0
To implement into another ROM/file:

1. Decompile android.policy.jar (both from attachment and from your ROM).
2. Copy PhoneWindowManager$BackLongPress.smali into
\android.policy.jar.out\com\android\internal\policy\impl\
3. Merge changes from \android.policy.jar.out\com\android\internal\policy\impl\PhoneWindowManager.smali to your file.
You can use original file from LIH ROM to find differences.
4. Recompile.
Plz give us the guide about "the changes of PhoneWindowManager.smali"
 

d8389

Senior Member
Feb 11, 2010
848
813
0
Plz give us the guide about "the changes of PhoneWindowManager.smali"

You should add

Code:
.field private final mBackLongPress:Ljava/lang/Runnable;

.field public mBackLongPressed:I
somewhere in
# instance fields
---
Code:
   new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$BackLongPress;

    invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$BackLongPress;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V

    iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPress:Ljava/lang/Runnable;
in
Code:
 .method public constructor <init>()V
i do it in another similar group
---

in
Code:
.method public interceptKeyBeforeDispatching(Landroid/view/WindowManagerPolicy$WindowState;Landroid/view/KeyEvent;I)J
I increased number of registers by 1 (not sure it's necessary)

and after something like
Code:
    const-string v41, "RemoteException when showing recent apps"

    move-object/from16 v0, v40

    move-object/from16 v1, v41

    invoke-static {v0, v1, v10}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    goto :goto_521

    .line 3110
    .end local v10           #e:Landroid/os/RemoteException;

     :cond_532
add
Code:
    const/16 v40, 0x4

    move/from16 v0, v21

    move/from16 v1, v40

    if-ne v0, v1, :cond_569

    .line 2281
    if-eqz v9, :cond_556

    if-nez v30, :cond_55f

    move-object/from16 v0, p0

    const v1, 0x0

    iput v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPressed:I

    if-nez v22, :cond_569

    iget-object v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPress:Ljava/lang/Runnable;

    iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;

    invoke-static {}, Landroid/view/ViewConfiguration;->getGlobalActionKeyTimeout()J

    move-result-wide v2

    const-wide/16 v4, 0x5

    mul-long/2addr v2, v4

    invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z

    goto :goto_569

    :cond_556
    move-object/from16 v0, p0

    iget-object v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPress:Ljava/lang/Runnable;

    iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;

    invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V

    :cond_55f
    move-object/from16 v0, p0

    iget v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPressed:I

    if-eqz v1, :cond_569

    const-wide/16 v40, -0x1

    goto/16 :goto_ad

    :cond_569
    :goto_569
check also for conflicting goto & cond
 
Last edited:
  • Like
Reactions: leamoor and anbech

androidphone2012

Senior Member
Feb 11, 2012
385
410
0
You should add
Code:
.field private static final LONG_PRESS_TIMEOUT:I = 0x190
somewhere in
# static fields
---
Code:
.field private final mBackLongPress:Ljava/lang/Runnable;

.field public mBackLongPressed:I
somewhere in
# instance fields
---
Code:
   new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$BackLongPress;

    invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$BackLongPress;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V

    iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPress:Ljava/lang/Runnable;
in
Code:
 .method public constructor <init>()V
i do it in another similar group
---

in
Code:
.method public interceptKeyBeforeDispatching(Landroid/view/WindowManagerPolicy$WindowState;Landroid/view/KeyEvent;I)J
I increased number of registers by 1 (not sure it's necessary)

and after something like
Code:
    const-string v41, "RemoteException when showing recent apps"

    move-object/from16 v0, v40

    move-object/from16 v1, v41

    invoke-static {v0, v1, v10}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    goto :goto_521

    .line 3110
    .end local v10           #e:Landroid/os/RemoteException;
    :cond_532
add
Code:
    const/16 v40, 0x4

    move/from16 v0, v21

    move/from16 v1, v40

    if-ne v0, v1, :cond_569

    .line 2281
    if-eqz v9, :cond_556

    if-nez v30, :cond_55f

    move-object/from16 v0, p0

    const v1, 0x0

    iput v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPressed:I

    if-nez v22, :cond_569

    iget-object v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPress:Ljava/lang/Runnable;

    iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;

    invoke-static {}, Landroid/view/ViewConfiguration;->getGlobalActionKeyTimeout()J

    move-result-wide v2

    const-wide/16 v4, 0x5

    mul-long/2addr v2, v4

    invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z

    goto :goto_569

    :cond_556
    move-object/from16 v0, p0

    iget-object v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPress:Ljava/lang/Runnable;

    iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;

    invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V

    :cond_55f
    move-object/from16 v0, p0

    iget v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPressed:I

    if-eqz v1, :cond_569

    const-wide/16 v40, -0x1

    goto/16 :goto_ad

    :cond_569
    :goto_569
check also for conflicting goto & cond
Thanks, but PhoneWindowManager.smali in Nexus S differs from SGS III :( Could you give me some tips?
 

Attachments

0semaj0

Senior Member
Oct 4, 2010
342
57
0
Auckland
Thanks to Sorg, Poppuri, Pako, Wanam.


2 level reboot menu from Wanam also included.

The mod actually developed by sorg and implemented into poppuri ROM with 2 another mods. One of them is too complicated idnd changes whole logic of hard buttons behavior. I just separated it from another ones.
also working on CheckROM 5.5 DLIB!