aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configpanel/src/org/lineageos/settings/device/ButtonSettingsFragment.java5
-rw-r--r--configpanel/src/org/lineageos/settings/device/ConfigPanelSearchIndexablesProvider.java4
-rw-r--r--pocketmode/AndroidManifest.xml38
-rw-r--r--pocketmode/src/org/lineageos/pocketmode/PocketModeService.java36
-rw-r--r--pocketmode/src/org/lineageos/pocketmode/ProximitySensor.java11
-rw-r--r--pocketmode/src/org/lineageos/pocketmode/Startup.java (renamed from pocketmode/src/org/lineageos/pocketmode/BootCompletedReceiver.java)15
-rw-r--r--rootdir/etc/init.qcom.rc2
-rw-r--r--sepolicy/file_contexts1
8 files changed, 78 insertions, 34 deletions
diff --git a/configpanel/src/org/lineageos/settings/device/ButtonSettingsFragment.java b/configpanel/src/org/lineageos/settings/device/ButtonSettingsFragment.java
index f446ef6..cee52c5 100644
--- a/configpanel/src/org/lineageos/settings/device/ButtonSettingsFragment.java
+++ b/configpanel/src/org/lineageos/settings/device/ButtonSettingsFragment.java
@@ -115,11 +115,6 @@ public class ButtonSettingsFragment extends PreferenceFragment
} else {
b.setOnPreferenceChangeListener(this);
}
-
- // Hide fingerprint features if the device doesn't support them
- if (!FileUtils.fileExists(Constants.FP_WAKEUP_NODE)) {
- getPreferenceScreen().removePreference(fingerprintCategory);
- }
}
@Override
diff --git a/configpanel/src/org/lineageos/settings/device/ConfigPanelSearchIndexablesProvider.java b/configpanel/src/org/lineageos/settings/device/ConfigPanelSearchIndexablesProvider.java
index 7430226..adff870 100644
--- a/configpanel/src/org/lineageos/settings/device/ConfigPanelSearchIndexablesProvider.java
+++ b/configpanel/src/org/lineageos/settings/device/ConfigPanelSearchIndexablesProvider.java
@@ -83,9 +83,7 @@ public class ConfigPanelSearchIndexablesProvider extends SearchIndexablesProvide
if (!PackageManagerUtils.isAppInstalled(context, "org.lineageos.pocketmode")) {
keys.add(Constants.FP_POCKETMODE_KEY);
}
- if (!FileUtils.fileExists(Constants.FP_WAKEUP_NODE)) {
- keys.add(Constants.FP_WAKEUP_KEY);
- }
+ keys.add(Constants.FP_WAKEUP_KEY);
return keys;
}
diff --git a/pocketmode/AndroidManifest.xml b/pocketmode/AndroidManifest.xml
index e462eb2..fe9e42f 100644
--- a/pocketmode/AndroidManifest.xml
+++ b/pocketmode/AndroidManifest.xml
@@ -1,29 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2016 The CyanogenMod Project
+ Copyright (C) 2017-2019 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.
+-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.lineageos.pocketmode"
android:versionCode="1"
- android:versionName="1.1"
+ android:versionName="1.2"
android:sharedUserId="android.uid.system">
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+ <uses-permission android:name="lineageos.permission.HARDWARE_ABSTRACTION_ACCESS" />
<uses-sdk
- android:minSdkVersion="27"
- android:targetSdkVersion="27"/>
+ android:minSdkVersion="27" />
<application
android:label="ZukPocketMode"
- android:persistent="true">
+ android:persistent="true"
+ android:defaultToDeviceProtectedStorage="true"
+ android:directBootAware="true">
- <receiver android:name="org.lineageos.pocketmode.BootCompletedReceiver">
- <intent-filter>
- <action android:name="android.intent.action.BOOT_COMPLETED" />
- <category android:name="android.intent.category.DEFAULT" />
+ <receiver android:name=".Startup" >
+ <intent-filter android:priority="99" >
+ <action android:name="lineageos.intent.action.INITIALIZE_LINEAGE_HARDWARE" />
</intent-filter>
</receiver>
- <service android:name="org.lineageos.pocketmode.PocketModeService"
- android:permission="ZukPocketModeService">
+ <service android:name=".PocketModeService"
+ android:permission="PocketModeService">
</service>
<activity android:name="PocketMode"
diff --git a/pocketmode/src/org/lineageos/pocketmode/PocketModeService.java b/pocketmode/src/org/lineageos/pocketmode/PocketModeService.java
index 42658b9..3af4654 100644
--- a/pocketmode/src/org/lineageos/pocketmode/PocketModeService.java
+++ b/pocketmode/src/org/lineageos/pocketmode/PocketModeService.java
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2016 The CyanogenMod Project
- * Copyright (c) 2018 The LineageOS Project
+ * 2018-2019 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.
@@ -25,10 +25,18 @@ import android.content.IntentFilter;
import android.os.IBinder;
import android.util.Log;
+import java.util.ArrayList;
+import java.util.List;
+
public class PocketModeService extends Service {
private static final String TAG = "PocketModeService";
private static final boolean DEBUG = false;
+ private static final String CUST_INTENT = "org.lineageos.settings.device.CUST_UPDATE";
+ private static final String CUST_INTENT_EXTRA = "pocketmode_service";
+
+ private static List<BroadcastReceiver> receivers = new ArrayList<BroadcastReceiver>();
+
private ProximitySensor mProximitySensor;
@Override
@@ -36,9 +44,8 @@ public class PocketModeService extends Service {
if (DEBUG) Log.d(TAG, "Creating service");
mProximitySensor = new ProximitySensor(this);
- IntentFilter screenStateFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
- screenStateFilter.addAction(Intent.ACTION_SCREEN_OFF);
- registerReceiver(mScreenStateReceiver, screenStateFilter);
+ IntentFilter custFilter = new IntentFilter(CUST_INTENT);
+ registerReceiver(mUpdateReceiver, custFilter);
}
@Override
@@ -51,7 +58,10 @@ public class PocketModeService extends Service {
public void onDestroy() {
if (DEBUG) Log.d(TAG, "Destroying service");
super.onDestroy();
- this.unregisterReceiver(mScreenStateReceiver);
+ if (receivers.contains(mScreenStateReceiver)) {
+ this.unregisterReceiver(mScreenStateReceiver);
+ }
+ this.unregisterReceiver(mUpdateReceiver);
mProximitySensor.disable();
}
@@ -80,4 +90,20 @@ public class PocketModeService extends Service {
}
}
};
+
+ private BroadcastReceiver mUpdateReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (intent.getBooleanExtra(CUST_INTENT_EXTRA, false)) {
+ IntentFilter screenStateFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
+ screenStateFilter.addAction(Intent.ACTION_SCREEN_OFF);
+ registerReceiver(mScreenStateReceiver, screenStateFilter);
+ receivers.add(mScreenStateReceiver);
+ } else if (receivers.contains(mScreenStateReceiver)) {
+ unregisterReceiver(mScreenStateReceiver);
+ receivers.remove(mScreenStateReceiver);
+ mProximitySensor.disable();
+ }
+ }
+ };
}
diff --git a/pocketmode/src/org/lineageos/pocketmode/ProximitySensor.java b/pocketmode/src/org/lineageos/pocketmode/ProximitySensor.java
index c1af4e8..4f1402c 100644
--- a/pocketmode/src/org/lineageos/pocketmode/ProximitySensor.java
+++ b/pocketmode/src/org/lineageos/pocketmode/ProximitySensor.java
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2016 The CyanogenMod Project
- * Copyright (c) 2018 The LineageOS Project
+ * 2018-2019 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.
@@ -31,7 +31,7 @@ public class ProximitySensor implements SensorEventListener {
private static final boolean DEBUG = false;
private static final String TAG = "PocketModeProximity";
- private static final String FPC_FILE = "/sys/devices/soc/soc:fpc1020/proximity_state";
+ private static final String FP_PROX_NODE = "/sys/devices/soc/soc:fpc1020/proximity_state";
private SensorManager mSensorManager;
private Sensor mSensor;
@@ -39,15 +39,16 @@ public class ProximitySensor implements SensorEventListener {
public ProximitySensor(Context context) {
mContext = context;
- mSensorManager = mContext.getSystemService(SensorManager.class);
+ mSensorManager = (SensorManager)
+ mContext.getSystemService(Context.SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
}
@Override
public void onSensorChanged(SensorEvent event) {
boolean isNear = event.values[0] < mSensor.getMaximumRange();
- if (FileUtils.isFileWritable(FPC_FILE)) {
- FileUtils.writeLine(FPC_FILE, isNear ? "1" : "0");
+ if (FileUtils.isFileWritable(FP_PROX_NODE)) {
+ FileUtils.writeLine(FP_PROX_NODE, isNear ? "1" : "0");
}
}
diff --git a/pocketmode/src/org/lineageos/pocketmode/BootCompletedReceiver.java b/pocketmode/src/org/lineageos/pocketmode/Startup.java
index b967946..39b3371 100644
--- a/pocketmode/src/org/lineageos/pocketmode/BootCompletedReceiver.java
+++ b/pocketmode/src/org/lineageos/pocketmode/Startup.java
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2016 The CyanogenMod Project
- * Copyright (c) 2018 The LineageOS Project
+ * 2018-2019 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.
@@ -20,15 +20,20 @@ package org.lineageos.pocketmode;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.os.UserHandle;
import android.util.Log;
-public class BootCompletedReceiver extends BroadcastReceiver {
+public class Startup extends BroadcastReceiver {
private static final String TAG = "ZukPocketMode";
@Override
- public void onReceive(final Context context, Intent intent) {
- Log.d(TAG, "Starting");
- context.startService(new Intent(context, PocketModeService.class));
+ public void onReceive(Context context, Intent intent) {
+ final String action = intent.getAction();
+ if (lineageos.content.Intent.ACTION_INITIALIZE_LINEAGE_HARDWARE.equals(action)) {
+ Log.d(TAG, "Starting");
+ context.startServiceAsUser(new Intent(context, PocketModeService.class),
+ UserHandle.CURRENT);
+ }
}
}
diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc
index 2b4e5f8..66b14d4 100644
--- a/rootdir/etc/init.qcom.rc
+++ b/rootdir/etc/init.qcom.rc
@@ -242,6 +242,8 @@ on boot
chmod 0660 /sys/devices/soc/soc:fpc1020/screen
chmod 0660 /sys/devices/soc/soc:fpc1020/proximity_state
chown system system /sys/devices/soc/soc:fpc1020/proximity_state
+ chmod 0660 /sys/devices/soc/soc:fpc1020/enable_wakeup
+ chown system system /sys/devices/soc/soc:fpc1020/enable_wakeup
# Access permission for secure touch
chmod 0660 /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch_enable
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 429d4c4..37c5fe6 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -21,6 +21,7 @@
# Sys files
/sys/devices/soc/soc:fpc1020(/.*)? u:object_r:sysfs_fingerprint:s0
+/sys/devices/soc/soc:fpc1020/enable_wakeup u:object_r:sysfs_fingerprint:s0
/sys/devices/soc/soc:fpc1020/proximity_state u:object_r:sysfs_fingerprint:s0
/sys/devices/soc/soc:fpc1020/irq u:object_r:sysfs_fingerprint:s0
/sys/devices/soc/soc:fpc1020/utouch_disable u:object_r:sysfs_fingerprint:s0