1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 02:09:35 +02:00

brightness adjustment preferences have been added

This commit is contained in:
Nikolay Pultsin 2010-11-03 21:05:33 +00:00
parent c0030bb5c0
commit c31d06cb79
15 changed files with 93 additions and 25 deletions

View file

@ -167,6 +167,10 @@
<node name="50" value="Pokud je úroveň baterie větší než 50 procent"/> <node name="50" value="Pokud je úroveň baterie větší než 50 procent"/>
<node name="100" value="Nikdy"/> <node name="100" value="Nikdy"/>
</node> </node>
<node name="allowScreenBrightnessAdjustment" value="Screen brightness adjustment" toBeTranslated="true">
<node name="summaryOn" value="By dragging finger up/down along left side of the screen" toBeTranslated="true"/>
<node name="summaryOff" value="Disabled" toBeTranslated="true"/>
</node>
<node name="appearanceSettings" value="Vzhled"> <node name="appearanceSettings" value="Vzhled">
<node name="summary" value="Nastavení zobrazení textu"/> <node name="summary" value="Nastavení zobrazení textu"/>
</node> </node>

View file

@ -167,6 +167,10 @@
<node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/> <node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/>
<node name="100" value="Never" toBeTranslated="true"/> <node name="100" value="Never" toBeTranslated="true"/>
</node> </node>
<node name="allowScreenBrightnessAdjustment" value="Screen brightness adjustment" toBeTranslated="true">
<node name="summaryOn" value="By dragging finger up/down along left side of the screen" toBeTranslated="true"/>
<node name="summaryOff" value="Disabled" toBeTranslated="true"/>
</node>
<node name="appearanceSettings" toBeTranslated="true" value="Appearance"> <node name="appearanceSettings" toBeTranslated="true" value="Appearance">
<node name="summary" toBeTranslated="true" value="Text displaying settings"/> <node name="summary" toBeTranslated="true" value="Text displaying settings"/>
</node> </node>

View file

@ -166,6 +166,10 @@
<node name="50" value="While battery level is greater than 50 percent"/> <node name="50" value="While battery level is greater than 50 percent"/>
<node name="100" value="Never"/> <node name="100" value="Never"/>
</node> </node>
<node name="allowScreenBrightnessAdjustment" value="Screen brightness adjustment">
<node name="summaryOn" value="By dragging finger up/down along left side of the screen"/>
<node name="summaryOff" value="Disabled"/>
</node>
<node name="appearanceSettings" value="Appearance"> <node name="appearanceSettings" value="Appearance">
<node name="summary" value="Text displaying settings"/> <node name="summary" value="Text displaying settings"/>
</node> </node>

View file

@ -170,6 +170,10 @@
<node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/> <node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/>
<node name="100" value="Never" toBeTranslated="true"/> <node name="100" value="Never" toBeTranslated="true"/>
</node> </node>
<node name="allowScreenBrightnessAdjustment" value="Screen brightness adjustment" toBeTranslated="true">
<node name="summaryOn" value="By dragging finger up/down along left side of the screen" toBeTranslated="true"/>
<node name="summaryOff" value="Disabled" toBeTranslated="true"/>
</node>
<node name="appearanceSettings" value="Apparence"> <node name="appearanceSettings" value="Apparence">
<node name="summary" value="Paramètres d'affichage du texte"/> <node name="summary" value="Paramètres d'affichage du texte"/>
</node> </node>

View file

@ -167,6 +167,10 @@
<node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/> <node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/>
<node name="100" value="Never" toBeTranslated="true"/> <node name="100" value="Never" toBeTranslated="true"/>
</node> </node>
<node name="allowScreenBrightnessAdjustment" value="Screen brightness adjustment" toBeTranslated="true">
<node name="summaryOn" value="By dragging finger up/down along left side of the screen" toBeTranslated="true"/>
<node name="summaryOff" value="Disabled" toBeTranslated="true"/>
</node>
<node name="appearanceSettings" toBeTranslated="true" value="Appearance"> <node name="appearanceSettings" toBeTranslated="true" value="Appearance">
<node name="summary" toBeTranslated="true" value="Text displaying settings"/> <node name="summary" toBeTranslated="true" value="Text displaying settings"/>
</node> </node>

View file

@ -167,6 +167,10 @@
<node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/> <node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/>
<node name="100" value="Never" toBeTranslated="true"/> <node name="100" value="Never" toBeTranslated="true"/>
</node> </node>
<node name="allowScreenBrightnessAdjustment" value="Screen brightness adjustment" toBeTranslated="true">
<node name="summaryOn" value="By dragging finger up/down along left side of the screen" toBeTranslated="true"/>
<node name="summaryOff" value="Disabled" toBeTranslated="true"/>
</node>
<node name="appearanceSettings" value="Aspetto"> <node name="appearanceSettings" value="Aspetto">
<node name="summary" value="Impostazioni di visualizzazione del testo"/> <node name="summary" value="Impostazioni di visualizzazione del testo"/>
</node> </node>

View file

@ -166,6 +166,10 @@
<node name="50" value="Пока батарея заряжена хотя бы на половину"/> <node name="50" value="Пока батарея заряжена хотя бы на половину"/>
<node name="100" value="Всегда выключать"/> <node name="100" value="Всегда выключать"/>
</node> </node>
<node name="allowScreenBrightnessAdjustment" value="Регулировка яркости экрана">
<node name="summaryOn" value="Движением пальца вверх/вниз по левому краю экрана"/>
<node name="summaryOff" value="Выключена"/>
</node>
<node name="appearanceSettings" value="Внешний вид"> <node name="appearanceSettings" value="Внешний вид">
<node name="summary" value="Настройки отображения текста"/> <node name="summary" value="Настройки отображения текста"/>
</node> </node>

View file

@ -167,6 +167,10 @@
<node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/> <node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/>
<node name="100" value="Never" toBeTranslated="true"/> <node name="100" value="Never" toBeTranslated="true"/>
</node> </node>
<node name="allowScreenBrightnessAdjustment" value="Screen brightness adjustment" toBeTranslated="true">
<node name="summaryOn" value="By dragging finger up/down along left side of the screen" toBeTranslated="true"/>
<node name="summaryOff" value="Disabled" toBeTranslated="true"/>
</node>
<node name="appearanceSettings" toBeTranslated="true" value="Appearance"> <node name="appearanceSettings" toBeTranslated="true" value="Appearance">
<node name="summary" toBeTranslated="true" value="Text displaying settings"/> <node name="summary" toBeTranslated="true" value="Text displaying settings"/>
</node> </node>

View file

@ -167,6 +167,10 @@
<node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/> <node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/>
<node name="100" value="Never" toBeTranslated="true"/> <node name="100" value="Never" toBeTranslated="true"/>
</node> </node>
<node name="allowScreenBrightnessAdjustment" value="Screen brightness adjustment" toBeTranslated="true">
<node name="summaryOn" value="By dragging finger up/down along left side of the screen" toBeTranslated="true"/>
<node name="summaryOff" value="Disabled" toBeTranslated="true"/>
</node>
<node name="appearanceSettings" toBeTranslated="true" value="Appearance"> <node name="appearanceSettings" toBeTranslated="true" value="Appearance">
<node name="summary" toBeTranslated="true" value="Text displaying settings"/> <node name="summary" toBeTranslated="true" value="Text displaying settings"/>
</node> </node>

View file

