mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 17:29:32 +01:00
Fix illegal argument navigation exceptions.
This commit is contained in:
committed by
Greyson Parrelli
parent
ba54051f8c
commit
a4f44a96fd
@@ -25,6 +25,7 @@ import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.database.documents.Document;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.util.BackupUtil;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
public class ChooseBackupFragment extends LoggingFragment {
|
||||
|
||||
@@ -57,7 +58,7 @@ public class ChooseBackupFragment extends LoggingFragment {
|
||||
|
||||
restore.setUri(data.getData());
|
||||
|
||||
Navigation.findNavController(requireView()).navigate(restore);
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()), restore);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
package org.thoughtcrime.securesms.registration.fragments;
|
||||
|
||||
import static org.thoughtcrime.securesms.registration.fragments.RegistrationViewDelegate.setDebugLogSubmitMultiTapView;
|
||||
import static org.thoughtcrime.securesms.registration.fragments.RegistrationViewDelegate.showConfirmNumberDialogIfTranslated;
|
||||
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.cancelSpinning;
|
||||
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.setSpinning;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
@@ -43,7 +38,6 @@ import org.signal.core.util.logging.Log;
|
||||
import org.thoughtcrime.securesms.LoggingFragment;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.components.LabeledEditText;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.registration.VerifyAccountRepository.Mode;
|
||||
import org.thoughtcrime.securesms.registration.util.RegistrationNumberInputController;
|
||||
@@ -54,12 +48,17 @@ import org.thoughtcrime.securesms.util.Dialogs;
|
||||
import org.thoughtcrime.securesms.util.LifecycleDisposable;
|
||||
import org.thoughtcrime.securesms.util.PlayServicesUtil;
|
||||
import org.thoughtcrime.securesms.util.SupportEmailUtil;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
|
||||
import static org.thoughtcrime.securesms.registration.fragments.RegistrationViewDelegate.setDebugLogSubmitMultiTapView;
|
||||
import static org.thoughtcrime.securesms.registration.fragments.RegistrationViewDelegate.showConfirmNumberDialogIfTranslated;
|
||||
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.cancelSpinning;
|
||||
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.setSpinning;
|
||||
|
||||
public final class EnterPhoneNumberFragment extends LoggingFragment implements RegistrationNumberInputController.Callbacks {
|
||||
|
||||
private static final String TAG = Log.tag(EnterPhoneNumberFragment.class);
|
||||
@@ -136,7 +135,7 @@ public final class EnterPhoneNumberFragment extends LoggingFragment implements R
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||
if (item.getItemId() == R.id.phone_menu_use_proxy) {
|
||||
Navigation.findNavController(requireView()).navigate(EnterPhoneNumberFragmentDirections.actionEditProxy());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()), EnterPhoneNumberFragmentDirections.actionEditProxy());
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@@ -226,13 +225,13 @@ public final class EnterPhoneNumberFragment extends LoggingFragment implements R
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(processor -> {
|
||||
if (processor.hasResult()) {
|
||||
navController.navigate(EnterPhoneNumberFragmentDirections.actionEnterVerificationCode());
|
||||
SafeNavigation.safeNavigate(navController, EnterPhoneNumberFragmentDirections.actionEnterVerificationCode());
|
||||
} else if (processor.localRateLimit()) {
|
||||
Log.i(TAG, "Unable to request sms code due to local rate limit");
|
||||
navController.navigate(EnterPhoneNumberFragmentDirections.actionEnterVerificationCode());
|
||||
SafeNavigation.safeNavigate(navController, EnterPhoneNumberFragmentDirections.actionEnterVerificationCode());
|
||||
} else if (processor.captchaRequired()) {
|
||||
Log.i(TAG, "Unable to request sms code due to captcha required");
|
||||
navController.navigate(EnterPhoneNumberFragmentDirections.actionRequestCaptcha());
|
||||
SafeNavigation.safeNavigate(navController, EnterPhoneNumberFragmentDirections.actionRequestCaptcha());
|
||||
} else if (processor.rateLimit()) {
|
||||
Log.i(TAG, "Unable to request sms code due to rate limit");
|
||||
Toast.makeText(register.getContext(), R.string.RegistrationActivity_rate_limited_to_service, Toast.LENGTH_LONG).show();
|
||||
@@ -273,7 +272,7 @@ public final class EnterPhoneNumberFragment extends LoggingFragment implements R
|
||||
|
||||
@Override
|
||||
public void onPickCountry(@NonNull View view) {
|
||||
Navigation.findNavController(view).navigate(R.id.action_pickCountry);
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(view), R.id.action_pickCountry);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.registration.viewmodel.RegistrationViewModel;
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||
import org.thoughtcrime.securesms.util.concurrent.SimpleTask;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -37,22 +38,22 @@ public final class EnterSmsCodeFragment extends BaseEnterSmsCodeFragment<Registr
|
||||
Log.w(TAG, "Failed to refresh flags after " + (System.currentTimeMillis() - startTime) + " ms.", e);
|
||||
}
|
||||
return null;
|
||||
}, none -> displaySuccess(() -> Navigation.findNavController(requireView()).navigate(EnterSmsCodeFragmentDirections.actionSuccessfulRegistration())));
|
||||
}, none -> displaySuccess(() -> SafeNavigation.safeNavigate(Navigation.findNavController(requireView()), EnterSmsCodeFragmentDirections.actionSuccessfulRegistration())));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void navigateToRegistrationLock(long timeRemaining) {
|
||||
Navigation.findNavController(requireView())
|
||||
.navigate(EnterSmsCodeFragmentDirections.actionRequireKbsLockPin(timeRemaining));
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()),
|
||||
EnterSmsCodeFragmentDirections.actionRequireKbsLockPin(timeRemaining));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void navigateToCaptcha() {
|
||||
NavHostFragment.findNavController(this).navigate(EnterSmsCodeFragmentDirections.actionRequestCaptcha());
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(this), EnterSmsCodeFragmentDirections.actionRequestCaptcha());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void navigateToKbsAccountLocked() {
|
||||
Navigation.findNavController(requireView()).navigate(RegistrationLockFragmentDirections.actionAccountLocked());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()), RegistrationLockFragmentDirections.actionAccountLocked());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||
import org.thoughtcrime.securesms.util.Stopwatch;
|
||||
import org.thoughtcrime.securesms.util.SupportEmailUtil;
|
||||
import org.thoughtcrime.securesms.util.concurrent.SimpleTask;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -38,7 +39,7 @@ public final class RegistrationLockFragment extends BaseRegistrationLockFragment
|
||||
|
||||
@Override
|
||||
protected void navigateToAccountLocked() {
|
||||
Navigation.findNavController(requireView()).navigate(RegistrationLockFragmentDirections.actionAccountLocked());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()), RegistrationLockFragmentDirections.actionAccountLocked());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -68,7 +69,7 @@ public final class RegistrationLockFragment extends BaseRegistrationLockFragment
|
||||
return null;
|
||||
}, none -> {
|
||||
cancelSpinning(pinButton);
|
||||
Navigation.findNavController(requireView()).navigate(RegistrationLockFragmentDirections.actionSuccessfulRegistration());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()), RegistrationLockFragmentDirections.actionSuccessfulRegistration());
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@ import org.thoughtcrime.securesms.util.BackupUtil;
|
||||
import org.thoughtcrime.securesms.util.DateUtils;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
import org.thoughtcrime.securesms.util.concurrent.SimpleTask;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Locale;
|
||||
@@ -97,16 +98,16 @@ public final class RestoreBackupFragment extends LoggingFragment {
|
||||
|
||||
skipRestoreButton.setOnClickListener((v) -> {
|
||||
Log.i(TAG, "User skipped backup restore.");
|
||||
Navigation.findNavController(view)
|
||||
.navigate(RestoreBackupFragmentDirections.actionSkip());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(view),
|
||||
RestoreBackupFragmentDirections.actionSkip());
|
||||
});
|
||||
|
||||
viewModel = new ViewModelProvider(requireActivity()).get(RegistrationViewModel.class);
|
||||
|
||||
if (viewModel.isReregister()) {
|
||||
Log.i(TAG, "Skipping backup restore during re-register.");
|
||||
Navigation.findNavController(view)
|
||||
.navigate(RestoreBackupFragmentDirections.actionSkipNoReturn());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(view),
|
||||
RestoreBackupFragmentDirections.actionSkipNoReturn());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -117,8 +118,8 @@ public final class RestoreBackupFragment extends LoggingFragment {
|
||||
|
||||
if (SignalStore.settings().isBackupEnabled()) {
|
||||
Log.i(TAG, "Backups enabled, so a backup must have been previously restored.");
|
||||
Navigation.findNavController(view)
|
||||
.navigate(RestoreBackupFragmentDirections.actionSkipNoReturn());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(view),
|
||||
RestoreBackupFragmentDirections.actionSkipNoReturn());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -134,8 +135,8 @@ public final class RestoreBackupFragment extends LoggingFragment {
|
||||
initializeBackupDetection(view);
|
||||
} else {
|
||||
Log.i(TAG, "Skipping backup detection. We don't have the permission.");
|
||||
Navigation.findNavController(view)
|
||||
.navigate(RestoreBackupFragmentDirections.actionSkipNoReturn());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(view),
|
||||
RestoreBackupFragmentDirections.actionSkipNoReturn());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,8 +153,8 @@ public final class RestoreBackupFragment extends LoggingFragment {
|
||||
|
||||
enableBackups(requireContext());
|
||||
|
||||
Navigation.findNavController(requireView())
|
||||
.navigate(RestoreBackupFragmentDirections.actionBackupRestored());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()),
|
||||
RestoreBackupFragmentDirections.actionBackupRestored());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,8 +176,8 @@ public final class RestoreBackupFragment extends LoggingFragment {
|
||||
|
||||
if (backup == null) {
|
||||
Log.i(TAG, "Skipping backup detection. No backup found, or permission revoked since.");
|
||||
Navigation.findNavController(view)
|
||||
.navigate(RestoreBackupFragmentDirections.actionNoBackupFound());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(view),
|
||||
RestoreBackupFragmentDirections.actionNoBackupFound());
|
||||
} else {
|
||||
restoreBackupSize.setText(getString(R.string.RegistrationActivity_backup_size_s, Util.getPrettyFileSize(backup.getSize())));
|
||||
restoreBackupTime.setText(getString(R.string.RegistrationActivity_backup_timestamp_s, DateUtils.getExtendedRelativeTimeSpanString(requireContext(), Locale.getDefault(), backup.getTimestamp())));
|
||||
@@ -348,8 +349,8 @@ public final class RestoreBackupFragment extends LoggingFragment {
|
||||
if (BackupUtil.isUserSelectionRequired(requireContext()) && !BackupUtil.canUserAccessBackupDirectory(requireContext())) {
|
||||
displayConfirmationDialog(requireContext());
|
||||
} else {
|
||||
Navigation.findNavController(requireView())
|
||||
.navigate(RestoreBackupFragmentDirections.actionBackupRestored());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()),
|
||||
RestoreBackupFragmentDirections.actionBackupRestored());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -379,8 +380,8 @@ public final class RestoreBackupFragment extends LoggingFragment {
|
||||
BackupPassphrase.set(context, null);
|
||||
dialog.dismiss();
|
||||
|
||||
Navigation.findNavController(requireView())
|
||||
.navigate(RestoreBackupFragmentDirections.actionBackupRestored());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()),
|
||||
RestoreBackupFragmentDirections.actionBackupRestored());
|
||||
})
|
||||
.setCancelable(false)
|
||||
.show();
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
package org.thoughtcrime.securesms.registration.fragments;
|
||||
|
||||
import static org.thoughtcrime.securesms.registration.fragments.RegistrationViewDelegate.setDebugLogSubmitMultiTapView;
|
||||
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.cancelSpinning;
|
||||
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.setSpinning;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
@@ -43,8 +39,13 @@ import org.thoughtcrime.securesms.util.BackupUtil;
|
||||
import org.thoughtcrime.securesms.util.CommunicationActions;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
|
||||
import static org.thoughtcrime.securesms.registration.fragments.RegistrationViewDelegate.setDebugLogSubmitMultiTapView;
|
||||
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.cancelSpinning;
|
||||
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.setSpinning;
|
||||
|
||||
public final class WelcomeFragment extends LoggingFragment {
|
||||
|
||||
private static final String TAG = Log.tag(WelcomeFragment.class);
|
||||
@@ -101,8 +102,8 @@ public final class WelcomeFragment extends LoggingFragment {
|
||||
|
||||
Log.i(TAG, "Skipping restore because this is a reregistration.");
|
||||
viewModel.setWelcomeSkippedOnRestore();
|
||||
Navigation.findNavController(view)
|
||||
.navigate(WelcomeFragmentDirections.actionSkipRestore());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(view),
|
||||
WelcomeFragmentDirections.actionSkipRestore());
|
||||
} else {
|
||||
|
||||
setDebugLogSubmitMultiTapView(view.findViewById(R.id.image));
|
||||
@@ -133,7 +134,7 @@ public final class WelcomeFragment extends LoggingFragment {
|
||||
super.onResume();
|
||||
if (EventBus.getDefault().getStickyEvent(TransferStatus.class) != null) {
|
||||
Log.i(TAG, "Found existing transferStatus, redirect to transfer flow");
|
||||
NavHostFragment.findNavController(this).navigate(R.id.action_welcomeFragment_to_deviceTransferSetup);
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(this), R.id.action_welcomeFragment_to_deviceTransferSetup);
|
||||
} else {
|
||||
DeviceToDeviceTransferService.stop(requireContext());
|
||||
}
|
||||
@@ -179,11 +180,11 @@ public final class WelcomeFragment extends LoggingFragment {
|
||||
|
||||
if (backup == null) {
|
||||
Log.i(TAG, "Skipping backup. No backup found, or no permission to look.");
|
||||
Navigation.findNavController(view)
|
||||
.navigate(WelcomeFragmentDirections.actionSkipRestore());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(view),
|
||||
WelcomeFragmentDirections.actionSkipRestore());
|
||||
} else {
|
||||
Navigation.findNavController(view)
|
||||
.navigate(WelcomeFragmentDirections.actionRestore());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(view),
|
||||
WelcomeFragmentDirections.actionRestore());
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -193,8 +194,8 @@ public final class WelcomeFragment extends LoggingFragment {
|
||||
|
||||
initializeNumber();
|
||||
|
||||
Navigation.findNavController(view)
|
||||
.navigate(WelcomeFragmentDirections.actionTransferOrRestore());
|
||||
SafeNavigation.safeNavigate(Navigation.findNavController(view),
|
||||
WelcomeFragmentDirections.actionTransferOrRestore());
|
||||
}
|
||||
|
||||
@SuppressLint("MissingPermission")
|
||||
|
||||
Reference in New Issue
Block a user