Related
Hi guys, i have noticed that most people here in order to disable battery Full/Low sound notification just delete these files:
-system/media/audio/ui/TW_Battery_caution.ogg
-system/media/audio/ui/TW_Low_Battery.ogg
Well this is not the right way to do it, because the vibration is still here to wake us up while sleeping
I decided to share this simple mod to avoid this inconvenience!
How to (for dev)
Decompile SystemUI.apk
Open with your favourite Text Editor this file: smali\com\android\systemui\statusbar\policy\StatusBarPolicy.smali
search for this method signature: .method private onBatteryLow(Landroid/content/IntentV
The following code will disable Dialog popup for low battery warning (if you don't want to disable it but just sound and vibration then leave this function as it is)
Change code from
Code:
.method private onBatteryLow(Landroid/content/Intent;)V
.locals 0
.parameter "intent"
.prologue
.line 985
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->showLowBatteryWarning()V
.line 990
return-void
.end method
to
Code:
.method private onBatteryLow(Landroid/content/Intent;)V
.locals 0
.parameter "intent"
.prologue
return-void
.line 985
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->showLowBatteryWarning()V
.line 990
return-void
.end method
Now to disable Sound and Vibration notification search for this method signature: .method private playTone(Landroid/net/UriV
Edit code from
Code:
.method private playTone(Landroid/net/Uri;)V
.locals 5
.parameter
.prologue
const-string v4, "StatusBarPolicy"
.line 1180
const-string v0, "StatusBarPolicy"
...
...
...
to
Code:
.method private playTone(Landroid/net/Uri;)V
.locals 5
.parameter
.prologue
return-void
const-string v4, "StatusBarPolicy"
.line 1180
const-string v0, "StatusBarPolicy"
...
...
...
That's it! Recompile apk and you can sleep deeply
In addition it is possible to leave it as an option! I got it working following the IDEA behind JKAY theme settings application! (big thanks to Jkay)
If you'd like to get sound back, you can create a folder "battery_SOUND_ON" in some places for this example i used this path: /sdcard/Revolution/battery_SOUND_ON (if you don't want sound just delete or rename this folder)
Now we can modify smali code as following:
Code:
.method private playTone(Landroid/net/Uri;)V
.locals 5
.parameter
.prologue
new-instance v0, Ljava/io/File;
const-string v1, "/sdcard/Revolution/battery_SOUND_ON"
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :goto_1
const-string v4, "StatusBarPolicy"
.line 1180
const-string v0, "StatusBarPolicy"
...
...
...
"goto_1" label if followed by return-void which means that if this folder does not exists this method will return straight away, if this folder exists then the normal code will be executed!
Note:
This mod will also display battery full charge icon on the status bar when the charge is completed!
so could any dev make a mod to enable to battery full notifacations and sounds and vibrations??
would be handy to have one in the kitchen for your rom leo so peeps can either have it or not have it etc
it is another way to customise the device as well which is always good
buxz777 said:
so could any dev make a mod to enable to battery full notifacations and sounds and vibrations??
would be handy to have one in the kitchen for your rom leo so peeps can either have it or not have it etc
it is another way to customise the device as well which is always good
Click to expand...
Click to collapse
Yes it is also possible to leave it as an option, i am testing it now and if it works i will update the OP!
\EDIT
It is working, OP has been updated!
Yeah, working great! Allways great thing when user can decide whether use it or not.
Thanks LeoMar!
fisrt off thanks alot about the grate MOD
but can i use it only with LOW battery?? and keep the notification when the battery is full
KinG_Ruin said:
fisrt off thanks alot about the grate MOD
but can i use it only with LOW battery?? and keep the notification when the battery is full
Click to expand...
Click to collapse
\EDIT
Yes it is possible of course!
1)Modify method "private onBatteryLow(Landroid/content/Intent; )V" as shown to the OP.
2)Don't change code (leave the original code) for this method ".method private playTone(Landroid/net/Uri; )V"
In this way you will only disable Low battery notification Dialod + Sound
thanks alot dude
it works fine, keep it up
edit:-
when i tried to edit another ROM i got this code
Code:
.method private onBatteryLow(Landroid/content/Intent;)V
[COLOR="Red"][B] .registers 2
.parameter "intent"[/B][/COLOR]
.prologue
.line 985
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->showLowBatteryWarning()V
.line 990
return-void
.end method
so is it save to replace it with
Code:
.method private onBatteryLow(Landroid/content/Intent;)V
[COLOR="Red"][B] .locals 0
.parameter "intent"[/B][/COLOR]
.prologue
return-void
.line 985
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->showLowBatteryWarning()V
.line 990
return-void
.end method
KinG_Ruin said:
thanks alot dude
it works fine, keep it up
edit:-
when i tried to edit another ROM i got this code
Code:
.method private onBatteryLow(Landroid/content/Intent;)V
[COLOR="Red"][B] .registers 2
.parameter "intent"[/B][/COLOR]
.prologue
.line 985
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->showLowBatteryWarning()V
.line 990
return-void
.end method
so is it save to replace it with
Code:
.method private onBatteryLow(Landroid/content/Intent;)V
[COLOR="Red"][B] .locals 0
.parameter "intent"[/B][/COLOR]
.prologue
return-void
.line 985
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->showLowBatteryWarning()V
.line 990
return-void
.end method
Click to expand...
Click to collapse
It's not safe, therefore just add "return-void" after .prologue don't change anithing else!
hi, thanks for sharing, works great.
one thing...
when i use this code:
.method private playTone(Landroid/net/UriV
.locals 5
.parameter
.prologue
new-instance v0, Ljava/io/File;
const-string v1, "/sdcard/Revolution/battery_SOUND_ON"
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/StringV
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :goto_1
const-string v4, "StatusBarPolicy"
.line 1180
const-string v0, "StatusBarPolicy"
compiling classes.dex gives me an error "goto_1" not specified.
i am on kh3, can you tell me where to go?
methux
LeoMar75 said:
It's not safe, therefore just add "return-void" after .prologue don't change anithing else!
Click to expand...
Click to collapse
I love u
thanks alot dude, it works fine
juberg said:
hi, thanks for sharing, works great.
one thing...
when i use this code:
.method private playTone(Landroid/net/UriV
.locals 5
.parameter
.prologue
new-instance v0, Ljava/io/File;
const-string v1, "/sdcard/Revolution/battery_SOUND_ON"
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/StringV
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :goto_1
const-string v4, "StatusBarPolicy"
.line 1180
const-string v0, "StatusBarPolicy"
compiling classes.dex gives me an error "goto_1" not specified.
i am on kh3, can you tell me where to go?
methux
Click to expand...
Click to collapse
You should find a label followed by return-void then modify
Code:
if-eqz v0, :goto_1
to the correct label!
Pls quote your complete function code if you need help!
there are many goto´s
which part of the code do you need for helping me out?
The whole StatusBarPolicy.smali or just the part from
.method private playTone(Landroid/net/UriV?
thanks
juberg said:
there are many goto´s
which part of the code do you need for helping me out?
The whole StatusBarPolicy.smali or just the part from
.method private playTone(Landroid/net/UriV?
thanks
Click to expand...
Click to collapse
Just that method.
Basicly you want to find goto or cond what will follow code "return-void"
For example in my .method private playTone it looks like this:
Code:
invoke-virtual {v0, v2, v1}, Landroid/app/NotificationManager;->notify(ILandroid/app/Notification;)V
.line 1204
:cond_42
:goto_42
return-void
So in that case it would be that goto_42
that was fast.
ok, got it...
thanks
Could someone upload the systemUI.apk with this mod?
celiocalves said:
Could someone upload the systemUI.apk with this mod?
Click to expand...
Click to collapse
SystemUI.apk can be posted because it's not generic... SystemUI.apk is rensponsible for status bar, Quick toggle icons, edt tweaks support, jkay support...
There are plenty of version depending on the theme and the mod you are using!
LeoMar75 said:
SystemUI.apk can be posted because it's not generic... SystemUI.apk is rensponsible for status bar, Quick toggle icons, edt tweaks support, jkay support...
There are plenty of version depending on the theme and the mod you are using!
Click to expand...
Click to collapse
I didn't know that! :/
Thanks for the explanation!
thanks for the tutorial, i am having issue compiling this. i lose my status bar every time.
Leo,
Thank you for the tutorial. Here's how the method looks on the SGS2 Skyrocket for AT&T:
Code:
.method private playTone(Landroid/net/Uri;Z)V
.locals 5
.parameter
.parameter
.prologue
const-string v2, "playTone() - "
const-string v3, "audio"
const-string v4, "StatusBarPolicy"
.line 1212
const-string v0, "StatusBarPolicy"
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "playTone() - "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v4, v0}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 1213
Not sure where I should add the "return-void" in this snippet, or if I need something else. Let me know!
How do I disable low and full battery sounds on Ics? thank you!
Hi there, since i'm on Xperia Ray but the devs is not many there, i think i'll post this on Arc's.
My Suspicion is that SE already had embed the Rotation Animation, but apparently turned off now. Why can i say that?
1. In android.policy\com\android\internal\policy\impl\PhoneWindowManager.smali there is a flag called fancy_rotation_anim. The code is like this:
Code:
.line 631
const-string v12, "fancy_rotation_anim"
const/4 v13, 0x0
invoke-static {v8, v12, v13}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v12
if-eqz v12, :cond_f0
const/16 v12, 0x80
:goto_29
iput v12, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mFancyRotationAnimation:I
2. in android.policy\com\android\internal\policy\impl\PhoneWindowManager$MyOrientationListener.smali there's a code like this:
Code:
# virtual methods
.method public onOrientationChanged(I)V
.registers 5
.parameter "rotation"
.prologue
.line 365
:try_start_0
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mWindowManager:Landroid/view/IWindowManager;
const/4 v1, 0x0
iget-object v2, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
[B] iget v2, v2, Lcom/android/internal/policy/impl/PhoneWindowManager;->mFancyRotationAnimation:I[/B]
invoke-interface {v0, p1, v1, v2}, Landroid/view/IWindowManager;->setRotation(IZI)V
:try_end_c
.catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_c} :catch_d
.line 371
:goto_c
return-void
.line 367
:catch_d
move-exception v0
goto :goto_c
.end method
Now i had a modified Settings.apk to insert Setting$System config named "fancy_rotation_anim" when the Animation is updated. But unfortunately it doesn't do anything. Can any devs that's more experienced than me can investigate this? Thanks
And sorry if this thread has existed before. If yes, please mod close this thread thanks.
cm7 latest version has this fancy rotation animation like ics,i already search all over internet for this thing but they said its not available for gb,just for ics,and i dont know how cm7 has this(really shock me),maybe you can ask cm's dev for an answer,or maybe you can look inside cm7 for little clue on how they do it..
Sent from my LT18i
try this
hey mate try this
change this part
Code:
.line 631
const-string v12, "fancy_rotation_anim"
const/4 v13, 0x0
invoke-static {v8, v12, v13}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v12
[B]if-eqz v12, :cond_f0[/B]
const/16 v12, 0x80
:goto_29
to read this
(remove the part i bolded above)
Code:
.line 631
const-string v12, "fancy_rotation_anim"
const/4 v13, 0x0
invoke-static {v8, v12, v13}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v12
const/16 v12, 0x80
:goto_29
that bypasses the check and (i think) enables the animation (if it is there)
it could cause a crash if the rest of the animation is not there.
if it does crash grab the log output and post it here.
i'll take a look.
rashid.fairus said:
cm7 latest version has this fancy rotation animation like ics,i already search all over internet for this thing but they said its not available for gb,just for ics,and i dont know how cm7 has this(really shock me),maybe you can ask cm's dev for an answer,or maybe you can look inside cm7 for little clue on how they do it..
Sent from my LT18i
Click to expand...
Click to collapse
It uses another libsurfinger and libsurfinger-client which support that type of animation. In SS phone, just copy those libs and it works.
The new Motoblur has it, Sense 3 has it, Samsung has it and CM7 has it. There must be a way to get it. =)
pvyParts said:
hey mate try this
change this part
Code:
.line 631
const-string v12, "fancy_rotation_anim"
const/4 v13, 0x0
invoke-static {v8, v12, v13}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v12
[B]if-eqz v12, :cond_f0[/B]
const/16 v12, 0x80
:goto_29
to read this
(remove the part i bolded above)
Code:
.line 631
const-string v12, "fancy_rotation_anim"
const/4 v13, 0x0
invoke-static {v8, v12, v13}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v12
const/16 v12, 0x80
:goto_29
that bypasses the check and (i think) enables the animation (if it is there)
it could cause a crash if the rest of the animation is not there.
if it does crash grab the log output and post it here.
i'll take a look.
Click to expand...
Click to collapse
Hi, thanks for that. Actually I already tried to alter settings.apk so it store fancy_rotate_anim when animation setting is set. In the logcat the window manager does report that animflags is set to 128 (0x80) like the one set above. But nothing happens.
Sent from my ST18i using XDA App
silveraero said:
It uses another libsurfinger and libsurfinger-client which support that type of animation. In SS phone, just copy those libs and it works.
Click to expand...
Click to collapse
One question, what is SS? Samsung? :-/
Sent from my ST18i using XDA App
Interesting thing I found here regarding Orientation
I grabbed PhoneWindowManager$MyOrientationListener.smali file from HTC android.policy.jar on 2.3.4 and Compared it with Sony SE.. They are mostly Identical but some Lines missing and slightly changed numbers in HTC's file..
In SE its Like This
(Check the BOLD RED Lines..they are missing or changed in HTC's file)
Code:
# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/PhoneWindowManager;Landroid/content/Context;)V
.locals 0
.parameter
.parameter "context"
.prologue
.line [B][COLOR="Red"]468[/COLOR][/B]
iput-object p1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
.line [B][COLOR="Red"]469[/COLOR][/B]
invoke-direct {p0, p2}, Landroid/view/WindowOrientationListener;-><init>(Landroid/content/Context;)V
.line [B][COLOR="Red"]470[/COLOR][/B]
return-void
.end method
# virtual methods
.method public onOrientationChanged(I)V
.locals 3
.parameter "rotation"
.prologue
[COLOR="Red"][B].line 477
const-string v0, "WindowManager"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "onOrientationChanged, rotation changed to "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 480[/B][/COLOR]
:try_start_0
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mWindowManager:Landroid/view/IWindowManager;
const/4 v1, 0x0
iget-object v2, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
iget v2, v2, Lcom/android/internal/policy/impl/PhoneWindowManager;->mFancyRotationAnimation:I
invoke-interface {v0, p1, v1, v2}, Landroid/view/IWindowManager;->setRotation(IZI)V
:try_end_0
.catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_0} :catch_0
.line [B][COLOR="Red"]486[/COLOR][/B]
:goto_0
return-void
.line [B][COLOR="Red"]482[/COLOR][/B]
:catch_0
move-exception v0
goto :goto_0
.end method
NOW CHECK IN HTC's file
Code:
# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/PhoneWindowManager;Landroid/content/Context;)V
.locals 0
.parameter
.parameter "context"
.prologue
.line 438
iput-object p1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
.line 439
invoke-direct {p0, p2}, Landroid/view/WindowOrientationListener;-><init>(Landroid/content/Context;)V
.line 440
return-void
.end method
# virtual methods
.method public onOrientationChanged(I)V
.locals 3
.parameter "rotation"
.prologue
.line 447
:try_start_0
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mWindowManager:Landroid/view/IWindowManager;
const/4 v1, 0x0
iget-object v2, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
iget v2, v2, Lcom/android/internal/policy/impl/PhoneWindowManager;->mFancyRotationAnimation:I
invoke-interface {v0, p1, v1, v2}, Landroid/view/IWindowManager;->setRotation(IZI)V
:try_end_0
.catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_0} :catch_0
.line 453
:goto_0
return-void
.line 449
:catch_0
move-exception v0
goto :goto_0
.end method
I modded the HTC one to fit the SE lines, named it HTCModdedforSE.zip and attached it for testing.. ont have my SE now...
But just incase I attached the whole android.policy.jar file from HTC Sensation.. You can fully replace SE with HTC one without modding.. maybe that works out...
Give it a go..
hansip87 said:
One question, what is SS? Samsung? :-/
Sent from my ST18i using XDA App
Click to expand...
Click to collapse
Yes, a guy there copied from Galaxy Note and it works perfect without problem. Maybe different with SE.
Sent from my X10i using XDA Premium App
@jjdoctor
will try your modded zip and give feedback,maybe SE will get angry with you mate
from my ARC
jjdoctor said:
Interesting thing I found here regarding Orientation
I grabbed PhoneWindowManager$MyOrientationListener.smali file from HTC android.policy.jar on 2.3.4 and Compared it with Sony SE.. They are mostly Identical but some Lines missing and slightly changed numbers in HTC's file..
In SE its Like This
(Check the BOLD RED Lines..they are missing or changed in HTC's file)
Code:
# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/PhoneWindowManager;Landroid/content/Context;)V
.locals 0
.parameter
.parameter "context"
.prologue
.line [B][COLOR="Red"]468[/COLOR][/B]
iput-object p1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
.line [B][COLOR="Red"]469[/COLOR][/B]
invoke-direct {p0, p2}, Landroid/view/WindowOrientationListener;-><init>(Landroid/content/Context;)V
.line [B][COLOR="Red"]470[/COLOR][/B]
return-void
.end method
# virtual methods
.method public onOrientationChanged(I)V
.locals 3
.parameter "rotation"
.prologue
[COLOR="Red"][B].line 477
const-string v0, "WindowManager"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "onOrientationChanged, rotation changed to "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 480[/B][/COLOR]
:try_start_0
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mWindowManager:Landroid/view/IWindowManager;
const/4 v1, 0x0
iget-object v2, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
iget v2, v2, Lcom/android/internal/policy/impl/PhoneWindowManager;->mFancyRotationAnimation:I
invoke-interface {v0, p1, v1, v2}, Landroid/view/IWindowManager;->setRotation(IZI)V
:try_end_0
.catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_0} :catch_0
.line [B][COLOR="Red"]486[/COLOR][/B]
:goto_0
return-void
.line [B][COLOR="Red"]482[/COLOR][/B]
:catch_0
move-exception v0
goto :goto_0
.end method
NOW CHECK IN HTC's file
Code:
# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/PhoneWindowManager;Landroid/content/Context;)V
.locals 0
.parameter
.parameter "context"
.prologue
.line 438
iput-object p1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
.line 439
invoke-direct {p0, p2}, Landroid/view/WindowOrientationListener;-><init>(Landroid/content/Context;)V
.line 440
return-void
.end method
# virtual methods
.method public onOrientationChanged(I)V
.locals 3
.parameter "rotation"
.prologue
.line 447
:try_start_0
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mWindowManager:Landroid/view/IWindowManager;
const/4 v1, 0x0
iget-object v2, p0, Lcom/android/internal/policy/impl/PhoneWindowManager$MyOrientationListener;->this$0:Lcom/android/internal/policy/impl/PhoneWindowManager;
iget v2, v2, Lcom/android/internal/policy/impl/PhoneWindowManager;->mFancyRotationAnimation:I
invoke-interface {v0, p1, v1, v2}, Landroid/view/IWindowManager;->setRotation(IZI)V
:try_end_0
.catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_0} :catch_0
.line 453
:goto_0
return-void
.line 449
:catch_0
move-exception v0
goto :goto_0
.end method
I modded the HTC one to fit the SE lines, named it HTCModdedforSE.zip and attached it for testing.. ont have my SE now...
But just incase I attached the whole android.policy.jar file from HTC Sensation.. You can fully replace SE with HTC one without modding.. maybe that works out...
Give it a go..
Click to expand...
Click to collapse
the line code that SE have is just for logging purpose, nothing essential mate.
hansip87 said:
the line code that SE have is just for logging purpose, nothing essential mate.
Click to expand...
Click to collapse
As i scan all the code, it is actually depends on native function which resides on libsurfaceflinger.so. So no mod can be done about that unless somebody can crack the .so file. Case closed, thanks for the input.
Reboot options as show :good:
Pre-requisites
De-Odex'ed devices only! Will not work on stock ROM!
Must have the the MDL De-Odex mod by Nottach to use this mod!
Installation
I used similar install method as Nottach to apply this mod.
Download the attachment. Unzip it to your desktop.
Simply copy the "Mods" folder to your internal storage
Run the "Mod Me.bat" file after copying
It will copy the mod to the correct location, clear cache, then reboot phone.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Feel free to use this in any mod or ROM you make.
Hit Thanks!
To make this mod your self or further modify it do the following;
First decompile classes.dex in android.policy.jar. I wont get into that part as this mini tutorial assumes you know how to modify smali code.
Add the following BOLD ITALIC code to \com\android\internal\policy\impl\GlobalActions$SinglePressAction.smali
Modded Code:
Code:
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/android/internal/policy/impl/GlobalActions;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x40a
name = "SinglePressAction"
.end annotation
[B][I]# static fields
.field protected static rebootMode:I
.field protected static final rebootOptions:[Ljava/lang/String;
[/I][/B]
# instance fields
.field private final mIcon:Landroid/graphics/drawable/Drawable;
.field private final mIconResId:I
.field private final mMessage:Ljava/lang/CharSequence;
.field private final mMessageResId:I
# direct methods
[B][I].method static constructor <clinit>()V
.registers 3
const/4 v0, 0x4
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, "Reboot"
aput-object v2, v0, v1
const/4 v1, 0x1
const-string v2, "Restart Shell"
aput-object v2, v0, v1
const/4 v1, 0x2
const-string v2, "Download"
aput-object v2, v0, v1
const/4 v1, 0x3
const-string v2, "Recovery"
aput-object v2, v0, v1
sput-object v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
return-void
.end method[/I][/B]
.method protected constructor <init>(II)V[I][/I]
FYI: You can change the string names to what you like best. For example most people word the second string as "Hot reboot" but I think that sounds lame so I call it what it is and that is a shell restart. Another example would be to change "Download" to "Download Mode"
Then change \com\android\internal\policy\impl\GlobalActions.smali
right below .line 566
new-instance v0, Lcom/android/internal/policy/impl/GlobalActions$5;
to
new-instance v0, Lcom/android/internal/policy/impl/GlobalActions$99;
Then create three smali files as shown below and add them to: \com\android\internal\policy\impl\
GlobalActions$99.smali
Code:
.class Lcom/android/internal/policy/impl/GlobalActions$99;
.super Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.source "GlobalActions.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/android/internal/policy/impl/GlobalActions;->createDialog()Landroid/app/AlertDialog;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic this$0:Lcom/android/internal/policy/impl/GlobalActions;
# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
.registers 4
iput-object p1, p0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
invoke-direct {p0, p2, p3}, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;-><init>(II)V
return-void
.end method
# virtual methods
.method public onPress()V
.registers 7
const/4 v5, 0x4
new-instance v1, Landroid/app/AlertDialog$Builder;
iget-object v2, p0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
#getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
invoke-static {v2}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
move-result-object v2
invoke-direct {v1, v2}, Landroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;)V
const-string v2, "Reboot Menu"
invoke-virtual {v1, v2}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;
move-result-object v1
sget-object v2, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
const/4 v3, 0x0
new-instance v4, Lcom/android/internal/policy/impl/GlobalActions$99$2;
invoke-direct {v4, p0}, Lcom/android/internal/policy/impl/GlobalActions$99$2;-><init>(Lcom/android/internal/policy/impl/GlobalActions$99;)V
invoke-virtual {v1, v2, v3, v4}, Landroid/app/AlertDialog$Builder;->setSingleChoiceItems([Ljava/lang/CharSequence;ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;
move-result-object v1
const v2, 0x104000a
new-instance v3, Lcom/android/internal/policy/impl/GlobalActions$99$1;
invoke-direct {v3, p0}, Lcom/android/internal/policy/impl/GlobalActions$99$1;-><init>(Lcom/android/internal/policy/impl/GlobalActions$99;)V
invoke-virtual {v1, v2, v3}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;
move-result-object v1
const/high16 v2, 0x104
const/4 v3, 0x0
invoke-virtual {v1, v2, v3}, Landroid/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;
move-result-object v1
invoke-virtual {v1}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog;
move-result-object v0
invoke-virtual {v0}, Landroid/app/AlertDialog;->getWindow()Landroid/view/Window;
move-result-object v1
const/16 v2, 0x7d9
invoke-virtual {v1, v2}, Landroid/view/Window;->setType(I)V
iget-object v1, p0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
#getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
invoke-static {v1}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
move-result-object v1
invoke-virtual {v1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v1
const v2, 0x111000f
invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getBoolean(I)Z
move-result v1
if-nez v1, :cond_58
invoke-virtual {v0}, Landroid/app/AlertDialog;->getWindow()Landroid/view/Window;
move-result-object v1
invoke-virtual {v1, v5, v5}, Landroid/view/Window;->setFlags(II)V
:cond_58
invoke-virtual {v0}, Landroid/app/AlertDialog;->show()V
return-void
.end method
.method public showBeforeProvisioning()Z
.registers 2
.prologue
.line 307
const/4 v0, 0x1
return v0
.end method
.method public showConditional()Z
.registers 2
.prologue
.line 311
const/4 v0, 0x1
return v0
.end method
.method public showDuringKeyguard()Z
.registers 2
.prologue
.line 304
const/4 v0, 0x1
return v0
.end method
GlobalActions$99$1.smali
Code:
.class Lcom/android/internal/policy/impl/GlobalActions$99$1;
.super Ljava/lang/Object;
.source "GlobalActions.java"
# interfaces
.implements Landroid/content/DialogInterface$OnClickListener;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/android/internal/policy/impl/GlobalActions$99;->onPress()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic this$1:Lcom/android/internal/policy/impl/GlobalActions$99;
# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/GlobalActions$99;)V
.registers 2
.parameter
.prologue
.line 281
iput-object p1, p0, Lcom/android/internal/policy/impl/GlobalActions$99$1;->this$1:Lcom/android/internal/policy/impl/GlobalActions$99;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onClick(Landroid/content/DialogInterface;I)V
.registers 7
.parameter "dialog"
.parameter "whichButton"
.prologue
const/4 v2, 0x1
const/4 v3, 0x0
.line 282
sget v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I
const/4 v1, -0x1
if-le v0, v1, :cond_20
.line 291
sget v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I
const/4 v1, 0x4
if-eq v0, v1, :cond_4d
.line 283
sget v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I
if-eq v0, v2, :cond_2c
.line 284
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions$99$1;->this$1:Lcom/android/internal/policy/impl/GlobalActions$99;
iget-object v0, v0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
#getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
invoke-static {v0}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
move-result-object v0
sget v1, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I
if-nez v1, :cond_21
const/4 v1, 0x0
:goto_1d
invoke-static {v0, v1, v3}, Lcom/android/server/power/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
.line 291
:cond_20
:goto_20
return-void
.line 284
:cond_21
sget-object v1, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
sget v2, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I
aget-object v1, v1, v2
invoke-virtual {v1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v1
goto :goto_1d
.line 288
:cond_2c
:try_start_2c
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v0
const/4 v1, 0x4
new-array v1, v1, [Ljava/lang/String;
const/4 v2, 0x0
const-string v3, "pkill"
aput-object v3, v1, v2
const/4 v2, 0x1
const-string v3, "-TERM"
aput-object v3, v1, v2
const/4 v2, 0x2
const-string v3, "-f"
aput-object v3, v1, v2
const/4 v2, 0x3
const-string v3, "system_server"
aput-object v3, v1, v2
invoke-virtual {v0, v1}, Ljava/lang/Runtime;->exec([Ljava/lang/String;)Ljava/lang/Process;
:try_end_4a
.catch Ljava/lang/Exception; {:try_start_2c .. :try_end_4a} :catch_4b
goto :goto_20
.line 290
:catch_4b
move-exception v0
goto :goto_20
:cond_4d
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions$99$1;->this$1:Lcom/android/internal/policy/impl/GlobalActions$99;
iget-object v0, v0, Lcom/android/internal/policy/impl/GlobalActions$99;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
#getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
invoke-static {v0}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
move-result-object v0
const/4 v1, 0x0
invoke-static {v0, v1}, Lcom/android/server/power/ShutdownThread;->shutdown(Landroid/content/Context;Z)V
goto :goto_20
.end method
GlobalActions$99$2.smali
Code:
.class Lcom/android/internal/policy/impl/GlobalActions$99$2;
.super Ljava/lang/Object;
.source "GlobalActions.java"
# interfaces
.implements Landroid/content/DialogInterface$OnClickListener;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/android/internal/policy/impl/GlobalActions$99;->onPress()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic this$1:Lcom/android/internal/policy/impl/GlobalActions$99;
# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/GlobalActions$99;)V
.registers 2
iput-object p1, p0, Lcom/android/internal/policy/impl/GlobalActions$99$2;->this$1:Lcom/android/internal/policy/impl/GlobalActions$99;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onClick(Landroid/content/DialogInterface;I)V
.registers 3
sput p2, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootMode:I
return-void
.end method
Recompile and done!
You can also change the names of the reboot method to your liking!
Slowly but surely here comes the goodies. Cant wait for flashy time for AT&T.
ATT S4 Rooted. Beastin.
4.2.2
Scrosler you are the man! Hell ya dude thanks!! I envy your talent
"Tettering" ay, right. Slow down a little, I can't keep up. Very usefull reboot menu. Works for me.
sent from my SGH-i317
Dean1650 said:
"Tettering" ay, right. Slow down a little, I can't keep up. Very usefull reboot menu. Works for me.
sent from my SGH-i317
Click to expand...
Click to collapse
Hehehehe.... It was a tough choice my friend. Hardest phone choice I had to make but then after owning both I decided this was going to be a power house!
Me slow down? Never! :angel:
Did you see my launcher mod in themes and apps?
scrosler said:
Hehehehe.... It was a tough choice my friend. Hardest phone choice I had to make but then after owning both I decided this was going to be a power house!
Me slow down? Never! :angel:
Did you see my launcher mod in themes and apps?
Click to expand...
Click to collapse
No, but I'm headed over there now.
sent from my SGH-i317
scrosler said:
Hehehehe.... It was a tough choice my friend. Hardest phone choice I had to make but then after owning both I decided this was going to be a power house!
Me slow down? Never! :angel:
Did you see my launcher mod in themes and apps?
Click to expand...
Click to collapse
Thought you were going back to Verizon?
Sent from my HTC One using Tapatalk 2
powerwagon said:
Thought you were going back to Verizon?
Sent from my HTC One using Tapatalk 2
Click to expand...
Click to collapse
I did. The people on Verizon bought me a Note II (when it came out). But I wanted the SGS4 so I broke into my donation fund and bought (part of it anyways).
I now develop for 4 phones, SGS4, Note II (All carriers), SGS3, and HTC One X... and the Nexus 10 Tablet.
scrosler said:
I did. The people on Verizon bought me a Note II (when it came out). But I wanted the SGS4 so I broke into my donation fund and bought (part of it anyways).
I now develop for 4 phones, SGS4, Note II (All carriers), SGS3, and HTC One X... and the Nexus 10 Tablet.
Click to expand...
Click to collapse
Cant wait to be running cleanrom on this! Def one of the best devs in the game, glad you kept it
Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
Can't wait for mine to come in the mail... Thanks to you guys who able to do this awesome work. Hope I can help out or at least test some stuff out for you guys.
Sent from my SGS3 using xda premium
Deodexed System Installer ran from Noattach but i am still not able to get this mod to work i am updated to the lastest AMDL and deodexed verifiyed by checking build info Nottach.JDQ39.I337UCUAMDL anyone have any ideas ? as to what the problem is .
tokoam said:
Deodexed System Installer ran from Noattach but i am still not able to get this mod to work i am updated to the lastest AMDL and deodexed verifiyed by checking build info Nottach.JDQ39.I337UCUAMDL anyone have any ideas ? as to what the problem is .
Click to expand...
Click to collapse
And you used the installer with this mod?
Yes I did
Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
tokoam said:
Yes I did
Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
Click to expand...
Click to collapse
Did you get an error messages?
scrosler said:
Did you get an error messages?
Click to expand...
Click to collapse
No error message in cmd batch file
Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
i try right
It does not work for me either
Just says waiting for s4. The other installer works fine I even tried just pushing me jar file but that did not work either
Sent from my SAMSUNG-SGH-I337 using xda premium
And you have ADB installed and in the Windows path?
I have updated the instructions to be more specific and included an alternate installer with the ADB executables.
Replace code = BLUE
Remove code = RED
Add code = GREEN
Based on I337UCUAMDL
Here we go:
Add toggle to disable Screen ON when receiving a message:
Go here: \SecMms\smali\com\android\mms\ui\MessagingPreferenceActivity.smali
Change this:
Code:
.line 876
.local v2, NotiCategory:Landroid/preference/PreferenceCategory;
invoke-static {}, Lcom/android/mms/MmsConfig;->getEnableNotificationBacklight()Z
move-result v10
if-nez v10, :cond_7
.line 877
const-string v10, "pref_key_backlight"
invoke-virtual {p0, v10}, Lcom/android/mms/ui/MessagingPreferenceActivity;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v10
[COLOR=red] invoke-direct {p0, v2, v10}, Lcom/android/mms/ui/MessagingPreferenceActivity;->removePreference(Landroid/preference/PreferenceGroup;Landroid/preference/Preference;)V[/COLOR]
.line 879
:cond_7
invoke-static {}, Lcom/android/mms/MmsConfig;->getEnableCmas()Z
move-result v10
if-eqz v10, :cond_8
invoke-static {}, Lcom/android/mms/MmsConfig;->getCMASProvider()I
move-result v10
To this:
Code:
.line 876
.local v2, NotiCategory:Landroid/preference/PreferenceCategory;
invoke-static {}, Lcom/android/mms/MmsConfig;->getEnableNotificationBacklight()Z
move-result v10
if-nez v10, :cond_7
.line 877
const-string v10, "pref_key_backlight"
invoke-virtual {p0, v10}, Lcom/android/mms/ui/MessagingPreferenceActivity;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v10
.line 879
:cond_7
invoke-static {}, Lcom/android/mms/MmsConfig;->getEnableCmas()Z
move-result v10
if-eqz v10, :cond_8
invoke-static {}, Lcom/android/mms/MmsConfig;->getCMASProvider()I
move-result v10
Increase Limits, Image sending resolution, Message Save/Restore Function
Go here: \SecMms\smali\com\android\mms\MmsConfig.smali
MMS Max size to 1024000 bytes:
Change this:
Code:
.line 151
sput-boolean v2, Lcom/android/mms/MmsConfig;->mMmsWidgetEnabled:Z
.line 152
const v0, 0x4b000
sput v0, Lcom/android/mms/MmsConfig;->mMaxMessageSize:I
To this:
Code:
.line 151
sput-boolean v2, Lcom/android/mms/MmsConfig;->mMmsWidgetEnabled:Z
.line 152
const v0, [COLOR=blue]0xfa000[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->mMaxMessageSize:I
Increase MMS Image size (2048x1536 or 3.2MP):
Change this:
Code:
.line 158
sput-object v4, Lcom/android/mms/MmsConfig;->mEmailGateway:Ljava/lang/String;
.line 159
sget v0, Lcom/android/mms/MmsConfig;->MAX_IMAGE_HEIGHT:I
sput v0, Lcom/android/mms/MmsConfig;->mMaxImageHeight:I
.line 160
sget v0, Lcom/android/mms/MmsConfig;->MAX_IMAGE_WIDTH:I
sput v0, Lcom/android/mms/MmsConfig;->mMaxImageWidth:I
.line 161
const/16 v0, 0x1e0
To this:
Code:
.line 158
sput-object v4, Lcom/android/mms/MmsConfig;->mEmailGateway:Ljava/lang/String;
.line 159
[COLOR=blue]const/16 v0, 0x600[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->mMaxImageHeight:I
.line 160
[COLOR=blue]const/16 v0, 0x800[/COLOR]
sput v0, Lcom/android/mms/MmsConfig;->mMaxImageWidth:I
.line 161
const/16 v0, 0x1e0
Enable message Save/Restore function:
Change this:
Code:
.method public static getEnableSaveRestoreSDCardMessage()Z
.locals 1
.prologue
.line 907
const/4 v0, 0x0
return v0
.end method
To this:
Code:
.method public static getEnableSaveRestoreSDCardMessage()Z
.locals 1
.prologue
.line 907
[COLOR=blue]const/4 v0, 0x1[/COLOR]
return v0
.end method
Text message limit (1000):
Change this:
Code:
.method public static getMaxRecipientLength()I
.locals 1
.prologue
.line 2510
sget v0, Lcom/android/mms/MmsConfig;->mMaxRecipientLength:I
return v0
.end method
To this:
Code:
.method public static getMaxRecipientLength()I
.locals 1
.prologue
.line 2510
[COLOR=blue]const/16 v0, 0x3e8[/COLOR]
return v0
.end method
Max recipients (1000):
Change this:
Code:
.method public static getMmsMaxRecipient()I
.locals 1
.prologue
.line 2751
sget v0, Lcom/android/mms/MmsConfig;->mMmsRecipientLimit:I
return v0
.end method
To this:
Code:
.method public static getMmsMaxRecipient()I
.locals 1
.prologue
.line 2751
[COLOR=blue]const/16 v0, 0x3e8[/COLOR]
return v0
.end method
Change this:
Code:
.method public static getRecipientLimit()I
.locals 1
.prologue
.line 759
sget v0, Lcom/android/mms/MmsConfig;->mRecipientLimit:I
return v0
.end method
To this:
Code:
.method public static getRecipientLimit()I
.locals 1
.prologue
.line 759
[COLOR=blue]const/16 v0, 0x3e8[/COLOR]
return v0
.end method
Change this:
Code:
.line 1767
const-string v11, "CscFeature_Message_MaxRecipientLengthAs"
invoke-virtual {v1, v11}, Lcom/sec/android/app/CscFeature;->getInteger(Ljava/lang/String;)I
move-result v11
sput v11, Lcom/android/mms/MmsConfig;->mMaxRecipientLength:I
.line 1768
sget v11, Lcom/android/mms/MmsConfig;->mMinRecipientLength:I
To this:
Code:
.line 1767
const-string v11, "CscFeature_Message_MaxRecipientLengthAs"
invoke-virtual {v1, v11}, Lcom/sec/android/app/CscFeature;->getInteger(Ljava/lang/String;)I
move-result v11
[COLOR=green]const/16 v11, 0x3e8[/COLOR]
sput v11, Lcom/android/mms/MmsConfig;->mMaxRecipientLength:I
.line 1768
sget v11, Lcom/android/mms/MmsConfig;->mMinRecipientLength:I
Change this:
Code:
.line 2049
const-string v1, "pref_key_max_recipient"
invoke-interface {v0, v1, v4}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v1
sput v1, Lcom/android/mms/MmsConfig;->mRecipientLimit:I
To this:
Code:
.line 2049
const-string v1, "pref_key_max_recipient"
invoke-interface {v0, v1, v4}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v1
[COLOR=green]const/16 v1, 0x3e8[/COLOR]
sput v1, Lcom/android/mms/MmsConfig;->mRecipientLimit:I
.line 2050
const-string v1, "Mms/MmsConfig"
SMS to MMS Conversion (1000):
Change this:
Code:
.method public static getSmsToMmsTextThreshold()I
.locals 1
.prologue
.line 688
sget v0, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I
return v0
.end method
To this:
Code:
.method public static getSmsToMmsTextThreshold()I
.locals 1
.prologue
.line 688
[COLOR=blue]const/16 v0, 0x3e8[/COLOR]
return v0
.end method
Change this:
Code:
.line 2044
const-string v1, "pref_key_threshold"
const/4 v2, 0x4
invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v1
sput v1, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I
.line 2045
const-string v1, "Mms/MmsConfig"
To this:
Code:
.line 2044
const-string v1, "pref_key_threshold"
const/4 v2, 0x4
invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v1
[COLOR=green]const/16 v1, 0x3e8[/COLOR]
sput v1, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I
.line 2045
const-string v1, "Mms/MmsConfig"
Thanks:
Wanam for 1000 Recipients and SMS/MMS conversion
FEEL FREE TO USE THIS BUT PLEASE GIVE THANKS TO MYSELF AND WANAM
Saved just in case.
Awesome work!! Works perfectly... thanks a bunch for this. Hate the damn screen coming on for messages.
~If shoman doesnt mind, heres the finished product +no texts added to logs.
sulpher said:
Awesome work!! Works perfectly... thanks a bunch for this. Hate the damn screen coming on for messages.
I'll have to come back to click thanks, spent all mine
~If shoman doesnt mind, heres the finished product +no texts added to logs.
Click to expand...
Click to collapse
Just so you know, the no text to logs is not needed.... The log can be viewed without messages and set that way by default.
shoman94 said:
Just so you know, the no text to logs is not needed.... The log can be viewed without messages and set that way by default.
Click to expand...
Click to collapse
Hmm couldnt figure out how to set it to that default... if i backed out of the log instead of home key or rebooted it was reverting.
sulpher said:
Hmm couldnt figure out how to set it to that default... if i backed out of the log instead of home key or rebooted it was reverting.
Click to expand...
Click to collapse
I'm confused now....lol Mine always reverts to "ALL CALLS" when backing out or rebooting... Not sure of the reason for the differences. This may be something to look into. Are you running your own modded stock that you did yourself or did you use something posted here?
shoman94 said:
I'm confused now....lol Mine always reverts to "ALL CALLS" when backing out or rebooting... Not sure of the reason for the differences. This may be something to look into. Are you running your own modded stock that you did yourself or did you use something posted here?
Click to expand...
Click to collapse
I'm on the odin from here (http://forum.xda-developers.com/showthread.php?t=2261573) plus the OTA... honestly i cant remember if it was doing it when i first got the phone.. i bricked it pretty fast with the xposed framework. Only mod i did myself to it was jeboo's removing sms from call log mod. +stolen's systemui, dev threads framework & secsettings
Cool, I'm going to add a few of these to my Xposed mod, coming soon.
Nottach said:
Cool, I'm going to add a few of these to my Xposed mod, coming soon.
Click to expand...
Click to collapse
I would love too see this as an exposed mod. What u hiding under the sleeve?
How do you know all this stuff
Ok being VERY new to this... where are you finding the \SecMms\smali\com\android\mms\ui\MessagingPreferen ceActivity.smali ???
I'm trying to learn this a bit and some guidance would be appreciated. I want to contribute.
I appologize but I'm on Rogers with I337UCUAMDJ and the APK attached does not seem to work so I'll mod myself.
I only want to eliminate the pop up when screen off. Baby steps.
I always donate to XDA contributors so I'm hoping someone can show me this little tweak. Pay it forward.
Thanks
To fine that file you need a deodexed ROM and have to decompile secmms.apk
If your on a odexed ROM you will not find the smali files
Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
Ah THANK YOU for this!! I was patiently waiting for this mod.
ibike2much said:
Ok being VERY new to this... where are you finding the \SecMms\smali\com\android\mms\ui\MessagingPreferen ceActivity.smali ???
I'm trying to learn this a bit and some guidance would be appreciated. I want to contribute.
I appologize but I'm on Rogers with I337UCUAMDJ and the APK attached does not seem to work so I'll mod myself.
I only want to eliminate the pop up when screen off. Baby steps.
I always donate to XDA contributors so I'm hoping someone can show me this little tweak. Pay it forward.
Thanks
Click to expand...
Click to collapse
As said above... You must deodex and decompile to get to that file.
Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
akira02rex said:
How do you know all this stuff
Click to expand...
Click to collapse
Practice practice practice
Nottach said:
Cool, I'm going to add a few of these to my Xposed mod, coming soon.
Click to expand...
Click to collapse
Cool beans
Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
shoman94 said:
Practice practice practice
Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
Click to expand...
Click to collapse
And a lot of soft bricks/apk's crashing
Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
Learn how to read logs. Usually logcat will tell you exactly what the error is and where.
shoman94 said:
As said above... You must deodex and decompile to get to that file.
Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
Click to expand...
Click to collapse
Thanks all. For now I'll let the experts continue your fine work and gladly continue to generously donate.
After dl happens it sayz not installed so I guess we have to push to systems/apps folders
Sent from my SAMSUNG-SGH-I337 using xda app-developers app
azz72 said:
After dl happens it sayz not installed so I guess we have to push to systems/apps folders
Sent from my SAMSUNG-SGH-I337 using xda app-developers app
Click to expand...
Click to collapse
Or use your favorite root explorer to copy/paste/overwrite the apk.
Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
hi, the post for Note 2 seems to work fine for S2 as well. If I type "Thw", it corrects it to "The". However, it does not always work for all words. I normally use continous input and hence not really useful to me but it may be useful for some.
http://forum.xda-developers.com/showthread.php?t=2093588
For auto-ocrrect, I simply replaced the entire function ".method private processWordSeparator(I[I)V" in the .smali file 'SwiftkeyQwertyLatinInputModule' for S2 (.method to .end) [see attached file for the function]. This code was taken from the apk file attached to the above post by "eclipxe"
For long press delay, I simply changed to the following code.
---.method private getLongpressTimoutDelay(I)J
.locals 3
.parameter "keyCode"
.prologue
.line 507
const/16 v0, 0xc8
.line 508
.local v0, delay:I
packed-switch p1, switch_data_0
.line 513
const/16 v0, 0xc8
.line 516
:goto_0
int-to-long v1, v0
return-wide v1
.line 510
switch_0
const/16 v0, 0xc8
.line 511
goto :goto_0
.line 508
switch_data_0
.packed-switch -0x7a
switch_0
.end packed-switch
.end method
------------------
Thanks to "eclipxe" for the original post for Note 2.