Signal-Android/app/src/main/java/org/thoughtcrime/securesms/payments/deactivate/DeactivateWalletFragment.java

75 wiersze
3.7 KiB
Java

package org.thoughtcrime.securesms.payments.deactivate;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.payments.MoneyView;
import org.thoughtcrime.securesms.util.SpanUtil;
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
import org.thoughtcrime.securesms.util.views.LearnMoreTextView;
public class DeactivateWalletFragment extends Fragment {
@Override
public @Nullable View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.deactivate_wallet_fragment, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
Toolbar toolbar = view.findViewById(R.id.deactivate_wallet_fragment_toolbar);
MoneyView balance = view.findViewById(R.id.deactivate_wallet_fragment_balance);
View transferRemainingBalance = view.findViewById(R.id.deactivate_wallet_fragment_transfer);
View deactivateWithoutTransfer = view.findViewById(R.id.deactivate_wallet_fragment_deactivate);
LearnMoreTextView notice = view.findViewById(R.id.deactivate_wallet_fragment_notice);
notice.setLearnMoreVisible(true);
notice.setLink(getString(R.string.DeactivateWalletFragment__learn_more__we_recommend_transferring_your_funds));
DeactivateWalletViewModel viewModel = new ViewModelProvider(this).get(DeactivateWalletViewModel.class);
viewModel.getBalance().observe(getViewLifecycleOwner(), balance::setMoney);
viewModel.getDeactivationResults().observe(getViewLifecycleOwner(), r -> {
if (r == DeactivateWalletViewModel.Result.SUCCESS) {
Navigation.findNavController(requireView()).popBackStack();
} else {
Toast.makeText(requireContext(), R.string.DeactivateWalletFragment__error_deactivating_wallet, Toast.LENGTH_SHORT).show();
}
});
transferRemainingBalance.setOnClickListener(v -> SafeNavigation.safeNavigate(Navigation.findNavController(requireView()), R.id.action_deactivateWallet_to_paymentsTransfer));
toolbar.setNavigationOnClickListener(v -> Navigation.findNavController(requireView()).popBackStack());
//noinspection CodeBlock2Expr
deactivateWithoutTransfer.setOnClickListener(v -> {
new MaterialAlertDialogBuilder(requireContext())
.setTitle(R.string.DeactivateWalletFragment__deactivate_without_transferring_question)
.setMessage(R.string.DeactivateWalletFragment__your_balance_will_remain)
.setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss())
.setPositiveButton(SpanUtil.color(ContextCompat.getColor(requireContext(), R.color.signal_alert_primary),
getString(R.string.DeactivateWalletFragment__deactivate)),
(dialog, which) -> {
viewModel.deactivateWallet();
dialog.dismiss();
})
.show();
});
}
}