samsung: doze: Rename to avoid conflicts with AdvancedDisplay
authorPaul Keith <javelinanddart@gmail.com>
Thu, 22 Feb 2018 00:55:15 +0000 (01:55 +0100)
committerJan Altensen <info@stricted.net>
Fri, 20 Mar 2020 13:56:43 +0000 (14:56 +0100)
Change-Id: I669835f3563b9eea4fce6db45552c0e3a0888911

doze/AndroidManifest.xml
doze/proguard.flags
doze/src/org/lineageos/settings/device/BootCompletedReceiver.java [deleted file]
doze/src/org/lineageos/settings/device/SamsungDozeActivity.java [deleted file]
doze/src/org/lineageos/settings/device/SamsungDozeService.java [deleted file]
doze/src/org/lineageos/settings/device/TouchscreenGestureSettings.java [deleted file]
doze/src/org/lineageos/settings/doze/BootCompletedReceiver.java [new file with mode: 0644]
doze/src/org/lineageos/settings/doze/SamsungDozeActivity.java [new file with mode: 0644]
doze/src/org/lineageos/settings/doze/SamsungDozeService.java [new file with mode: 0644]
doze/src/org/lineageos/settings/doze/TouchscreenGestureSettings.java [new file with mode: 0644]

index 060ad2c272b750ca262ba28e16b8fdb181846ee4..f493b33f37246191c2a307bd66e95d567abf5b46 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="org.lineageos.settings.device"
+    package="org.lineageos.settings.doze"
     android:versionCode="1"
     android:versionName="1.0"
     android:sharedUserId="android.uid.system">
