recover activity

This commit is contained in:
ameba23
2021-03-16 11:51:03 +01:00
parent e9c2cb2cc5
commit 363da96709
9 changed files with 129 additions and 15 deletions

View File

@@ -153,15 +153,14 @@
</activity> </activity>
<activity <activity
android:name="org.briarproject.briar.android.socialbackup.OldDistributedBackupActivity" android:name="org.briarproject.briar.android.socialbackup.RecoverActivity"
android:label="@string/activity_name_old_distributed_backup" android:label="@string/activity_name_recovery"
android:parentActivityName="org.briarproject.briar.android.settings.SettingsActivity"> android:parentActivityName="org.briarproject.briar.android.account.NewOrRecoverActivity">
<meta-data <meta-data
android:name="android.support.PARENT_ACTIVITY" android:name="android.support.PARENT_ACTIVITY"
android:value="org.briarproject.briar.android.settings.SettingsActivity" /> android:value="org.briarproject.briar.android.account.NewOrRecoverActivity" />
</activity> </activity>
<activity <activity
android:name="org.briarproject.briar.android.conversation.ConversationActivity" android:name="org.briarproject.briar.android.conversation.ConversationActivity"
android:label="@string/app_name" android:label="@string/app_name"

View File

@@ -7,6 +7,7 @@ import org.briarproject.briar.R;
import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.ActivityComponent;
import org.briarproject.briar.android.activity.BaseActivity; import org.briarproject.briar.android.activity.BaseActivity;
import org.briarproject.briar.android.fragment.BaseFragment; import org.briarproject.briar.android.fragment.BaseFragment;
import org.briarproject.briar.android.socialbackup.RecoverActivity;
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK; 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_CLEAR_TOP;
@@ -14,7 +15,8 @@ import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME; import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME;
public class NewOrRecoverActivity extends BaseActivity implements public class NewOrRecoverActivity extends BaseActivity implements
BaseFragment.BaseFragmentListener, SetupNewAccountChosenListener { BaseFragment.BaseFragmentListener, SetupNewAccountChosenListener,
RecoverAccountListener {
@Override @Override
public void injectActivity(ActivityComponent component) { public void injectActivity(ActivityComponent component) {
@@ -26,13 +28,13 @@ public class NewOrRecoverActivity extends BaseActivity implements
super.onCreate(state); super.onCreate(state);
// fade-in after splash screen instead of default animation // fade-in after splash screen instead of default animation
overridePendingTransition(R.anim.fade_in, R.anim.fade_out); overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
setContentView(R.layout.activity_fragment_container); setContentView(R.layout.activity_fragment_container);
NewOrRecoverFragment fragment = NewOrRecoverFragment.newInstance(); NewOrRecoverFragment fragment = NewOrRecoverFragment.newInstance();
showInitialFragment(fragment); showInitialFragment(fragment);
} }
@Override @Override
public void setupNewAccountChosen () { public void setupNewAccountChosen() {
finish(); finish();
Intent i = new Intent(this, SetupActivity.class); Intent i = new Intent(this, SetupActivity.class);
i.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP | i.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP |
@@ -40,6 +42,14 @@ public class NewOrRecoverActivity extends BaseActivity implements
startActivity(i); startActivity(i);
} }
public void recoverAccountChosen() {
finish();
Intent i = new Intent(this, RecoverActivity.class);
i.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP |
FLAG_ACTIVITY_CLEAR_TASK | FLAG_ACTIVITY_TASK_ON_HOME);
startActivity(i);
}
@Override @Override
public void runOnDbThread(Runnable runnable) { public void runOnDbThread(Runnable runnable) {

View File

@@ -18,7 +18,8 @@ public class NewOrRecoverFragment extends BaseFragment {
public static final String TAG = NewOrRecoverFragment.class.getName(); public static final String TAG = NewOrRecoverFragment.class.getName();
protected SetupNewAccountChosenListener listener; protected SetupNewAccountChosenListener setupNewAccountListener;
protected RecoverAccountListener recoverAccountListener;
public static NewOrRecoverFragment newInstance() { public static NewOrRecoverFragment newInstance() {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
@@ -38,9 +39,14 @@ public class NewOrRecoverFragment extends BaseFragment {
ViewGroup container, @Nullable Bundle savedInstanceState) { ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_new_or_recover, View view = inflater.inflate(R.layout.fragment_new_or_recover,
container, false); container, false);
Button button = view.findViewById(R.id.buttonSetupNewAccount); Button newAccountButton = view.findViewById(R.id.buttonSetupNewAccount);
button.setOnClickListener(e -> { newAccountButton.setOnClickListener(e -> {
listener.setupNewAccountChosen(); setupNewAccountListener.setupNewAccountChosen();
});
Button recoverAccountButton = view.findViewById(R.id.buttonRestoreAccount);
recoverAccountButton.setOnClickListener(e -> {
recoverAccountListener.recoverAccountChosen();
}); });
return view; return view;
} }
@@ -48,7 +54,8 @@ public class NewOrRecoverFragment extends BaseFragment {
@Override @Override
public void onAttach(Context context) { public void onAttach(Context context) {
super.onAttach(context); super.onAttach(context);
listener = (SetupNewAccountChosenListener) context; setupNewAccountListener = (SetupNewAccountChosenListener) context;
recoverAccountListener = (RecoverAccountListener) context;
} }
@Override @Override

View File

@@ -0,0 +1,8 @@
package org.briarproject.briar.android.account;
import androidx.annotation.UiThread;
public interface RecoverAccountListener {
@UiThread
void recoverAccountChosen();
}

View File

@@ -85,6 +85,8 @@ import org.briarproject.briar.android.socialbackup.CustodianSelectorFragment;
import org.briarproject.briar.android.socialbackup.DistributedBackupActivity; import org.briarproject.briar.android.socialbackup.DistributedBackupActivity;
import org.briarproject.briar.android.socialbackup.ExistingBackupFragment; import org.briarproject.briar.android.socialbackup.ExistingBackupFragment;
import org.briarproject.briar.android.socialbackup.OldDistributedBackupActivity; 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.ShardsSentFragment;
import org.briarproject.briar.android.socialbackup.ThresholdSelectorFragment; import org.briarproject.briar.android.socialbackup.ThresholdSelectorFragment;
import org.briarproject.briar.android.socialbackup.creation.CreateBackupController; import org.briarproject.briar.android.socialbackup.creation.CreateBackupController;
@@ -257,8 +259,8 @@ public interface ActivityComponent {
void inject(ThresholdSelectorFragment thresholdSelectorFragment); void inject(ThresholdSelectorFragment thresholdSelectorFragment);
void inject(DistributedBackupActivity distributedBackupActivity); void inject(DistributedBackupActivity distributedBackupActivity);
// void inject(CreateBackupController createBackupController);
// void inject(CustodianDisplayFragment custodianDisplayFragment); void inject(RecoverActivity recoverActivity);
void inject(DatabaseComponent databaseComponent); void inject(DatabaseComponent databaseComponent);
@@ -266,6 +268,8 @@ public interface ActivityComponent {
void inject(ShardsSentFragment shardsSentFragment); void inject(ShardsSentFragment shardsSentFragment);
void inject(OwnerRecoveryModeExplainerFragment ownerRecoveryModeExplainerFragment);
void inject(ExistingBackupFragment existingBackupFragment); void inject(ExistingBackupFragment existingBackupFragment);
void inject(NewOrRecoverFragment newOrRecoverFragment); void inject(NewOrRecoverFragment newOrRecoverFragment);

View File

@@ -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;
}
}

View File

@@ -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);
}
}

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragmentContainer"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -717,4 +717,5 @@
<string name="social_backup_shard_sent">You have sent a social backup shard.</string> <string name="social_backup_shard_sent">You have sent a social backup shard.</string>
<string name="activity_name_new_or_recover_account">Create new account or recover existing account</string> <string name="activity_name_new_or_recover_account">Create new account or recover existing account</string>
<string name="activity_name_recovery">Recover Account</string>
</resources> </resources>