exynos9610: kang LineageActions from nash
[GitHub/moto-9609/android_device_motorola_exynos9610-common.git] / LineageActions / src / org / lineageos / settings / device / doze / GlanceSensor.java
1 /*
2 * Copyright (c) 2017 The LineageOS Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 package org.lineageos.settings.device.doze;
18
19 import android.hardware.Sensor;
20 import android.hardware.SensorEvent;
21 import android.hardware.SensorEventListener;
22 import android.util.Log;
23
24 import org.lineageos.settings.device.LineageActionsSettings;
25 import org.lineageos.settings.device.SensorAction;
26 import org.lineageos.settings.device.SensorHelper;
27
28 public class GlanceSensor implements ScreenStateNotifier {
29 private static final String TAG = "LineageActions-GlanceSensor";
30
31 private final LineageActionsSettings mLineageActionsSettings;
32 private final SensorHelper mSensorHelper;
33 private final SensorAction mSensorAction;
34
35 private final Sensor mSensor;
36 private final Sensor mApproachSensor;
37
38 private boolean mEnabled;
39
40 public GlanceSensor(LineageActionsSettings lineageActionsSettings, SensorHelper sensorHelper,
41 SensorAction action) {
42 mLineageActionsSettings = lineageActionsSettings;
43 mSensorHelper = sensorHelper;
44 mSensorAction = action;
45
46 mSensor = sensorHelper.getGlanceSensor();
47 mApproachSensor = sensorHelper.getApproachGlanceSensor();
48 }
49
50 @Override
51 public void screenTurnedOn() {
52 if (mEnabled) {
53 Log.d(TAG, "Disabling");
54 mSensorHelper.unregisterListener(mGlanceListener);
55 mSensorHelper.unregisterListener(mApproachGlanceListener);
56 mEnabled = false;
57 }
58 }
59
60 @Override
61 public void screenTurnedOff() {
62 if (mLineageActionsSettings.isPickUpEnabled() && !mEnabled) {
63 Log.d(TAG, "Enabling");
64 mSensorHelper.registerListener(mSensor, mGlanceListener);
65 mSensorHelper.registerListener(mSensor, mApproachGlanceListener);
66 mEnabled = true;
67 }
68 }
69
70 private SensorEventListener mGlanceListener = new SensorEventListener() {
71 @Override
72 public synchronized void onSensorChanged(SensorEvent event) {
73 Log.d(TAG, "Changed");
74 mSensorAction.action();
75 }
76
77 @Override
78 public void onAccuracyChanged(Sensor mSensor, int accuracy) {
79 }
80 };
81
82 private SensorEventListener mApproachGlanceListener = new SensorEventListener() {
83 @Override
84 public synchronized void onSensorChanged(SensorEvent event) {
85 Log.d(TAG, "Approach: Changed");
86 mSensorAction.action();
87 }
88
89 @Override
90 public void onAccuracyChanged(Sensor mSensor, int accuracy) {
91 }
92 };
93 }