1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-05 10:49:24 +02:00

brightness adjustment experiments

This commit is contained in:
Nikolay Pultsin 2010-11-03 09:20:22 +00:00
parent 0f4f826df9
commit c0030bb5c0
4 changed files with 56 additions and 0 deletions

View file

@ -90,6 +90,8 @@ public final class FBView extends ZLTextView {
private int myStartX; private int myStartX;
private int myStartY; private int myStartY;
private boolean myIsManualScrollingActive; private boolean myIsManualScrollingActive;
private boolean myIsBrightnessAdjustmentInProgress;
private int myStartBrightness;
public boolean onStylusPress(int x, int y) { public boolean onStylusPress(int x, int y) {
if (super.onStylusPress(x, y)) { if (super.onStylusPress(x, y)) {
@ -116,6 +118,14 @@ public final class FBView extends ZLTextView {
return true; return true;
} }
if (x < 20) {
myIsBrightnessAdjustmentInProgress = true;
myStartY = y;
myStartBrightness = ZLibrary.Instance().getScreenBrightness();
System.err.println("starting on level: " + myStartBrightness);
return true;
}
final ScrollingPreferences preferences = ScrollingPreferences.Instance(); final ScrollingPreferences preferences = ScrollingPreferences.Instance();
if (preferences.FlickOption.getValue()) { if (preferences.FlickOption.getValue()) {
myStartX = x; myStartX = x;
@ -148,6 +158,18 @@ public final class FBView extends ZLTextView {
} }
synchronized (this) { synchronized (this) {
if (myIsBrightnessAdjustmentInProgress) {
if (x >= 40) {
myIsBrightnessAdjustmentInProgress = false;
} else {
final int delta = (myStartBrightness + 10) * 2 * (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());
return true;
}
}
if (isScrollingActive() && myIsManualScrollingActive) { if (isScrollingActive() && myIsManualScrollingActive) {
final boolean horizontal = ScrollingPreferences.Instance().HorizontalOption.getValue(); final boolean horizontal = ScrollingPreferences.Instance().HorizontalOption.getValue();
final int diff = horizontal ? x - myStartX : y - myStartY; final int diff = horizontal ? x - myStartX : y - myStartY;
@ -183,6 +205,9 @@ public final class FBView extends ZLTextView {
} }
synchronized (this) { synchronized (this) {
if (myIsBrightnessAdjustmentInProgress) {
myIsBrightnessAdjustmentInProgress = false;
}
if (isScrollingActive() && myIsManualScrollingActive) { if (isScrollingActive() && myIsManualScrollingActive) {
setScrollingActive(false); setScrollingActive(false);
myIsManualScrollingActive = false; myIsManualScrollingActive = false;

View file

@ -37,5 +37,7 @@ public abstract class ZLibrary {
abstract public String getVersionName(); abstract public String getVersionName();
abstract public String getCurrentTimeString(); abstract public String getCurrentTimeString();
abstract public void setScreenBrightness(int percent);
abstract public int getScreenBrightness();
abstract public void openInBrowser(String reference); abstract public void openInBrowser(String reference);
} }

View file

@ -60,6 +60,22 @@ public abstract class ZLAndroidActivity extends Activity {
} }
} }
final void setScreenBrightness(int percent) {
if (percent < 0) {
percent = 0;
} else if (percent > 100) {
percent = 100;
}
final WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.screenBrightness = percent / 100.0f;
getWindow().setAttributes(attrs);
}
final int getScreenBrightness() {
final int level = (int)(100 * getWindow().getAttributes().screenBrightness);
return (level >= 0) ? level : 50;
}
@Override @Override
public void onCreate(Bundle state) { public void onCreate(Bundle state) {
super.onCreate(state); super.onCreate(state);

View file

@ -110,10 +110,23 @@ public final class ZLAndroidLibrary extends ZLibrary {
} }
} }
@Override
public String getCurrentTimeString() { public String getCurrentTimeString() {
return DateFormat.getTimeFormat(myApplication.getApplicationContext()).format(new Date()); return DateFormat.getTimeFormat(myApplication.getApplicationContext()).format(new Date());
} }
@Override
public void setScreenBrightness(int percent) {
if (myActivity != null) {
myActivity.setScreenBrightness(percent);
}
}
@Override
public int getScreenBrightness() {
return (myActivity != null) ? myActivity.getScreenBrightness() : 0;
}
private final class AndroidResourceFile extends ZLResourceFile { private final class AndroidResourceFile extends ZLResourceFile {
private boolean myExists; private boolean myExists;
private int myResourceId; private int myResourceId;