mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-24 19:00:26 +01:00
Update conditions for PIN megaphone.
Handles additional corner cases. - Shows megaphone when you register with a v1 pin. - Show fullscreen when you fail to set a PIN during registration.
This commit is contained in:
@@ -2,8 +2,10 @@ package org.thoughtcrime.securesms.megaphone;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -19,6 +21,10 @@ class PinsForAllSchedule implements MegaphoneSchedule {
|
||||
private final MegaphoneSchedule schedule = new RecurringSchedule(TimeUnit.DAYS.toMillis(2));
|
||||
|
||||
static boolean shouldDisplayFullScreen(long firstVisible, long currentTime) {
|
||||
if (pinCreationFailedDuringRegistration()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (firstVisible == 0L) {
|
||||
return false;
|
||||
} else {
|
||||
@@ -46,10 +52,33 @@ class PinsForAllSchedule implements MegaphoneSchedule {
|
||||
}
|
||||
|
||||
private static boolean isEnabled() {
|
||||
if (FeatureFlags.pinsForAllMegaphoneKillSwitch() || SignalStore.registrationValues().pinWasRequiredAtRegistration()) {
|
||||
if (FeatureFlags.pinsForAllMegaphoneKillSwitch()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (pinCreationFailedDuringRegistration()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (newlyRegisteredV1PinUser()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (SignalStore.registrationValues().pinWasRequiredAtRegistration()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return FeatureFlags.pinsForAll();
|
||||
}
|
||||
|
||||
private static boolean pinCreationFailedDuringRegistration() {
|
||||
return SignalStore.registrationValues().pinWasRequiredAtRegistration() &&
|
||||
!SignalStore.kbsValues().isV2RegistrationLockEnabled() &&
|
||||
!TextSecurePreferences.isV1RegistrationLockEnabled(ApplicationDependencies.getApplication());
|
||||
}
|
||||
|
||||
private static final boolean newlyRegisteredV1PinUser() {
|
||||
return SignalStore.registrationValues().pinWasRequiredAtRegistration() && TextSecurePreferences.isV1RegistrationLockEnabled(ApplicationDependencies.getApplication());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user