From c59504b38fd7500de1abe8ff36ccbf2a3148aed6 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Fri, 4 Feb 2022 11:40:08 +0100 Subject: [PATCH] Move recover button to author name fragment --- briar-android/src/main/AndroidManifest.xml | 14 +--- .../android/account/AuthorNameFragment.java | 5 ++ .../android/account/NewOrRecoverActivity.java | 60 ---------------- .../android/account/NewOrRecoverFragment.java | 70 ------------------- .../briar/android/account/SetupActivity.java | 11 +++ .../briar/android/account/SetupViewModel.java | 8 ++- .../android/activity/ActivityComponent.java | 6 -- .../briar/android/login/StartupActivity.java | 3 +- .../res/layout/activity_preview_welcome.xml | 3 +- .../res/layout/fragment_new_or_recover.xml | 26 +++++-- .../res/layout/fragment_setup_author_name.xml | 17 ++++- 11 files changed, 65 insertions(+), 158 deletions(-) delete mode 100644 briar-android/src/main/java/org/briarproject/briar/android/account/NewOrRecoverActivity.java delete mode 100644 briar-android/src/main/java/org/briarproject/briar/android/account/NewOrRecoverFragment.java diff --git a/briar-android/src/main/AndroidManifest.xml b/briar-android/src/main/AndroidManifest.xml index 6c1f14900..a07dfc984 100644 --- a/briar-android/src/main/AndroidManifest.xml +++ b/briar-android/src/main/AndroidManifest.xml @@ -138,15 +138,6 @@ - - - - + + android:parentActivityName="org.briarproject.briar.android.account.SetupActivity"> + android:value="org.briarproject.briar.android.account.SetupActivity" /> viewModel.recoverClicked()); + return v; } @@ -75,6 +79,7 @@ public class AuthorNameFragment extends SetupFragment { boolean enabled = authorNameLength > 0 && !error; authorNameInput.setOnEditorActionListener(enabled ? this : null); nextButton.setEnabled(enabled); + recoverButton.setEnabled(!enabled); } @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/NewOrRecoverActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/account/NewOrRecoverActivity.java deleted file mode 100644 index 7c8a9a5b0..000000000 --- a/briar-android/src/main/java/org/briarproject/briar/android/account/NewOrRecoverActivity.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.briarproject.briar.android.account; - -import android.content.Intent; -import android.os.Bundle; - -import org.briarproject.briar.R; -import org.briarproject.briar.android.activity.ActivityComponent; -import org.briarproject.briar.android.activity.BaseActivity; -import org.briarproject.briar.android.fragment.BaseFragment; -import org.briarproject.briar.android.socialbackup.recover.OwnerReturnShardActivity; - -import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK; -import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; -import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; -import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME; - -public class NewOrRecoverActivity extends BaseActivity implements - BaseFragment.BaseFragmentListener, SetupNewAccountChosenListener, - RecoverAccountListener { - - @Override - public void injectActivity(ActivityComponent component) { - component.inject(this); - } - - @Override - public void onCreate(Bundle state) { - super.onCreate(state); - // fade-in after splash screen instead of default animation - // TODO the fade in is not working - overridePendingTransition(R.anim.fade_in, R.anim.fade_out); - setContentView(R.layout.activity_fragment_container); - NewOrRecoverFragment fragment = NewOrRecoverFragment.newInstance(); - showInitialFragment(fragment); - } - - @Override - public void setupNewAccountChosen() { - finish(); - Intent i = new Intent(this, SetupActivity.class); - i.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP | - FLAG_ACTIVITY_CLEAR_TASK | FLAG_ACTIVITY_TASK_ON_HOME); - startActivity(i); - } - - @Override - public void recoverAccountChosen() { - finish(); - Intent i = new Intent(this, OwnerReturnShardActivity.class); - i.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP | - FLAG_ACTIVITY_CLEAR_TASK | FLAG_ACTIVITY_TASK_ON_HOME); - startActivity(i); - } - - @Override - @Deprecated - public void runOnDbThread(Runnable runnable) { - throw new RuntimeException("Don't use this deprecated method here."); - } -} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/NewOrRecoverFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/account/NewOrRecoverFragment.java deleted file mode 100644 index a6055afac..000000000 --- a/briar-android/src/main/java/org/briarproject/briar/android/account/NewOrRecoverFragment.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.briarproject.briar.android.account; - -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 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 NewOrRecoverFragment extends BaseFragment { - - public static final String TAG = NewOrRecoverFragment.class.getName(); - - protected SetupNewAccountChosenListener setupNewAccountListener; - protected RecoverAccountListener recoverAccountListener; - - public static NewOrRecoverFragment newInstance() { - Bundle bundle = new Bundle(); - NewOrRecoverFragment fragment = new NewOrRecoverFragment(); - fragment.setArguments(bundle); - return fragment; - } - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - requireActivity().setTitle(R.string.setup_title); - } - - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable - ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_new_or_recover, - container, false); - 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; - } - - @Override - public void onAttach(Context context) { - super.onAttach(context); - setupNewAccountListener = (SetupNewAccountChosenListener) context; - recoverAccountListener = (RecoverAccountListener) context; - } - - @Override - public String getUniqueTag() { - return TAG; - } - - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } -} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/SetupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/account/SetupActivity.java index 68d90ad95..793e57369 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/account/SetupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/account/SetupActivity.java @@ -10,6 +10,7 @@ import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BaseActivity; import org.briarproject.briar.android.fragment.BaseFragment.BaseFragmentListener; +import org.briarproject.briar.android.socialbackup.recover.OwnerReturnShardActivity; import javax.annotation.Nullable; import javax.inject.Inject; @@ -25,6 +26,7 @@ import static org.briarproject.briar.android.account.SetupViewModel.State.AUTHOR import static org.briarproject.briar.android.account.SetupViewModel.State.CREATED; import static org.briarproject.briar.android.account.SetupViewModel.State.DOZE; import static org.briarproject.briar.android.account.SetupViewModel.State.FAILED; +import static org.briarproject.briar.android.account.SetupViewModel.State.RECOVER; import static org.briarproject.briar.android.account.SetupViewModel.State.SET_PASSWORD; @MethodsNotNullByDefault @@ -60,6 +62,8 @@ public class SetupActivity extends BaseActivity showPasswordFragment(); } else if (state == DOZE) { showDozeFragment(); + } else if (state == RECOVER) { + recover(); } else if (state == CREATED || state == FAILED) { // TODO: Show an error if failed showApp(); @@ -84,6 +88,13 @@ public class SetupActivity extends BaseActivity overridePendingTransition(R.anim.screen_new_in, R.anim.screen_old_out); } + void recover () { +// finish(); + Intent i = new Intent(this, OwnerReturnShardActivity.class); + i.addFlags(FLAG_ACTIVITY_NEW_TASK); + startActivity(i); + } + @Override @Deprecated public void runOnDbThread(Runnable runnable) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/SetupViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/account/SetupViewModel.java index 845075e8d..1ccdde55d 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/account/SetupViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/account/SetupViewModel.java @@ -25,13 +25,14 @@ import static org.briarproject.briar.android.account.SetupViewModel.State.AUTHOR import static org.briarproject.briar.android.account.SetupViewModel.State.CREATED; import static org.briarproject.briar.android.account.SetupViewModel.State.DOZE; import static org.briarproject.briar.android.account.SetupViewModel.State.FAILED; +import static org.briarproject.briar.android.account.SetupViewModel.State.RECOVER; import static org.briarproject.briar.android.account.SetupViewModel.State.SET_PASSWORD; @MethodsNotNullByDefault @ParametersNotNullByDefault public class SetupViewModel extends AndroidViewModel { - enum State {AUTHOR_NAME, SET_PASSWORD, DOZE, CREATED, FAILED} + enum State {AUTHOR_NAME, SET_PASSWORD, DOZE, CREATED, FAILED, RECOVER} private static final Logger LOG = getLogger(SetupActivity.class.getName()); @@ -117,4 +118,9 @@ class SetupViewModel extends AndroidViewModel { } }); } + + public void recoverClicked() { + LOG.info("RECOVER CLICKED ***"); + state.postEvent(RECOVER); + } } 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 7c563867e..7dfa743ff 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 @@ -7,8 +7,6 @@ import org.briarproject.briar.android.AndroidComponent; import org.briarproject.briar.android.StartupFailureActivity; import org.briarproject.briar.android.account.AuthorNameFragment; import org.briarproject.briar.android.account.DozeFragment; -import org.briarproject.briar.android.account.NewOrRecoverActivity; -import org.briarproject.briar.android.account.NewOrRecoverFragment; import org.briarproject.briar.android.account.SetPasswordFragment; import org.briarproject.briar.android.account.SetupActivity; import org.briarproject.briar.android.account.UnlockActivity; @@ -205,8 +203,6 @@ public interface ActivityComponent { void inject(CrashReportActivity crashReportActivity); - void inject(NewOrRecoverActivity newOrRecoverActivity); - void inject(CustodianReturnShardActivity custodianReturnShardActivity); void inject(OwnerReturnShardActivity ownerReturnShardActivity); @@ -287,8 +283,6 @@ public interface ActivityComponent { void inject(ExistingBackupFragment existingBackupFragment); - void inject(NewOrRecoverFragment newOrRecoverFragment); - void inject(CustodianRecoveryModeExplainerFragment custodianRecoveryModeExplainerFragment); void inject(CustodianReturnShardFragment custodianReturnShardFragment); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/StartupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/StartupActivity.java index 0303d7447..faf469c28 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/StartupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/StartupActivity.java @@ -7,7 +7,6 @@ import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; import org.briarproject.briar.android.BriarService; -import org.briarproject.briar.android.account.NewOrRecoverActivity; import org.briarproject.briar.android.account.SetupActivity; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BaseActivity; @@ -108,7 +107,7 @@ public class StartupActivity extends BaseActivity implements private void onAccountDeleted() { setResult(RESULT_CANCELED); finish(); - Intent i = new Intent(this, NewOrRecoverActivity.class); + Intent i = new Intent(this, SetupActivity.class); i.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_CLEAR_TASK | FLAG_ACTIVITY_TASK_ON_HOME); startActivity(i); diff --git a/briar-android/src/main/res/layout/activity_preview_welcome.xml b/briar-android/src/main/res/layout/activity_preview_welcome.xml index 293518b6b..fa59fb005 100644 --- a/briar-android/src/main/res/layout/activity_preview_welcome.xml +++ b/briar-android/src/main/res/layout/activity_preview_welcome.xml @@ -16,6 +16,7 @@ app:title="@string/setup_title" app:titleTextColor="@android:color/white" /> - + + \ No newline at end of file diff --git a/briar-android/src/main/res/layout/fragment_new_or_recover.xml b/briar-android/src/main/res/layout/fragment_new_or_recover.xml index ad5ec624b..5a2bf34f1 100644 --- a/briar-android/src/main/res/layout/fragment_new_or_recover.xml +++ b/briar-android/src/main/res/layout/fragment_new_or_recover.xml @@ -13,22 +13,38 @@