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="100" value="Nikdy"/>
</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="summary" value="Nastavení zobrazení textu"/>
</node>

View file

@ -167,6 +167,10 @@
<node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/>
<node name="100" value="Never" toBeTranslated="true"/>
</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="summary" toBeTranslated="true" value="Text displaying settings"/>
</node>

View file

@ -166,6 +166,10 @@
<node name="50" value="While battery level is greater than 50 percent"/>
<node name="100" value="Never"/>
</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="summary" value="Text displaying settings"/>
</node>

View file

@ -170,6 +170,10 @@
<node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/>
<node name="100" value="Never" toBeTranslated="true"/>
</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="summary" value="Paramètres d'affichage du texte"/>
</node>

View file

@ -167,6 +167,10 @@
<node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/>
<node name="100" value="Never" toBeTranslated="true"/>
</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="summary" toBeTranslated="true" value="Text displaying settings"/>
</node>

View file

@ -167,6 +167,10 @@
<node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/>
<node name="100" value="Never" toBeTranslated="true"/>
</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="summary" value="Impostazioni di visualizzazione del testo"/>
</node>

View file

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

View file

@ -167,6 +167,10 @@
<node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/>
<node name="100" value="Never" toBeTranslated="true"/>
</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="summary" toBeTranslated="true" value="Text displaying settings"/>
</node>

View file

@ -167,6 +167,10 @@
<node name="50" value="While battery level is greater than 50 percent" toBeTranslated="true"/>
<node name="100" value="Never" toBeTranslated="true"/>
</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="summary" toBeTranslated="true" value="Text displaying settings"/>
</node>

View file

@ -75,9 +75,10 @@ public class PreferenceActivity extends ZLPreferenceActivity {
final Category lookNFeelCategory = createCategory("LookNFeel");
final FBReaderApp fbReader = (FBReaderApp)FBReaderApp.Instance();
final ZLAndroidApplication androidApp = ZLAndroidApplication.Instance();
final Screen appearanceScreen = lookNFeelCategory.createPreferenceScreen("appearanceSettings");
appearanceScreen.setSummary( appearanceScreen.Resource.getResource("summary").getValue() );
appearanceScreen.setSummary(appearanceScreen.Resource.getResource("summary").getValue());
appearanceScreen.setOnPreferenceClickListener(
new PreferenceScreen.OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
@ -113,16 +114,29 @@ public class PreferenceActivity extends ZLPreferenceActivity {
statusLineCategory.addOption(fbReader.FooterShowProgress, "showProgress");
statusLineCategory.addOption(fbReader.FooterIsSensitive, "isSensitive");
lookNFeelCategory.addOption(ZLAndroidApplication.Instance().AutoOrientationOption, "autoOrientation");
if (!ZLAndroidApplication.Instance().isAlwaysShowStatusBar()) {
lookNFeelCategory.addOption(ZLAndroidApplication.Instance().ShowStatusBarOption, "showStatusBar");
lookNFeelCategory.addOption(androidApp.AutoOrientationOption, "autoOrientation");
if (!androidApp.isAlwaysShowStatusBar()) {
lookNFeelCategory.addOption(androidApp.ShowStatusBarOption, "showStatusBar");
}
lookNFeelCategory.addPreference(new BatteryLevelToTurnScreenOffPreference(
this,
ZLAndroidApplication.Instance().BatteryLevelToTurnScreenOffOption,
androidApp.BatteryLevelToTurnScreenOffOption,
lookNFeelCategory.Resource,
"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");

View file

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

View file

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

View file

@ -31,7 +31,7 @@ public class ScrollingPreferences {
public final ZLBooleanOption FlickOption = new ZLBooleanOption("Scrolling", "Flick", true);
public final ZLBooleanOption VolumeKeysOption = new ZLBooleanOption("Scrolling", "VolumeKeys", 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);
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) {
if (percent < 0) {
percent = 0;
if (percent < 1) {
percent = 1;
} else if (percent > 100) {
percent = 100;
}
final WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.screenBrightness = percent / 100.0f;
getWindow().setAttributes(attrs);
((ZLAndroidApplication)getApplication()).ScreenBrightnessLevelOption.setValue(percent);
}
final int getScreenBrightness() {
@ -76,6 +83,19 @@ public abstract class ZLAndroidActivity extends Activity {
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
public void onCreate(Bundle state) {
super.onCreate(state);
@ -87,17 +107,7 @@ public abstract class ZLAndroidActivity extends Activity {
}
requestWindowFeature(Window.FEATURE_NO_TITLE);
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) {
}
//getWindow().getAttributes().buttonBrightness = 0;
disableButtonLight();
setContentView(R.layout.main);
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
@ -199,6 +209,13 @@ public abstract class ZLAndroidActivity extends Activity {
ZLApplication.Instance().getBatteryLevel()
);
myStartTimer = true;
final int brightnessLevel =
((ZLAndroidApplication)getApplication()).ScreenBrightnessLevelOption.getValue();
if (brightnessLevel != 0) {
setScreenBrightness(brightnessLevel);
} else {
setScreenBrightnessAuto();
}
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 ShowStatusBarOption = new ZLBooleanOption("LookNFeel", "ShowStatusBar", false);
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() {
return ourApplication;