Automated import from //branches/master/...@141087,141087
This commit is contained in:
committed by
The Android Open Source Project
parent
f559d55e26
commit
95e4f70624
@@ -21,8 +21,10 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Handler;
|
||||
import android.os.Hardware;
|
||||
import android.os.IHardwareService;
|
||||
import android.os.Message;
|
||||
import android.os.Power;
|
||||
import android.os.PowerManager;
|
||||
import android.os.Process;
|
||||
@@ -45,6 +47,9 @@ public class HardwareService extends IHardwareService.Stub {
|
||||
static final int LIGHT_FLASH_NONE = 0;
|
||||
static final int LIGHT_FLASH_TIMED = 1;
|
||||
|
||||
private boolean mAttentionLightOn;
|
||||
private boolean mPulsing;
|
||||
|
||||
HardwareService(Context context) {
|
||||
// Reset the hardware to a default state, in case this is a runtime
|
||||
// restart instead of a fresh boot.
|
||||
@@ -217,10 +222,48 @@ public class HardwareService extends IHardwareService.Stub {
|
||||
|
||||
public void setAttentionLight(boolean on) {
|
||||
// Not worthy of a permission. We shouldn't have a flashlight permission.
|
||||
setLight_native(mNativePointer, LIGHT_ID_ATTENTION, on ? 0xffffffff : 0,
|
||||
LIGHT_FLASH_NONE, 0, 0);
|
||||
synchronized (this) {
|
||||
mAttentionLightOn = on;
|
||||
mPulsing = false;
|
||||
setLight_native(mNativePointer, LIGHT_ID_ATTENTION, on ? 0xffffffff : 0,
|
||||
LIGHT_FLASH_NONE, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
public void pulseBreathingLight() {
|
||||
synchronized (this) {
|
||||
// HACK: Added at the last minute of cupcake -- design this better;
|
||||
// Don't reuse the attention light -- make another one.
|
||||
if (false) {
|
||||
Log.d(TAG, "pulseBreathingLight mAttentionLightOn=" + mAttentionLightOn
|
||||
+ " mPulsing=" + mPulsing);
|
||||
}
|
||||
if (!mAttentionLightOn && !mPulsing) {
|
||||
mPulsing = true;
|
||||
setLight_native(mNativePointer, LIGHT_ID_ATTENTION, 0xff101010,
|
||||
LIGHT_FLASH_NONE, 0, 0);
|
||||
mH.sendMessageDelayed(Message.obtain(mH, 1), 3000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Handler mH = new Handler() {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
synchronized (this) {
|
||||
if (false) {
|
||||
Log.d(TAG, "pulse cleanup handler firing mPulsing=" + mPulsing);
|
||||
}
|
||||
if (mPulsing) {
|
||||
mPulsing = false;
|
||||
setLight_native(mNativePointer, LIGHT_ID_ATTENTION,
|
||||
mAttentionLightOn ? 0xffffffff : 0,
|
||||
LIGHT_FLASH_NONE, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private void doCancelVibrate() {
|
||||
synchronized (this) {
|
||||
if (mThread != null) {
|
||||
|
||||
Reference in New Issue
Block a user