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 d8a88e482..67bc375f3 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 @@ -65,6 +65,7 @@ import org.briarproject.briar.android.privategroup.memberlist.GroupMemberModule; import org.briarproject.briar.android.privategroup.reveal.GroupRevealModule; 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.WiperSelectorFragment; import org.briarproject.briar.android.reporting.CrashFragment; @@ -312,4 +313,6 @@ public interface ActivityComponent { void inject(CustodianReturnShardErrorFragment custodianReturnShardErrorFragment); void inject(WiperSelectorFragment wiperSelectorFragment); + + void inject(RemoteWipeDisplayFragment remoteWipeDisplayFragment); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeDisplayFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeDisplayFragment.java new file mode 100644 index 000000000..f4ece51de --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/remotewipe/RemoteWipeDisplayFragment.java @@ -0,0 +1,60 @@ +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.TextView; + +import org.briarproject.briar.R; +import org.briarproject.briar.android.activity.ActivityComponent; +import org.briarproject.briar.android.fragment.BaseFragment; + +import java.util.List; + +import javax.inject.Inject; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.lifecycle.ViewModelProvider; + +public class RemoteWipeDisplayFragment extends + BaseFragment { + + public static final String TAG = RemoteWipeDisplayFragment.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_display_remote_wipe, + container, false); + List wiperNames = viewModel.getWiperNames(); + String custodianNamesString = ""; + for (String custodianName : wiperNames) { + custodianNamesString += custodianName + ", "; + } + TextView textViewThreshold = view.findViewById(R.id.textViewWipers); + textViewThreshold.setText(custodianNamesString); +// Button button = view.findViewById(R.id.button); +// button.setOnClickListener(e -> viewModel.onErrorTryAgain()); + return view; + } + @Override + public String getUniqueTag() { + return TAG; + } +} 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 701a337a5..d9bbc0a63 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 @@ -7,8 +7,10 @@ import org.briarproject.bramble.api.FormatException; import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.db.DatabaseComponent; import org.briarproject.bramble.api.db.DbException; +import org.briarproject.bramble.api.identity.Author; import org.briarproject.briar.api.remotewipe.RemoteWipeManager; +import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -42,6 +44,23 @@ public class RemoteWipeSetupViewModel extends AndroidViewModel { } } + public List getWiperNames() { + ArrayList wiperNames = new ArrayList(); + try { + List wipers = db.transactionWithResult(true, + txn -> remoteWipeManager.getWipers(txn)); + for (Author wiper : wipers) { + wiperNames.add(wiper.getName()); + } + return wiperNames; + } catch (DbException ignored) { + // Will return an empty list + } + return wiperNames; + } + + + public void setupRemoteWipe(Collection wipers) throws DbException, FormatException { db.transaction(false, txn -> { diff --git a/briar-android/src/main/res/layout/fragment_display_remote_wipe.xml b/briar-android/src/main/res/layout/fragment_display_remote_wipe.xml new file mode 100644 index 000000000..5ad3e0bd7 --- /dev/null +++ b/briar-android/src/main/res/layout/fragment_display_remote_wipe.xml @@ -0,0 +1,35 @@ + + + + + + +