mirror of
https://github.com/zxing/zxing.git
synced 2025-01-12 19:57:27 -08:00
Issue 787 inactivity timer battery check
git-svn-id: https://zxing.googlecode.com/svn/trunk@1734 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
169a94c45b
commit
50277f6486
|
@ -223,6 +223,8 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
|
|||
copyToClipboard = prefs.getBoolean(PreferencesActivity.KEY_COPY_TO_CLIPBOARD, true);
|
||||
|
||||
beepManager.updatePrefs();
|
||||
|
||||
inactivityTimer.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -232,6 +234,7 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
|
|||
handler.quitSynchronously();
|
||||
handler = null;
|
||||
}
|
||||
inactivityTimer.onPause();
|
||||
CameraManager.get().closeDriver();
|
||||
}
|
||||
|
||||
|
|
|
@ -23,9 +23,13 @@ import java.util.concurrent.ThreadFactory;
|
|||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
|
||||
/**
|
||||
* Finishes an activity after a period of inactivity.
|
||||
* Finishes an activity after a period of inactivity if the device is on battery power.
|
||||
*/
|
||||
final class InactivityTimer {
|
||||
|
||||
|
@ -35,6 +39,7 @@ final class InactivityTimer {
|
|||
Executors.newSingleThreadScheduledExecutor(new DaemonThreadFactory());
|
||||
private final Activity activity;
|
||||
private ScheduledFuture<?> inactivityFuture = null;
|
||||
private final PowerStatusReceiver powerStatusReceiver = new PowerStatusReceiver();
|
||||
|
||||
InactivityTimer(Activity activity) {
|
||||
this.activity = activity;
|
||||
|
@ -47,6 +52,14 @@ final class InactivityTimer {
|
|||
INACTIVITY_DELAY_SECONDS,
|
||||
TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
public void onPause(){
|
||||
activity.unregisterReceiver(powerStatusReceiver);
|
||||
}
|
||||
|
||||
public void onResume(){
|
||||
activity.registerReceiver(powerStatusReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||
}
|
||||
|
||||
private void cancel() {
|
||||
if (inactivityFuture != null) {
|
||||
|
@ -68,4 +81,19 @@ final class InactivityTimer {
|
|||
}
|
||||
}
|
||||
|
||||
private final class PowerStatusReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent){
|
||||
if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
|
||||
// 0 indicates that we're on battery
|
||||
// In Android 2.0+, use BatteryManager.EXTRA_PLUGGED
|
||||
if (intent.getIntExtra("plugged", -1) == 0) {
|
||||
InactivityTimer.this.onActivity();
|
||||
} else {
|
||||
InactivityTimer.this.cancel();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue