diff --git a/cmactions/Android.mk b/cmactions/Android.mk deleted file mode 100644 index 00cb9da..0000000 --- a/cmactions/Android.mk +++ /dev/null @@ -1,41 +0,0 @@ -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := optional - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_PACKAGE_NAME := CMActions -LOCAL_CERTIFICATE := platform -LOCAL_PRIVILEGED_MODULE := true - -LOCAL_STATIC_JAVA_LIBRARIES := \ - android-support-v14-preference \ - android-support-v7-appcompat \ - android-support-v7-preference \ - android-support-v7-recyclerview \ - org.cyanogenmod.platform.internal - -LOCAL_PROGUARD_FLAG_FILES := proguard.flags - -LOCAL_RESOURCE_DIR := \ - $(LOCAL_PATH)/res \ - $(LOCAL_PATH)/../../../../packages/resources/devicesettings/res \ - frameworks/support/v14/preference/res \ - frameworks/support/v7/appcompat/res \ - frameworks/support/v7/preference/res \ - frameworks/support/v7/recyclerview/res - -LOCAL_AAPT_FLAGS := --auto-add-overlay \ - --extra-packages android.support.v14.preference:android.support.v7.appcompat:android.support.v7.preference:android.support.v7.recyclerview - -ifneq ($(INCREMENTAL_BUILDS),) - LOCAL_PROGUARD_ENABLED := disabled - LOCAL_JACK_ENABLED := incremental -endif - -include frameworks/base/packages/SettingsLib/common.mk - -include $(BUILD_PACKAGE) - -include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/cmactions/AndroidManifest.xml b/cmactions/AndroidManifest.xml deleted file mode 100644 index c42bfca..0000000 --- a/cmactions/AndroidManifest.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cmactions/proguard.flags b/cmactions/proguard.flags deleted file mode 100644 index 32daf9b..0000000 --- a/cmactions/proguard.flags +++ /dev/null @@ -1,9 +0,0 @@ --keep class org.cyanogenmod.CMActions.* { - *; -} - --keepclasseswithmembers class * { - public (android.content.Context, android.util.AttributeSet); -} - --keep class ** extends android.support.v14.preference.PreferenceFragment diff --git a/cmactions/res/drawable/ic_settings_gestures.xml b/cmactions/res/drawable/ic_settings_gestures.xml deleted file mode 100644 index 95cdede..0000000 --- a/cmactions/res/drawable/ic_settings_gestures.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - diff --git a/cmactions/res/values/array.xml b/cmactions/res/values/array.xml deleted file mode 100644 index eb7e711..0000000 --- a/cmactions/res/values/array.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - None - Home - Power - Back - Recents - Volume Up - Volume Down - Voice Assistant - Play/Pause - Previous Track - Next Track - - - 0 - 102 - 116 - 158 - 580 - 115 - 114 - 582 - 164 - 165 - 163 - - diff --git a/cmactions/res/values/strings.xml b/cmactions/res/values/strings.xml deleted file mode 100644 index 6e07fe2..0000000 --- a/cmactions/res/values/strings.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - Moto Actions - Manage custom actions and fingerprint gestures - diff --git a/cmactions/res/values/styles.xml b/cmactions/res/values/styles.xml deleted file mode 100644 index c497d8e..0000000 --- a/cmactions/res/values/styles.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/cmactions/res/xml/doze_panel.xml b/cmactions/res/xml/doze_panel.xml deleted file mode 100644 index c260b94..0000000 --- a/cmactions/res/xml/doze_panel.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - diff --git a/cmactions/res/xml/gesture_panel.xml b/cmactions/res/xml/gesture_panel.xml deleted file mode 100644 index 11f6c53..0000000 --- a/cmactions/res/xml/gesture_panel.xml +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cmactions/src/com/cyanogenmod/settings/device/BootCompletedReceiver.java b/cmactions/src/com/cyanogenmod/settings/device/BootCompletedReceiver.java deleted file mode 100644 index 5d638c8..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/BootCompletedReceiver.java +++ /dev/null @@ -1,75 +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 com.cyanogenmod.settings.device; - -import android.content.BroadcastReceiver; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; -import android.content.ServiceConnection; -import android.os.IBinder; -import android.util.Log; - -import cyanogenmod.providers.CMSettings; - -import com.cyanogenmod.settings.device.ServiceWrapper.LocalBinder; - -public class BootCompletedReceiver extends BroadcastReceiver { - static final String TAG = "CMActions"; - final String NAVBAR_SHOWN = "navbar_shown"; - private ServiceWrapper mServiceWrapper; - - @Override - public void onReceive(final Context context, Intent intent) { - Log.i(TAG, "Booting"); - - // Restore nodes to saved preference values - for (String pref : Constants.sButtonPrefKeys) { - Constants.writePreference(context, pref); - } - - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); - - if (!preferences.getBoolean(NAVBAR_SHOWN, false)) { - enableNaviBar(true, context); - preferences.edit().putBoolean(NAVBAR_SHOWN, true).commit(); - } - - context.startService(new Intent(context, ServiceWrapper.class)); - } - - protected static void enableNaviBar(boolean enable, Context context) { - CMSettings.Global.putInt(context.getContentResolver(), - CMSettings.Global.DEV_FORCE_SHOW_NAVBAR, enable ? 1 : 0); - } - - private ServiceConnection serviceConnection = new ServiceConnection() { - @Override - public void onServiceConnected(ComponentName className, IBinder service) { - LocalBinder binder = (LocalBinder) service; - mServiceWrapper = binder.getService(); - mServiceWrapper.start(); - } - - @Override - public void onServiceDisconnected(ComponentName className) { - mServiceWrapper = null; - } - }; -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/CMActionsService.java b/cmactions/src/com/cyanogenmod/settings/device/CMActionsService.java deleted file mode 100644 index 0311cff..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/CMActionsService.java +++ /dev/null @@ -1,109 +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 com.cyanogenmod.settings.device; - -import android.app.IntentService; -import android.content.Context; -import android.content.Intent; -import android.os.PowerManager; -import android.provider.Settings; -import android.util.Log; - -import java.util.List; -import java.util.LinkedList; - -public class CMActionsService extends IntentService implements ScreenStateNotifier, - UpdatedStateNotifier { - private static final String TAG = "CMActions"; - - private final Context mContext; - - private final DozePulseAction mDozePulseAction; - private final PowerManager mPowerManager; - private final PowerManager.WakeLock mWakeLock; - private final ScreenReceiver mScreenReceiver; - private final SensorHelper mSensorHelper; - - private final List mScreenStateNotifiers = new LinkedList(); - private final List mUpdatedStateNotifiers = - new LinkedList(); - - public CMActionsService(Context context) { - super("CMActionService"); - mContext = context; - - Log.d(TAG, "Starting"); - - CMActionsSettings cmActionsSettings = new CMActionsSettings(context, this); - mSensorHelper = new SensorHelper(context); - mScreenReceiver = new ScreenReceiver(context, this); - - mDozePulseAction = new DozePulseAction(context); - mScreenStateNotifiers.add(mDozePulseAction); - - // Actionable sensors get screen on/off notifications - mScreenStateNotifiers.add(new GlanceSensor(cmActionsSettings, mSensorHelper, mDozePulseAction)); - mScreenStateNotifiers.add(new ProximitySensor(cmActionsSettings, mSensorHelper, mDozePulseAction)); - mScreenStateNotifiers.add(new StowSensor(cmActionsSettings, mSensorHelper, mDozePulseAction)); - - // Other actions that are always enabled - mUpdatedStateNotifiers.add(new CameraActivationSensor(cmActionsSettings, mSensorHelper)); - mUpdatedStateNotifiers.add(new ChopChopSensor(cmActionsSettings, mSensorHelper)); - mUpdatedStateNotifiers.add(new ProximitySilencer(cmActionsSettings, context, mSensorHelper)); - mUpdatedStateNotifiers.add(new FlipToMute(cmActionsSettings, context, mSensorHelper)); - mUpdatedStateNotifiers.add(new LiftToSilence(cmActionsSettings, context, mSensorHelper)); - - mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "CMActionsWakeLock"); - updateState(); - } - - @Override - protected void onHandleIntent(Intent intent) { - } - - @Override - public void screenTurnedOn() { - if (!mWakeLock.isHeld()) { - mWakeLock.acquire(); - } - for (ScreenStateNotifier screenStateNotifier : mScreenStateNotifiers) { - screenStateNotifier.screenTurnedOn(); - } - } - - @Override - public void screenTurnedOff() { - if (mWakeLock.isHeld()) { - mWakeLock.release(); - } - for (ScreenStateNotifier screenStateNotifier : mScreenStateNotifiers) { - screenStateNotifier.screenTurnedOff(); - } - } - - public void updateState() { - if (mPowerManager.isInteractive()) { - screenTurnedOn(); - } else { - screenTurnedOff(); - } - for (UpdatedStateNotifier notifier : mUpdatedStateNotifiers) { - notifier.updateState(); - } - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/CMActionsSettings.java b/cmactions/src/com/cyanogenmod/settings/device/CMActionsSettings.java deleted file mode 100644 index a322fad..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/CMActionsSettings.java +++ /dev/null @@ -1,143 +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 com.cyanogenmod.settings.device; - -import android.content.ContentResolver; -import android.content.Context; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; -import android.provider.Settings; - -import android.util.Log; - -public class CMActionsSettings { - private static final String TAG = "CMActions"; - - private static final String GESTURE_CAMERA_ACTION_KEY = "gesture_camera_action"; - private static final String GESTURE_CHOP_CHOP_KEY = "gesture_chop_chop"; - private static final String GESTURE_PICK_UP_KEY = "gesture_pick_up"; - private static final String GESTURE_IR_WAKEUP_KEY = "gesture_hand_wave"; - private static final String GESTURE_IR_SILENCER_KEY = "gesture_ir_silencer"; - private static final String GESTURE_FLIP_TO_MUTE_KEY = "gesture_flip_to_mute"; - private static final String GESTURE_LIFT_TO_SILENCE_KEY = "gesture_lift_to_silence"; - - private final Context mContext; - private final UpdatedStateNotifier mUpdatedStateNotifier; - - private boolean mCameraGestureEnabled; - private boolean mChopChopEnabled; - private boolean mPickUpGestureEnabled; - private boolean mIrWakeUpEnabled; - private boolean mIrSilencerEnabled; - private boolean mFlipToMuteEnabled; - private boolean mLiftToSilenceEnabled; - - public CMActionsSettings(Context context, UpdatedStateNotifier updatedStateNotifier) { - SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); - loadPreferences(sharedPrefs); - sharedPrefs.registerOnSharedPreferenceChangeListener(mPrefListener); - mContext = context; - mUpdatedStateNotifier = updatedStateNotifier; - } - - public boolean isCameraGestureEnabled() { - return mCameraGestureEnabled; - } - - public boolean isChopChopGestureEnabled() { - return mChopChopEnabled; - } - - public static boolean isDozeEnabled(ContentResolver contentResolver) { - return (Settings.Secure.getInt(contentResolver, Settings.Secure.DOZE_ENABLED, 1) != 0); - } - - public boolean isDozeEnabled() { - return isDozeEnabled(mContext.getContentResolver()); - } - - public boolean isIrWakeupEnabled() { - return isDozeEnabled() && mIrWakeUpEnabled; - } - - public boolean isPickUpEnabled() { - return isDozeEnabled() && mPickUpGestureEnabled; - } - - public boolean isIrSilencerEnabled() { - return mIrSilencerEnabled; - } - - public boolean isFlipToMuteEnabled() { - return mFlipToMuteEnabled; - } - - public boolean isLiftToSilenceEnabled() { - return mLiftToSilenceEnabled; - } - - public void cameraAction() { - new CameraActivationAction(mContext).action(); - } - - public void chopChopAction() { - new TorchAction(mContext).action(); - } - - private void loadPreferences(SharedPreferences sharedPreferences) { - mCameraGestureEnabled = sharedPreferences.getBoolean(GESTURE_CAMERA_ACTION_KEY, true); - mChopChopEnabled = sharedPreferences.getBoolean(GESTURE_CHOP_CHOP_KEY, true); - mIrWakeUpEnabled = sharedPreferences.getBoolean(GESTURE_IR_WAKEUP_KEY, true); - mPickUpGestureEnabled = sharedPreferences.getBoolean(GESTURE_PICK_UP_KEY, true); - mIrSilencerEnabled = sharedPreferences.getBoolean(GESTURE_IR_SILENCER_KEY, false); - mFlipToMuteEnabled = sharedPreferences.getBoolean(GESTURE_FLIP_TO_MUTE_KEY, false); - mLiftToSilenceEnabled = sharedPreferences.getBoolean(GESTURE_LIFT_TO_SILENCE_KEY, false); - } - - private SharedPreferences.OnSharedPreferenceChangeListener mPrefListener = - new SharedPreferences.OnSharedPreferenceChangeListener() { - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - boolean updated = true; - - if (GESTURE_CAMERA_ACTION_KEY.equals(key)) { - mCameraGestureEnabled = sharedPreferences.getBoolean(GESTURE_CAMERA_ACTION_KEY, true); - } else if (GESTURE_CHOP_CHOP_KEY.equals(key)) { - mChopChopEnabled = sharedPreferences.getBoolean(GESTURE_CHOP_CHOP_KEY, true); - } else if (GESTURE_IR_WAKEUP_KEY.equals(key)) { - mIrWakeUpEnabled = sharedPreferences.getBoolean(GESTURE_IR_WAKEUP_KEY, true); - } else if (GESTURE_PICK_UP_KEY.equals(key)) { - mPickUpGestureEnabled = sharedPreferences.getBoolean(GESTURE_PICK_UP_KEY, true); - } else if (GESTURE_IR_SILENCER_KEY.equals(key)) { - mIrSilencerEnabled = sharedPreferences.getBoolean(GESTURE_IR_SILENCER_KEY, false); - } else if (GESTURE_FLIP_TO_MUTE_KEY.equals(key)) { - mFlipToMuteEnabled = sharedPreferences.getBoolean(GESTURE_FLIP_TO_MUTE_KEY, false); - } else if (GESTURE_LIFT_TO_SILENCE_KEY.equals(key)) { - mLiftToSilenceEnabled = sharedPreferences.getBoolean(GESTURE_LIFT_TO_SILENCE_KEY, false); - } else if (Constants.FP_HOME_KEY.equals(key) || Constants.FP_HAPTIC_KEY.equals(key) || Constants.FP_KEYS.equals(key) || Constants.FP_KEY_HOLD.equals(key) || Constants.FP_KEY_LEFT.equals(key) || Constants.FP_KEY_RIGHT.equals(key)) { - Constants.writePreference(mContext, key); - updated = false; - } else { - updated = false; - } - - if (updated) { - mUpdatedStateNotifier.updateState(); - } - } - }; -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/CameraActivationAction.java b/cmactions/src/com/cyanogenmod/settings/device/CameraActivationAction.java deleted file mode 100644 index 45992e9..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/CameraActivationAction.java +++ /dev/null @@ -1,132 +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 com.cyanogenmod.settings.device; - -import java.util.List; - -import android.app.KeyguardManager; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.pm.ActivityInfo; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; -import android.os.PowerManager; -import android.os.PowerManager.WakeLock; -import android.os.Vibrator; -import android.provider.MediaStore; -import android.util.Log; - -public class CameraActivationAction implements SensorAction { - private static final String TAG = "CMActions"; - - private static final int TURN_SCREEN_ON_WAKE_LOCK_MS = 500; - - private final Context mContext; - private final KeyguardManager mKeyguardManager; - private final PackageManager mPackageManager; - private final PowerManager mPowerManager; - - public CameraActivationAction(Context context) { - mContext = context; - mKeyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); - mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - mPackageManager = context.getPackageManager(); - } - - @Override - public void action() { - vibrate(); - turnScreenOn(); - if (mKeyguardManager.inKeyguardRestrictedInputMode()) { - launchSecureCamera(); - } else { - launchCamera(); - } - } - - private void vibrate() { - Vibrator v = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE); - v.vibrate(500); - } - - private void turnScreenOn() { - PowerManager.WakeLock wl = mPowerManager.newWakeLock( - PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG); - wl.acquire(TURN_SCREEN_ON_WAKE_LOCK_MS); - } - - private void launchCamera() { - Intent intent = createIntent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); - if (getBestActivityInfo(intent) != null) { - // Only launch if we can succeed, but let the user pick the action - mContext.startActivity(intent); - } - } - - private void launchSecureCamera() { - // Keyguard won't allow a picker, try to pick the secure intent in the package - // that would be the one used for a default action of launching the camera - Intent normalIntent = createIntent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); - Intent secureIntent = createIntent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE); - ActivityInfo normalActivity = getBestActivityInfo(normalIntent); - ActivityInfo secureActivity = getBestActivityInfo(secureIntent, normalActivity); - if (secureActivity != null) { - secureIntent.setComponent(componentName(secureActivity)); - mContext.startActivity(secureIntent); - } - } - - private Intent createIntent(String intentName) { - Intent intent = new Intent(intentName); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.addFlags(Intent.FLAG_FROM_BACKGROUND); - return intent; - } - - private ActivityInfo getBestActivityInfo(Intent intent) { - ResolveInfo resolveInfo = mPackageManager.resolveActivity(intent, 0); - if (resolveInfo != null) { - return resolveInfo.activityInfo; - } else { - // If the resolving failed, just find our own best match - return getBestActivityInfo(intent, null); - } - } - - private ActivityInfo getBestActivityInfo(Intent intent, ActivityInfo match) { - List activities = mPackageManager.queryIntentActivities(intent, 0); - ActivityInfo best = null; - if (activities.size() > 0) { - best = activities.get(0).activityInfo; - if (match != null) { - String packageName = match.applicationInfo.packageName; - for (int i = activities.size()-1; i >= 0; i--) { - ActivityInfo activityInfo = activities.get(i).activityInfo; - if (packageName.equals(activityInfo.applicationInfo.packageName)) { - best = activityInfo; - } - } - } - } - return best; - } - - private ComponentName componentName(ActivityInfo activity) { - return new ComponentName(activity.applicationInfo.packageName, activity.name); - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/CameraActivationSensor.java b/cmactions/src/com/cyanogenmod/settings/device/CameraActivationSensor.java deleted file mode 100644 index 0128ec4..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/CameraActivationSensor.java +++ /dev/null @@ -1,66 +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 com.cyanogenmod.settings.device; - -import java.util.List; - -import android.hardware.Sensor; -import android.hardware.SensorEvent; -import android.hardware.SensorEventListener; -import android.hardware.SensorManager; -import android.util.Log; - -public class CameraActivationSensor implements SensorEventListener, UpdatedStateNotifier { - private static final String TAG = "CMActions-CameraSensor"; - - private static final int TURN_SCREEN_ON_WAKE_LOCK_MS = 500; - - private final CMActionsSettings mCMActionsSettings; - private final SensorHelper mSensorHelper; - - private final Sensor mSensor; - - private boolean mIsEnabled; - - public CameraActivationSensor(CMActionsSettings cmActionsSettings, SensorHelper sensorHelper) { - mCMActionsSettings = cmActionsSettings; - mSensorHelper = sensorHelper; - mSensor = sensorHelper.getCameraActivationSensor(); - mSensorHelper.registerListener(mSensor, this); - } - - @Override - public synchronized void updateState() { - if (mCMActionsSettings.isCameraGestureEnabled() && !mIsEnabled) { - Log.d(TAG, "Enabling"); - mIsEnabled = true; - } else if (! mCMActionsSettings.isCameraGestureEnabled() && mIsEnabled) { - Log.d(TAG, "Disabling"); - mIsEnabled = false; - } - } - - @Override - public void onSensorChanged(SensorEvent event) { - Log.d(TAG, "activate camera"); - if (mIsEnabled) mCMActionsSettings.cameraAction(); - } - - @Override - public void onAccuracyChanged(Sensor sensor, int accuracy) { - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/ChopChopSensor.java b/cmactions/src/com/cyanogenmod/settings/device/ChopChopSensor.java deleted file mode 100644 index ac9ace3..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/ChopChopSensor.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2015-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 com.cyanogenmod.settings.device; - -import java.util.List; - -import android.hardware.Sensor; -import android.hardware.SensorEvent; -import android.hardware.SensorEventListener; -import android.hardware.SensorManager; -import android.util.Log; - -public class ChopChopSensor implements SensorEventListener, UpdatedStateNotifier { - private static final String TAG = "CMActions-ChopChopSensor"; - - private static final int TURN_SCREEN_ON_WAKE_LOCK_MS = 500; - - private final CMActionsSettings mCMActionsSettings; - private final SensorHelper mSensorHelper; - private final Sensor mSensor; - private final Sensor mProx; - - private boolean mIsEnabled; - private boolean mProxIsCovered; - - public ChopChopSensor(CMActionsSettings cmActionsSettings, SensorHelper sensorHelper) { - mCMActionsSettings = cmActionsSettings; - mSensorHelper = sensorHelper; - mSensor = sensorHelper.getChopChopSensor(); - mProx = sensorHelper.getProximitySensor(); - } - - @Override - public synchronized void updateState() { - if (mCMActionsSettings.isChopChopGestureEnabled() && !mIsEnabled) { - Log.d(TAG, "Enabling"); - mSensorHelper.registerListener(mSensor, this); - mSensorHelper.registerListener(mProx, mProxListener); - mIsEnabled = true; - } else if (! mCMActionsSettings.isChopChopGestureEnabled() && mIsEnabled) { - Log.d(TAG, "Disabling"); - mSensorHelper.unregisterListener(this); - mSensorHelper.unregisterListener(mProxListener); - mIsEnabled = false; - } - } - - @Override - public void onSensorChanged(SensorEvent event) { - Log.d(TAG, "chop chop triggered"); - if (mProxIsCovered) { - Log.d(TAG, "proximity sensor covered, ignoring chop-chop"); - return; - } - mCMActionsSettings.chopChopAction(); - } - - @Override - public void onAccuracyChanged(Sensor sensor, int accuracy) { - } - - private SensorEventListener mProxListener = new SensorEventListener() { - @Override - public synchronized void onSensorChanged(SensorEvent event) { - mProxIsCovered = event.values[0] < mProx.getMaximumRange(); - } - - @Override - public void onAccuracyChanged(Sensor mSensor, int accuracy) { - } - }; - -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/Constants.java b/cmactions/src/com/cyanogenmod/settings/device/Constants.java deleted file mode 100644 index aefab87..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/Constants.java +++ /dev/null @@ -1,139 +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 com.cyanogenmod.settings.device; - -import java.util.HashMap; -import java.util.Map; - -import android.content.Context; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; -import android.util.Log; - -import org.cyanogenmod.internal.util.FileUtils; - -public class Constants { - - private static final String TAG = "CMActions"; - - // Swap keys - public static final String FP_HOME_KEY = "fp_home"; - public static final String FP_HOME_KEY_OFF = "fp_home_scr_off"; - - // Swap nodes - public static final String FP_HOME_NODE = "/sys/homebutton/enable"; - public static final String FP_HOME_OFF_NODE = "/sys/homebutton/enable_off"; - - // Haptic node - public static final String FP_HAPTIC_NODE = "/sys/homebutton/haptic"; - public static final String FP_HAPTIC_KEY = "fp_haptic"; - - // List of keys - public static final String FP_KEYS = "fp_keys"; - public static final String FP_KEY_HOLD = "fp_key_hold"; - public static final String FP_KEY_LEFT = "fp_key_left"; - public static final String FP_KEY_RIGHT = "fp_key_right"; - - public static final String FP_KEYS_OFF = "fp_keys_off"; - public static final String FP_KEY_HOLD_OFF = "fp_key_hold_off"; - public static final String FP_KEY_LEFT_OFF = "fp_key_left_off"; - public static final String FP_KEY_RIGHT_OFF = "fp_key_right_off"; - - // Keys nodes - public static final String FP_KEYS_NODE = "/sys/homebutton/key"; - public static final String FP_KEY_HOLD_NODE = "/sys/homebutton/key_hold"; - public static final String FP_KEY_LEFT_NODE = "/sys/homebutton/key_left"; - public static final String FP_KEY_RIGHT_NODE = "/sys/homebutton/key_right"; - - // Holds -> mapping - public static final Map sBooleanNodePreferenceMap = new HashMap<>(); - - // Holds -> mapping - public static final Map sNodeDefaultMap = new HashMap<>(); - - public static final String[] sButtonPrefKeys = { - FP_HOME_KEY, - FP_HOME_KEY_OFF, - FP_KEYS, - FP_KEY_HOLD, - FP_KEY_RIGHT, - FP_KEY_LEFT, - FP_HAPTIC_KEY, - }; - - public static final String[] sButtonScreenOffPrefKeys = { - FP_KEYS_OFF, - FP_KEY_HOLD_OFF, - FP_KEY_RIGHT_OFF, - FP_KEY_LEFT_OFF, - FP_HOME_KEY_OFF, - }; - - static { - sBooleanNodePreferenceMap.put(FP_HOME_KEY, FP_HOME_NODE); - sBooleanNodePreferenceMap.put(FP_HOME_KEY_OFF, FP_HOME_OFF_NODE); - sBooleanNodePreferenceMap.put(FP_KEYS, FP_KEYS_NODE); - sBooleanNodePreferenceMap.put(FP_KEY_HOLD, FP_KEY_HOLD_NODE); - sBooleanNodePreferenceMap.put(FP_KEY_LEFT, FP_KEY_LEFT_NODE); - sBooleanNodePreferenceMap.put(FP_KEY_RIGHT, FP_KEY_RIGHT_NODE); - sBooleanNodePreferenceMap.put(FP_HAPTIC_KEY, FP_HAPTIC_NODE); - sBooleanNodePreferenceMap.put(FP_KEYS_OFF, FP_KEYS_NODE); - sBooleanNodePreferenceMap.put(FP_KEY_HOLD_OFF, FP_KEY_HOLD_NODE); - sBooleanNodePreferenceMap.put(FP_KEY_LEFT_OFF, FP_KEY_LEFT_NODE); - sBooleanNodePreferenceMap.put(FP_KEY_RIGHT_OFF, FP_KEY_RIGHT_NODE); - sNodeDefaultMap.put(FP_HOME_KEY, false); - sNodeDefaultMap.put(FP_HOME_KEY_OFF, false); - sNodeDefaultMap.put(FP_KEYS, "0"); - sNodeDefaultMap.put(FP_KEY_HOLD, "0"); - sNodeDefaultMap.put(FP_KEY_LEFT, "0"); - sNodeDefaultMap.put(FP_KEY_RIGHT, "0"); - sNodeDefaultMap.put(FP_KEYS_OFF, "0"); - sNodeDefaultMap.put(FP_KEY_HOLD_OFF, "0"); - sNodeDefaultMap.put(FP_KEY_LEFT_OFF, "0"); - sNodeDefaultMap.put(FP_KEY_RIGHT_OFF, "0"); - sNodeDefaultMap.put(FP_HAPTIC_KEY, false); - } - - public static boolean isPreferenceEnabled(Context context, String key) { - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); - return preferences.getBoolean(key, (Boolean) sNodeDefaultMap.get(key)); - } - - public static String GetPreference(Context context, String key) { - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); - return preferences.getString(key, (String) sNodeDefaultMap.get(key)); - } - - public static void writePreference(Context context, String pref) { - - String value = "1"; - Log.e(TAG, "Write Pref: " + pref); - if (!pref.equals(FP_KEYS) && !pref.equals(FP_KEY_HOLD) && !pref.equals(FP_KEY_LEFT) && !pref.equals(FP_KEY_RIGHT) && - !pref.equals(FP_KEYS_OFF) && !pref.equals(FP_KEY_HOLD_OFF) && !pref.equals(FP_KEY_LEFT_OFF) && !pref.equals(FP_KEY_RIGHT_OFF)) - value = isPreferenceEnabled(context, pref) ? "1" : "0"; - else - value = GetPreference(context, pref); - - String node = sBooleanNodePreferenceMap.get(pref); - Log.e(TAG, "Write " + value + " to node " + node); - - if (!FileUtils.writeLine(node, value)) { - Log.w(TAG, "Write " + value + " to node " + node + - "failed while restoring saved preference values"); - } - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/DozePreferenceActivity.java b/cmactions/src/com/cyanogenmod/settings/device/DozePreferenceActivity.java deleted file mode 100644 index 118c658..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/DozePreferenceActivity.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2017 The LineageOS 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 com.cyanogenmod.settings.device; - -import android.os.Bundle; -import android.preference.PreferenceActivity; -import android.provider.Settings; -import android.support.v7.preference.Preference; -import android.support.v7.preference.PreferenceCategory; -import android.support.v14.preference.PreferenceFragment; -import android.support.v14.preference.SwitchPreference; -import android.view.MenuItem; - -public class DozePreferenceActivity extends PreferenceActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - getActionBar().setDisplayHomeAsUpEnabled(true); - getFragmentManager().beginTransaction() - .replace(android.R.id.content, new DozePreferenceFragment()).commit(); - } - - public class DozePreferenceFragment extends PreferenceFragment { - private static final String KEY_AMBIENT_DISPLAY_ENABLE = "doze_enabled"; - - private SwitchPreference mAmbientDisplayPreference; - - @Override - public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { - addPreferencesFromResource(R.xml.doze_panel); - boolean dozeEnabled = CMActionsSettings.isDozeEnabled(getActivity().getContentResolver()); - mAmbientDisplayPreference = (SwitchPreference) findPreference(KEY_AMBIENT_DISPLAY_ENABLE); - // Read from DOZE_ENABLED secure setting - mAmbientDisplayPreference.setChecked(dozeEnabled); - mAmbientDisplayPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - boolean enable = (boolean) newValue; - return enableDoze(enable); - } - }); - } - - private boolean enableDoze(boolean enable) { - return Settings.Secure.putInt(getContext().getContentResolver(), - Settings.Secure.DOZE_ENABLED, enable ? 1 : 0); - } - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() == android.R.id.home) { - onBackPressed(); - return true; - } - return super.onOptionsItemSelected(item); - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/DozePulseAction.java b/cmactions/src/com/cyanogenmod/settings/device/DozePulseAction.java deleted file mode 100644 index 75ef9c3..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/DozePulseAction.java +++ /dev/null @@ -1,63 +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 com.cyanogenmod.settings.device; - -import android.content.Context; -import android.content.Intent; -import android.util.Log; - -public class DozePulseAction implements SensorAction, ScreenStateNotifier { - private static final String TAG = "CMActions"; - - private static final int DELAY_BETWEEN_DOZES_IN_MS = 1500; - - private final Context mContext; - - private long mLastDoze; - - public DozePulseAction(Context context) { - mContext = context; - } - - @Override - public void screenTurnedOn() { - } - - @Override - public void screenTurnedOff() { - mLastDoze = System.currentTimeMillis(); - } - - public void action() { - if (mayDoze()) { - Log.d(TAG, "Sending doze.pulse intent"); - mContext.sendBroadcast(new Intent("com.android.systemui.doze.pulse")); - } - } - - public synchronized boolean mayDoze() { - long now = System.currentTimeMillis(); - if (now - mLastDoze > DELAY_BETWEEN_DOZES_IN_MS) { - Log.d(TAG, "Allowing doze"); - mLastDoze = now; - return true; - } else { - Log.d(TAG, "Denying doze"); - return false; - } - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/FlipToMute.java b/cmactions/src/com/cyanogenmod/settings/device/FlipToMute.java deleted file mode 100644 index d5d5bf9..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/FlipToMute.java +++ /dev/null @@ -1,123 +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 com.cyanogenmod.settings.device; - -import android.app.NotificationManager; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.hardware.Sensor; -import android.hardware.SensorEvent; -import android.hardware.SensorEventListener; -import android.util.Log; - -public class FlipToMute implements UpdatedStateNotifier { - private static final String TAG = "CMActions-FlipToMute"; - - private final NotificationManager mNotificationManager; - private final CMActionsSettings mCMActionsSettings; - private final SensorHelper mSensorHelper; - private final Sensor mFlatDown; - private final Sensor mStow; - - private boolean mIsEnabled; - private boolean mIsFlatDown; - private boolean mIsStowed; - private int mFilter; - private Context mContext; - private Receiver mReceiver; - - public FlipToMute(CMActionsSettings cmActionsSettings, Context context, - SensorHelper sensorHelper) { - mCMActionsSettings = cmActionsSettings; - mContext = context; - mSensorHelper = sensorHelper; - mFlatDown = sensorHelper.getFlatDownSensor(); - mStow = sensorHelper.getStowSensor(); - mNotificationManager = - (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); - mFilter = mNotificationManager.getCurrentInterruptionFilter(); - mReceiver = new Receiver(); - } - - @Override - public void updateState() { - if (mCMActionsSettings.isFlipToMuteEnabled() && !mIsEnabled) { - Log.d(TAG, "Enabling"); - mSensorHelper.registerListener(mFlatDown, mFlatDownListener); - mSensorHelper.registerListener(mStow, mStowListener); - mContext.registerReceiver(mReceiver, - new IntentFilter(NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED)); - mIsEnabled = true; - } else if (!mCMActionsSettings.isFlipToMuteEnabled() && mIsEnabled) { - Log.d(TAG, "Disabling"); - mSensorHelper.unregisterListener(mFlatDownListener); - mSensorHelper.unregisterListener(mStowListener); - mContext.unregisterReceiver(mReceiver); - mIsEnabled = false; - } - } - - private SensorEventListener mFlatDownListener = new SensorEventListener() { - @Override - public synchronized void onSensorChanged(SensorEvent event) { - mIsFlatDown = (event.values[0] != 0); - sensorChange(); - } - - @Override - public void onAccuracyChanged(Sensor mSensor, int accuracy) { - } - }; - - private SensorEventListener mStowListener = new SensorEventListener() { - @Override - public synchronized void onSensorChanged(SensorEvent event) { - mIsStowed = (event.values[0] != 0); - sensorChange(); - } - - @Override - public void onAccuracyChanged(Sensor mSensor, int accuracy) { - } - }; - - private void sensorChange() { - - Log.d(TAG, "event: " + mIsFlatDown + " mIsStowed=" + mIsStowed); - - if (mIsFlatDown && mIsStowed) { - mNotificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY); - Log.d(TAG, "Interrupt filter: Allow priority"); - } else if (!mIsFlatDown) { - mNotificationManager.setInterruptionFilter(mFilter); - Log.d(TAG, "Interrupt filter: Restore"); - } - } - - public class Receiver extends BroadcastReceiver { - - @Override - public void onReceive(Context context, Intent intent) { - if (!mIsFlatDown && !mIsStowed) { - mFilter = mNotificationManager.getCurrentInterruptionFilter(); - Log.d(TAG, "Interrupt filter: Backup"); - } - } - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/GlanceSensor.java b/cmactions/src/com/cyanogenmod/settings/device/GlanceSensor.java deleted file mode 100644 index 4d83c81..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/GlanceSensor.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2017 The LineageOS 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 com.cyanogenmod.settings.device; - -import android.hardware.Sensor; -import android.hardware.TriggerEvent; -import android.hardware.TriggerEventListener; -import android.util.Log; - -public class GlanceSensor implements ScreenStateNotifier { - private static final String TAG = "CMActions-GlanceSensor"; - - private final CMActionsSettings mCMActionsSettings; - private final SensorHelper mSensorHelper; - private final SensorAction mSensorAction; - private final Sensor mSensor; - - private boolean mEnabled; - - public GlanceSensor(CMActionsSettings cmActionsSettings, SensorHelper sensorHelper, - SensorAction action) { - mCMActionsSettings = cmActionsSettings; - mSensorHelper = sensorHelper; - mSensorAction = action; - - mSensor = sensorHelper.getGlanceSensor(); - } - - @Override - public void screenTurnedOn() { - if (mEnabled) { - Log.d(TAG, "Disabling"); - mSensorHelper.cancelTriggerSensor(mSensor, mGlanceListener); - mEnabled = false; - } - } - - @Override - public void screenTurnedOff() { - if (mCMActionsSettings.isPickUpEnabled() && !mEnabled) { - Log.d(TAG, "Enabling"); - mSensorHelper.requestTriggerSensor(mSensor, mGlanceListener); - mEnabled = true; - } - } - - private TriggerEventListener mGlanceListener = new TriggerEventListener() { - @Override - public void onTrigger(TriggerEvent event) { - Log.d(TAG, "triggered"); - mSensorAction.action(); - mSensorHelper.requestTriggerSensor(mSensor, mGlanceListener); - } - }; -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/LiftToSilence.java b/cmactions/src/com/cyanogenmod/settings/device/LiftToSilence.java deleted file mode 100644 index a5286c3..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/LiftToSilence.java +++ /dev/null @@ -1,105 +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 com.cyanogenmod.settings.device; - -import android.content.Context; -import android.hardware.Sensor; -import android.hardware.SensorEvent; -import android.hardware.SensorEventListener; -import android.telephony.PhoneStateListener; -import android.telecom.TelecomManager; -import android.telephony.TelephonyManager; -import android.util.Log; - -public class LiftToSilence extends PhoneStateListener implements SensorEventListener, UpdatedStateNotifier { - private static final String TAG = "CMActions-LiftToSilence"; - - private final CMActionsSettings mCMActionsSettings; - private final SensorHelper mSensorHelper; - private final Sensor mFlatUpSensor; - private final Sensor mStowSensor; - - private final TelecomManager mTelecomManager; - private final TelephonyManager mTelephonyManager; - - private boolean mIsRinging; - private boolean mIsStowed; - private boolean mLastFlatUp; - - public LiftToSilence(CMActionsSettings cmActionsSettings, Context context, - SensorHelper sensorHelper) { - mCMActionsSettings = cmActionsSettings; - mSensorHelper = sensorHelper; - mFlatUpSensor = sensorHelper.getFlatUpSensor(); - mStowSensor = sensorHelper.getStowSensor(); - mTelecomManager = (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE); - mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - } - - @Override - public void updateState() { - if (mCMActionsSettings.isLiftToSilenceEnabled()) { - mTelephonyManager.listen(this, LISTEN_CALL_STATE); - } else { - mTelephonyManager.listen(this, 0); - } - } - - @Override - public synchronized void onCallStateChanged(int state, String incomingNumber) { - if (state == TelephonyManager.CALL_STATE_RINGING && !mIsRinging) { - Log.d(TAG, "Ringing started"); - mSensorHelper.registerListener(mFlatUpSensor, this); - mSensorHelper.registerListener(mStowSensor, mStowListener); - mIsRinging = true; - } else if (state != TelephonyManager.CALL_STATE_RINGING && mIsRinging) { - Log.d(TAG, "Ringing stopped"); - mSensorHelper.unregisterListener(this); - mSensorHelper.unregisterListener(mStowListener); - mIsRinging = false; - } - } - - - @Override - public synchronized void onSensorChanged(SensorEvent event) { - boolean thisFlatUp = (event.values[0] != 0); - - Log.d(TAG, "event: " + thisFlatUp + " mLastFlatUp=" + mLastFlatUp + " mIsStowed=" + - mIsStowed); - - if (mLastFlatUp && !thisFlatUp && !mIsStowed) { - mTelecomManager.silenceRinger(); - } - mLastFlatUp = thisFlatUp; - } - - @Override - public void onAccuracyChanged(Sensor mSensor, int accuracy) { - } - - private SensorEventListener mStowListener = new SensorEventListener() { - @Override - public synchronized void onSensorChanged(SensorEvent event) { - mIsStowed = (event.values[0] != 0); - } - - @Override - public void onAccuracyChanged(Sensor mSensor, int accuracy) { - } - }; -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/ProximitySensor.java b/cmactions/src/com/cyanogenmod/settings/device/ProximitySensor.java deleted file mode 100644 index 7c4af6c..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/ProximitySensor.java +++ /dev/null @@ -1,76 +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 com.cyanogenmod.settings.device; - -import android.hardware.Sensor; -import android.hardware.SensorEvent; -import android.hardware.SensorEventListener; -import android.util.Log; - -public class ProximitySensor implements ScreenStateNotifier, SensorEventListener { - private static final String TAG = "CMActions-ProximitySensor"; - - private final CMActionsSettings mCMActionsSettings; - private final SensorHelper mSensorHelper; - private final SensorAction mSensorAction; - private final Sensor mSensor; - - private boolean mEnabled; - - private boolean mSawNear = false; - - public ProximitySensor(CMActionsSettings cmActionsSettings, SensorHelper sensorHelper, - SensorAction action) { - mCMActionsSettings = cmActionsSettings; - mSensorHelper = sensorHelper; - mSensorAction = action; - - mSensor = sensorHelper.getProximitySensor(); - } - - @Override - public void screenTurnedOn() { - if (mEnabled) { - Log.d(TAG, "Disabling"); - mSensorHelper.unregisterListener(this); - mEnabled = false; - } - } - - @Override - public void screenTurnedOff() { - if (mCMActionsSettings.isIrWakeupEnabled() && !mEnabled) { - Log.d(TAG, "Enabling"); - mSensorHelper.registerListener(mSensor, this); - mEnabled = true; - } - } - - @Override - public void onSensorChanged(SensorEvent event) { - boolean isNear = event.values[0] < mSensor.getMaximumRange(); - if (mSawNear && !isNear) { - Log.d(TAG, "wave triggered"); - mSensorAction.action(); - } - mSawNear = isNear; - } - - @Override - public void onAccuracyChanged(Sensor mSensor, int accuracy) { - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/ProximitySilencer.java b/cmactions/src/com/cyanogenmod/settings/device/ProximitySilencer.java deleted file mode 100644 index 3975776..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/ProximitySilencer.java +++ /dev/null @@ -1,110 +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 com.cyanogenmod.settings.device; - -import android.content.Context; -import android.hardware.Sensor; -import android.hardware.SensorEvent; -import android.hardware.SensorEventListener; -import android.telephony.PhoneStateListener; -import android.telecom.TelecomManager; -import android.telephony.TelephonyManager; -import android.util.Log; - -import static android.telephony.TelephonyManager.*; - -public class ProximitySilencer extends PhoneStateListener implements SensorEventListener, UpdatedStateNotifier { - private static final String TAG = "CMActions-ProximitySilencer"; - - private static final int SILENCE_DELAY_MS = 500; - - private final TelecomManager mTelecomManager; - private final TelephonyManager mTelephonyManager; - private final CMActionsSettings mCMActionsSettings; - private final SensorHelper mSensorHelper; - private final Sensor mSensor; - private boolean mIsRinging; - private long mRingStartedMs; - private boolean mCoveredRinging; - - public ProximitySilencer(CMActionsSettings cmActionsSettings, Context context, - SensorHelper sensorHelper) { - mTelecomManager = (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE); - mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - - mCMActionsSettings = cmActionsSettings; - mSensorHelper = sensorHelper; - mSensor = sensorHelper.getProximitySensor(); - mCoveredRinging = false; - mIsRinging = false; - } - - @Override - public void updateState() { - if (mCMActionsSettings.isIrSilencerEnabled()) { - mTelephonyManager.listen(this, LISTEN_CALL_STATE); - } else { - mTelephonyManager.listen(this, 0); - } - } - - @Override - public synchronized void onSensorChanged(SensorEvent event) { - boolean isNear = event.values[0] < mSensor.getMaximumRange(); - long now = System.currentTimeMillis(); - - if (isNear){ - if (mIsRinging && (now - mRingStartedMs >= SILENCE_DELAY_MS)){ - mCoveredRinging = true; - } else { - mCoveredRinging = false; - } - return; - } - - if (!isNear && mIsRinging) { - Log.d(TAG, "event: [" + event.values.length + "]: " + event.values[0] + ", " + - event.values[1] + ", " + event.values[2] + " covered " + Boolean.toString(mCoveredRinging)); - if (mCoveredRinging) { - Log.d(TAG, "Silencing ringer"); - mTelecomManager.silenceRinger(); - } else { - Log.d(TAG, "Ignoring silence gesture: " + now + " is too close to " + - mRingStartedMs + ", delay=" + SILENCE_DELAY_MS + " or covered " + Boolean.toString(mCoveredRinging)); - } - mCoveredRinging = false; - } - } - - @Override - public synchronized void onCallStateChanged(int state, String incomingNumber) { - if (state == CALL_STATE_RINGING && !mIsRinging) { - Log.d(TAG, "Ringing started"); - mSensorHelper.registerListener(mSensor, this); - mIsRinging = true; - mRingStartedMs = System.currentTimeMillis(); - } else if (state != CALL_STATE_RINGING && mIsRinging) { - Log.d(TAG, "Ringing stopped"); - mSensorHelper.unregisterListener(this); - mIsRinging = false; - } - } - - @Override - public void onAccuracyChanged(Sensor mSensor, int accuracy) { - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/ScreenReceiver.java b/cmactions/src/com/cyanogenmod/settings/device/ScreenReceiver.java deleted file mode 100644 index fd39852..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/ScreenReceiver.java +++ /dev/null @@ -1,53 +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 com.cyanogenmod.settings.device; - -import java.util.List; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; - -public class ScreenReceiver extends BroadcastReceiver { - private final ScreenStateNotifier mNotifier; - - public ScreenReceiver(Context context, ScreenStateNotifier notifier) { - mNotifier = notifier; - - IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON); - filter.addAction(Intent.ACTION_SCREEN_OFF); - context.registerReceiver(this, filter); - } - - @Override - public void onReceive(Context context, Intent intent) { - if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { - mNotifier.screenTurnedOff(); - - for (String pref : Constants.sButtonScreenOffPrefKeys) { - Constants.writePreference(context, pref); - } - } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { - mNotifier.screenTurnedOn(); - - for (String pref : Constants.sButtonPrefKeys) { - Constants.writePreference(context, pref); - } - } - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/ScreenStateNotifier.java b/cmactions/src/com/cyanogenmod/settings/device/ScreenStateNotifier.java deleted file mode 100644 index 1ffd844..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/ScreenStateNotifier.java +++ /dev/null @@ -1,22 +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 com.cyanogenmod.settings.device; - -interface ScreenStateNotifier { - public void screenTurnedOn(); - public void screenTurnedOff(); -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/SensorAction.java b/cmactions/src/com/cyanogenmod/settings/device/SensorAction.java deleted file mode 100644 index ed590b2..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/SensorAction.java +++ /dev/null @@ -1,21 +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 com.cyanogenmod.settings.device; - -interface SensorAction { - public void action(); -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/SensorHelper.java b/cmactions/src/com/cyanogenmod/settings/device/SensorHelper.java deleted file mode 100644 index c27fa1d..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/SensorHelper.java +++ /dev/null @@ -1,116 +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 com.cyanogenmod.settings.device; - -import java.util.List; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; - -import android.content.Context; -import android.hardware.Sensor; -import android.hardware.SensorEventListener; -import android.hardware.SensorManager; -import android.hardware.TriggerEventListener; -import android.util.Log; - -public class SensorHelper { - private static final String TAG = "CMActions"; - - private static final int SENSOR_TYPE_MMI_CAMERA_ACTIVATION = 65540; - private static final int SENSOR_TYPE_MMI_CHOP_CHOP = 65546; - private static final int SENSOR_TYPE_MMI_FLAT_UP = 65537; - private static final int SENSOR_TYPE_MMI_FLAT_DOWN = 65538; - private static final int SENSOR_TYPE_MMI_STOW = 65539; - - private static final int BATCH_LATENCY_IN_MS = 100; - - private final Context mContext; - private final SensorManager mSensorManager; - - public SensorHelper(Context context) { - mContext = context; - mSensorManager = (SensorManager) mContext .getSystemService(Context.SENSOR_SERVICE); - dumpSensorsList(); - } - - private void dumpSensorsList() { - try { - FileOutputStream out = mContext.openFileOutput("sensors.txt", Context.MODE_PRIVATE); - OutputStreamWriter writer = new OutputStreamWriter(out); - - List sensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL); - for (Sensor sensor : sensorList) { - writer.write("sensor " + sensor.getType() + " = " + sensor.getName() - + " max batch: " + sensor.getFifoMaxEventCount() + " isWakeUp: " + sensor.isWakeUpSensor() + "\n"); - } - writer.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public Sensor getCameraActivationSensor() { - return mSensorManager.getDefaultSensor(SENSOR_TYPE_MMI_CAMERA_ACTIVATION, true); - } - - public Sensor getChopChopSensor() { - return mSensorManager.getDefaultSensor(SENSOR_TYPE_MMI_CHOP_CHOP, true); - } - - public Sensor getFlatUpSensor() { - return mSensorManager.getDefaultSensor(SENSOR_TYPE_MMI_FLAT_UP, true); - } - - public Sensor getFlatDownSensor() { - return mSensorManager.getDefaultSensor(SENSOR_TYPE_MMI_FLAT_DOWN, true); - } - - public Sensor getGlanceSensor() { - return mSensorManager.getDefaultSensor(Sensor.TYPE_GLANCE_GESTURE, true); - } - - public Sensor getProximitySensor() { - return mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY, true); - } - - public Sensor getStowSensor() { - return mSensorManager.getDefaultSensor(SENSOR_TYPE_MMI_STOW, true); - } - - public void registerListener(Sensor sensor, SensorEventListener listener) { - if (!mSensorManager.registerListener(listener, sensor, - SensorManager.SENSOR_DELAY_NORMAL, BATCH_LATENCY_IN_MS * 1000)) { - throw new RuntimeException("Failed to registerListener for sensor " + sensor); - } - } - - public void unregisterListener(SensorEventListener listener) { - mSensorManager.unregisterListener(listener); - } - - /* TriggerSensor */ - public void requestTriggerSensor(Sensor sensor, TriggerEventListener listener) { - if (!mSensorManager.requestTriggerSensor(listener, sensor)) { - throw new RuntimeException("Failed to requestTriggerSensor for sensor " + sensor); - } - } - - public void cancelTriggerSensor(Sensor sensor, TriggerEventListener listener) { - mSensorManager.cancelTriggerSensor(listener, sensor); - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/ServiceWrapper.java b/cmactions/src/com/cyanogenmod/settings/device/ServiceWrapper.java deleted file mode 100644 index 0a4b21c..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/ServiceWrapper.java +++ /dev/null @@ -1,65 +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 com.cyanogenmod.settings.device; - -import android.content.Intent; -import android.os.Binder; -import android.os.Bundle; -import android.os.IBinder; -import android.util.Log; - -public class ServiceWrapper extends android.app.Service { - static final String TAG = "CMActions-ServiceWrapper"; - - private final IBinder mBinder = new LocalBinder(); - private CMActionsService mCmActionsService; - - public interface ServiceCallback { - void sendResults(int resultCode, Bundle b); - } - - public class LocalBinder extends Binder { - ServiceWrapper getService() { - // Return this instance of the service so clients can call public - // methods - return ServiceWrapper.this; - } - } - - @Override - public void onCreate() { - Log.i(TAG, "onCreate"); - super.onCreate(); - mCmActionsService = new CMActionsService(this); - } - - @Override - public IBinder onBind(Intent intent) { - Log.i(TAG, "onBind"); - return null; - } - - public void setCallback(ServiceCallback callback) { - } - - public void start() { - Log.i(TAG, "start"); - } - - public void stop() { - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/StowSensor.java b/cmactions/src/com/cyanogenmod/settings/device/StowSensor.java deleted file mode 100644 index 84f0f08..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/StowSensor.java +++ /dev/null @@ -1,86 +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 com.cyanogenmod.settings.device; - -import android.hardware.Sensor; -import android.hardware.SensorEvent; -import android.hardware.SensorEventListener; -import android.util.Log; - -import java.lang.System; - -public class StowSensor implements ScreenStateNotifier, SensorEventListener { - private static final String TAG = "CMActions-StowSensor"; - private static final int IN_POCKET_MIN_TIME = 5000; - - private final CMActionsSettings mCMActionsSettings; - private final SensorHelper mSensorHelper; - private final SensorAction mSensorAction; - private final Sensor mSensor; - - private boolean mEnabled; - private boolean mLastStowed; - private long isStowedTime; - - public StowSensor(CMActionsSettings cmActionsSettings, SensorHelper sensorHelper, - SensorAction action) { - mCMActionsSettings = cmActionsSettings; - mSensorHelper = sensorHelper; - mSensorAction = action; - - mSensor = sensorHelper.getStowSensor(); - } - - @Override - public void screenTurnedOn() { - if (mEnabled) { - Log.d(TAG, "Disabling"); - mSensorHelper.unregisterListener(this); - mEnabled = false; - } - } - - @Override - public void screenTurnedOff() { - if (!mCMActionsSettings.isIrWakeupEnabled() && - mCMActionsSettings.isPickUpEnabled() && !mEnabled) { - Log.d(TAG, "Enabling"); - mSensorHelper.registerListener(mSensor, this); - mEnabled = true; - } - } - - @Override - public void onSensorChanged(SensorEvent event) { - boolean thisStowed = (event.values[0] != 0); - if(thisStowed){ - isStowedTime = System.currentTimeMillis(); - } else if (mLastStowed && !thisStowed) { - long inPocketTime = System.currentTimeMillis() - isStowedTime; - if(inPocketTime >= IN_POCKET_MIN_TIME){ - Log.d(TAG, "Triggered after " + inPocketTime / 1000 + " seconds"); - mSensorAction.action(); - } - } - mLastStowed = thisStowed; - Log.d(TAG, "event: " + thisStowed); - } - - @Override - public void onAccuracyChanged(Sensor sensor, int accuracy) { - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/TorchAction.java b/cmactions/src/com/cyanogenmod/settings/device/TorchAction.java deleted file mode 100644 index f66ae59..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/TorchAction.java +++ /dev/null @@ -1,81 +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 com.cyanogenmod.settings.device; - -import android.content.Context; -import android.hardware.camera2.CameraManager; -import android.hardware.camera2.CameraCharacteristics; -import android.hardware.camera2.CameraAccessException; -import android.os.Vibrator; -import android.util.Log; - -public class TorchAction implements SensorAction { - private static final String TAG = "CMActions"; - - private static final int TURN_SCREEN_ON_WAKE_LOCK_MS = 500; - - private CameraManager mCameraManager; - private final Vibrator mVibrator; - private String mRearCameraId; - private static boolean mTorchEnabled; - - public TorchAction(Context mContext) { - mCameraManager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE); - mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE); - try { - for (final String cameraId : mCameraManager.getCameraIdList()) { - CameraCharacteristics characteristics = - mCameraManager.getCameraCharacteristics(cameraId); - int cOrientation = characteristics.get(CameraCharacteristics.LENS_FACING); - if (cOrientation == CameraCharacteristics.LENS_FACING_BACK) { - mRearCameraId = cameraId; - break; - } - } - } catch (CameraAccessException e) { - } - } - - @Override - public void action() { - mVibrator.vibrate(250); - if (mRearCameraId != null) { - try { - mCameraManager.setTorchMode(mRearCameraId, !mTorchEnabled); - mTorchEnabled = !mTorchEnabled; - } catch (CameraAccessException e) { - } - } - } - - private class MyTorchCallback extends CameraManager.TorchCallback { - - @Override - public void onTorchModeChanged(String cameraId, boolean enabled) { - if (!cameraId.equals(mRearCameraId)) - return; - mTorchEnabled = enabled; - } - - @Override - public void onTorchModeUnavailable(String cameraId) { - if (!cameraId.equals(mRearCameraId)) - return; - mTorchEnabled = false; - } - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/TouchscreenGesturePreferenceActivity.java b/cmactions/src/com/cyanogenmod/settings/device/TouchscreenGesturePreferenceActivity.java deleted file mode 100644 index 41f43af..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/TouchscreenGesturePreferenceActivity.java +++ /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 com.cyanogenmod.settings.device; - -import android.os.Bundle; - -import com.android.settingslib.drawer.SettingsDrawerActivity; - -public class TouchscreenGesturePreferenceActivity extends SettingsDrawerActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - getFragmentManager().beginTransaction() - .replace(R.id.content_frame, new TouchscreenGesturePreferenceFragment()).commit(); - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/TouchscreenGesturePreferenceFragment.java b/cmactions/src/com/cyanogenmod/settings/device/TouchscreenGesturePreferenceFragment.java deleted file mode 100644 index 0935200..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/TouchscreenGesturePreferenceFragment.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (C) 2015-2016 The CyanogenMod Project - * Copyright (C) 2017 The LineageOS 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 com.cyanogenmod.settings.device; - -import android.app.AlertDialog; -import android.app.NotificationManager; -import android.os.Bundle; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.support.v7.preference.PreferenceCategory; -import android.support.v14.preference.PreferenceFragment; -import android.support.v7.preference.Preference; -import android.support.v14.preference.SwitchPreference; - -public class TouchscreenGesturePreferenceFragment extends PreferenceFragment { - private SwitchPreference mFlipPref; - private NotificationManager mNotificationManager; - private boolean mFlipClick = false; - - @Override - public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { - addPreferencesFromResource(R.xml.gesture_panel); - mNotificationManager = (NotificationManager) getActivity().getSystemService(Context.NOTIFICATION_SERVICE); - mFlipPref = (SwitchPreference) findPreference("gesture_flip_to_mute"); - mFlipPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { - public boolean onPreferenceClick(Preference preference) { - if (!mNotificationManager.isNotificationPolicyAccessGranted()) { - mFlipPref.setChecked(false); - new AlertDialog.Builder(getContext()) - .setTitle(getString(R.string.flip_to_mute_title)) - .setMessage(getString(R.string.dnd_access)) - .setNegativeButton(android.R.string.cancel, null) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - mFlipClick = true; - startActivity(new Intent( - android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS)); - } - }).show(); - } - return true; - } - }); - - //Users may deny DND access after giving it - if (!mNotificationManager.isNotificationPolicyAccessGranted()) { - mFlipPref.setChecked(false); - } - } - - @Override - public void onResume() { - super.onResume(); - - if (mNotificationManager.isNotificationPolicyAccessGranted() && mFlipClick) { - mFlipPref.setChecked(true); - } - } -} diff --git a/cmactions/src/com/cyanogenmod/settings/device/UpdatedStateNotifier.java b/cmactions/src/com/cyanogenmod/settings/device/UpdatedStateNotifier.java deleted file mode 100644 index 268b4bd..0000000 --- a/cmactions/src/com/cyanogenmod/settings/device/UpdatedStateNotifier.java +++ /dev/null @@ -1,21 +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 com.cyanogenmod.settings.device; - -interface UpdatedStateNotifier { - public void updateState(); -}