summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Daynard <nardholio@gmail.com>2015-05-25 12:54:00 -0400
committerJan Altensen <info@stricted.net>2020-03-20 14:56:31 +0100
commite798b625a75a665a989c5f0ace1f81a2a3e22b6b (patch)
treeea60e77c1a6c779435352d4ab59f1e9b933ef3c9
parent78fa4868ed2f31c0c7c28d9a991a5ef8cc1af34e (diff)
downloadandroid_hardware_samsung-e798b625a75a665a989c5f0ace1f81a2a3e22b6b.tar.gz
android_hardware_samsung-e798b625a75a665a989c5f0ace1f81a2a3e22b6b.tar.bz2
android_hardware_samsung-e798b625a75a665a989c5f0ace1f81a2a3e22b6b.zip
samsung: doze: add proximity wake
Change-Id: Ib02f4611e7b8bc09d540ca5c49aab68ef27f188b
-rw-r--r--doze/AndroidManifest.xml1
-rw-r--r--doze/res/values/strings.xml5
-rw-r--r--doze/res/xml/gesture_panel.xml11
-rw-r--r--doze/src/com/cyanogenmod/settings/device/SamsungDozeService.java21
-rw-r--r--doze/src/com/cyanogenmod/settings/device/TouchscreenGestureSettings.java21
5 files changed, 52 insertions, 7 deletions
diff --git a/doze/AndroidManifest.xml b/doze/AndroidManifest.xml
index 804b80d..0bcc51f 100644
--- a/doze/AndroidManifest.xml
+++ b/doze/AndroidManifest.xml
@@ -5,6 +5,7 @@
android:versionName="1.0"
android:sharedUserId="android.uid.system">
+ <uses-permission android:name="android.permission.DEVICE_POWER" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
diff --git a/doze/res/values/strings.xml b/doze/res/values/strings.xml
index 273a211..6c2d264 100644
--- a/doze/res/values/strings.xml
+++ b/doze/res/values/strings.xml
@@ -28,4 +28,9 @@
<string name="pocket_gesture_title">Pocket</string>
<string name="pocket_gesture_summary">Pulse notifications on removal from pocket</string>
+ <string name="proximity_wake_title">Proximity wake</string>
+
+ <string name="proximity_wake_enable_title">Proximity wake</string>
+ <string name="proximity_wake_enable_summary">Wake device on hand wave</string>
+
</resources>
diff --git a/doze/res/xml/gesture_panel.xml b/doze/res/xml/gesture_panel.xml
index ba48f9d..40a017c 100644
--- a/doze/res/xml/gesture_panel.xml
+++ b/doze/res/xml/gesture_panel.xml
@@ -39,4 +39,15 @@
android:summary="@string/pocket_gesture_summary" />
</PreferenceCategory>
+ <PreferenceCategory
+ android:key="proximity_wake_key"
+ android:title="@string/proximity_wake_title" >
+
+ <SwitchPreference
+ android:key="proximity_wake_enable"
+ android:defaultValue="false"
+ android:title="@string/proximity_wake_enable_title"
+ android:summary="@string/proximity_wake_enable_summary" />
+ </PreferenceCategory>
+
</PreferenceScreen> \ No newline at end of file
diff --git a/doze/src/com/cyanogenmod/settings/device/SamsungDozeService.java b/doze/src/com/cyanogenmod/settings/device/SamsungDozeService.java
index f559544..6d40cf1 100644
--- a/doze/src/com/cyanogenmod/settings/device/SamsungDozeService.java
+++ b/doze/src/com/cyanogenmod/settings/device/SamsungDozeService.java
@@ -33,6 +33,7 @@ import android.provider.Settings;
import android.util.Log;
import java.util.ArrayList;
+import java.util.concurrent.TimeUnit;
import java.util.List;
public class SamsungDozeService extends Service {
@@ -43,6 +44,7 @@ public class SamsungDozeService extends Service {
private static final String GESTURE_HAND_WAVE_KEY = "gesture_hand_wave";
private static final String GESTURE_POCKET_KEY = "gesture_pocket";
+ private static final String PROXIMITY_WAKE_KEY = "proximity_wake_enable";
private static final int POCKET_DELTA_NS = 1000 * 1000 * 1000;
@@ -52,6 +54,7 @@ public class SamsungDozeService extends Service {
private boolean mHandwaveGestureEnabled = false;
private boolean mPocketGestureEnabled = false;
+ private boolean mProximityWakeEnabled = false;
class SamsungProximitySensor implements SensorEventListener {
private SensorManager mSensorManager;
@@ -88,6 +91,9 @@ public class SamsungDozeService extends Service {
if (mHandwaveGestureEnabled && mPocketGestureEnabled) {
return true;
+ } else if (mProximityWakeEnabled && (delta < POCKET_DELTA_NS)) {
+ mPowerManager.wakeUp(TimeUnit.NANOSECONDS.toMillis(timestamp));
+ return false;
} else if (mHandwaveGestureEnabled && !mPocketGestureEnabled) {
return delta < POCKET_DELTA_NS;
} else if (!mHandwaveGestureEnabled && mPocketGestureEnabled) {
@@ -96,8 +102,9 @@ public class SamsungDozeService extends Service {
return false;
}
- public void enable() {
- if (mHandwaveGestureEnabled || mPocketGestureEnabled) {
+ public void testAndEnable() {
+ if ((isDozeEnabled() && (mHandwaveGestureEnabled || mPocketGestureEnabled)) ||
+ mProximityWakeEnabled) {
mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
}
@@ -116,8 +123,8 @@ public class SamsungDozeService extends Service {
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(mContext);
loadPreferences(sharedPrefs);
sharedPrefs.registerOnSharedPreferenceChangeListener(mPrefListener);
- if (!isInteractive() && isDozeEnabled()) {
- mSensor.enable();
+ if (!isInteractive()) {
+ mSensor.testAndEnable();
}
}
@@ -155,9 +162,7 @@ public class SamsungDozeService extends Service {
private void onDisplayOff() {
if (DEBUG) Log.d(TAG, "Display off");
- if (isDozeEnabled()) {
- mSensor.enable();
- }
+ mSensor.testAndEnable();
}
private void loadPreferences(SharedPreferences sharedPreferences) {
@@ -184,6 +189,8 @@ public class SamsungDozeService extends Service {
mHandwaveGestureEnabled = sharedPreferences.getBoolean(GESTURE_HAND_WAVE_KEY, false);
} else if (GESTURE_POCKET_KEY.equals(key)) {
mPocketGestureEnabled = sharedPreferences.getBoolean(GESTURE_POCKET_KEY, false);
+ } else if (PROXIMITY_WAKE_KEY.equals(key)) {
+ mProximityWakeEnabled = sharedPreferences.getBoolean(PROXIMITY_WAKE_KEY, false);
}
}
};
diff --git a/doze/src/com/cyanogenmod/settings/device/TouchscreenGestureSettings.java b/doze/src/com/cyanogenmod/settings/device/TouchscreenGestureSettings.java
index dc18422..5b69988 100644
--- a/doze/src/com/cyanogenmod/settings/device/TouchscreenGestureSettings.java
+++ b/doze/src/com/cyanogenmod/settings/device/TouchscreenGestureSettings.java
@@ -32,10 +32,12 @@ public class TouchscreenGestureSettings extends PreferenceActivity {
private static final String KEY_AMBIENT_DISPLAY_ENABLE = "ambient_display_enable";
private static final String KEY_HAND_WAVE = "gesture_hand_wave";
private static final String KEY_GESTURE_POCKET = "gesture_pocket";
+ private static final String KEY_PROXIMITY_WAKE = "proximity_wake_enable";
private SwitchPreference mAmbientDisplayPreference;
private SwitchPreference mHandwavePreference;
private SwitchPreference mPocketPreference;
+ private SwitchPreference mProximityWakePreference;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -50,9 +52,13 @@ public class TouchscreenGestureSettings extends PreferenceActivity {
mHandwavePreference =
(SwitchPreference) findPreference(KEY_HAND_WAVE);
mHandwavePreference.setEnabled(dozeEnabled);
+ mHandwavePreference.setOnPreferenceChangeListener(mProximityListener);
mPocketPreference =
(SwitchPreference) findPreference(KEY_GESTURE_POCKET);
mPocketPreference.setEnabled(dozeEnabled);
+ mProximityWakePreference =
+ (SwitchPreference) findPreference(KEY_PROXIMITY_WAKE);
+ mProximityWakePreference.setOnPreferenceChangeListener(mProximityListener);
final ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
@@ -100,4 +106,19 @@ public class TouchscreenGestureSettings extends PreferenceActivity {
return ret;
}
};
+
+ private Preference.OnPreferenceChangeListener mProximityListener =
+ new Preference.OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if ((boolean) newValue) {
+ if (preference.getKey().equals(KEY_HAND_WAVE)) {
+ mProximityWakePreference.setChecked(false);
+ } else if (preference.getKey().equals(KEY_PROXIMITY_WAKE)) {
+ mHandwavePreference.setChecked(false);
+ }
+ }
+ return true;
+ }
+ };
}