From 363da9670924c6900e4760252c92b637244f3378 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Tue, 16 Mar 2021 11:51:03 +0100 Subject: [PATCH] recover activity --- briar-android/src/main/AndroidManifest.xml | 9 ++-- .../android/account/NewOrRecoverActivity.java | 16 ++++-- .../android/account/NewOrRecoverFragment.java | 17 ++++-- .../account/RecoverAccountListener.java | 8 +++ .../android/activity/ActivityComponent.java | 8 ++- .../OwnerRecoveryModeExplainerFragment.java | 52 +++++++++++++++++++ .../android/socialbackup/RecoverActivity.java | 25 +++++++++ .../src/main/res/layout/activity_recover.xml | 8 +++ briar-android/src/main/res/values/strings.xml | 1 + 9 files changed, 129 insertions(+), 15 deletions(-) create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/account/RecoverAccountListener.java create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/OwnerRecoveryModeExplainerFragment.java create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/RecoverActivity.java create mode 100644 briar-android/src/main/res/layout/activity_recover.xml diff --git a/briar-android/src/main/AndroidManifest.xml b/briar-android/src/main/AndroidManifest.xml index e4e606166..a6b8b2e73 100644 --- a/briar-android/src/main/AndroidManifest.xml +++ b/briar-android/src/main/AndroidManifest.xml @@ -153,15 +153,14 @@ + android:name="org.briarproject.briar.android.socialbackup.RecoverActivity" + android:label="@string/activity_name_recovery" + android:parentActivityName="org.briarproject.briar.android.account.NewOrRecoverActivity"> + android:value="org.briarproject.briar.android.account.NewOrRecoverActivity" /> - { - listener.setupNewAccountChosen(); + Button newAccountButton = view.findViewById(R.id.buttonSetupNewAccount); + newAccountButton.setOnClickListener(e -> { + setupNewAccountListener.setupNewAccountChosen(); + }); + + Button recoverAccountButton = view.findViewById(R.id.buttonRestoreAccount); + recoverAccountButton.setOnClickListener(e -> { + recoverAccountListener.recoverAccountChosen(); }); return view; } @@ -48,7 +54,8 @@ public class NewOrRecoverFragment extends BaseFragment { @Override public void onAttach(Context context) { super.onAttach(context); - listener = (SetupNewAccountChosenListener) context; + setupNewAccountListener = (SetupNewAccountChosenListener) context; + recoverAccountListener = (RecoverAccountListener) context; } @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/RecoverAccountListener.java b/briar-android/src/main/java/org/briarproject/briar/android/account/RecoverAccountListener.java new file mode 100644 index 000000000..8f267cc70 --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/account/RecoverAccountListener.java @@ -0,0 +1,8 @@ +package org.briarproject.briar.android.account; + +import androidx.annotation.UiThread; + +public interface RecoverAccountListener { + @UiThread + void recoverAccountChosen(); +} 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 d90007f79..a3def6f1e 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 @@ -85,6 +85,8 @@ import org.briarproject.briar.android.socialbackup.CustodianSelectorFragment; import org.briarproject.briar.android.socialbackup.DistributedBackupActivity; import org.briarproject.briar.android.socialbackup.ExistingBackupFragment; import org.briarproject.briar.android.socialbackup.OldDistributedBackupActivity; +import org.briarproject.briar.android.socialbackup.OwnerRecoveryModeExplainerFragment; +import org.briarproject.briar.android.socialbackup.RecoverActivity; import org.briarproject.briar.android.socialbackup.ShardsSentFragment; import org.briarproject.briar.android.socialbackup.ThresholdSelectorFragment; import org.briarproject.briar.android.socialbackup.creation.CreateBackupController; @@ -257,8 +259,8 @@ public interface ActivityComponent { void inject(ThresholdSelectorFragment thresholdSelectorFragment); void inject(DistributedBackupActivity distributedBackupActivity); -// void inject(CreateBackupController createBackupController); -// void inject(CustodianDisplayFragment custodianDisplayFragment); + + void inject(RecoverActivity recoverActivity); void inject(DatabaseComponent databaseComponent); @@ -266,6 +268,8 @@ public interface ActivityComponent { void inject(ShardsSentFragment shardsSentFragment); + void inject(OwnerRecoveryModeExplainerFragment ownerRecoveryModeExplainerFragment); + void inject(ExistingBackupFragment existingBackupFragment); void inject(NewOrRecoverFragment newOrRecoverFragment); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/OwnerRecoveryModeExplainerFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/OwnerRecoveryModeExplainerFragment.java new file mode 100644 index 000000000..d21e3b9bc --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/OwnerRecoveryModeExplainerFragment.java @@ -0,0 +1,52 @@ +package org.briarproject.briar.android.socialbackup; + +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 androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +public class OwnerRecoveryModeExplainerFragment extends BaseFragment { + + public static final String TAG = + OwnerRecoveryModeExplainerFragment.class.getName(); + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requireActivity().setTitle(R.string.title_recovery_mode); + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_recovery_owner_explainer, + container, false); +// Button button = view.findViewById(R.id.button); +// button.setOnClickListener(e -> { +// listener.shardsSentDismissed(); +// }); + + return view; + } + + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + } + + @Override + public String getUniqueTag() { + return TAG; + } +} 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 new file mode 100644 index 000000000..a4a4c3ff2 --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/RecoverActivity.java @@ -0,0 +1,25 @@ +package org.briarproject.briar.android.socialbackup; + +import android.os.Bundle; + +import org.briarproject.briar.R; +import org.briarproject.briar.android.activity.ActivityComponent; +import org.briarproject.briar.android.activity.BriarActivity; +import org.briarproject.briar.android.fragment.BaseFragment; + +public class RecoverActivity extends BriarActivity implements + BaseFragment.BaseFragmentListener { + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_recover); + + OwnerRecoveryModeExplainerFragment fragment = new OwnerRecoveryModeExplainerFragment(); + showInitialFragment(fragment); + } + @Override + public void injectActivity(ActivityComponent component) { + component.inject(this); + } +} diff --git a/briar-android/src/main/res/layout/activity_recover.xml b/briar-android/src/main/res/layout/activity_recover.xml new file mode 100644 index 000000000..306502b19 --- /dev/null +++ b/briar-android/src/main/res/layout/activity_recover.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 9caff706b..21ee3e5c1 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -717,4 +717,5 @@ You have sent a social backup shard. Create new account or recover existing account + Recover Account