mirror of
https://github.com/wesaphzt/privatelock.git
synced 2025-04-19 14:09:09 +00:00
option to run locking functionality while phone is locked to force pin
This commit is contained in:
parent
53828ddc3f
commit
813b948f19
5 changed files with 71 additions and 19 deletions
|
@ -7,7 +7,9 @@ import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.preference.CheckBoxPreference;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
|
|
||||||
|
@ -15,17 +17,26 @@ import com.wesaphzt.privatelock.R;
|
||||||
|
|
||||||
public class FragmentSettings extends PreferenceFragmentCompat {
|
public class FragmentSettings extends PreferenceFragmentCompat {
|
||||||
|
|
||||||
private SharedPreferences prefs;
|
private Context context;
|
||||||
|
|
||||||
|
private CheckBoxPreference cbRunConstant;
|
||||||
|
|
||||||
|
private SharedPreferences sharedPreferences;
|
||||||
|
private SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||||
addPreferencesFromResource(R.xml.preferences);
|
addPreferencesFromResource(R.xml.preferences);
|
||||||
|
|
||||||
setHasOptionsMenu(true);
|
setHasOptionsMenu(true);
|
||||||
Context context = getContext();
|
context = getContext();
|
||||||
|
|
||||||
|
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
|
||||||
//this static call will reset default values only on the first read
|
//this static call will reset default values only on the first read
|
||||||
PreferenceManager.setDefaultValues(context, R.xml.preferences, false);
|
PreferenceManager.setDefaultValues(context, R.xml.preferences, false);
|
||||||
|
|
||||||
|
cbRunConstant = (CheckBoxPreference) findPreference("RUN_CONSTANT");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -33,6 +44,24 @@ public class FragmentSettings extends PreferenceFragmentCompat {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPause() {
|
||||||
|
super.onPause();
|
||||||
|
sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
@ -41,6 +70,16 @@ public class FragmentSettings extends PreferenceFragmentCompat {
|
||||||
|
|
||||||
//bg color
|
//bg color
|
||||||
view.setBackgroundColor(getResources().getColor(R.color.white));
|
view.setBackgroundColor(getResources().getColor(R.color.white));
|
||||||
|
|
||||||
|
sharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
|
||||||
|
if(key.equals("RUN_CONSTANT") && cbRunConstant.isChecked()) {
|
||||||
|
Toast.makeText(context, getString(R.string.settings_restart_service_toast), Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -16,7 +16,7 @@ public class BootReceiver extends BroadcastReceiver {
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
|
||||||
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
|
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);;
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
if(prefs.getBoolean("START_ON_BOOT", false)) {
|
if(prefs.getBoolean("START_ON_BOOT", false)) {
|
||||||
Intent i = new Intent(context, LockService.class);
|
Intent i = new Intent(context, LockService.class);
|
||||||
|
|
||||||
|
|
|
@ -83,18 +83,18 @@ public class LockService extends JobIntentService {
|
||||||
String action = intent.getAction();
|
String action = intent.getAction();
|
||||||
|
|
||||||
LockWidgetProvider lockWidgetProvider = new LockWidgetProvider();
|
LockWidgetProvider lockWidgetProvider = new LockWidgetProvider();
|
||||||
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
|
|
||||||
case ACTION_START_FOREGROUND_SERVICE:
|
case ACTION_START_FOREGROUND_SERVICE:
|
||||||
|
if(! prefs.getBoolean("RUN_CONSTANT", false)) {
|
||||||
presenceReceiver = new PresenceReceiver();
|
presenceReceiver = new PresenceReceiver();
|
||||||
|
|
||||||
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_USER_PRESENT);
|
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_USER_PRESENT);
|
||||||
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
|
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
|
||||||
registerReceiver(presenceReceiver, intentFilter);
|
registerReceiver(presenceReceiver, intentFilter);
|
||||||
|
}
|
||||||
//------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
|
|
||||||
try {
|
try {
|
||||||
SENSITIVITY = prefs.getInt(MainActivity.PREFS_THRESHOLD, DEFAULT_SENSITIVITY);
|
SENSITIVITY = prefs.getInt(MainActivity.PREFS_THRESHOLD, DEFAULT_SENSITIVITY);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -134,7 +134,9 @@ public class LockService extends JobIntentService {
|
||||||
|
|
||||||
case ACTION_STOP_FOREGROUND_SERVICE:
|
case ACTION_STOP_FOREGROUND_SERVICE:
|
||||||
try {
|
try {
|
||||||
|
if(! prefs.getBoolean("RUN_CONSTANT", false)) {
|
||||||
unregisterReceiver(presenceReceiver);
|
unregisterReceiver(presenceReceiver);
|
||||||
|
}
|
||||||
mSensorManager.unregisterListener(activeListener);
|
mSensorManager.unregisterListener(activeListener);
|
||||||
|
|
||||||
disabled = true;
|
disabled = true;
|
||||||
|
@ -145,6 +147,9 @@ public class LockService extends JobIntentService {
|
||||||
PauseReceiver.isRunning = false;
|
PauseReceiver.isRunning = false;
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
if(! prefs.getBoolean("RUN_CONSTANT", false)) {
|
||||||
|
unregisterReceiver(presenceReceiver);
|
||||||
|
}
|
||||||
disabled = true;
|
disabled = true;
|
||||||
mInitialized = false;
|
mInitialized = false;
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,9 @@
|
||||||
|
|
||||||
<string name="about_bug_report_image_desc">Bug report image</string>
|
<string name="about_bug_report_image_desc">Bug report image</string>
|
||||||
|
|
||||||
|
<!--message-->
|
||||||
|
<string name="settings_restart_service_toast">If service is running, restart for setting to take effect.</string>
|
||||||
|
|
||||||
<!--donate-->
|
<!--donate-->
|
||||||
<string name="donate_bitcoin_image_desc">Bitcoin image</string>
|
<string name="donate_bitcoin_image_desc">Bitcoin image</string>
|
||||||
<string name="donate_litecoin_image_desc">Litecoin image</string>
|
<string name="donate_litecoin_image_desc">Litecoin image</string>
|
||||||
|
|
|
@ -2,20 +2,25 @@
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="Lock Service">
|
android:title="Lock Service">
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:key="START_ON_BOOT"
|
||||||
|
android:title="System start" />
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:key="RUN_CONSTANT"
|
||||||
|
android:title="Run service when locked"
|
||||||
|
android:summary="Run service all the time, even when the screen is off, to be able to force PIN entry at any time."/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:defaultValue="1"
|
android:defaultValue="1"
|
||||||
android:entries="@array/array_pause_minutes"
|
android:entries="@array/array_pause_minutes"
|
||||||
android:entryValues="@array/array_pause_minutes_vals"
|
android:entryValues="@array/array_pause_minutes_vals"
|
||||||
android:key="PAUSE_TIME"
|
android:key="PAUSE_TIME"
|
||||||
android:summary="%s"
|
android:summary="%s"
|
||||||
android:title="Pause time" />
|
android:title="Pause length" />
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
|
||||||
android:title="Application">
|
|
||||||
<CheckBoxPreference
|
|
||||||
android:defaultValue="false"
|
|
||||||
android:key="START_ON_BOOT"
|
|
||||||
android:title="System start" />
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
Loading…
Add table
Reference in a new issue