@ -75,6 +75,7 @@ public class PreferenceActivity extends ZLPreferenceActivity {
final Category lookNFeelCategory = createCategory("LookNFeel"); final Category lookNFeelCategory = createCategory("LookNFeel");
final FBReaderApp fbReader = (FBReaderApp)FBReaderApp.Instance(); final FBReaderApp fbReader = (FBReaderApp)FBReaderApp.Instance();
final ZLAndroidApplication androidApp = ZLAndroidApplication.Instance();
final Screen appearanceScreen = lookNFeelCategory.createPreferenceScreen("appearanceSettings"); final Screen appearanceScreen = lookNFeelCategory.createPreferenceScreen("appearanceSettings");
appearanceScreen.setSummary(appearanceScreen.Resource.getResource("summary").getValue()); appearanceScreen.setSummary(appearanceScreen.Resource.getResource("summary").getValue());
@ -113,16 +114,29 @@ public class PreferenceActivity extends ZLPreferenceActivity {
statusLineCategory.addOption(fbReader.FooterShowProgress, "showProgress"); statusLineCategory.addOption(fbReader.FooterShowProgress, "showProgress");
statusLineCategory.addOption(fbReader.FooterIsSensitive, "isSensitive"); statusLineCategory.addOption(fbReader.FooterIsSensitive, "isSensitive");
lookNFeelCategory.addOption(ZLAndroidApplication.Instance().AutoOrientationOption, "autoOrientation"); lookNFeelCategory.addOption(androidApp.AutoOrientationOption, "autoOrientation");
if (!ZLAndroidApplication.Instance().isAlwaysShowStatusBar()) { if (!androidApp.isAlwaysShowStatusBar()) {
lookNFeelCategory.addOption(ZLAndroidApplication.Instance().ShowStatusBarOption, "showStatusBar"); lookNFeelCategory.addOption(androidApp.ShowStatusBarOption, "showStatusBar");
} }
lookNFeelCategory.addPreference(new BatteryLevelToTurnScreenOffPreference( lookNFeelCategory.addPreference(new BatteryLevelToTurnScreenOffPreference(
this, this,
ZLAndroidApplication.Instance().BatteryLevelToTurnScreenOffOption, androidApp.BatteryLevelToTurnScreenOffOption,
lookNFeelCategory.Resource, lookNFeelCategory.Resource,
"dontTurnScreenOff" "dontTurnScreenOff"
)); ));
lookNFeelCategory.addPreference(new ZLBooleanPreference(
this,
fbReader.AllowScreenBrightnessAdjustmentOption,
lookNFeelCategory.Resource,
"allowScreenBrightnessAdjustment"
) {
public void onAccept() {
super.onAccept();
if (!isChecked()) {
androidApp.ScreenBrightnessLevelOption.setValue(0);
}
}
});
/* /*
final Screen colorProfileScreen = lookNFeelCategory.createPreferenceScreen("colorProfile"); final Screen colorProfileScreen = lookNFeelCategory.createPreferenceScreen("colorProfile");

View file

@ -33,6 +33,8 @@ import org.geometerplus.fbreader.library.Bookmark;
import org.geometerplus.fbreader.optionsDialog.OptionsDialog; import org.geometerplus.fbreader.optionsDialog.OptionsDialog;
public final class FBReaderApp extends ZLApplication { public final class FBReaderApp extends ZLApplication {
public final ZLBooleanOption AllowScreenBrightnessAdjustmentOption =
new ZLBooleanOption("LookNFeel", "AllowScreenBrightnessAdjustment", true);
public final ZLStringOption TextSearchPatternOption = public final ZLStringOption TextSearchPatternOption =
new ZLStringOption("TextSearch", "Pattern", ""); new ZLStringOption("TextSearch", "Pattern", "");
public final ZLStringOption BookmarkSearchPatternOption = public final ZLStringOption BookmarkSearchPatternOption =

View file

@ -118,7 +118,7 @@ public final class FBView extends ZLTextView {
return true; return true;
} }
if (x < 20) { if (myReader.AllowScreenBrightnessAdjustmentOption.getValue() && x < myContext.getWidth() / 10) {
myIsBrightnessAdjustmentInProgress = true; myIsBrightnessAdjustmentInProgress = true;
myStartY = y; myStartY = y;
myStartBrightness = ZLibrary.Instance().getScreenBrightness(); myStartBrightness = ZLibrary.Instance().getScreenBrightness();
@ -159,10 +159,10 @@ public final class FBView extends ZLTextView {
synchronized (this) { synchronized (this) {
if (myIsBrightnessAdjustmentInProgress) { if (myIsBrightnessAdjustmentInProgress) {
if (x >= 40) { if (x >= myContext.getWidth() / 5) {
myIsBrightnessAdjustmentInProgress = false; myIsBrightnessAdjustmentInProgress = false;
} else { } else {
final int delta = (myStartBrightness + 10) * 2 * (myStartY - y) / myContext.getHeight(); final int delta = (myStartBrightness + 10) * (myStartY - y) / myContext.getHeight();
System.err.println("adjusting to level: " + (myStartBrightness + delta)); System.err.println("adjusting to level: " + (myStartBrightness + delta));
ZLibrary.Instance().setScreenBrightness(myStartBrightness + delta); ZLibrary.Instance().setScreenBrightness(myStartBrightness + delta);
System.err.println("adjusted to level: " + ZLibrary.Instance().getScreenBrightness()); System.err.println("adjusted to level: " + ZLibrary.Instance().getScreenBrightness());
@ -205,9 +205,7 @@ public final class FBView extends ZLTextView {
} }
synchronized (this) { synchronized (this) {
if (myIsBrightnessAdjustmentInProgress) {
myIsBrightnessAdjustmentInProgress = false; myIsBrightnessAdjustmentInProgress = false;
}
if (isScrollingActive() && myIsManualScrollingActive) { if (isScrollingActive() && myIsManualScrollingActive) {
setScrollingActive(false); setScrollingActive(false);
myIsManualScrollingActive = false; myIsManualScrollingActive = false;

View file

@ -31,7 +31,7 @@ public class ScrollingPreferences {
public final ZLBooleanOption FlickOption = new ZLBooleanOption("Scrolling", "Flick", true); public final ZLBooleanOption FlickOption = new ZLBooleanOption("Scrolling", "Flick", true);
public final ZLBooleanOption VolumeKeysOption = new ZLBooleanOption("Scrolling", "VolumeKeys", true); public final ZLBooleanOption VolumeKeysOption = new ZLBooleanOption("Scrolling", "VolumeKeys", true);
public final ZLBooleanOption AnimateOption = new ZLBooleanOption("Scrolling", "ShowAnimated", true); public final ZLBooleanOption AnimateOption = new ZLBooleanOption("Scrolling", "ShowAnimated", true);
public final ZLBooleanOption HorizontalOption = new ZLBooleanOption("Scrolling", "Horizontal", false); public final ZLBooleanOption HorizontalOption = new ZLBooleanOption("Scrolling", "Horizontal", true);
public final ZLBooleanOption InvertVolumeKeysOption = new ZLBooleanOption("Scrolling", "InvertVolumeKeys", false); public final ZLBooleanOption InvertVolumeKeysOption = new ZLBooleanOption("Scrolling", "InvertVolumeKeys", false);
private ScrollingPreferences() { private ScrollingPreferences() {

View file

@ -60,15 +60,22 @@ public abstract class ZLAndroidActivity extends Activity {
} }
} }
private void setScreenBrightnessAuto() {
final WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.screenBrightness = -1.0f;
getWindow().setAttributes(attrs);
}
final void setScreenBrightness(int percent) { final void setScreenBrightness(int percent) {
if (percent < 0) { if (percent < 1) {
percent = 0; percent = 1;
} else if (percent > 100) { } else if (percent > 100) {
percent = 100; percent = 100;
} }
final WindowManager.LayoutParams attrs = getWindow().getAttributes(); final WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.screenBrightness = percent / 100.0f; attrs.screenBrightness = percent / 100.0f;
getWindow().setAttributes(attrs); getWindow().setAttributes(attrs);
((ZLAndroidApplication)getApplication()).ScreenBrightnessLevelOption.setValue(percent);
} }
final int getScreenBrightness() { final int getScreenBrightness() {
@ -76,6 +83,19 @@ public abstract class ZLAndroidActivity extends Activity {
return (level >= 0) ? level : 50; return (level >= 0) ? level : 50;
} }
private void disableButtonLight() {
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);
}
} catch (NoSuchFieldException e) {
} catch (IllegalAccessException e) {
}
}
@Override @Override
public void onCreate(Bundle state) { public void onCreate(Bundle state) {
super.onCreate(state); super.onCreate(state);
@ -87,17 +107,7 @@ public abstract class ZLAndroidActivity extends Activity {
} }
requestWindowFeature(Window.FEATURE_NO_TITLE); requestWindowFeature(Window.FEATURE_NO_TITLE);
try { disableButtonLight();
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);
}
} catch (NoSuchFieldException e) {
} catch (IllegalAccessException e) {
}
//getWindow().getAttributes().buttonBrightness = 0;
setContentView(R.layout.main); setContentView(R.layout.main);
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
@ -199,6 +209,13 @@ public abstract class ZLAndroidActivity extends Activity {
ZLApplication.Instance().getBatteryLevel() ZLApplication.Instance().getBatteryLevel()
); );
myStartTimer = true; myStartTimer = true;
final int brightnessLevel =
((ZLAndroidApplication)getApplication()).ScreenBrightnessLevelOption.getValue();
if (brightnessLevel != 0) {
setScreenBrightness(brightnessLevel);
} else {
setScreenBrightnessAuto();
}
registerReceiver(myBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); registerReceiver(myBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
} }

View file

@ -38,6 +38,7 @@ public class ZLAndroidApplication extends Application {
public final ZLBooleanOption AutoOrientationOption = new ZLBooleanOption("LookNFeel", "AutoOrientation", false); public final ZLBooleanOption AutoOrientationOption = new ZLBooleanOption("LookNFeel", "AutoOrientation", false);
public final ZLBooleanOption ShowStatusBarOption = new ZLBooleanOption("LookNFeel", "ShowStatusBar", false); public final ZLBooleanOption ShowStatusBarOption = new ZLBooleanOption("LookNFeel", "ShowStatusBar", false);
public final ZLIntegerRangeOption BatteryLevelToTurnScreenOffOption = new ZLIntegerRangeOption("LookNFeel", "BatteryLevelToTurnScreenOff", 0, 100, 50); public final ZLIntegerRangeOption BatteryLevelToTurnScreenOffOption = new ZLIntegerRangeOption("LookNFeel", "BatteryLevelToTurnScreenOff", 0, 100, 50);
public final ZLIntegerRangeOption ScreenBrightnessLevelOption = new ZLIntegerRangeOption("LookNFeel", "ScreenBrightnessLevel", 0, 100, 0);
public static ZLAndroidApplication Instance() { public static ZLAndroidApplication Instance() {
return ourApplication; return ourApplication;