mirror of
https://github.com/oxen-io/session-android.git
synced 2025-10-24 08:49:31 +00:00
Show lock notification immediately after setting is toggled
Fixes #7659 Closes #7678
This commit is contained in:
committed by
Greyson Parrelli
parent
c6e20f715b
commit
5006b36e2d
@@ -120,12 +120,12 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
|
||||
private class ScreenLockListener implements Preference.OnPreferenceChangeListener {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
TextSecurePreferences.setScreenLockEnabled(getContext(), (Boolean)newValue);
|
||||
boolean enabled = (Boolean)newValue;
|
||||
TextSecurePreferences.setScreenLockEnabled(getContext(), enabled);
|
||||
|
||||
Intent intent = new Intent(getContext(), KeyCachingService.class);
|
||||
intent.setAction(KeyCachingService.CLEAR_KEY_EVENT);
|
||||
intent.setAction(KeyCachingService.LOCK_TOGGLED_EVENT);
|
||||
getContext().startService(intent);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,11 +56,14 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class KeyCachingService extends Service {
|
||||
|
||||
private static final String TAG = KeyCachingService.class.getSimpleName();
|
||||
|
||||
public static final int SERVICE_RUNNING_ID = 4141;
|
||||
|
||||
public static final String KEY_PERMISSION = "org.thoughtcrime.securesms.ACCESS_SECRETS";
|
||||
public static final String NEW_KEY_EVENT = "org.thoughtcrime.securesms.service.action.NEW_KEY_EVENT";
|
||||
public static final String CLEAR_KEY_EVENT = "org.thoughtcrime.securesms.service.action.CLEAR_KEY_EVENT";
|
||||
public static final String LOCK_TOGGLED_EVENT = "org.thoughtcrime.securesms.service.action.LOCK_ENABLED_EVENT";
|
||||
private static final String PASSPHRASE_EXPIRED_EVENT = "org.thoughtcrime.securesms.service.action.PASSPHRASE_EXPIRED_EVENT";
|
||||
public static final String CLEAR_KEY_ACTION = "org.thoughtcrime.securesms.service.action.CLEAR_KEY";
|
||||
public static final String DISABLE_ACTION = "org.thoughtcrime.securesms.service.action.DISABLE";
|
||||
@@ -133,6 +136,7 @@ public class KeyCachingService extends Service {
|
||||
case PASSPHRASE_EXPIRED_EVENT: handleClearKey(); break;
|
||||
case DISABLE_ACTION: handleDisableService(); break;
|
||||
case LOCALE_CHANGE_EVENT: handleLocaleChanged(); break;
|
||||
case LOCK_TOGGLED_EVENT: handleLockToggled(); break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,6 +213,17 @@ public class KeyCachingService extends Service {
|
||||
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
}
|
||||
|
||||
private void handleLockToggled() {
|
||||
stopForeground(true);
|
||||
|
||||
try {
|
||||
MasterSecret masterSecret = MasterSecretUtil.getMasterSecret(this, MasterSecretUtil.UNENCRYPTED_PASSPHRASE);
|
||||
setMasterSecret(masterSecret);
|
||||
} catch (InvalidPassphraseException e) {
|
||||
Log.w(TAG, e);
|
||||
}
|
||||
}
|
||||
|
||||
private void handleDisableService() {
|
||||
if (TextSecurePreferences.isPasswordDisabled(this) &&
|
||||
!TextSecurePreferences.isScreenLockEnabled(this))
|
||||
|
||||
Reference in New Issue
Block a user