[GUIDE] Fix home button press in expanded status bar panel - Galaxy Y GT-S5360 Android Development

What is expanded status bar panel? This is the view when you swipe down the status bar. Normally the status bar is visible but in expanded status bar panel, it is not.
In case anyone noticed that pressing home button is not working when you are on expanded status bar panel. This is a work around to fix it.
If you remember, you have changed 0x7de to 0x7d3 in StatusBarService.smali. 0x7d3 or 2003 or WindowManager.LayoutParams.TYPE_SYSTEM_ALERT is a window type that is used for alert dialogs(The kind of alert that shows when you press "power off" in power button menu) so the home button won't work when an alert dialog is showing on screen.
Now we have two options to fix this: edit StatusBarService.smali in SystemUI.apk ---OR--- edit PhoneWindowManager.smali in android.policy.jar
First option: Edit StatusBarService.smali in SystemUI.apk
- What happens here? - We will change the window type to TYPE_SYSTEM_DIALOG so the home button will work again because in this window type, the home button works.
STEPS:
1. Decompile SystemUI.apk
2. Open StatusBarService.smali
3. Find
Code:
0x7d3
and change it to
Code:
0x7d8
NOTE: There are two(2) of them so change both.
4. Save file and recompile SystemUI.apk
5. Push to /system/app, reboot, or use hackUI.apk
6. DONE!
Second option: Edit PhoneWindowManager.smali in android.policy.jar(Framework file)
- What happens here? - We will remove the flag that disables the home button when an alert dialog is showing. NOTE that all this enables the home button in ALL TYPES of alert dialogs, not just in expanded status bar panel.
STEPS:
1. Decompile android.policy.jar
2. Open PhoneWindowManager.smali
3. Find
Code:
const/4 v0, 0x2
new-array v0, v0, [I
fill-array-data v0, :array_26
and change it to
Code:
const/4 v0, 0x1
new-array v0, v0, [I
fill-array-data v0, :array_26
4. Find
Code:
0xd3t 0x7t 0x0t 0x0t
and delete the whole line
5. Recompile android.policy.jar
6. Push to /system/framework and reboot
7. DONE!

Related

ActiveCall screen problem

Hi,
I have problem with ActiveCall screen (today plugin in fact). When I place a call it doesn't appear. I think this is what left after having HTC today plugin for 5 minutes... I think it messed up my registry.
So here's my request: could someone post screenshot (or values in any other way) of:
HKLM\Software\Microsoft\Today\Items\"Active Call" ?
I would be very thankful.
Registry entries
My registry shows the following entries:
DLL \windows\ActiveCallPlugin.dll
Enabled 0x1
hWnd 0x7C07AAB0
Options 0x1
Order 0x2
Selectability 0x2
Type 0x6
Hope this helps,
John
johnjtaylor said:
My registry shows the following entries:
DLL \windows\ActiveCallPlugin.dll
Enabled 0x1
hWnd 0x7C07AAB0
Options 0x1
Order 0x2
Selectability 0x2
Type 0x6
Hope this helps,
John
Click to expand...
Click to collapse
Thanks, but it doesn't work for me
I think I'll hardreset in the evening...

[WIP]Gingerbread Sense Trackpad 2 Unlock

Hi guys, as the title says it's a work in progress, so please don't flame.
I was tired of waiting for the Trackpad2Unlock mod for GB-Sense roms to come, so i decided to give it a shot.
When i was on RCMix HD, i flashed a v1.84 update.zip to enable the trackpad2unlock feature.
So i unziped that file, and noticed that it only replaces the original HTCLockscreen.apk by another one.
I then decompiled both of them to see what were the differences.
Quick md5 hashes showed that only one file was modified: HtcLockScreen.smali
I then compared the original and modified files:
Original:
Code:
.line 800
.local v0, msg:Landroid/os/Message;
const/16 v1, 0x14
if-eq p1, v1, :cond_3e
const/16 v1, 0x13
if-eq p1, v1, :cond_3e
const/16 v1, 0x15
if-eq p1, v1, :cond_3e
const/16 v1, 0x16
if-eq p1, v1, :cond_3e
.line 804
iget-object v1, p0, Lcom/htc/lockscreen/HtcLockScreen;->mReminderView:Lcom/htc/lockscreen/HtcLSViewInterface;
if-eqz v1, :cond_3e
.line 805
iget-object v1, p0, Lcom/htc/lockscreen/HtcLockScreen;->mReminderView:Lcom/htc/lockscreen/HtcLSViewInterface;
invoke-interface {v1, p1, p2}, Lcom/htc/lockscreen/HtcLSViewInterface;->onKeyDown(ILandroid/view/KeyEvent;)V
:cond_3e
move v1, v4
.line 809
goto :goto_20
.end method
Modified:
Code:
.line 801
.local v0, msg:Landroid/os/Message;
const v1, 0x17
if-ne p1, v1, :cond_2d
invoke-virtual {p0}, Lcom/htc/lockscreen/HtcLockScreen;->goToUnlockScreen()V
:cond_2d
const/16 v1, 0x14
if-eq p1, v1, :cond_46
const/16 v1, 0x13
if-eq p1, v1, :cond_46
const/16 v1, 0x15
if-eq p1, v1, :cond_46
const/16 v1, 0x16
if-eq p1, v1, :cond_46
.line 805
iget-object v1, p0, Lcom/htc/lockscreen/HtcLockScreen;->mReminderView:Lcom/htc/lockscreen/HtcLSViewInterface;
if-eqz v1, :cond_46
.line 806
iget-object v1, p0, Lcom/htc/lockscreen/HtcLockScreen;->mReminderView:Lcom/htc/lockscreen/HtcLSViewInterface;
invoke-interface {v1, p1, p2}, Lcom/htc/lockscreen/HtcLSViewInterface;->onKeyDown(ILandroid/view/KeyEvent;)V
:cond_46
move v1, v4
.line 810
goto :goto_20
.end method
Basically it just inserts another check for var 0x17 (trackpad?) and then unlock the lockscreen if true.
So i did manage to update the Gingerbread Sense HTCLockscreen with this little hack.
No more need to slide down to disable the lockscreen, pressing down the Trackpad does it.
However... it doesn't wake the phone through the trackpad.
We still need to press Power :-/
To make a long story short, i managed to get tp2unlock, but not tp2Wake&Unlock...
I did try several other methods, like this one but with no go:
http://forum.xda-developers.com/showthread.php?t=683902
So if someone wanna give a hand... Feel free, the whole community is waiting for this mod.
Thanks for reading and your help
PS:
Provided in the link are the uncompiled files for
v1.84 original (the original RCmixHD a2sd htclockscreen.apk files)
v1.84 modified (the modified version to enable trackpad 2 wake and unlock)
gb sense tp2u (the modified Gingerbread Sense version to enable trackpad 2 unlock).
Edit:
I forgot to provide the HTCLockscreen.apk, just push it (with QtADB!) to system/app/.
nice work at least this is a start and maybe some who nows a little bit more will help
I don't think it depends on framework settings. As I developed AOSP for other device it was always a matter of editing keylayout file with adding/removing WAKE flag. Maybe just adding that flag to PROPER keycode will solve this? I tried but without success.
What else - I'd like to point you to frameworks/policies/base - there are files that describes some power management.
Delete... Wrong tread..
KameoRE said:
To make a long story short, i managed to get tp2unlock, but not tp2Wake&Unlock...
I did try several other methods, like this one but with no go:
http://forum.xda-developers.com/showthread.php?t=683902
So if someone wanna give a hand... Feel free, the whole community is waiting for this mod.
Click to expand...
Click to collapse
Why don't you try with this one
Good work...
but i think that are 2 things needed...the changed lockscreen and this trackpad to wake up...maybe try the same way with the file from this thread:
http://forum.xda-developers.com/showthread.php?t=696907
with kind regards...Alex
bg_man said:
Why don't you try with this one
Click to expand...
Click to collapse
I did does it work reliably for you? over a week now with this mod and ~50% fail rate
I'm using CoolAcesv2 rom and looking at the inputs with the adb shell and the getevent command, seems like for the trackpad is still needed the curcial-oj.kl file as described here http://forum.xda-developers.com/showthread.php?p=7236745#post7236745.
This is what i got:
Code:
add device 1: /dev/input/event9
name: "compass"
add device 2: /dev/input/event8
name: "curcial-oj"
add device 3: /dev/input/event7
name: "dummy_keypad"
add device 4: /dev/input/event6
name: "lightsensor-level"
add device 5: /dev/input/event5
name: "bravo-keypad"
add device 6: /dev/input/event4
name: "proximity"
add device 7: /dev/input/event3
name: "synaptics-rmi-touchscreen"
add device 8: /dev/input/event2
name: "projector-Keypad"
add device 9: /dev/input/event1
name: "projector_input"
add device 10: /dev/input/event0
name: "h2w headset"
/dev/input/event8: 0001 0110 00000001
Btw i already pushed the curcial-oj.kl in the phone but it doesn't do anything so i beleive it need the modded apk too.
I hope this helped a bit.
I did try it... Here are my tests so far:
- created, edited and pushed system/usr/keylayout/curcial-oj.kl with the following, and it doesn't work.
Code:
key 272 DPAD_CENTER WAKE_DROPPED
- also edited the system/usr/keylayout/bravo-keypad.kl with the same line, no go.
Gonna dig with other tests, there must be a way to get the code to trigger the power button.
Once i get it, i think that i can replicate the snippet and get this to work.
Wish me luck.
Good luck mate
If you look around there are a couple of threads where people have tried editing curcial-oj.kl and bravo-keypad.kl which seems to have no effect on trackpad. WAKE_DROPPED when added to menu or home in bravo-keypad.kl does give an unreliable wakeup but half the time it doesn't work. General consensus seemed to be GB uses a different location
Thanks Ziggy.
In fact when i edit my bravo-keypad.kl, it works all the time with Power or Home or Menu, but not a single time (and believe me, i tried like 25 times in a row) with the Trackpad.
key 102 HOME WAKE_DROPPED
key 139 MENU WAKE_DROPPED
key 158 BACK
key 217 SEARCH
key 272 DPAD_CENTER WAKE_DROPPED
key 107 ENDCALL WAKE_DROPPED
key 116 POWER WAKE_DROPPED
Click to expand...
Click to collapse
I'll investigate a little bit more.
Well thats a step in the right direction
Could you please upload your bravo-keypad.kl with reliable menu home wake, myself and several others all have it working, but unreliably. Have you tried it for over 24H, for me if the phone has been recently used it seems to work but after a prolonged period in standby it generally seems to fail
KameoRE said:
Thanks Ziggy.
In fact when i edit my bravo-keypad.kl, it works all the time with Power or Home or Menu, but not a single time (and believe me, i tried like 25 times in a row) with the Trackpad.
I'll investigate a little bit more.
Click to expand...
Click to collapse
Can you share that file which works all the time for Menu button? That's all I need and it will solve my problem.. Can you do that? Thanks in advance..
Ok, bad news, you guys are right.
If the phone is off for a while (more than 2-3 minutes), the keys don't wake the phone.
As if they were not power supplied.
Looks like a powersave function, sorry guys.
We still stuck to the same position.
Anyway i tried decompiling other android files to check which one triggers the PowerOn function, but haven't found it yet.
Anyone got a clue (i tried Rosie/SystemUI/Core/AndroidPolicy...)?
I think it's obviously hidden very well (Damn HTC and their lack of sensible ergonomic design)
I did notice NeoPhyTe.x360's latest GB rom had "Wake UP desde Menu, unlock Trackpad" listed in the Features: sadly about 20mins after i queried this it was changed to "Wake UP from Menu" whether that's the same unreliable mod we have i don't know can't be arsed to flash just for that
But hey even more people will be looking for it now
Yep, hopefully we might found it.
Just noticed Neo's back, so gonna give his Ginger-ReflexS/SenseHD rom a try.
I think you are right about power save disabling menu wake when i put the phone on charge after 20 mins menu wake is still working
So presumably default setting is only Power button has power all the time maybe that's a solution allowing power to menu /trackpad always
ziggy1001 said:
I did does it work reliably for you? over a week now with this mod and ~50% fail rate
Click to expand...
Click to collapse
I've played with it but for half an hour.
I've found the GB still not stable enough and decide to wait for official HTC release.
So you are seems to be right.
Little update.
I managed to debug which functions are called when the relevant button is pressed (power and all the others enabled in bravo-keypad.ki but 272):
For example, while pressing Power (keycode 26 or $1a), i get this:
WindowManager - interceptKeyBeforeQueue keycode=26 screenIsOn=false keyguardActive=true
KeyguardViewMediator - wakeWhenReadyLocked(26)
InputDispatcher - notifyKey - deviceId=0x0, source=0x101, policyFlags=0x32000002, action=0x0, flags=0x9, keyCode=0x1a, scanCode=0x74, metaState=0x0, eventTime=5904047125987
Click to expand...
Click to collapse
Then it triggers other functions (turn lights on...) and then enable the lockscreen.
However, when i press the Trackpad, all i get is this:
InputDispatcher - notifyMotion - eventTime=1313024185481, deviceId=0x20000, source=0x10004, policyFlags=0x2000000, action=0x0, flags=0x0, metaState=0x0, edgeFlags=0x0, xPrecision=6.000000, yPrecision=6.000000, downTime=1313024185481
InputDispatcher - Pointer 0: id=0, x=0.000000, y=0.000000, pressure=1.000000, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
InputDispatcher - notifyMotion - eventTime=1313162113375, deviceId=0x20000, source=0x10004, policyFlags=0x2000000, action=0x1, flags=0x0, metaState=0x0, edgeFlags=0x0, xPrecision=6.000000, yPrecision=6.000000, downTime=1313024185481
InputDispatcher - Pointer 0: id=0, x=0.000000, y=0.000000, pressure=0.000000, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
Click to expand...
Click to collapse
Which looks like a motion/sensor tracking routine...
It got me puzzled, i really don't know where to go from here... :-/
Full debug log for Power button down here:
Code:
WindowManager - interceptKeyBeforeQueue keycode=26 screenIsOn=false keyguardActive=true
KeyguardViewMediator - wakeWhenReadyLocked(26)
dalvikvm - --- called into dvmAbstractMethodStub
InputManager-JNI - An exception was thrown by callback 'interceptKeyBeforeQueueing'.
InputManager-JNI - java.lang.AbstractMethodError: abstract method not implemented
InputManager-JNI - at com.android.server.PowerManagerService.getProximitySensorActive(PowerManagerService.java)
InputManager-JNI - at com.android.internal.policy.impl.PhoneWindowManager.interceptKeyBeforeQueueing(PhoneWindowManager.java:2749)
InputManager-JNI - at com.android.server.WindowManagerService$InputMonitor.interceptKeyBeforeQueueing(WindowManagerService.java:5255)
InputManager-JNI - at com.android.server.InputManager$Callbacks.interceptKeyBeforeQueueing(InputManager.java:404)
InputManager-JNI - at dalvik.system.NativeStart.run(Native Method)
InputDispatcher - notifyKey - deviceId=0x0, source=0x101, policyFlags=0x32000002, action=0x0, flags=0x9, keyCode=0x1a, scanCode=0x74, metaState=0x0, eventTime=5904047125987
LightsService - [LedInfo] setLight_native light=2 colorARGB=-11447983 flashMode=0 onMS=0 offMS=0 brightnessMode=0
lights - set_light_buttons_func: on=5329233 brightness=81
power - *** set_screen_state 1
SensorService - noteStartSensor: uid = 0x3e8, handle = 0x4
LightsService - [LedInfo] setLight_native light=0 colorARGB=-11447983 flashMode=0 onMS=0 offMS=0 brightnessMode=1
WindowManager - interceptKeyBeforeQueue keycode=26 screenIsOn=true keyguardActive=true
InputDispatcher - notifyKey - deviceId=0x0, source=0x101, policyFlags=0x2000002, action=0x1, flags=0x8, keyCode=0x1a, scanCode=0x74, metaState=0x0, eventTime=5904147369869
SurfaceFlinger - Screen about to return, flinger = 0x319288
LightsService - [LedInfo] setLight_native light=2 colorARGB=-8355712 flashMode=0 onMS=0 offMS=0 brightnessMode=0
lights - set_light_buttons_func: on=8421504 brightness=128
LightsService - [LedInfo] setLight_native light=1 colorARGB=-16777216 flashMode=0 onMS=0 offMS=0 brightnessMode=0
WindowManager - needSensorRunningLp, mCurrentAppOrientation =1
HtcLockScreen2.0 - HtcLockScreen: onResume
something new here? because this problem does not yet use Gingerbread Sense 2.1 ROM's for long time

Info 2 how to toggle button burst button to btn_toggles_normal on notification pulldo

Info 2 how to toggle button burst button to btn_toggles_normal on notification pulldown?
Hello guys.. all things and functionality works applying spacecakers buttonburst mod except... if i toggle button burst button, so now it displays btn_tg or open face of quickpanel and if i close notification panel since recently button burst was toggled to open when i pull down the notification again, it still shows btn_tg or open face and logically its bug....
How to add or reinitialize button burst image to normal when i close or open notification panel.....
Heres how it looks:
Before I toggle button burst -----> When I toggle button burst -----> I close the notification 1st & when i reopen notification panel BUG on button burst image
it shud be normal face or initial face but since no method is handling to reinitialize button image on close notify panel or open notify panel... how to add this code from buttonburst.smali
code taken from buttonburst.smali
.prologue
.line 34
const v2, 0xffffff
invoke-virtual {p0, v2}, Lcom/spacecaker/ButtonBurst;->setBackgroundColor(I)V
.line 35
iget-object v2, p0, Lcom/spacecaker/ButtonBurst;->mContext:Landroid/content/Context;
invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v2
const v3, 0x7f03017e ---------> this is the correct register already for button normal compared to my public.xml
invoke-virtual {v2, v3}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object v1
.line 36
.local v1, "on":Landroid/graphics/drawable/Drawable;
.line 40
invoke-virtual {p0, v1}, Lcom/spacecaker/ButtonBurst;->setBackgroundDrawable(Landroid/graphics/drawable/DrawableV
Theres so many methods inside my phonestatusbar.smali and tried adding it in this method but i got a force close...
.method private makeExpandedVisible(Z)V
more methods
.method private notifyUiVisibilityChanged()V
.method public animateCollapse(IF)V
.method public animateExpand()V
.method protected getExpandedViewMaxHeight()I
.method performExpand()V
.method protected updateNotificationIcons()V
and so many more im confused where to add the code to reinitialize button burst button image to normal on notify expand or notify close...
Or anyone knows how to edit and open systemui java code in eclipse.... have no idea... it wud be much easier for me to edit things if smali is in java code...
Attached is my working PhoneStatusBar.smali and ButtonBurst.smali

About Navigation bar in any Phone/ROM

Hey guys,
I will complete guide you about navigation bar.
This thread devided into to parts
Who likes navigation bar
Who dislike navigation bar
1. Who likes navigation bar
Who likes navigation bar can add navigation bar into their phone
Simply follow steps...
Open /system/build.prop
Add this line at the end of it
"qemu.hw.mainkeys=0" without ""
Open /system/usr/keylayout/Generic.kl
Add "#" before 139, 158, 172 line
for example
this
139 MENU
158 BACK
172 HOME
change to this
# 139 MENU
# 158 BACK
# 172 HOME
Reboot
This code enable navigation bar to your phone/rom and disable hardkeys
2. Who dislike navigation bar
Who dislike navigation bar and there is navigation in rom, so they can remove navigation bar.
Simply follow the steps....
Open /system/build.prop
Add this line at the end of it
"qemu.hw.mainkeys=1" without ""
Or if there is already "qemu.hw.mainkeys=0"
Change "=0" to "=1"
Reboot
NOTE: DO THIS ONLY IF YOUR PHONE HAS HARD KEYS AND IT IS WORKING

[Tasker App] AOD When Notification Received Mate 20 Pro

Hey Guys,
I have a simple solution for very bad AOD in Huawei Mate 20 Pro. This tasker profile is used for only toggle AOD screen when a specified app sends a notification to smartphone and disable AOD when this notifications are cleared.
It is a very simple solution.
Here is the step one for Toggling AOD when notification received:
1- Go Tasker -> Profiles and touch on bottom right + symbol.
2- Select from list ->Application and select all deserved apps can wake AOD screen and press ->Back
3- Touch "New Task" give it a name (optional obviously) and again press touch bottom right + symbol.
4a- Now you need an action category. Follow Settings -> Custom Settings
4b- Select this settings:
Type: Secure
Name: aod_switch
Value: 1
and press back button. Enable from top of the Tasker application
Here is the step one for Disabling AOD when notification cleared:
1- Go Tasker -> Profiles and touch on bottom right + symbol
2- Select from list ->Application and exactly like did on "Toggling numbor 2" BUT THIS TIME YOU NEED SELECT "INVERT" FROM BOTTOM OF APP SELECTING SCREEN.
3- Touch "New Task" give it a name (again optional obviously) and again press touch bottom right + symbol.
4a- Now you need an action category. Follow Settings -> Custom Settings
4b- Select this settings:
Type: Secure
Name: aod_switch
Value: 0
and press back button. Enable from top of the Tasker application
So, I mean reverting Toggling settings for disabling AOD
And thats it. This is the solution that I figured out myself.
This is the import link: https://taskernet.com/shares/?user=AS35m8kn2ZlYFlMeaURIg%2FjBzJ0X0SUYgJ2wgf4EVNmYj987Yy55QIBaNJ9Qf06uBeihM01L1q4%3D&id=Profile%3AAOD+off+Notification

Categories

Resources