From dcda13db64c15340c4fdd669db71c7801c0da806 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Fri, 26 Feb 2021 10:45:29 +0100 Subject: [PATCH] add fragments (WIP) --- .../CustodianDisplayFragment.java | 88 ++++++++++++ .../CustodianSelectorFragment.java | 91 ++++++++++++ .../DistributedBackupActivity.java | 57 ++++++++ .../OldDistributedBackupActivity.java | 39 ++++++ .../ShardsSentDismissedListener.java | 10 ++ .../socialbackup/ShardsSentFragment.java | 65 +++++++++ .../ThresholdDefinedListener.java | 10 ++ .../ThresholdSelectorFragment.java | 125 +++++++++++++++++ .../drawable/ic_baseline_done_outline_24.xml | 5 + .../src/main/res/drawable/ic_pie_2_of_3.xml | 39 ++++++ .../src/main/res/drawable/ic_pie_2_of_5.xml | 56 ++++++++ .../src/main/res/drawable/ic_pie_3_of_5.xml | 56 ++++++++ .../src/main/res/drawable/ic_pie_4_of_5.xml | 56 ++++++++ .../layout/activity_distributed_backup.xml | 7 + .../activity_preview_recovery_custodian1.xml | 21 +++ .../activity_preview_recovery_custodian2.xml | 21 +++ .../activity_preview_recovery_owner1.xml | 21 +++ .../activity_preview_recovery_owner2.xml | 21 +++ .../activity_preview_recovery_owner3.xml | 21 +++ .../activity_preview_recovery_owner4.xml | 21 +++ .../res/layout/activity_preview_welcome.xml | 21 +++ .../src/main/res/layout/activity_welcome.xml | 19 +++ .../res/layout/fragment_account_recovered.xml | 50 +++++++ .../src/main/res/layout/fragment_mockups.xml | 130 ++++++++++++++++++ .../fragment_recovery_custodian_done.xml | 39 ++++++ ...ent_recovery_custodian_error_explainer.xml | 60 ++++++++ .../fragment_recovery_custodian_explainer.xml | 47 +++++++ ...ragment_recovery_owner_error_explainer.xml | 59 ++++++++ .../fragment_recovery_owner_explainer.xml | 47 +++++++ .../layout/fragment_recovery_owner_main.xml | 47 +++++++ .../fragment_recovery_owner_recovering.xml | 58 ++++++++ .../res/layout/fragment_select_threshold.xml | 56 ++++++++ .../res/layout/fragment_shards_received.xml | 50 +++++++ .../main/res/layout/fragment_shards_sent.xml | 50 +++++++ .../src/main/res/layout/fragment_start.xml | 34 +++++ .../src/main/res/layout/item_custodian.xml | 14 ++ .../res/menu/define_threshold_actions.xml | 12 ++ .../src/main/res/values/strings_mockups.xml | 82 +++++++++++ 38 files changed, 1705 insertions(+) create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/CustodianDisplayFragment.java create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/CustodianSelectorFragment.java create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DistributedBackupActivity.java create 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/ShardsSentDismissedListener.java create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ShardsSentFragment.java create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ThresholdDefinedListener.java create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ThresholdSelectorFragment.java create mode 100644 briar-android/src/main/res/drawable/ic_baseline_done_outline_24.xml create mode 100644 briar-android/src/main/res/drawable/ic_pie_2_of_3.xml create mode 100644 briar-android/src/main/res/drawable/ic_pie_2_of_5.xml create mode 100644 briar-android/src/main/res/drawable/ic_pie_3_of_5.xml create mode 100644 briar-android/src/main/res/drawable/ic_pie_4_of_5.xml create mode 100644 briar-android/src/main/res/layout/activity_distributed_backup.xml create mode 100644 briar-android/src/main/res/layout/activity_preview_recovery_custodian1.xml create mode 100644 briar-android/src/main/res/layout/activity_preview_recovery_custodian2.xml create mode 100644 briar-android/src/main/res/layout/activity_preview_recovery_owner1.xml create mode 100644 briar-android/src/main/res/layout/activity_preview_recovery_owner2.xml create mode 100644 briar-android/src/main/res/layout/activity_preview_recovery_owner3.xml create mode 100644 briar-android/src/main/res/layout/activity_preview_recovery_owner4.xml create mode 100644 briar-android/src/main/res/layout/activity_preview_welcome.xml create mode 100644 briar-android/src/main/res/layout/activity_welcome.xml create mode 100644 briar-android/src/main/res/layout/fragment_account_recovered.xml create mode 100644 briar-android/src/main/res/layout/fragment_mockups.xml create mode 100644 briar-android/src/main/res/layout/fragment_recovery_custodian_done.xml create mode 100644 briar-android/src/main/res/layout/fragment_recovery_custodian_error_explainer.xml create mode 100644 briar-android/src/main/res/layout/fragment_recovery_custodian_explainer.xml create mode 100644 briar-android/src/main/res/layout/fragment_recovery_owner_error_explainer.xml create mode 100644 briar-android/src/main/res/layout/fragment_recovery_owner_explainer.xml create mode 100644 briar-android/src/main/res/layout/fragment_recovery_owner_main.xml create mode 100644 briar-android/src/main/res/layout/fragment_recovery_owner_recovering.xml create mode 100644 briar-android/src/main/res/layout/fragment_select_threshold.xml create mode 100644 briar-android/src/main/res/layout/fragment_shards_received.xml create mode 100644 briar-android/src/main/res/layout/fragment_shards_sent.xml create mode 100644 briar-android/src/main/res/layout/fragment_start.xml create mode 100644 briar-android/src/main/res/layout/item_custodian.xml create mode 100644 briar-android/src/main/res/menu/define_threshold_actions.xml create mode 100644 briar-android/src/main/res/values/strings_mockups.xml diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/CustodianDisplayFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/CustodianDisplayFragment.java new file mode 100644 index 000000000..937d5aa14 --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/CustodianDisplayFragment.java @@ -0,0 +1,88 @@ +package org.briarproject.briar.android.darkcrystal; + +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; +import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; +import org.briarproject.briar.R; +import org.briarproject.briar.android.activity.ActivityComponent; +import org.briarproject.briar.android.backup.creation.CreateBackupController; +import org.briarproject.briar.android.contact.BaseContactListAdapter; +import org.briarproject.briar.android.contactselection.BaseContactSelectorFragment; +import org.briarproject.briar.android.contactselection.ContactDisplayAdapter; +import org.briarproject.briar.android.contactselection.ContactSelectorController; +import org.briarproject.briar.android.contactselection.SelectableContactItem; + +import javax.inject.Inject; + +import androidx.annotation.Nullable; + +import static java.util.Objects.requireNonNull; + +@MethodsNotNullByDefault +@ParametersNotNullByDefault +public class CustodianDisplayFragment extends BaseContactSelectorFragment { + + public static final String TAG = CustodianDisplayFragment.class.getName(); + + @Inject + CreateBackupController controller; + + public static CustodianDisplayFragment newInstance() { + Bundle args = new Bundle(); + args.putInt(BaseContactSelectorFragment.ARG_LAYOUT, R.layout.list_with_headline); + CustodianDisplayFragment fragment = new CustodianDisplayFragment(); + fragment.setArguments(args); + + return fragment; + } + + @Override + protected ContactDisplayAdapter getAdapter(Context context, + BaseContactListAdapter.OnContactClickListener listener) { + return new ContactDisplayAdapter(context, listener); + } + + @Override + protected void onSelectionChanged() { + + } + + public View onCreateView(LayoutInflater inflater, + @javax.annotation.Nullable ViewGroup container, + @javax.annotation.Nullable Bundle savedInstanceState) { + + View view = super.onCreateView(inflater, container, savedInstanceState); + TextView headline = view.findViewById(R.id.headline); + headline.setText(R.string.backup_created); + return view; + } + + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requireNonNull(getActivity()).setTitle(R.string.activity_name_distributed_backup); + } + + @Override + protected ContactSelectorController getController() { + controller.setMax(5); + return controller; + } + + @Override + public String getUniqueTag() { + return TAG; + } + +} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/CustodianSelectorFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/CustodianSelectorFragment.java new file mode 100644 index 000000000..1b171d0e9 --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/CustodianSelectorFragment.java @@ -0,0 +1,91 @@ +package org.briarproject.briar.android.darkcrystal; + +import android.os.Bundle; +import android.view.MenuItem; +import android.widget.Toast; + +import org.briarproject.bramble.api.contact.ContactId; +import org.briarproject.bramble.api.db.DbException; +import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; +import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; +import org.briarproject.bramble.api.sync.GroupId; +import org.briarproject.briar.R; +import org.briarproject.briar.android.activity.ActivityComponent; +import org.briarproject.briar.android.backup.creation.CreateBackupController; +import org.briarproject.briar.android.contactselection.BaseContactSelectorAdapter; +import org.briarproject.briar.android.contactselection.ContactSelectorController; +import org.briarproject.briar.android.contactselection.ContactSelectorFragment; +import org.briarproject.briar.android.contactselection.SelectableContactItem; +import org.briarproject.briar.android.controller.handler.ResultExceptionHandler; + +import java.util.Collection; + +import javax.inject.Inject; + +import androidx.annotation.Nullable; + +import static java.util.Objects.requireNonNull; + +@MethodsNotNullByDefault +@ParametersNotNullByDefault +public class CustodianSelectorFragment extends ContactSelectorFragment { + + public static final String TAG = CustodianSelectorFragment.class.getName(); + + @Inject + CreateBackupController controller; + + public static CustodianSelectorFragment newInstance() { + Bundle args = new Bundle(); + CustodianSelectorFragment fragment = new CustodianSelectorFragment(); + fragment.setArguments(args); + + return fragment; + } + + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requireNonNull(getActivity()).setTitle(R.string.title_select_custodians); + } + + @Override + protected ContactSelectorController getController() { + return controller; + } + + @Override + public String getUniqueTag() { + return TAG; + } + + @Override + protected void onSelectionChanged() { + super.onSelectionChanged(); + if (menu == null) return; + MenuItem item = menu.findItem(R.id.action_contacts_selected); + if (item == null) return; + + BaseContactSelectorAdapter a = adapter; + selectedContacts = a.getSelectedContactIds(); + + int n = selectedContacts.size(); + int min = 2; + boolean enough = n >= min; + + item.setVisible(enough); + if (n == 0) { + Toast.makeText(getContext(), String.format(getString(R.string.select_at_least_n_contacts), min), + Toast.LENGTH_SHORT).show(); + } else if (n < min) { + Toast.makeText(getContext(), String.format(getString(R.string.select_at_least_n_more_contacts), min - n), + Toast.LENGTH_SHORT).show(); + } + } + +} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DistributedBackupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DistributedBackupActivity.java new file mode 100644 index 000000000..b4d325e6d --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DistributedBackupActivity.java @@ -0,0 +1,57 @@ +package org.briarproject.briar.android.socialbackup; + +import android.os.Bundle; +import android.widget.Toast; + +import androidx.fragment.app.FragmentTransaction; + +import org.briarproject.bramble.api.contact.ContactId; +import org.briarproject.briar.R; +import org.briarproject.briar.android.activity.ActivityComponent; +import org.briarproject.briar.android.activity.BriarActivity; +import org.briarproject.briar.android.contactselection.ContactSelectorListener; +import org.briarproject.briar.android.fragment.BaseFragment; + +import java.util.Collection; + +public class DistributedBackupActivity extends BriarActivity implements + BaseFragment.BaseFragmentListener, ContactSelectorListener, + ThresholdDefinedListener, ShardsSentDismissedListener { + + @Override + public void injectActivity(ActivityComponent component) { + component.inject(this); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_distributed_backup); + + CustodianSelectorFragment fragment = + CustodianSelectorFragment.newInstance(); + + showInitialFragment(fragment); + } + + @Override + public void contactsSelected(Collection contacts) { + Toast.makeText(this, + String.format("selected %d contacts", contacts.size()), + Toast.LENGTH_SHORT).show(); + + ThresholdSelectorFragment fragment = new ThresholdSelectorFragment(); + showNextFragment(fragment); + } + + @Override + public void thresholdDefined() { + ShardsSentFragment fragment = new ShardsSentFragment(); + showNextFragment(fragment); + } + + @Override + public void shardsSentDismissed() { + finish(); + } +} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/OldDistributedBackupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/OldDistributedBackupActivity.java new file mode 100644 index 000000000..3d95e217e --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/OldDistributedBackupActivity.java @@ -0,0 +1,39 @@ +package org.briarproject.briar.android.darkcrystal; + +import android.os.Bundle; +import android.widget.Toast; + +import org.briarproject.bramble.api.contact.ContactId; +import org.briarproject.briar.R; +import org.briarproject.briar.android.activity.ActivityComponent; +import org.briarproject.briar.android.activity.BriarActivity; +import org.briarproject.briar.android.contactselection.ContactSelectorListener; +import org.briarproject.briar.android.fragment.BaseFragment; + +import java.util.Collection; + +public class OldDistributedBackupActivity extends BriarActivity + implements BaseFragment.BaseFragmentListener, ContactSelectorListener { + + @Override + public void injectActivity(ActivityComponent component) { + component.inject(this); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_distributed_backup); + + CustodianDisplayFragment fragment = + CustodianDisplayFragment.newInstance(); + + showInitialFragment(fragment); + } + + @Override + public void contactsSelected(Collection contacts) { + // do nothing + } + +} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ShardsSentDismissedListener.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ShardsSentDismissedListener.java new file mode 100644 index 000000000..d7a4e7b36 --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ShardsSentDismissedListener.java @@ -0,0 +1,10 @@ +package org.briarproject.briar.android.socialbackup; + +import androidx.annotation.UiThread; + +public interface ShardsSentDismissedListener { + + @UiThread + void shardsSentDismissed(); + +} \ No newline at end of file diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ShardsSentFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ShardsSentFragment.java new file mode 100644 index 000000000..bfac28d3f --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ShardsSentFragment.java @@ -0,0 +1,65 @@ +package org.briarproject.briar.android.socialbackup; + +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +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; + +import static java.util.Objects.requireNonNull; + +public class ShardsSentFragment extends BaseFragment { + + public static final String TAG = ShardsSentFragment.class.getName(); + + protected ShardsSentDismissedListener listener; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requireActivity().setTitle(R.string.title_distributed_backup); + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_shards_sent, + container, false); + + Button button = view.findViewById(R.id.button); + button.setOnClickListener(e -> { + listener.shardsSentDismissed(); + }); + + return view; + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + listener = (ShardsSentDismissedListener) 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/socialbackup/ThresholdDefinedListener.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ThresholdDefinedListener.java new file mode 100644 index 000000000..7a1c9961c --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ThresholdDefinedListener.java @@ -0,0 +1,10 @@ +package org.briarproject.briar.android.socialbackup; + +import androidx.annotation.UiThread; + +public interface ThresholdDefinedListener { + + @UiThread + void thresholdDefined(); + +} \ No newline at end of file diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ThresholdSelectorFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ThresholdSelectorFragment.java new file mode 100644 index 000000000..ebc523049 --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ThresholdSelectorFragment.java @@ -0,0 +1,125 @@ +package org.briarproject.briar.android.socialbackup; + +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.SeekBar; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import org.briarproject.briar.R; +import org.briarproject.briar.android.activity.ActivityComponent; +import org.briarproject.briar.android.contactselection.ContactSelectorListener; +import org.briarproject.briar.android.fragment.BaseFragment; + +import static java.util.Objects.requireNonNull; + +public class ThresholdSelectorFragment extends BaseFragment { + + public static final String TAG = ThresholdSelectorFragment.class.getName(); + + protected ThresholdDefinedListener listener; + + private SeekBar seekBar; + private ImageView image; + private TextView message; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requireNonNull(getActivity()).setTitle(R.string.title_define_threshold); + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_select_threshold, + container, false); + + seekBar = view.findViewById(R.id.seekBar); + image = view.findViewById(R.id.imageView); + message = view.findViewById(R.id.textViewMessage); + + seekBar.setMax(2); + seekBar.setOnSeekBarChangeListener(new SeekBarListener()); + seekBar.setProgress(1); + + return view; + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + listener = (ThresholdDefinedListener) context; + } + + + @Override + public String getUniqueTag() { + return TAG; + } + + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.define_threshold_actions, menu); + super.onCreateOptionsMenu(menu, inflater); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.action_threshold_defined: + listener.thresholdDefined(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } + + private class SeekBarListener implements SeekBar.OnSeekBarChangeListener { + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, + boolean fromUser) { + // progress can be 0, 1, 2 + int drawable = R.drawable.ic_pie_2_of_5; + switch (progress) { + case 1: + drawable = R.drawable.ic_pie_3_of_5; + break; + case 2: + drawable = R.drawable.ic_pie_4_of_5; + break; + } + int text = progress < 1 ? R.string.threshold_insecure : R.string.threshold_secure; + image.setImageDrawable(getContext().getResources().getDrawable(drawable)); + message.setText(text); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + // do nothing + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + // do nothing + } + + } + +} diff --git a/briar-android/src/main/res/drawable/ic_baseline_done_outline_24.xml b/briar-android/src/main/res/drawable/ic_baseline_done_outline_24.xml new file mode 100644 index 000000000..6601032a8 --- /dev/null +++ b/briar-android/src/main/res/drawable/ic_baseline_done_outline_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/briar-android/src/main/res/drawable/ic_pie_2_of_3.xml b/briar-android/src/main/res/drawable/ic_pie_2_of_3.xml new file mode 100644 index 000000000..7f65b7e03 --- /dev/null +++ b/briar-android/src/main/res/drawable/ic_pie_2_of_3.xml @@ -0,0 +1,39 @@ + + + + + + + + diff --git a/briar-android/src/main/res/drawable/ic_pie_2_of_5.xml b/briar-android/src/main/res/drawable/ic_pie_2_of_5.xml new file mode 100644 index 000000000..707dd584d --- /dev/null +++ b/briar-android/src/main/res/drawable/ic_pie_2_of_5.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + diff --git a/briar-android/src/main/res/drawable/ic_pie_3_of_5.xml b/briar-android/src/main/res/drawable/ic_pie_3_of_5.xml new file mode 100644 index 000000000..dab65ef9f --- /dev/null +++ b/briar-android/src/main/res/drawable/ic_pie_3_of_5.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + diff --git a/briar-android/src/main/res/drawable/ic_pie_4_of_5.xml b/briar-android/src/main/res/drawable/ic_pie_4_of_5.xml new file mode 100644 index 000000000..3300cd2bf --- /dev/null +++ b/briar-android/src/main/res/drawable/ic_pie_4_of_5.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + diff --git a/briar-android/src/main/res/layout/activity_distributed_backup.xml b/briar-android/src/main/res/layout/activity_distributed_backup.xml new file mode 100644 index 000000000..9d54ad6f2 --- /dev/null +++ b/briar-android/src/main/res/layout/activity_distributed_backup.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/layout/activity_preview_recovery_custodian1.xml b/briar-android/src/main/res/layout/activity_preview_recovery_custodian1.xml new file mode 100644 index 000000000..3feffb79a --- /dev/null +++ b/briar-android/src/main/res/layout/activity_preview_recovery_custodian1.xml @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/layout/activity_preview_recovery_custodian2.xml b/briar-android/src/main/res/layout/activity_preview_recovery_custodian2.xml new file mode 100644 index 000000000..f8a1cd2bc --- /dev/null +++ b/briar-android/src/main/res/layout/activity_preview_recovery_custodian2.xml @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/layout/activity_preview_recovery_owner1.xml b/briar-android/src/main/res/layout/activity_preview_recovery_owner1.xml new file mode 100644 index 000000000..1e8fec49a --- /dev/null +++ b/briar-android/src/main/res/layout/activity_preview_recovery_owner1.xml @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/layout/activity_preview_recovery_owner2.xml b/briar-android/src/main/res/layout/activity_preview_recovery_owner2.xml new file mode 100644 index 000000000..9496e994e --- /dev/null +++ b/briar-android/src/main/res/layout/activity_preview_recovery_owner2.xml @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/layout/activity_preview_recovery_owner3.xml b/briar-android/src/main/res/layout/activity_preview_recovery_owner3.xml new file mode 100644 index 000000000..57ea4820b --- /dev/null +++ b/briar-android/src/main/res/layout/activity_preview_recovery_owner3.xml @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/layout/activity_preview_recovery_owner4.xml b/briar-android/src/main/res/layout/activity_preview_recovery_owner4.xml new file mode 100644 index 000000000..783d045a0 --- /dev/null +++ b/briar-android/src/main/res/layout/activity_preview_recovery_owner4.xml @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/layout/activity_preview_welcome.xml b/briar-android/src/main/res/layout/activity_preview_welcome.xml new file mode 100644 index 000000000..293518b6b --- /dev/null +++ b/briar-android/src/main/res/layout/activity_preview_welcome.xml @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/layout/activity_welcome.xml b/briar-android/src/main/res/layout/activity_welcome.xml new file mode 100644 index 000000000..9c88ce321 --- /dev/null +++ b/briar-android/src/main/res/layout/activity_welcome.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/layout/fragment_account_recovered.xml b/briar-android/src/main/res/layout/fragment_account_recovered.xml new file mode 100644 index 000000000..fcfa9cfa1 --- /dev/null +++ b/briar-android/src/main/res/layout/fragment_account_recovered.xml @@ -0,0 +1,50 @@ + + + +