Android - What is the correct way of turning off screen -


this little bit tricky.

background: there old galaxynexus power button not functioning well. have press hard turn on/off screen , annoying!

solution: have downloaded newest aosp , build own firmware images. modified 2 places handle problem.

1- in function interceptkeybeforequeueing() of phonewindowmanager, add following handling codes:

if(keycode == keyevent.keycode_volume_up || keycode == keyevent.keycode_volume_down) {     if(event.getaction() == keyevent.action_up && !mpowermanager.isscreenon()) {         return action_wake_up;     } } 

2- in status bar source code, modified call when long-press home button. change triggering google assistant turn off screen (apology google). in function ontrigger() in searchpanelview, modified code below:

//startassistactivity(); vibrate(); powermanager pm = (powermanager)mcontext.getsystemservice(context.power_service); if(pm.isscreenon()) {     pm.gotosleep(systemclock.uptimemillis()); } 

i have comment out original code of launching assist activity , add code of turning off screen.

result: seems work fine, can

  1. long press home button , slide turn off screen
  2. press volume +/- button turn on screen

but, abnormal if disable lock screen. if screen lock set none , long press home button , slide turn off screen, after turn on screen, no matter via volume key or power key, ui has no reaction when touch it. unless press home again. seems search panel view still there , hijacking touch events.

i have tried modify code in status bar following:

mbar.animatecollapsepanels(commandqueue.flag_exclude_search_panel); slog.i(tag, "ontrigger: post message turn off screen after 100ms."); v.postdelayed(new runnable() {     @override     public void run() {         powermanager pm = (powermanager)mcontext.getsystemservice(context.power_service);         if(pm.isscreenon()) {             pm.gotosleep(systemclock.uptimemillis());         }     } }, 100); 

but problem remains. issue happens in scenario of turning off screen using "long press home , slide up" action. means use powermanager.gotosleep() method. there missing here? additional handing should taken?

is there give me hint or inspiration? lot!


Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -