From 30e55f73db66a9fbeb7b9e8bcf9235e61296f67d Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Sat, 5 Feb 2011 23:51:35 +0000 Subject: [PATCH] 'Show status bar when menu becomes visible' option --- ChangeLog | 4 +++ assets/resources/application/cs.xml | 4 +++ assets/resources/application/de.xml | 4 +++ assets/resources/application/en.xml | 4 +++ assets/resources/application/fr.xml | 4 +++ assets/resources/application/gl.xml | 4 +++ assets/resources/application/hu.xml | 4 +++ assets/resources/application/it.xml | 4 +++ assets/resources/application/nl.xml | 4 +++ assets/resources/application/ru.xml | 4 +++ assets/resources/application/uk.xml | 4 +++ assets/resources/application/vi.xml | 4 +++ assets/resources/application/zh.xml | 4 +++ .../android/fbreader/FBReader.java | 30 ++++++++++++++++++- .../preferences/PreferenceActivity.java | 20 ++++++++++++- .../android/library/ZLAndroidApplication.java | 1 + 16 files changed, 101 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1ee56197b..b3bc1aac4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +===== 0.99.12 (Feb ??, 2011) ===== +* Added support for more dictionaries (by Steffen Siebert) +* Option 'show status bar when menu becomes visible' + ===== 0.99.11 (Feb 01, 2011) ===== * Galician translation has been added (by Miguel Anxo Bouzada) * Czech translation has been updated (by Marek Pavelka) diff --git a/assets/resources/application/cs.xml b/assets/resources/application/cs.xml index 8da55fbd9..02bb50383 100644 --- a/assets/resources/application/cs.xml +++ b/assets/resources/application/cs.xml @@ -240,6 +240,10 @@ + + + + diff --git a/assets/resources/application/de.xml b/assets/resources/application/de.xml index 3e7ac0648..a5f4ef6ae 100644 --- a/assets/resources/application/de.xml +++ b/assets/resources/application/de.xml @@ -241,6 +241,10 @@ + + + + diff --git a/assets/resources/application/en.xml b/assets/resources/application/en.xml index 1fb978e04..883301de5 100644 --- a/assets/resources/application/en.xml +++ b/assets/resources/application/en.xml @@ -239,6 +239,10 @@ + + + + diff --git a/assets/resources/application/fr.xml b/assets/resources/application/fr.xml index 8eec3b7fa..f9bd3390f 100644 --- a/assets/resources/application/fr.xml +++ b/assets/resources/application/fr.xml @@ -243,6 +243,10 @@ + + + + diff --git a/assets/resources/application/gl.xml b/assets/resources/application/gl.xml index b51d55dd7..9fabc7324 100644 --- a/assets/resources/application/gl.xml +++ b/assets/resources/application/gl.xml @@ -240,6 +240,10 @@ + + + + diff --git a/assets/resources/application/hu.xml b/assets/resources/application/hu.xml index 0bd210456..9a514b903 100644 --- a/assets/resources/application/hu.xml +++ b/assets/resources/application/hu.xml @@ -240,6 +240,10 @@ + + + + diff --git a/assets/resources/application/it.xml b/assets/resources/application/it.xml index a650d9c2b..677225789 100644 --- a/assets/resources/application/it.xml +++ b/assets/resources/application/it.xml @@ -240,6 +240,10 @@ + + + + diff --git a/assets/resources/application/nl.xml b/assets/resources/application/nl.xml index ad6459ffc..937e00481 100644 --- a/assets/resources/application/nl.xml +++ b/assets/resources/application/nl.xml @@ -240,6 +240,10 @@ + + + + diff --git a/assets/resources/application/ru.xml b/assets/resources/application/ru.xml index fd9dda42c..b6b34d4da 100644 --- a/assets/resources/application/ru.xml +++ b/assets/resources/application/ru.xml @@ -239,6 +239,10 @@ + + + + diff --git a/assets/resources/application/uk.xml b/assets/resources/application/uk.xml index 0472bfed9..cd76fe5b3 100644 --- a/assets/resources/application/uk.xml +++ b/assets/resources/application/uk.xml @@ -240,6 +240,10 @@ + + + + diff --git a/assets/resources/application/vi.xml b/assets/resources/application/vi.xml index c85ffe8ab..c4ecfcbbf 100644 --- a/assets/resources/application/vi.xml +++ b/assets/resources/application/vi.xml @@ -240,6 +240,10 @@ + + + + diff --git a/assets/resources/application/zh.xml b/assets/resources/application/zh.xml index d67bc2f58..60248ba65 100644 --- a/assets/resources/application/zh.xml +++ b/assets/resources/application/zh.xml @@ -240,6 +240,10 @@ + + + + diff --git a/src/org/geometerplus/android/fbreader/FBReader.java b/src/org/geometerplus/android/fbreader/FBReader.java index ea7f75c22..a04c4af2a 100644 --- a/src/org/geometerplus/android/fbreader/FBReader.java +++ b/src/org/geometerplus/android/fbreader/FBReader.java @@ -25,7 +25,9 @@ import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.view.Menu; import android.view.WindowManager; +import android.view.Window; import android.widget.RelativeLayout; import org.geometerplus.zlibrary.core.filesystem.ZLFile; @@ -102,10 +104,36 @@ public final class FBReader extends ZLAndroidActivity { fbReader.addAction(ActionCode.CANCEL, new CancelAction(this, fbReader)); } + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + final ZLAndroidApplication application = ZLAndroidApplication.Instance(); + if (!application.ShowStatusBarOption.getValue() && + application.ShowStatusBarWhenMenuIsActiveOption.getValue()) { + final Window window = getWindow(); + final WindowManager.LayoutParams attrs = window.getAttributes(); + attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN; + window.setAttributes(attrs); + } + return super.onPrepareOptionsMenu(menu); + } + + @Override + public void onOptionsMenuClosed(Menu menu) { + super.onOptionsMenuClosed(menu); + final ZLAndroidApplication application = ZLAndroidApplication.Instance(); + if (!application.ShowStatusBarOption.getValue() && + application.ShowStatusBarWhenMenuIsActiveOption.getValue()) { + final Window window = getWindow(); + final WindowManager.LayoutParams attrs = window.getAttributes(); + attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN; + window.setAttributes(attrs); + } + } + @Override protected void onNewIntent(Intent intent) { if (Intent.ACTION_SEARCH.equals(intent.getAction())) { - final String pattern = intent.getStringExtra(SearchManager.QUERY); + final String pattern = intent.getStringExtra(SearchManager.QUERY); final Handler successHandler = new Handler() { public void handleMessage(Message message) { ourTextSearchPanel.show(true); diff --git a/src/org/geometerplus/android/fbreader/preferences/PreferenceActivity.java b/src/org/geometerplus/android/fbreader/preferences/PreferenceActivity.java index fcd429fb0..ffdc32fd5 100644 --- a/src/org/geometerplus/android/fbreader/preferences/PreferenceActivity.java +++ b/src/org/geometerplus/android/fbreader/preferences/PreferenceActivity.java @@ -51,9 +51,27 @@ public class PreferenceActivity extends ZLPreferenceActivity { } directoriesScreen.addOption(Paths.WallpapersDirectoryOption(), "wallpapers"); + final ZLPreferenceSet statusBarPreferences = new ZLPreferenceSet(); final Screen appearanceScreen = createPreferenceScreen("appearance"); appearanceScreen.addOption(androidApp.AutoOrientationOption, "autoOrientation"); - appearanceScreen.addOption(androidApp.ShowStatusBarOption, "showStatusBar"); + appearanceScreen.addPreference( + new ZLBooleanPreference( + this, androidApp.ShowStatusBarOption, appearanceScreen.Resource, "showStatusBar" + ) { + @Override + public void onClick() { + super.onClick(); + statusBarPreferences.setEnabled(!isChecked()); + } + } + ); + statusBarPreferences.add( + appearanceScreen.addOption( + androidApp.ShowStatusBarWhenMenuIsActiveOption, + "showStatusBarWhenMenuIsActive" + ) + ); + statusBarPreferences.setEnabled(!androidApp.ShowStatusBarOption.getValue()); final Screen textScreen = createPreferenceScreen("text"); final ZLTextStyleCollection collection = ZLTextStyleCollection.Instance(); diff --git a/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidApplication.java b/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidApplication.java index 418abfb1b..c5f212990 100644 --- a/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidApplication.java +++ b/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidApplication.java @@ -35,6 +35,7 @@ public class ZLAndroidApplication extends Application { public final ZLBooleanOption AutoOrientationOption = new ZLBooleanOption("LookNFeel", "AutoOrientation", false); public final ZLBooleanOption ShowStatusBarOption = new ZLBooleanOption("LookNFeel", "ShowStatusBar", hasNoHardwareMenuButton()); + public final ZLBooleanOption ShowStatusBarWhenMenuIsActiveOption = new ZLBooleanOption("LookNFeel", "ShowStatusBarWithMenu", false); public final ZLIntegerRangeOption BatteryLevelToTurnScreenOffOption = new ZLIntegerRangeOption("LookNFeel", "BatteryLevelToTurnScreenOff", 0, 100, 50); public final ZLBooleanOption DontTurnScreenOffDuringChargingOption = new ZLBooleanOption("LookNFeel", "DontTurnScreenOffDuringCharging", true); public final ZLIntegerRangeOption ScreenBrightnessLevelOption = new ZLIntegerRangeOption("LookNFeel", "ScreenBrightnessLevel", 0, 100, 0);