index ca04a2199d43e99b99c3575309d3058b88acb598..37c5c9122934f42a42da9818f236fee8d37877da 100644 (file)
@@ -1,4 +1,4 @@
--keep class org.lineageos.settings.device.* {
+-keep class org.lineageos.settings.doze.* {
   *;
 }
 
diff --git a/doze/src/org/lineageos/settings/device/BootCompletedReceiver.java b/doze/src/org/lineageos/settings/device/BootCompletedReceiver.java
deleted file mode 100644 (file)
index fa8de8e..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2015 The CyanogenMod Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.lineageos.settings.device;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.util.Log;
-
-public class BootCompletedReceiver extends BroadcastReceiver {
-
-    private static final boolean DEBUG = false;
-    private static final String TAG = "SamsungDoze";
-
-    @Override
-    public void onReceive(final Context context, Intent intent) {
-        if (DEBUG) Log.d(TAG, "Starting service");
-        context.startService(new Intent(context, SamsungDozeService.class));
-    }
-
-}
diff --git a/doze/src/org/lineageos/settings/device/SamsungDozeActivity.java b/doze/src/org/lineageos/settings/device/SamsungDozeActivity.java
deleted file mode 100644 (file)
index 571f34a..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2016 The CyanogenMod Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.lineageos.settings.device;
-
-import android.os.Bundle;
-import android.preference.PreferenceActivity;
-
-public class SamsungDozeActivity extends PreferenceActivity {
-
-    private static final String TAG = "samsung_doze";
-
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        getFragmentManager().beginTransaction().replace(android.R.id.content,
-                new TouchscreenGestureSettings(), TAG).commit();
-    }
-}
diff --git a/doze/src/org/lineageos/settings/device/SamsungDozeService.java b/doze/src/org/lineageos/settings/device/SamsungDozeService.java
deleted file mode 100644 (file)
index fc3f2d0..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright (c) 2015 The CyanogenMod Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.lineageos.settings.device;
-
-import android.app.Service;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.SharedPreferences;
-import android.hardware.Sensor;
-import android.hardware.SensorEvent;
-import android.hardware.SensorEventListener;
-import android.hardware.SensorManager;
-import android.os.IBinder;
-import android.os.PowerManager;
-import android.os.UserHandle;
-import android.preference.PreferenceManager;
-import android.provider.Settings;
-import android.util.Log;
-
-import java.lang.System;
-import java.util.ArrayList;
-import java.util.concurrent.TimeUnit;
-import java.util.List;
-
-public class SamsungDozeService extends Service {
-    private static final String TAG = "SamsungDozeService";
-    private static final boolean DEBUG = false;
-
-    private static final String DOZE_INTENT = "com.android.systemui.doze.pulse";
-
-    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;
-
-    private Context mContext;
-    private SamsungProximitySensor mSensor;
-    private PowerManager mPowerManager;
-
-    private boolean mHandwaveGestureEnabled = false;
-    private boolean mPocketGestureEnabled = false;
-    private boolean mProximityWakeEnabled = false;
-
-    class SamsungProximitySensor implements SensorEventListener {
-        private SensorManager mSensorManager;
-        private Sensor mSensor;
-
-        private boolean mSawNear = false;
-        private long mInPocketTime = 0;
-
-        public SamsungProximitySensor(Context context) {
-            mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);
-            mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
-        }
-
-        @Override
-        public void onSensorChanged(SensorEvent event) {
-            boolean isNear = event.values[0] < mSensor.getMaximumRange();
-            if (mSawNear && !isNear) {
-                if (shouldPulse(event.timestamp)) {
-                    launchDozePulse();
-                }
-            } else {
-                mInPocketTime = event.timestamp;
-            }
-            mSawNear = isNear;
-        }
-
-        @Override
-        public void onAccuracyChanged(Sensor sensor, int accuracy) {
-            /* Empty */
-        }
-
-        private boolean shouldPulse(long timestamp) {
-            long delta = timestamp - mInPocketTime;
-
-            if (mHandwaveGestureEnabled && mPocketGestureEnabled) {
-                return true;
-            } else if (mProximityWakeEnabled && (delta < POCKET_DELTA_NS)) {
-                mPowerManager.wakeUp(TimeUnit.NANOSECONDS.toMillis(System.nanoTime()));
-                return false;
-            } else if (mHandwaveGestureEnabled && !mPocketGestureEnabled) {
-                return delta < POCKET_DELTA_NS;
-            } else if (!mHandwaveGestureEnabled && mPocketGestureEnabled) {
-                return delta >= POCKET_DELTA_NS;
-            }
-            return false;
-        }
-
-        public void testAndEnable() {
-            if ((isDozeEnabled() && (mHandwaveGestureEnabled || mPocketGestureEnabled)) ||
-                    mProximityWakeEnabled) {
-                mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL);
-            }
-        }
-
-        public void disable() {
-            mSensorManager.unregisterListener(this, mSensor);
-        }
-    }
-
-    @Override
-    public void onCreate() {
-        if (DEBUG) Log.d(TAG, "SamsungDozeService Started");
-        mContext = this;
-        mPowerManager = (PowerManager)getSystemService(Context.POWER_SERVICE);
-        mSensor = new SamsungProximitySensor(mContext);
-        SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(mContext);
-        loadPreferences(sharedPrefs);
-        sharedPrefs.registerOnSharedPreferenceChangeListener(mPrefListener);
-        if (!isInteractive()) {
-            mSensor.testAndEnable();
-        }
-    }
-
-    @Override
-    public int onStartCommand(Intent intent, int flags, int startId) {
-        if (DEBUG) Log.d(TAG, "Starting service");
-        IntentFilter screenStateFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
-        screenStateFilter.addAction(Intent.ACTION_SCREEN_OFF);
-        mContext.registerReceiver(mScreenStateReceiver, screenStateFilter);
-        return START_STICKY;
-    }
-
-    @Override
-    public IBinder onBind(Intent intent) {
-        return null;
-    }
-
-    private void launchDozePulse() {
-        mContext.sendBroadcastAsUser(new Intent(DOZE_INTENT),
-                new UserHandle(UserHandle.USER_CURRENT));
-    }
-
-    private boolean isInteractive() {
-        return mPowerManager.isInteractive();
-    }
-
-    private boolean isDozeEnabled() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.DOZE_ENABLED, 1) != 0;
-    }
-
-    private void onDisplayOn() {
-        if (DEBUG) Log.d(TAG, "Display on");
-        mSensor.disable();
-    }
-
-    private void onDisplayOff() {
-        if (DEBUG) Log.d(TAG, "Display off");
-        mSensor.testAndEnable();
-    }
-
-    private void loadPreferences(SharedPreferences sharedPreferences) {
-        mHandwaveGestureEnabled = sharedPreferences.getBoolean(GESTURE_HAND_WAVE_KEY, false);
-        mPocketGestureEnabled = sharedPreferences.getBoolean(GESTURE_POCKET_KEY, false);
-        mProximityWakeEnabled = sharedPreferences.getBoolean(PROXIMITY_WAKE_KEY, false);
-    }
-
-    private BroadcastReceiver mScreenStateReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
-                onDisplayOff();
-            } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
-                onDisplayOn();
-            }
-        }
-    };
-
-    private SharedPreferences.OnSharedPreferenceChangeListener mPrefListener =
-            new SharedPreferences.OnSharedPreferenceChangeListener() {
-        @Override
-        public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
-            if (GESTURE_HAND_WAVE_KEY.equals(key)) {
-                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/org/lineageos/settings/device/TouchscreenGestureSettings.java b/doze/src/org/lineageos/settings/device/TouchscreenGestureSettings.java
deleted file mode 100644 (file)
index 44c9b94..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2015 The CyanogenMod Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.lineageos.settings.device;
-
-import android.app.ActionBar;
-import android.os.Bundle;
-import android.support.v14.preference.PreferenceFragment;
-import android.support.v14.preference.SwitchPreference;
-import android.support.v7.preference.Preference;
-import android.provider.Settings;
-import android.view.MenuItem;
-
-import org.lineageos.internal.util.ScreenType;
-
-public class TouchscreenGestureSettings extends PreferenceFragment {
-
-    private static final String KEY_HAND_WAVE = "gesture_hand_wave";
-    private static final String KEY_PROXIMITY_WAKE = "proximity_wake_enable";
-
-    private SwitchPreference mHandwavePreference;
-    private SwitchPreference mProximityWakePreference;
-
-    @Override
-    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
-        addPreferencesFromResource(R.xml.gesture_panel);
-        final ActionBar actionBar = getActivity().getActionBar();
-        actionBar.setDisplayHomeAsUpEnabled(true);
-
-        mHandwavePreference =
-            (SwitchPreference) findPreference(KEY_HAND_WAVE);
-        mHandwavePreference.setOnPreferenceChangeListener(mProximityListener);
-        mProximityWakePreference =
-            (SwitchPreference) findPreference(KEY_PROXIMITY_WAKE);
-        mProximityWakePreference.setOnPreferenceChangeListener(mProximityListener);
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-
-        // If running on a phone, remove padding around the listview
-        if (!ScreenType.isTablet(getContext())) {
-            getListView().setPadding(0, 0, 0, 0);
-        }
-    }
-
-    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;
-        }
-    };
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == android.R.id.home) {
-            getActivity().onBackPressed();
-            return true;
-        }
-        return false;
-    }
-}
diff --git a/doze/src/org/lineageos/settings/doze/BootCompletedReceiver.java b/doze/src/org/lineageos/settings/doze/BootCompletedReceiver.java
new file mode 100644 (file)
index 0000000..8640134
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2015 The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.lineageos.settings.doze;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+public class BootCompletedReceiver extends BroadcastReceiver {
+
+    private static final boolean DEBUG = false;
+    private static final String TAG = "SamsungDoze";
+
+    @Override
+    public void onReceive(final Context context, Intent intent) {
+        if (DEBUG) Log.d(TAG, "Starting service");
+        context.startService(new Intent(context, SamsungDozeService.class));
+    }
+
+}
diff --git a/doze/src/org/lineageos/settings/doze/SamsungDozeActivity.java b/doze/src/org/lineageos/settings/doze/SamsungDozeActivity.java
new file mode 100644 (file)
index 0000000..70856b6
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2016 The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.lineageos.settings.doze;
+
+import android.os.Bundle;
+import android.preference.PreferenceActivity;
+
+public class SamsungDozeActivity extends PreferenceActivity {
+
+    private static final String TAG = "samsung_doze";
+
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        getFragmentManager().beginTransaction().replace(android.R.id.content,
+                new TouchscreenGestureSettings(), TAG).commit();
+    }
+}
diff --git a/doze/src/org/lineageos/settings/doze/SamsungDozeService.java b/doze/src/org/lineageos/settings/doze/SamsungDozeService.java
new file mode 100644 (file)
index 0000000..063b121
--- /dev/null
@@ -0,0 +1,201 @@
+/*
+ * Copyright (c) 2015 The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.lineageos.settings.doze;
+
+import android.app.Service;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.SharedPreferences;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.os.IBinder;
+import android.os.PowerManager;
+import android.os.UserHandle;
+import android.preference.PreferenceManager;
+import android.provider.Settings;
+import android.util.Log;
+
+import java.lang.System;
+import java.util.ArrayList;
+import java.util.concurrent.TimeUnit;
+import java.util.List;
+
+public class SamsungDozeService extends Service {
+    private static final String TAG = "SamsungDozeService";
+    private static final boolean DEBUG = false;
+
+    private static final String DOZE_INTENT = "com.android.systemui.doze.pulse";
+
+    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;
+
+    private Context mContext;
+    private SamsungProximitySensor mSensor;
+    private PowerManager mPowerManager;
+
+    private boolean mHandwaveGestureEnabled = false;
+    private boolean mPocketGestureEnabled = false;
+    private boolean mProximityWakeEnabled = false;
+
+    class SamsungProximitySensor implements SensorEventListener {
+        private SensorManager mSensorManager;
+        private Sensor mSensor;
+
+        private boolean mSawNear = false;
+        private long mInPocketTime = 0;
+
+        public SamsungProximitySensor(Context context) {
+            mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);
+            mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
+        }
+
+        @Override
+        public void onSensorChanged(SensorEvent event) {
+            boolean isNear = event.values[0] < mSensor.getMaximumRange();
+            if (mSawNear && !isNear) {
+                if (shouldPulse(event.timestamp)) {
+                    launchDozePulse();
+                }
+            } else {
+                mInPocketTime = event.timestamp;
+            }
+            mSawNear = isNear;
+        }
+
+        @Override
+        public void onAccuracyChanged(Sensor sensor, int accuracy) {
+            /* Empty */
+        }
+
+        private boolean shouldPulse(long timestamp) {
+            long delta = timestamp - mInPocketTime;
+
+            if (mHandwaveGestureEnabled && mPocketGestureEnabled) {
+                return true;
+            } else if (mProximityWakeEnabled && (delta < POCKET_DELTA_NS)) {
+                mPowerManager.wakeUp(TimeUnit.NANOSECONDS.toMillis(System.nanoTime()));
+                return false;
+            } else if (mHandwaveGestureEnabled && !mPocketGestureEnabled) {
+                return delta < POCKET_DELTA_NS;
+            } else if (!mHandwaveGestureEnabled && mPocketGestureEnabled) {
+                return delta >= POCKET_DELTA_NS;
+            }
+            return false;
+        }
+
+        public void testAndEnable() {
+            if ((isDozeEnabled() && (mHandwaveGestureEnabled || mPocketGestureEnabled)) ||
+                    mProximityWakeEnabled) {
+                mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL);
+            }
+        }
+
+        public void disable() {
+            mSensorManager.unregisterListener(this, mSensor);
+        }
+    }
+
+    @Override
+    public void onCreate() {
+        if (DEBUG) Log.d(TAG, "SamsungDozeService Started");
+        mContext = this;
+        mPowerManager = (PowerManager)getSystemService(Context.POWER_SERVICE);
+        mSensor = new SamsungProximitySensor(mContext);
+        SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(mContext);
+        loadPreferences(sharedPrefs);
+        sharedPrefs.registerOnSharedPreferenceChangeListener(mPrefListener);
+        if (!isInteractive()) {
+            mSensor.testAndEnable();
+        }
+    }
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        if (DEBUG) Log.d(TAG, "Starting service");
+        IntentFilter screenStateFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
+        screenStateFilter.addAction(Intent.ACTION_SCREEN_OFF);
+        mContext.registerReceiver(mScreenStateReceiver, screenStateFilter);
+        return START_STICKY;
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+
+    private void launchDozePulse() {
+        mContext.sendBroadcastAsUser(new Intent(DOZE_INTENT),
+                new UserHandle(UserHandle.USER_CURRENT));
+    }
+
+    private boolean isInteractive() {
+        return mPowerManager.isInteractive();
+    }
+
+    private boolean isDozeEnabled() {
+        return Settings.Secure.getInt(mContext.getContentResolver(),
+                Settings.Secure.DOZE_ENABLED, 1) != 0;
+    }
+
+    private void onDisplayOn() {
+        if (DEBUG) Log.d(TAG, "Display on");
+        mSensor.disable();
+    }
+
+    private void onDisplayOff() {
+        if (DEBUG) Log.d(TAG, "Display off");
+        mSensor.testAndEnable();
+    }
+
+    private void loadPreferences(SharedPreferences sharedPreferences) {
+        mHandwaveGestureEnabled = sharedPreferences.getBoolean(GESTURE_HAND_WAVE_KEY, false);
+        mPocketGestureEnabled = sharedPreferences.getBoolean(GESTURE_POCKET_KEY, false);
+        mProximityWakeEnabled = sharedPreferences.getBoolean(PROXIMITY_WAKE_KEY, false);
+    }
+
+    private BroadcastReceiver mScreenStateReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
+                onDisplayOff();
+            } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
+                onDisplayOn();
+            }
+        }
+    };
+
+    private SharedPreferences.OnSharedPreferenceChangeListener mPrefListener =
+            new SharedPreferences.OnSharedPreferenceChangeListener() {
+        @Override
+        public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
+            if (GESTURE_HAND_WAVE_KEY.equals(key)) {
+                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/org/lineageos/settings/doze/TouchscreenGestureSettings.java b/doze/src/org/lineageos/settings/doze/TouchscreenGestureSettings.java
new file mode 100644 (file)
index 0000000..142f845
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2015 The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.lineageos.settings.doze;
+
+import android.app.ActionBar;
+import android.os.Bundle;
+import android.support.v14.preference.PreferenceFragment;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.provider.Settings;
+import android.view.MenuItem;
+
+import org.lineageos.internal.util.ScreenType;
+
+public class TouchscreenGestureSettings extends PreferenceFragment {
+
+    private static final String KEY_HAND_WAVE = "gesture_hand_wave";
+    private static final String KEY_PROXIMITY_WAKE = "proximity_wake_enable";
+
+    private SwitchPreference mHandwavePreference;
+    private SwitchPreference mProximityWakePreference;
+
+    @Override
+    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+        addPreferencesFromResource(R.xml.gesture_panel);
+        final ActionBar actionBar = getActivity().getActionBar();
+        actionBar.setDisplayHomeAsUpEnabled(true);
+
+        mHandwavePreference =
+            (SwitchPreference) findPreference(KEY_HAND_WAVE);
+        mHandwavePreference.setOnPreferenceChangeListener(mProximityListener);
+        mProximityWakePreference =
+            (SwitchPreference) findPreference(KEY_PROXIMITY_WAKE);
+        mProximityWakePreference.setOnPreferenceChangeListener(mProximityListener);
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+
+        // If running on a phone, remove padding around the listview
+        if (!ScreenType.isTablet(getContext())) {
+            getListView().setPadding(0, 0, 0, 0);
+        }
+    }
+
+    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;
+        }
+    };
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            getActivity().onBackPressed();
+            return true;
+        }
+        return false;
+    }
+}