mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 00:59:49 +01:00
Fix illegal argument navigation exceptions.
This commit is contained in:
committed by
Greyson Parrelli
parent
ba54051f8c
commit
a4f44a96fd
@@ -10,6 +10,7 @@ import androidx.navigation.fragment.NavHostFragment;
|
||||
|
||||
import org.thoughtcrime.securesms.LoggingFragment;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
/**
|
||||
* Shown after the new device successfully completes receiving a backup from the old device.
|
||||
@@ -22,8 +23,8 @@ public final class NewDeviceTransferCompleteFragment extends LoggingFragment {
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
view.findViewById(R.id.new_device_transfer_complete_fragment_continue_registration)
|
||||
.setOnClickListener(v -> NavHostFragment.findNavController(this)
|
||||
.navigate(R.id.action_newDeviceTransferComplete_to_enterPhoneNumberFragment));
|
||||
.setOnClickListener(v -> SafeNavigation.safeNavigate(NavHostFragment.findNavController(this),
|
||||
R.id.action_newDeviceTransferComplete_to_enterPhoneNumberFragment));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.greenrobot.eventbus.ThreadMode;
|
||||
import org.signal.devicetransfer.DeviceToDeviceTransferService;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.devicetransfer.DeviceTransferFragment;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
/**
|
||||
* Shows transfer progress on the new device. Most logic is in {@link DeviceTransferFragment}
|
||||
@@ -36,19 +37,18 @@ public final class NewDeviceTransferFragment extends DeviceTransferFragment {
|
||||
|
||||
@Override
|
||||
protected void navigateToRestartTransfer() {
|
||||
NavHostFragment.findNavController(this).navigate(R.id.action_newDeviceTransfer_to_newDeviceTransferInstructions);
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(this), R.id.action_newDeviceTransfer_to_newDeviceTransferInstructions);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void navigateAwayFromTransfer() {
|
||||
EventBus.getDefault().unregister(serverTaskListener);
|
||||
NavHostFragment.findNavController(this)
|
||||
.navigate(R.id.action_restart_to_welcomeFragment);
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(this), R.id.action_restart_to_welcomeFragment);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void navigateToTransferComplete() {
|
||||
NavHostFragment.findNavController(this).navigate(R.id.action_newDeviceTransfer_to_newDeviceTransferComplete);
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(this), R.id.action_newDeviceTransfer_to_newDeviceTransferComplete);
|
||||
}
|
||||
|
||||
private class ServerTaskListener {
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.greenrobot.eventbus.EventBus;
|
||||
import org.signal.devicetransfer.TransferStatus;
|
||||
import org.thoughtcrime.securesms.LoggingFragment;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
/**
|
||||
* Shows instructions for new device to being transfer.
|
||||
@@ -23,7 +24,7 @@ public final class NewDeviceTransferInstructionsFragment extends LoggingFragment
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
view.findViewById(R.id.new_device_transfer_instructions_fragment_continue)
|
||||
.setOnClickListener(v -> Navigation.findNavController(v).navigate(R.id.action_device_transfer_setup));
|
||||
.setOnClickListener(v -> SafeNavigation.safeNavigate(Navigation.findNavController(v), R.id.action_device_transfer_setup));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -10,10 +10,11 @@ import org.signal.devicetransfer.DeviceToDeviceTransferService;
|
||||
import org.signal.devicetransfer.DeviceToDeviceTransferService.TransferNotificationData;
|
||||
import org.thoughtcrime.securesms.MainActivity;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.devicetransfer.SetupStep;
|
||||
import org.thoughtcrime.securesms.devicetransfer.DeviceTransferSetupFragment;
|
||||
import org.thoughtcrime.securesms.devicetransfer.SetupStep;
|
||||
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
||||
import org.thoughtcrime.securesms.notifications.NotificationIds;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
/**
|
||||
* Most responsibility is in {@link DeviceTransferSetupFragment} and delegates here
|
||||
@@ -25,13 +26,12 @@ public final class NewDeviceTransferSetupFragment extends DeviceTransferSetupFra
|
||||
|
||||
@Override
|
||||
protected void navigateAwayFromTransfer() {
|
||||
NavHostFragment.findNavController(this)
|
||||
.navigate(R.id.action_deviceTransferSetup_to_transferOrRestore);
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(this), R.id.action_deviceTransferSetup_to_transferOrRestore);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void navigateToTransferConnected() {
|
||||
NavHostFragment.findNavController(this).navigate(R.id.action_new_device_transfer);
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(this), R.id.action_new_device_transfer);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -77,8 +77,7 @@ public final class NewDeviceTransferSetupFragment extends DeviceTransferSetupFra
|
||||
|
||||
@Override
|
||||
protected void navigateWhenWifiDirectUnavailable() {
|
||||
NavHostFragment.findNavController(this)
|
||||
.navigate(R.id.action_deviceTransferSetup_to_transferOrRestore);
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(this), R.id.action_deviceTransferSetup_to_transferOrRestore);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -12,6 +12,7 @@ import androidx.navigation.Navigation;
|
||||
import org.thoughtcrime.securesms.LoggingFragment;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.util.SpanUtil;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
/**
|
||||
* Simple jumping off menu to starts a device-to-device transfer or restore a backup.
|
||||
@@ -25,11 +26,11 @@ public final class TransferOrRestoreFragment extends LoggingFragment {
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
view.findViewById(R.id.transfer_or_restore_fragment_transfer)
|
||||
.setOnClickListener(v -> Navigation.findNavController(v).navigate(R.id.action_new_device_transfer_instructions));
|
||||
.setOnClickListener(v -> SafeNavigation.safeNavigate(Navigation.findNavController(v), R.id.action_new_device_transfer_instructions));
|
||||
|
||||
View restoreBackup = view.findViewById(R.id.transfer_or_restore_fragment_restore);
|
||||
if (Build.VERSION.SDK_INT >= 21) {
|
||||
restoreBackup.setOnClickListener(v -> Navigation.findNavController(v).navigate(R.id.action_choose_backup));
|
||||
restoreBackup.setOnClickListener(v -> SafeNavigation.safeNavigate(Navigation.findNavController(v), R.id.action_choose_backup));
|
||||
} else {
|
||||
restoreBackup.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@@ -14,9 +14,9 @@ import org.signal.devicetransfer.DeviceToDeviceTransferService;
|
||||
import org.signal.devicetransfer.TransferStatus;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.devicetransfer.DeviceTransferFragment;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
import java.text.NumberFormat;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Shows transfer progress on the old device. Most logic is in {@link DeviceTransferFragment}
|
||||
@@ -40,7 +40,7 @@ public final class OldDeviceTransferFragment extends DeviceTransferFragment {
|
||||
|
||||
@Override
|
||||
protected void navigateToRestartTransfer() {
|
||||
NavHostFragment.findNavController(this).navigate(R.id.action_directly_to_oldDeviceTransferInstructions);
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(this), R.id.action_directly_to_oldDeviceTransferInstructions);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -51,7 +51,7 @@ public final class OldDeviceTransferFragment extends DeviceTransferFragment {
|
||||
|
||||
@Override
|
||||
protected void navigateToTransferComplete() {
|
||||
NavHostFragment.findNavController(this).navigate(R.id.action_oldDeviceTransfer_to_oldDeviceTransferComplete);
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(this), R.id.action_oldDeviceTransfer_to_oldDeviceTransferComplete);
|
||||
}
|
||||
|
||||
private class ClientTaskListener {
|
||||
@@ -70,7 +70,7 @@ public final class OldDeviceTransferFragment extends DeviceTransferFragment {
|
||||
ignoreTransferStatusEvents();
|
||||
EventBus.getDefault().removeStickyEvent(TransferStatus.class);
|
||||
DeviceToDeviceTransferService.stop(requireContext());
|
||||
NavHostFragment.findNavController(OldDeviceTransferFragment.this).navigate(R.id.action_oldDeviceTransfer_to_oldDeviceTransferComplete);
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(OldDeviceTransferFragment.this), R.id.action_oldDeviceTransfer_to_oldDeviceTransferComplete);
|
||||
} else {
|
||||
if (event.getEstimatedMessageCount() == 0) {
|
||||
status.setText(getString(R.string.DeviceTransfer__d_messages_so_far, event.getMessageCount()));
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.signal.devicetransfer.DeviceToDeviceTransferService;
|
||||
import org.signal.devicetransfer.TransferStatus;
|
||||
import org.thoughtcrime.securesms.LoggingFragment;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
/**
|
||||
* Provides instructions for the old device on how to start a device-to-device transfer.
|
||||
@@ -34,16 +35,15 @@ public final class OldDeviceTransferInstructionsFragment extends LoggingFragment
|
||||
});
|
||||
|
||||
view.findViewById(R.id.old_device_transfer_instructions_fragment_continue)
|
||||
.setOnClickListener(v -> Navigation.findNavController(v)
|
||||
.navigate(R.id.action_oldDeviceTransferInstructions_to_oldDeviceTransferSetup));
|
||||
.setOnClickListener(v -> SafeNavigation.safeNavigate(Navigation.findNavController(v), R.id.action_oldDeviceTransferInstructions_to_oldDeviceTransferSetup));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (EventBus.getDefault().getStickyEvent(TransferStatus.class) != null) {
|
||||
NavHostFragment.findNavController(this)
|
||||
.navigate(R.id.action_oldDeviceTransferInstructions_to_oldDeviceTransferSetup);
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(this),
|
||||
R.id.action_oldDeviceTransferInstructions_to_oldDeviceTransferSetup);
|
||||
} else {
|
||||
DeviceToDeviceTransferService.stop(requireContext());
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.thoughtcrime.securesms.devicetransfer.SetupStep;
|
||||
import org.thoughtcrime.securesms.jobs.LocalBackupJob;
|
||||
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
||||
import org.thoughtcrime.securesms.notifications.NotificationIds;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
|
||||
/**
|
||||
* Most responsibility is in {@link DeviceTransferSetupFragment} and delegates here
|
||||
@@ -41,7 +42,7 @@ public final class OldDeviceTransferSetupFragment extends DeviceTransferSetupFra
|
||||
|
||||
@Override
|
||||
protected void navigateToTransferConnected() {
|
||||
NavHostFragment.findNavController(this).navigate(R.id.action_oldDeviceTransferSetup_to_oldDeviceTransfer);
|
||||
SafeNavigation.safeNavigate(NavHostFragment.findNavController(this), R.id.action_oldDeviceTransferSetup_to_oldDeviceTransfer);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user