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 @@
-
+ app:layout_constraintTop_toTopOf="parent"
+ android:drawableStart="@drawable/ic_contacts" />
+
+ app:layout_constraintTop_toBottomOf="@+id/textViewExplain"
+ tools:enabled="true"
+ android:drawableStart="@drawable/ic_repeat" />
diff --git a/briar-android/src/main/res/layout/fragment_setup_author_name.xml b/briar-android/src/main/res/layout/fragment_setup_author_name.xml
index 2b644cd45..61f6f026a 100644
--- a/briar-android/src/main/res/layout/fragment_setup_author_name.xml
+++ b/briar-android/src/main/res/layout/fragment_setup_author_name.xml
@@ -47,14 +47,27 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_activity_horizontal"
android:enabled="false"
- android:text="@string/setup_next"
- app:layout_constraintBottom_toBottomOf="parent"
+ android:text="@string/setup_new_account"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/nickname_entry_wrapper"
app:layout_constraintVertical_bias="1.0"
tools:enabled="true" />
+
+