From 0fe699c9b534c71b2d47bca98e261f733d60ab9d Mon Sep 17 00:00:00 2001 From: ameba23 Date: Fri, 21 May 2021 11:22:44 +0200 Subject: [PATCH] RemoteWipeSetupSuccess fragment --- .../android/activity/ActivityComponent.java | 3 ++ .../remotewipe/RemoteWipeSetupActivity.java | 6 +-- .../remotewipe/RemoteWipeSetupState.java | 3 +- .../remotewipe/RemoteWipeSetupViewModel.java | 6 ++- .../remotewipe/RemoteWipeSuccessFragment.java | 54 +++++++++++++++++++ .../fragment_remote_wipe_setup_success.xml | 50 +++++++++++++++++ briar-android/src/main/res/values/strings.xml | 3 ++ 7 files changed, 120 insertions(+), 5 deletions(-) create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSuccessFragment.java create mode 100644 briar-android/src/main/res/layout/fragment_remote_wipe_setup_success.xml diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java index 67bc375f3..70df92463 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java @@ -67,6 +67,7 @@ import org.briarproject.briar.android.privategroup.reveal.RevealContactsActivity import org.briarproject.briar.android.privategroup.reveal.RevealContactsFragment; import org.briarproject.briar.android.remotewipe.RemoteWipeDisplayFragment; import org.briarproject.briar.android.remotewipe.RemoteWipeSetupActivity; +import org.briarproject.briar.android.remotewipe.RemoteWipeSuccessFragment; import org.briarproject.briar.android.remotewipe.WiperSelectorFragment; import org.briarproject.briar.android.reporting.CrashFragment; import org.briarproject.briar.android.reporting.CrashReportActivity; @@ -315,4 +316,6 @@ public interface ActivityComponent { void inject(WiperSelectorFragment wiperSelectorFragment); void inject(RemoteWipeDisplayFragment remoteWipeDisplayFragment); + + void inject(RemoteWipeSuccessFragment remoteWipeSuccessFragment); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSetupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSetupActivity.java index f91009073..e80ed9b42 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSetupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSetupActivity.java @@ -60,13 +60,13 @@ public class RemoteWipeSetupActivity extends BriarActivity implements private void onStateChanged(RemoteWipeSetupState state) { if (state.equals(RemoteWipeSetupState.SUCCESS)) { - Toast.makeText(this, - "Success", - Toast.LENGTH_SHORT).show(); + showNextFragment(new RemoteWipeSuccessFragment()); } else if (state.equals(RemoteWipeSetupState.FAILED)) { Toast.makeText(this, "Failed", Toast.LENGTH_SHORT).show(); + } else if (state.equals(RemoteWipeSetupState.FINISHED)) { + finish(); } } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSetupState.java b/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSetupState.java index 274f80a29..3864a9c70 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSetupState.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSetupState.java @@ -2,5 +2,6 @@ package org.briarproject.briar.android.remotewipe; public enum RemoteWipeSetupState { FAILED, - SUCCESS + SUCCESS, + FINISHED } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSetupViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSetupViewModel.java index d9bbc0a63..cf98291b3 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSetupViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSetupViewModel.java @@ -17,6 +17,7 @@ import java.util.List; import javax.inject.Inject; import androidx.annotation.NonNull; +import androidx.annotation.UiThread; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.MutableLiveData; @@ -59,7 +60,10 @@ public class RemoteWipeSetupViewModel extends AndroidViewModel { return wiperNames; } - + @UiThread + public void onSuccessDismissed() { + state.postValue(RemoteWipeSetupState.FINISHED); + } public void setupRemoteWipe(Collection wipers) throws DbException, FormatException { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSuccessFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSuccessFragment.java new file mode 100644 index 000000000..e6a1db096 --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeSuccessFragment.java @@ -0,0 +1,54 @@ +package org.briarproject.briar.android.remotewipe; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; + +import org.briarproject.briar.R; +import org.briarproject.briar.android.activity.ActivityComponent; +import org.briarproject.briar.android.fragment.BaseFragment; +import org.briarproject.briar.android.socialbackup.recover.CustodianReturnShardViewModel; + +import javax.inject.Inject; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.lifecycle.ViewModelProvider; + +public class RemoteWipeSuccessFragment extends BaseFragment { + + public static final String TAG = RemoteWipeSuccessFragment.class.getName(); + + @Inject + ViewModelProvider.Factory viewModelFactory; + + private RemoteWipeSetupViewModel viewModel; + + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + viewModel = new ViewModelProvider(requireActivity(), viewModelFactory) + .get(RemoteWipeSetupViewModel.class); + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_remote_wipe_setup_success, + container, false); + + Button button = view.findViewById(R.id.button); + button.setOnClickListener(e -> viewModel.onSuccessDismissed()); + + return view; + } + + @Override + public String getUniqueTag() { + return TAG; + } +} diff --git a/briar-android/src/main/res/layout/fragment_remote_wipe_setup_success.xml b/briar-android/src/main/res/layout/fragment_remote_wipe_setup_success.xml new file mode 100644 index 000000000..f85330432 --- /dev/null +++ b/briar-android/src/main/res/layout/fragment_remote_wipe_setup_success.xml @@ -0,0 +1,50 @@ + + + +