151 lines
6.5 KiB
Java
151 lines
6.5 KiB
Java
/*
|
|
* Copyright (c) 2015 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.moto.actions;
|
|
|
|
import android.content.ContentResolver;
|
|
import android.content.Context;
|
|
import android.content.SharedPreferences;
|
|
import android.preference.PreferenceManager;
|
|
import android.provider.Settings;
|
|
|
|
import android.util.Log;
|
|
|
|
import com.moto.actions.actions.Constants;
|
|
import com.moto.actions.actions.UpdatedStateNotifier;
|
|
import com.moto.actions.actions.CameraActivationAction;
|
|
import com.moto.actions.actions.TorchAction;
|
|
|
|
public class MotoActionsSettings {
|
|
private static final String TAG = "MotoActions";
|
|
|
|
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 MotoActionsSettings(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, false);
|
|
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, false);
|
|
} 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_HOME_KEY_OFF.equals(key) || Constants.FP_HAPTIC_SCREENOFF_KEY.equals(key) || Constants.FP_KEYS.equals(key) || Constants.FP_KEY_DBLTAP.equals(key) || Constants.FP_KEY_HOLD.equals(key) || Constants.FP_KEY_LEFT.equals(key) || Constants.FP_KEY_RIGHT.equals(key)
|
|
|| Constants.FP_KEYS_OFF.equals(key) || Constants.FP_KEY_DBLTAP_OFF.equals(key) || Constants.FP_KEY_HOLD_OFF.equals(key) || Constants.FP_KEY_LEFT_OFF.equals(key) || Constants.FP_KEY_RIGHT_OFF.equals(key)) {
|
|
Constants.writePreference(mContext, key);
|
|
updated = false;
|
|
} else {
|
|
updated = false;
|
|
}
|
|
|
|
if (updated) {
|
|
mUpdatedStateNotifier.updateState();
|
|
}
|
|
}
|
|
};
|
|
}
|