permissionLauncher =
registerForActivityResult(new RequestMultiplePermissions(), r -> {
@@ -62,7 +60,6 @@ public class SetupDownloadFragment extends Fragment {
@Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_mailbox_setup_download,
container, false);
- scrollView = v.findViewById(R.id.scrollView);
permissionManager = new CameraPermissionManager(requireActivity(),
permissionLauncher::launch);
@@ -80,8 +77,7 @@ public class SetupDownloadFragment extends Fragment {
public void onStart() {
super.onStart();
requireActivity().setTitle(R.string.mailbox_setup_title);
- // Scroll down in case the screen is small, so the button is visible
- scrollView.post(() -> scrollView.fullScroll(FOCUS_DOWN));
+ hideViewOnSmallScreen(requireView().findViewById(R.id.imageView));
// Permissions may have been granted manually while we were stopped
permissionManager.resetPermissions();
}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/SetupIntroFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/SetupIntroFragment.java
index f3f231422..cd1984c6f 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/SetupIntroFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/SetupIntroFragment.java
@@ -6,7 +6,6 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
-import android.widget.ScrollView;
import org.briarproject.briar.R;
import org.briarproject.nullsafety.MethodsNotNullByDefault;
@@ -19,8 +18,8 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProvider;
-import static android.view.View.FOCUS_DOWN;
import static org.briarproject.briar.android.AppModule.getAndroidComponent;
+import static org.briarproject.briar.android.util.UiUtils.hideViewOnSmallScreen;
@MethodsNotNullByDefault
@ParametersNotNullByDefault
@@ -33,8 +32,6 @@ public class SetupIntroFragment extends Fragment {
private MailboxViewModel viewModel;
- private ScrollView scrollView;
-
@Override
public void onAttach(Context context) {
super.onAttach(context);
@@ -51,7 +48,6 @@ public class SetupIntroFragment extends Fragment {
@Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_mailbox_setup_intro,
container, false);
- scrollView = v.findViewById(R.id.scrollView);
Button button = v.findViewById(R.id.continueButton);
button.setOnClickListener(view -> viewModel.showDownloadFragment());
return v;
@@ -61,8 +57,7 @@ public class SetupIntroFragment extends Fragment {
public void onStart() {
super.onStart();
requireActivity().setTitle(R.string.mailbox_setup_title);
- // Scroll down in case the screen is small, so the button is visible
- scrollView.post(() -> scrollView.fullScroll(FOCUS_DOWN));
+ hideViewOnSmallScreen(requireView().findViewById(R.id.imageView));
}
}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupListFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupListFragment.java
index 0ed8a25b3..347ce6d9e 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupListFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupListFragment.java
@@ -70,7 +70,7 @@ public class GroupListFragment extends BaseFragment implements
adapter = new GroupListAdapter(this);
list = v.findViewById(R.id.list);
- list.setEmptyImage(R.drawable.ic_empty_state_group_list);
+ list.setEmptyImage(R.drawable.il_empty_state_group_list);
list.setEmptyText(R.string.groups_list_empty);
list.setEmptyAction(R.string.groups_list_empty_action);
list.setLayoutManager(new LinearLayoutManager(getContext()));
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ChooserFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ChooserFragment.java
index c6a4f9465..dacf25ed4 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ChooserFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ChooserFragment.java
@@ -6,7 +6,6 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
-import android.widget.ScrollView;
import org.briarproject.briar.R;
import org.briarproject.briar.android.widget.OnboardingFullDialogFragment;
@@ -20,8 +19,8 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProvider;
-import static android.view.View.FOCUS_DOWN;
import static org.briarproject.briar.android.AppModule.getAndroidComponent;
+import static org.briarproject.briar.android.util.UiUtils.hideViewOnSmallScreen;
@MethodsNotNullByDefault
@ParametersNotNullByDefault
@@ -33,7 +32,6 @@ public class ChooserFragment extends Fragment {
ViewModelProvider.Factory viewModelFactory;
private RemovableDriveViewModel viewModel;
- private ScrollView scrollView;
@Override
public void onAttach(Context context) {
@@ -51,8 +49,6 @@ public class ChooserFragment extends Fragment {
View v = inflater.inflate(R.layout.fragment_transfer_data_chooser,
container, false);
- scrollView = (ScrollView) v;
-
Button buttonLearnMore = v.findViewById(R.id.buttonLearnMore);
buttonLearnMore.setOnClickListener(e -> showLearnMoreDialog());
@@ -75,8 +71,7 @@ public class ChooserFragment extends Fragment {
// as we only support one per ViewModel instance
requireActivity().supportFinishAfterTransition();
} else {
- // Scroll down in case the screen is small, so the button is visible
- scrollView.post(() -> scrollView.fullScroll(FOCUS_DOWN));
+ hideViewOnSmallScreen(requireView().findViewById(R.id.imageView));
}
}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ErrorFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ErrorFragment.java
index 7ab791b88..f9a778792 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ErrorFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ErrorFragment.java
@@ -25,8 +25,7 @@ public class ErrorFragment extends FinalFragment {
ErrorFragment f = new ErrorFragment();
Bundle args = new Bundle();
args.putInt(ARG_TITLE, title);
- args.putInt(ARG_ICON, R.drawable.alerts_and_states_error);
- args.putInt(ARG_ICON_TINT, R.color.briar_red_500);
+ args.putInt(ARG_ICON, R.drawable.ic_error);
args.putInt(ARG_TEXT, text);
f.setArguments(args);
return f;
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ReceiveFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ReceiveFragment.java
index c927d26ab..b5b022a41 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ReceiveFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/ReceiveFragment.java
@@ -8,7 +8,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ProgressBar;
-import android.widget.ScrollView;
import android.widget.Toast;
import org.briarproject.briar.R;
@@ -26,10 +25,10 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProvider;
-import static android.view.View.FOCUS_DOWN;
import static android.view.View.VISIBLE;
import static android.widget.Toast.LENGTH_LONG;
import static org.briarproject.briar.android.AppModule.getAndroidComponent;
+import static org.briarproject.briar.android.util.UiUtils.hideViewOnSmallScreen;
import static org.briarproject.briar.android.util.UiUtils.launchActivityToOpenFile;
@RequiresApi(19)
@@ -50,7 +49,6 @@ public class ReceiveFragment extends Fragment {
ViewModelProvider.Factory viewModelFactory;
private RemovableDriveViewModel viewModel;
- private ScrollView scrollView;
private Button button;
private ProgressBar progressBar;
@@ -72,7 +70,6 @@ public class ReceiveFragment extends Fragment {
View v = inflater.inflate(R.layout.fragment_transfer_data_receive,
container, false);
- scrollView = (ScrollView) v;
progressBar = v.findViewById(R.id.progressBar);
button = v.findViewById(R.id.fileButton);
button.setOnClickListener(view ->
@@ -93,8 +90,7 @@ public class ReceiveFragment extends Fragment {
public void onStart() {
super.onStart();
requireActivity().setTitle(R.string.removable_drive_title_receive);
- // Scroll down in case the screen is small, so the button is visible
- scrollView.post(() -> scrollView.fullScroll(FOCUS_DOWN));
+ hideViewOnSmallScreen(requireView().findViewById(R.id.imageView));
}
@Override
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/SendFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/SendFragment.java
index a39326bba..06b6a0b2b 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/SendFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/removabledrive/SendFragment.java
@@ -9,7 +9,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ProgressBar;
-import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
@@ -31,13 +30,13 @@ import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProvider;
import static android.os.Build.VERSION.SDK_INT;
-import static android.view.View.FOCUS_DOWN;
import static android.view.View.VISIBLE;
import static android.widget.Toast.LENGTH_LONG;
import static java.util.logging.Level.WARNING;
import static java.util.logging.Logger.getLogger;
import static org.briarproject.bramble.util.LogUtils.logException;
import static org.briarproject.briar.android.AppModule.getAndroidComponent;
+import static org.briarproject.briar.android.util.UiUtils.hideViewOnSmallScreen;
@RequiresApi(19)
@MethodsNotNullByDefault
@@ -55,7 +54,6 @@ public class SendFragment extends Fragment {
ViewModelProvider.Factory viewModelFactory;
private RemovableDriveViewModel viewModel;
- private ScrollView scrollView;
private TextView introTextView;
private Button button;
private ProgressBar progressBar;
@@ -78,7 +76,6 @@ public class SendFragment extends Fragment {
View v = inflater.inflate(R.layout.fragment_transfer_data_send,
container, false);
- scrollView = (ScrollView) v;
introTextView = v.findViewById(R.id.introTextView);
progressBar = v.findViewById(R.id.progressBar);
button = v.findViewById(R.id.fileButton);
@@ -107,8 +104,7 @@ public class SendFragment extends Fragment {
public void onStart() {
super.onStart();
requireActivity().setTitle(R.string.removable_drive_title_send);
- // Scroll down in case the screen is small, so the button is visible
- scrollView.post(() -> scrollView.fullScroll(FOCUS_DOWN));
+ hideViewOnSmallScreen(requireView().findViewById(R.id.imageView));
}
@Override
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashFragment.java
index cad46395a..75174a345 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashFragment.java
@@ -16,6 +16,8 @@ import javax.inject.Inject;
import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProvider;
+import static org.briarproject.briar.android.util.UiUtils.hideViewOnSmallScreen;
+
@MethodsNotNullByDefault
@ParametersNotNullByDefault
public class CrashFragment extends BaseFragment {
@@ -55,4 +57,9 @@ public class CrashFragment extends BaseFragment {
return TAG;
}
+ @Override
+ public void onStart() {
+ super.onStart();
+ hideViewOnSmallScreen(requireView().findViewById(R.id.errorIcon));
+ }
}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java b/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java
index 2a133b647..39491f31e 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java
@@ -7,6 +7,7 @@ import android.app.KeyguardManager;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Debug;
@@ -84,6 +85,8 @@ import static android.text.format.DateUtils.WEEK_IN_MILLIS;
import static android.text.format.DateUtils.YEAR_IN_MILLIS;
import static android.view.KeyEvent.ACTION_DOWN;
import static android.view.KeyEvent.KEYCODE_ENTER;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
import static android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE;
import static android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN;
@@ -499,6 +502,17 @@ public class UiUtils {
return icon;
}
+ public static void hideViewOnSmallScreen(View view) {
+ boolean small = isSmallScreenRelativeToFontSize(view.getContext());
+ view.setVisibility(small ? GONE : VISIBLE);
+ }
+
+ public static boolean isSmallScreenRelativeToFontSize(Context ctx) {
+ Configuration config = ctx.getResources().getConfiguration();
+ if (config.fontScale == 0f) return true;
+ return config.screenHeightDp / config.fontScale < 600;
+ }
+
/**
* Logs the exception and shows a Toast to the user.
*
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/BriarButton.java b/briar-android/src/main/java/org/briarproject/briar/android/view/BriarButton.java
index 944cb8587..77e4c2cbc 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/view/BriarButton.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/view/BriarButton.java
@@ -47,7 +47,8 @@ public class BriarButton extends FrameLayout {
attributes.recycle();
ContextThemeWrapper wrapper = new ContextThemeWrapper(context, style);
- button = new AppCompatButton(wrapper, null, style);
+ button = isInEditMode() ? new AppCompatButton(context) :
+ new AppCompatButton(wrapper, null, style);
button.setText(text);
addView(button);
progressBar = findViewById(R.id.briar_button_progress_bar);
diff --git a/briar-android/src/main/res/drawable-night/ic_mailbox_onboarding.xml b/briar-android/src/main/res/drawable-night/ic_mailbox_onboarding.xml
deleted file mode 100644
index 76a2beda4..000000000
--- a/briar-android/src/main/res/drawable-night/ic_mailbox_onboarding.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/briar-android/src/main/res/drawable-night/il_add_contact_remote.xml b/briar-android/src/main/res/drawable-night/il_add_contact_remote.xml
new file mode 100644
index 000000000..9c3f9245b
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/il_add_contact_remote.xml
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-night/il_add_contact_remote_nickname.xml b/briar-android/src/main/res/drawable-night/il_add_contact_remote_nickname.xml
new file mode 100644
index 000000000..d9b87d8b6
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/il_add_contact_remote_nickname.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-night/il_bluetooth_connect.xml b/briar-android/src/main/res/drawable-night/il_bluetooth_connect.xml
new file mode 100644
index 000000000..c9505b66b
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/il_bluetooth_connect.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-night/il_mailbox.xml b/briar-android/src/main/res/drawable-night/il_mailbox.xml
new file mode 100644
index 000000000..2421f9434
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/il_mailbox.xml
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-night/il_mailbox_setup.xml b/briar-android/src/main/res/drawable-night/il_mailbox_setup.xml
new file mode 100644
index 000000000..aecec6a67
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/il_mailbox_setup.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-night/il_qr_code.xml b/briar-android/src/main/res/drawable-night/il_qr_code.xml
new file mode 100644
index 000000000..510019bad
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/il_qr_code.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-night/il_qr_code_error.xml b/briar-android/src/main/res/drawable-night/il_qr_code_error.xml
new file mode 100644
index 000000000..36cb7b1d6
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/il_qr_code_error.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-night/il_qr_code_nearby.xml b/briar-android/src/main/res/drawable-night/il_qr_code_nearby.xml
new file mode 100644
index 000000000..dc005356d
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/il_qr_code_nearby.xml
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-night/il_share_app.xml b/briar-android/src/main/res/drawable-night/il_share_app.xml
new file mode 100644
index 000000000..f092e3167
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/il_share_app.xml
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-night/il_transfer_data.xml b/briar-android/src/main/res/drawable-night/il_transfer_data.xml
new file mode 100644
index 000000000..1551b6c1b
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/il_transfer_data.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-night/il_transfer_data_receive.xml b/briar-android/src/main/res/drawable-night/il_transfer_data_receive.xml
new file mode 100644
index 000000000..ecaab1575
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/il_transfer_data_receive.xml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-night/il_transfer_data_send.xml b/briar-android/src/main/res/drawable-night/il_transfer_data_send.xml
new file mode 100644
index 000000000..cd05a4d9c
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/il_transfer_data_send.xml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-night/qr_code_explanation.xml b/briar-android/src/main/res/drawable-night/qr_code_explanation.xml
deleted file mode 100644
index 5a4866585..000000000
--- a/briar-android/src/main/res/drawable-night/qr_code_explanation.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/briar-android/src/main/res/drawable/border_explanation.xml b/briar-android/src/main/res/drawable/border_explanation.xml
deleted file mode 100644
index f54513376..000000000
--- a/briar-android/src/main/res/drawable/border_explanation.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/briar-android/src/main/res/drawable/ic_bluetooth.xml b/briar-android/src/main/res/drawable/ic_bluetooth.xml
deleted file mode 100644
index cd6f7cb41..000000000
--- a/briar-android/src/main/res/drawable/ic_bluetooth.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
diff --git a/briar-android/src/main/res/drawable/ic_check_circle.xml b/briar-android/src/main/res/drawable/ic_check_circle.xml
new file mode 100644
index 000000000..9acf3c670
--- /dev/null
+++ b/briar-android/src/main/res/drawable/ic_check_circle.xml
@@ -0,0 +1,13 @@
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/ic_crash.xml b/briar-android/src/main/res/drawable/ic_crash.xml
deleted file mode 100644
index 9f6a33ecb..000000000
--- a/briar-android/src/main/res/drawable/ic_crash.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/briar-android/src/main/res/drawable/ic_empty_state_blog.xml b/briar-android/src/main/res/drawable/ic_empty_state_blog.xml
deleted file mode 100644
index a93f3eb1a..000000000
--- a/briar-android/src/main/res/drawable/ic_empty_state_blog.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
diff --git a/briar-android/src/main/res/drawable/ic_empty_state_contact_list.xml b/briar-android/src/main/res/drawable/ic_empty_state_contact_list.xml
deleted file mode 100644
index 560b137c5..000000000
--- a/briar-android/src/main/res/drawable/ic_empty_state_contact_list.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/briar-android/src/main/res/drawable/ic_empty_state_forum_list.xml b/briar-android/src/main/res/drawable/ic_empty_state_forum_list.xml
deleted file mode 100644
index 132ec634e..000000000
--- a/briar-android/src/main/res/drawable/ic_empty_state_forum_list.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
diff --git a/briar-android/src/main/res/drawable/ic_empty_state_group_list.xml b/briar-android/src/main/res/drawable/ic_empty_state_group_list.xml
deleted file mode 100644
index 21f892221..000000000
--- a/briar-android/src/main/res/drawable/ic_empty_state_group_list.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
diff --git a/briar-android/src/main/res/drawable/ic_error.xml b/briar-android/src/main/res/drawable/ic_error.xml
new file mode 100644
index 000000000..645dcf10e
--- /dev/null
+++ b/briar-android/src/main/res/drawable/ic_error.xml
@@ -0,0 +1,13 @@
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/ic_exclamation_mark.xml b/briar-android/src/main/res/drawable/ic_exclamation_mark.xml
new file mode 100644
index 000000000..7e728cb86
--- /dev/null
+++ b/briar-android/src/main/res/drawable/ic_exclamation_mark.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/ic_mailbox_onboarding.xml b/briar-android/src/main/res/drawable/ic_mailbox_onboarding.xml
deleted file mode 100644
index abd0bc87b..000000000
--- a/briar-android/src/main/res/drawable/ic_mailbox_onboarding.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/briar-android/src/main/res/drawable/ic_nickname.xml b/briar-android/src/main/res/drawable/ic_nickname.xml
deleted file mode 100644
index f7e69d377..000000000
--- a/briar-android/src/main/res/drawable/ic_nickname.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/briar-android/src/main/res/drawable/ic_share_app.xml b/briar-android/src/main/res/drawable/ic_share_app.xml
deleted file mode 100644
index d8ae02dc4..000000000
--- a/briar-android/src/main/res/drawable/ic_share_app.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/briar-android/src/main/res/drawable/ic_transfer_data.xml b/briar-android/src/main/res/drawable/ic_transfer_data.xml
deleted file mode 100644
index 68d313e52..000000000
--- a/briar-android/src/main/res/drawable/ic_transfer_data.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
diff --git a/briar-android/src/main/res/drawable/ic_transfer_data_receive.xml b/briar-android/src/main/res/drawable/ic_transfer_data_receive.xml
deleted file mode 100644
index 87d43457f..000000000
--- a/briar-android/src/main/res/drawable/ic_transfer_data_receive.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
diff --git a/briar-android/src/main/res/drawable/ic_transfer_data_send.xml b/briar-android/src/main/res/drawable/ic_transfer_data_send.xml
deleted file mode 100644
index 59b6f35ba..000000000
--- a/briar-android/src/main/res/drawable/ic_transfer_data_send.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
diff --git a/briar-android/src/main/res/drawable/il_add_contact_remote.xml b/briar-android/src/main/res/drawable/il_add_contact_remote.xml
new file mode 100644
index 000000000..36d63f8af
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_add_contact_remote.xml
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_add_contact_remote_nickname.xml b/briar-android/src/main/res/drawable/il_add_contact_remote_nickname.xml
new file mode 100644
index 000000000..5eda3f0d8
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_add_contact_remote_nickname.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_bluetooth_connect.xml b/briar-android/src/main/res/drawable/il_bluetooth_connect.xml
new file mode 100644
index 000000000..8ab5e0acc
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_bluetooth_connect.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_crash.xml b/briar-android/src/main/res/drawable/il_crash.xml
new file mode 100644
index 000000000..1149e2d93
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_crash.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_empty_state_blogs.xml b/briar-android/src/main/res/drawable/il_empty_state_blogs.xml
new file mode 100644
index 000000000..e7889087a
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_empty_state_blogs.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_empty_state_contact_list.xml b/briar-android/src/main/res/drawable/il_empty_state_contact_list.xml
new file mode 100644
index 000000000..c1cd9bc52
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_empty_state_contact_list.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_empty_state_forum_list.xml b/briar-android/src/main/res/drawable/il_empty_state_forum_list.xml
new file mode 100644
index 000000000..b25b9d02a
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_empty_state_forum_list.xml
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_empty_state_group_list.xml b/briar-android/src/main/res/drawable/il_empty_state_group_list.xml
new file mode 100644
index 000000000..656a339ed
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_empty_state_group_list.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_mailbox.xml b/briar-android/src/main/res/drawable/il_mailbox.xml
new file mode 100644
index 000000000..cc4f7945d
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_mailbox.xml
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_mailbox_setup.xml b/briar-android/src/main/res/drawable/il_mailbox_setup.xml
new file mode 100644
index 000000000..97f79a54a
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_mailbox_setup.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_qr_code.xml b/briar-android/src/main/res/drawable/il_qr_code.xml
new file mode 100644
index 000000000..8971fba28
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_qr_code.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_qr_code_error.xml b/briar-android/src/main/res/drawable/il_qr_code_error.xml
new file mode 100644
index 000000000..04bc638c7
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_qr_code_error.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_qr_code_nearby.xml b/briar-android/src/main/res/drawable/il_qr_code_nearby.xml
new file mode 100644
index 000000000..52fc5e4b6
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_qr_code_nearby.xml
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_share_app.xml b/briar-android/src/main/res/drawable/il_share_app.xml
new file mode 100644
index 000000000..16b4bb9a1
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_share_app.xml
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_transfer_data.xml b/briar-android/src/main/res/drawable/il_transfer_data.xml
new file mode 100644
index 000000000..5e21244d6
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_transfer_data.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_transfer_data_receive.xml b/briar-android/src/main/res/drawable/il_transfer_data_receive.xml
new file mode 100644
index 000000000..a303a0890
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_transfer_data_receive.xml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/il_transfer_data_send.xml b/briar-android/src/main/res/drawable/il_transfer_data_send.xml
new file mode 100644
index 000000000..cf3187010
--- /dev/null
+++ b/briar-android/src/main/res/drawable/il_transfer_data_send.xml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/qr_code_error.xml b/briar-android/src/main/res/drawable/qr_code_error.xml
deleted file mode 100644
index f866e6389..000000000
--- a/briar-android/src/main/res/drawable/qr_code_error.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/briar-android/src/main/res/drawable/qr_code_explanation.xml b/briar-android/src/main/res/drawable/qr_code_explanation.xml
deleted file mode 100644
index 557b7cd85..000000000
--- a/briar-android/src/main/res/drawable/qr_code_explanation.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/briar-android/src/main/res/drawable/qr_code_intro.xml b/briar-android/src/main/res/drawable/qr_code_intro.xml
deleted file mode 100644
index 6b09db32d..000000000
--- a/briar-android/src/main/res/drawable/qr_code_intro.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/briar-android/src/main/res/layout-land/fragment_keyagreement_id.xml b/briar-android/src/main/res/layout-land/fragment_keyagreement_id.xml
index fb2fe2c21..9fd9ff420 100644
--- a/briar-android/src/main/res/layout-land/fragment_keyagreement_id.xml
+++ b/briar-android/src/main/res/layout-land/fragment_keyagreement_id.xml
@@ -1,89 +1,83 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+