From 4b06a390c9526a5ea40e5cbb85ebade308c4ed35 Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Sat, 7 Jan 2012 18:08:40 +0000 Subject: [PATCH] possible fix for button lights issue (hardware button lights were always enabled after FBReader closing) --- .../ui/android/library/ZLAndroidActivity.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidActivity.java b/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidActivity.java index 75d70e94f..5514cdf33 100644 --- a/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidActivity.java +++ b/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidActivity.java @@ -64,13 +64,14 @@ public abstract class ZLAndroidActivity extends Activity { return (level >= 0) ? level : 50; } - private void disableButtonLight() { + private void setButtonLight(boolean enabled) { try { final WindowManager.LayoutParams attrs = getWindow().getAttributes(); final Class cls = attrs.getClass(); final Field fld = cls.getField("buttonBrightness"); if (fld != null && "float".equals(fld.getType().toString())) { - fld.setFloat(attrs, 0); + fld.setFloat(attrs, enabled ? -1.0f : 0.0f); + getWindow().setAttributes(attrs); } } catch (NoSuchFieldException e) { } catch (IllegalAccessException e) { @@ -86,9 +87,6 @@ public abstract class ZLAndroidActivity extends Activity { Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(this)); requestWindowFeature(Window.FEATURE_NO_TITLE); - if (getLibrary().DisableButtonLightsOption.getValue()) { - disableButtonLight(); - } setContentView(R.layout.main); setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); @@ -160,6 +158,9 @@ public abstract class ZLAndroidActivity extends Activity { } else { setScreenBrightnessAuto(); } + if (getLibrary().DisableButtonLightsOption.getValue()) { + setButtonLight(false); + } registerReceiver(myBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); } @@ -169,6 +170,9 @@ public abstract class ZLAndroidActivity extends Activity { unregisterReceiver(myBatteryInfoReceiver); ZLApplication.Instance().stopTimer(); switchWakeLock(false); + if (getLibrary().DisableButtonLightsOption.getValue()) { + setButtonLight(true); + } ZLApplication.Instance().onWindowClosing(); super.onPause(); }