kopia lustrzana https://github.com/ryukoposting/Signal-Android
88 wiersze
3.4 KiB
Java
88 wiersze
3.4 KiB
Java
package org.thoughtcrime.securesms.registration.fragments;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.lifecycle.ViewModelProvider;
|
|
import androidx.navigation.Navigation;
|
|
|
|
import org.signal.core.util.concurrent.SimpleTask;
|
|
import org.signal.core.util.logging.Log;
|
|
import org.thoughtcrime.securesms.R;
|
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
|
import org.thoughtcrime.securesms.jobs.StorageAccountRestoreJob;
|
|
import org.thoughtcrime.securesms.jobs.StorageSyncJob;
|
|
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
|
import org.thoughtcrime.securesms.registration.viewmodel.BaseRegistrationViewModel;
|
|
import org.thoughtcrime.securesms.registration.viewmodel.RegistrationViewModel;
|
|
import org.thoughtcrime.securesms.util.CommunicationActions;
|
|
import org.thoughtcrime.securesms.util.FeatureFlags;
|
|
import org.signal.core.util.Stopwatch;
|
|
import org.thoughtcrime.securesms.util.SupportEmailUtil;
|
|
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
|
|
|
import java.io.IOException;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
public final class RegistrationLockFragment extends BaseRegistrationLockFragment {
|
|
|
|
private static final String TAG = Log.tag(RegistrationLockFragment.class);
|
|
|
|
public RegistrationLockFragment() {
|
|
super(R.layout.fragment_registration_lock);
|
|
}
|
|
|
|
@Override
|
|
protected BaseRegistrationViewModel getViewModel() {
|
|
return new ViewModelProvider(requireActivity()).get(RegistrationViewModel.class);
|
|
}
|
|
|
|
@Override
|
|
protected void navigateToAccountLocked() {
|
|
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()), RegistrationLockFragmentDirections.actionAccountLocked());
|
|
}
|
|
|
|
@Override
|
|
protected void handleSuccessfulPinEntry(@NonNull String pin) {
|
|
SignalStore.pinValues().setKeyboardType(getPinEntryKeyboardType());
|
|
|
|
SimpleTask.run(() -> {
|
|
SignalStore.onboarding().clearAll();
|
|
|
|
Stopwatch stopwatch = new Stopwatch("RegistrationLockRestore");
|
|
|
|
ApplicationDependencies.getJobManager().runSynchronously(new StorageAccountRestoreJob(), StorageAccountRestoreJob.LIFESPAN);
|
|
stopwatch.split("AccountRestore");
|
|
|
|
ApplicationDependencies.getJobManager().runSynchronously(new StorageSyncJob(), TimeUnit.SECONDS.toMillis(10));
|
|
stopwatch.split("ContactRestore");
|
|
|
|
try {
|
|
FeatureFlags.refreshSync();
|
|
} catch (IOException e) {
|
|
Log.w(TAG, "Failed to refresh flags.", e);
|
|
}
|
|
stopwatch.split("FeatureFlags");
|
|
|
|
stopwatch.stop(TAG);
|
|
|
|
return null;
|
|
}, none -> {
|
|
pinButton.cancelSpinning();
|
|
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()), RegistrationLockFragmentDirections.actionSuccessfulRegistration());
|
|
});
|
|
}
|
|
|
|
@Override
|
|
protected void sendEmailToSupport() {
|
|
int subject = R.string.RegistrationLockFragment__signal_registration_need_help_with_pin_for_android_v2_pin;
|
|
|
|
String body = SupportEmailUtil.generateSupportEmailBody(requireContext(),
|
|
subject,
|
|
null,
|
|
null);
|
|
CommunicationActions.openEmail(requireContext(),
|
|
SupportEmailUtil.getSupportEmailAddress(requireContext()),
|
|
getString(subject),
|
|
body);
|
|
}
|
|
}
|