From 9499a078a6672842652c244966e37275fe854d8c Mon Sep 17 00:00:00 2001 From: ameba23 Date: Wed, 17 Mar 2021 14:41:29 +0100 Subject: [PATCH] front end fragments for recovery --- briar-android/src/main/AndroidManifest.xml | 9 +++ .../android/activity/ActivityComponent.java | 8 +- .../conversation/ConversationActivity.java | 7 ++ .../CustodianHelpRecoverActivity.java | 27 +++++++ ...ustodianRecoveryModeExplainerFragment.java | 40 ++++++++++ .../OldDistributedBackupActivity.java | 39 ---------- .../OwnerRecoveryModeMainFragment.java | 73 +++++++++++++++++++ .../android/socialbackup/RecoverActivity.java | 32 ++++++-- .../socialbackup/ScanQrButtonListener.java | 8 ++ briar-android/src/main/res/values/strings.xml | 1 + 10 files changed, 194 insertions(+), 50 deletions(-) create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/CustodianHelpRecoverActivity.java create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/CustodianRecoveryModeExplainerFragment.java delete mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/OldDistributedBackupActivity.java create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/OwnerRecoveryModeMainFragment.java create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ScanQrButtonListener.java diff --git a/briar-android/src/main/AndroidManifest.xml b/briar-android/src/main/AndroidManifest.xml index a6b8b2e73..863a7b3b1 100644 --- a/briar-android/src/main/AndroidManifest.xml +++ b/briar-android/src/main/AndroidManifest.xml @@ -161,6 +161,15 @@ android:value="org.briarproject.briar.android.account.NewOrRecoverActivity" /> + + + + contacts) { - // do nothing - } - -} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/OwnerRecoveryModeMainFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/OwnerRecoveryModeMainFragment.java new file mode 100644 index 000000000..3191126ee --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/OwnerRecoveryModeMainFragment.java @@ -0,0 +1,73 @@ +package org.briarproject.briar.android.socialbackup; + +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.TextView; + +import org.briarproject.briar.R; +import org.briarproject.briar.android.fragment.BaseFragment; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +public class OwnerRecoveryModeMainFragment extends BaseFragment { + + protected ScanQrButtonListener listener; + + public static final String NUM_RECOVERED = "num_recovered"; + + public static final String TAG = + OwnerRecoveryModeMainFragment.class.getName(); + + public static OwnerRecoveryModeMainFragment newInstance(int numRecovered) { + Bundle args = new Bundle(); + args.putInt(NUM_RECOVERED, numRecovered); + OwnerRecoveryModeMainFragment fragment = + new OwnerRecoveryModeMainFragment(); + fragment.setArguments(args); + return fragment; + } + + private int numShards; + + @Override + public String getUniqueTag() { + return TAG; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requireActivity().setTitle(R.string.title_recovery_mode); + + Bundle args = requireArguments(); + numShards = args.getInt(NUM_RECOVERED); + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_recovery_owner_main, + container, false); + + TextView textViewCount = view.findViewById(R.id.textViewShardCount); + textViewCount.setText(String.format("%d", numShards)); + + Button button = view.findViewById(R.id.button); + button.setOnClickListener(e -> listener.scanQrButtonClicked()); + return view; + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + listener = (ScanQrButtonListener) context; + } + +} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/RecoverActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/RecoverActivity.java index ca5c4c8e0..3407ef795 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/RecoverActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/RecoverActivity.java @@ -6,18 +6,31 @@ import android.widget.Toast; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BaseActivity; -import org.briarproject.briar.android.activity.BriarActivity; import org.briarproject.briar.android.fragment.BaseFragment; public class RecoverActivity extends BaseActivity implements - BaseFragment.BaseFragmentListener, ExplainerDismissedListener { + BaseFragment.BaseFragmentListener, ExplainerDismissedListener, + ScanQrButtonListener { + + private int numRecovered; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recover); - OwnerRecoveryModeExplainerFragment fragment = new OwnerRecoveryModeExplainerFragment(); - showInitialFragment(fragment); + + numRecovered = 0; // TODO - retrieve this from somewhere + + // only show the explainer if we have no shards + if (numRecovered == 0) { + OwnerRecoveryModeExplainerFragment fragment = + new OwnerRecoveryModeExplainerFragment(); + showInitialFragment(fragment); + } else { + OwnerRecoveryModeMainFragment fragment = + OwnerRecoveryModeMainFragment.newInstance(numRecovered); + showInitialFragment(fragment); + } } @Override @@ -26,11 +39,18 @@ public class RecoverActivity extends BaseActivity implements } @Override - public void explainerDismissed () { + public void explainerDismissed() { + OwnerRecoveryModeMainFragment fragment = + OwnerRecoveryModeMainFragment.newInstance(numRecovered); + showNextFragment(fragment); + } + + @Override + public void scanQrButtonClicked() { + // TODO Toast.makeText(this, "coming soon...", Toast.LENGTH_SHORT).show(); - // TODO go to the next screen in the recover process finish(); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ScanQrButtonListener.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ScanQrButtonListener.java new file mode 100644 index 000000000..53f14d94e --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ScanQrButtonListener.java @@ -0,0 +1,8 @@ +package org.briarproject.briar.android.socialbackup; + +import androidx.annotation.UiThread; + +public interface ScanQrButtonListener { + @UiThread + void scanQrButtonClicked(); +} diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 21ee3e5c1..1c7f3f2b6 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -718,4 +718,5 @@ Create new account or recover existing account Recover Account + Help recover account