mirror of
https://github.com/wesaphzt/privatelock.git
synced 2025-04-18 13:42:02 +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.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.preference.CheckBoxPreference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
|
@ -15,17 +17,26 @@ import com.wesaphzt.privatelock.R;
|
|||
|
||||
public class FragmentSettings extends PreferenceFragmentCompat {
|
||||
|
||||
private SharedPreferences prefs;
|
||||
private Context context;
|
||||
|
||||
private CheckBoxPreference cbRunConstant;
|
||||
|
||||
private SharedPreferences sharedPreferences;
|
||||
private SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener;
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
addPreferencesFromResource(R.xml.preferences);
|
||||
|
||||
setHasOptionsMenu(true);
|
||||
Context context = getContext();
|
||||
context = getContext();
|
||||
|
||||
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
|
||||
//this static call will reset default values only on the first read
|
||||
PreferenceManager.setDefaultValues(context, R.xml.preferences, false);
|
||||
|
||||
cbRunConstant = (CheckBoxPreference) findPreference("RUN_CONSTANT");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -33,6 +44,24 @@ public class FragmentSettings extends PreferenceFragmentCompat {
|
|||
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
|
||||
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
@ -41,6 +70,16 @@ public class FragmentSettings extends PreferenceFragmentCompat {
|
|||
|
||||
//bg color
|
||||
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
|
||||
|
|
|
@ -16,7 +16,7 @@ public class BootReceiver extends BroadcastReceiver {
|
|||
public void onReceive(Context context, Intent intent) {
|
||||
|
||||
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)) {
|
||||
Intent i = new Intent(context, LockService.class);
|
||||
|
||||
|
|
|
@ -83,18 +83,18 @@ public class LockService extends JobIntentService {
|
|||
String action = intent.getAction();
|
||||
|
||||
LockWidgetProvider lockWidgetProvider = new LockWidgetProvider();
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
|
||||
switch (action) {
|
||||
|
||||
case ACTION_START_FOREGROUND_SERVICE:
|
||||
presenceReceiver = new PresenceReceiver();
|
||||
|
||||
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_USER_PRESENT);
|
||||
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
|
||||
registerReceiver(presenceReceiver, intentFilter);
|
||||
if(! prefs.getBoolean("RUN_CONSTANT", false)) {
|
||||
presenceReceiver = new PresenceReceiver();
|
||||
|
||||
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_USER_PRESENT);
|
||||
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
|
||||
registerReceiver(presenceReceiver, intentFilter);
|
||||
}
|
||||
//------------------------------------------------------------------------------------------
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
|
||||
try {
|
||||
SENSITIVITY = prefs.getInt(MainActivity.PREFS_THRESHOLD, DEFAULT_SENSITIVITY);
|
||||
} catch (Exception e) {
|
||||
|
@ -134,7 +134,9 @@ public class LockService extends JobIntentService {
|
|||
|
||||
case ACTION_STOP_FOREGROUND_SERVICE:
|
||||
try {
|
||||
unregisterReceiver(presenceReceiver);
|
||||
if(! prefs.getBoolean("RUN_CONSTANT", false)) {
|
||||
unregisterReceiver(presenceReceiver);
|
||||
}
|
||||
mSensorManager.unregisterListener(activeListener);
|
||||
|
||||
disabled = true;
|
||||
|
@ -145,6 +147,9 @@ public class LockService extends JobIntentService {
|
|||
PauseReceiver.isRunning = false;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if(! prefs.getBoolean("RUN_CONSTANT", false)) {
|
||||
unregisterReceiver(presenceReceiver);
|
||||
}
|
||||
disabled = true;
|
||||
mInitialized = false;
|
||||
|
||||
|
|
|
@ -62,6 +62,9 @@
|
|||
|
||||
<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-->
|
||||
<string name="donate_bitcoin_image_desc">Bitcoin 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">
|
||||
<PreferenceCategory
|
||||
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
|
||||
android:defaultValue="1"
|
||||
android:entries="@array/array_pause_minutes"
|
||||
android:entryValues="@array/array_pause_minutes_vals"
|
||||
android:key="PAUSE_TIME"
|
||||
android:summary="%s"
|
||||
android:title="Pause time" />
|
||||
</PreferenceCategory>
|
||||
android:title="Pause length" />
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="Application">
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="START_ON_BOOT"
|
||||
android:title="System start" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
Loading…
Add table
Reference in a new issue