From 3c6b43b2bde2b1ab5368fad1f126ea317a2f50c6 Mon Sep 17 00:00:00 2001
From: Torsten Grote <t@grobox.de>
Date: Thu, 24 May 2018 11:52:13 -0300
Subject: [PATCH] Implement Dark Theme (DayNight with automatic option)

This is just a first rough implementation.
A real UI designer should look over this.
---
 .../briar/android/BriarApplicationImpl.java   |  13 +++
 .../briar/android/activity/BriarActivity.java |   1 -
 .../android/blog/BlogPostViewHolder.java      |   4 +-
 .../briar/android/forum/ForumListAdapter.java |   5 --
 .../privategroup/list/GroupViewHolder.java    |   3 -
 .../android/reporting/DevReportActivity.java  |  10 ++-
 .../android/settings/SettingsFragment.java    |  23 +++++
 .../threaded/BaseThreadItemViewHolder.java    |  11 ++-
 .../android/threaded/ThreadListActivity.java  |   1 +
 .../briar/android/util/UiUtils.java           |  21 +++++
 .../android/view/LargeTextInputView.java      |   3 +-
 .../android/view/TrustIndicatorView.java      |   2 +-
 .../components/RepeatableImageKey.java        |   4 +-
 .../components/emoji/EmojiDrawer.java         |  19 ++--
 .../components/emoji/EmojiToggle.java         |   7 +-
 .../main/res/drawable-night-hdpi/msg_in.9.png | Bin 0 -> 1990 bytes
 .../res/drawable-night-hdpi/msg_in_top.9.png  | Bin 0 -> 1600 bytes
 .../main/res/drawable-night-mdpi/msg_in.9.png | Bin 0 -> 1435 bytes
 .../res/drawable-night-mdpi/msg_in_top.9.png  | Bin 0 -> 1177 bytes
 .../res/drawable-night-xhdpi/msg_in.9.png     | Bin 0 -> 2835 bytes
 .../res/drawable-night-xhdpi/msg_in_top.9.png | Bin 0 -> 2289 bytes
 .../res/drawable-night-xxhdpi/msg_in.9.png    | Bin 0 -> 3885 bytes
 .../drawable-night-xxhdpi/msg_in_top.9.png    | Bin 0 -> 3084 bytes
 .../res/drawable-night/contact_connected.xml  |  24 +++++
 .../drawable-night/contact_disconnected.xml   |   9 ++
 .../res/drawable-night/ic_our_identity.xml    |   9 ++
 .../drawable-night/qr_code_explanation.xml    |  28 ++++++
 .../main/res/drawable-night/splash_screen.xml |  71 +++++++++++++++
 .../main/res/drawable/action_delete_black.xml |   1 -
 briar-android/src/main/res/drawable/blogs.xml |   1 -
 .../main/res/drawable/border_explanation.xml  |   2 +-
 .../src/main/res/drawable/bubble_white.xml    |   1 -
 .../main/res/drawable/contact_connected.xml   |  24 ++---
 .../res/drawable/contact_disconnected.xml     |  13 ++-
 ...c_backspace_black.xml => ic_backspace.xml} |   1 -
 .../res/drawable/ic_contact_introduction.xml  |   1 -
 .../src/main/res/drawable/ic_contacts.xml     |   1 -
 .../main/res/drawable/ic_emoji_activity.xml   |   2 +-
 .../res/drawable/ic_emoji_animals_nature.xml  |   2 +-
 .../main/res/drawable/ic_emoji_emoticons.xml  |   2 +-
 .../src/main/res/drawable/ic_emoji_flags.xml  |   2 +-
 .../main/res/drawable/ic_emoji_food_drink.xml |   2 +-
 .../main/res/drawable/ic_emoji_objects.xml    |   2 +-
 .../src/main/res/drawable/ic_emoji_recent.xml |   2 +-
 .../res/drawable/ic_emoji_smiley_people.xml   |   2 +-
 .../main/res/drawable/ic_emoji_symbols.xml    |   2 +-
 .../src/main/res/drawable/ic_emoji_toggle.xml |   1 -
 .../res/drawable/ic_emoji_travel_places.xml   |   2 +-
 .../res/drawable/ic_forums_black_24dp.xml     |   1 -
 .../src/main/res/drawable/ic_group.xml        |   1 -
 .../src/main/res/drawable/ic_info.xml         |  10 ---
 ...{ic_keyboard_black.xml => ic_keyboard.xml} |   1 -
 ...identity_black.xml => ic_our_identity.xml} |   1 -
 .../src/main/res/drawable/ic_repeat.xml       |   1 -
 .../res/drawable/ic_settings_black_24dp.xml   |   1 -
 .../res/drawable/ic_signout_black_24dp.xml    |   1 -
 .../src/main/res/drawable/ic_visibility.xml   |   1 -
 .../main/res/drawable/ic_visibility_off.xml   |   1 -
 .../res/drawable/level_indicator_circle.xml   |   4 +-
 .../drawable/list_item_thread_background.xml  |   4 +-
 .../main/res/drawable/message_delivered.xml   |  12 ++-
 .../src/main/res/drawable/message_sent.xml    |  12 ++-
 .../src/main/res/drawable/message_stored.xml  |  12 ++-
 .../res/drawable/social_send_now_white.xml    |   4 +-
 .../src/main/res/drawable/transport_bt.xml    |  12 ++-
 .../src/main/res/drawable/transport_lan.xml   |  17 ++--
 .../src/main/res/drawable/transport_tor.xml   |  12 ++-
 .../layout-land/fragment_keyagreement_id.xml  |   1 -
 .../main/res/layout/activity_conversation.xml |   6 +-
 .../main/res/layout/activity_dev_report.xml   |  13 +--
 .../main/res/layout/activity_nav_drawer.xml   |   3 +-
 .../res/layout/activity_open_database.xml     |   2 +-
 .../src/main/res/layout/activity_password.xml |   3 +-
 .../res/layout/activity_sharing_status.xml    |  48 +++++++---
 .../main/res/layout/activity_test_data.xml    |  22 +++--
 .../layout/activity_threaded_conversation.xml |   2 -
 .../src/main/res/layout/author_view.xml       |   4 +-
 .../src/main/res/layout/emoji_drawer.xml      |   9 +-
 .../src/main/res/layout/fragment_blog.xml     |   1 -
 .../main/res/layout/fragment_blog_post.xml    |   3 +-
 .../src/main/res/layout/fragment_error.xml    |   2 +-
 .../res/layout/fragment_keyagreement_id.xml   |   2 +-
 .../main/res/layout/fragment_link_dialog.xml  |   6 +-
 .../src/main/res/layout/fragment_reblog.xml   |   4 +-
 .../main/res/layout/introduction_message.xml  |   7 +-
 .../res/layout/list_item_blog_comment.xml     |   2 +-
 .../main/res/layout/list_item_blog_post.xml   |  10 +--
 .../src/main/res/layout/list_item_contact.xml |   8 +-
 .../res/layout/list_item_contact_small.xml    |   2 +-
 .../layout/list_item_conversation_msg_in.xml  |   4 +-
 .../list_item_conversation_notice_in.xml      |   6 +-
 .../list_item_conversation_notice_out.xml     |   5 +-
 .../layout/list_item_conversation_request.xml |   6 +-
 .../src/main/res/layout/list_item_crash.xml   |   4 +-
 .../src/main/res/layout/list_item_forum.xml   |  13 +--
 .../src/main/res/layout/list_item_group.xml   |  19 ++--
 .../layout/list_item_group_join_notice.xml    |   2 +-
 .../res/layout/list_item_group_member.xml     |   2 +-
 .../main/res/layout/list_item_invitations.xml |   9 +-
 .../layout/list_item_revealable_contact.xml   |   9 +-
 .../main/res/layout/list_item_rss_feed.xml    |  16 ++--
 .../layout/list_item_selectable_contact.xml   |   7 +-
 .../src/main/res/layout/list_item_thread.xml  |   4 +-
 .../main/res/layout/list_item_transport.xml   |   2 +-
 .../src/main/res/layout/navigation_menu.xml   |   7 +-
 .../src/main/res/layout/power_view.xml        |   2 +-
 briar-android/src/main/res/layout/splash.xml  |   3 +-
 .../src/main/res/layout/text_input_view.xml   |  84 ++++++++++--------
 .../main/res/layout/text_input_view_large.xml |  63 +++++++------
 .../src/main/res/values-night/color.xml       |  13 +++
 briar-android/src/main/res/values/arrays.xml  |  16 ++++
 briar-android/src/main/res/values/color.xml   |   8 +-
 briar-android/src/main/res/values/strings.xml |   5 ++
 briar-android/src/main/res/values/styles.xml  |  17 +---
 briar-android/src/main/res/values/themes.xml  |   6 +-
 briar-android/src/main/res/xml/settings.xml   |  21 +++--
 116 files changed, 623 insertions(+), 332 deletions(-)
 create mode 100644 briar-android/src/main/res/drawable-night-hdpi/msg_in.9.png
 create mode 100644 briar-android/src/main/res/drawable-night-hdpi/msg_in_top.9.png
 create mode 100644 briar-android/src/main/res/drawable-night-mdpi/msg_in.9.png
 create mode 100644 briar-android/src/main/res/drawable-night-mdpi/msg_in_top.9.png
 create mode 100644 briar-android/src/main/res/drawable-night-xhdpi/msg_in.9.png
 create mode 100644 briar-android/src/main/res/drawable-night-xhdpi/msg_in_top.9.png
 create mode 100644 briar-android/src/main/res/drawable-night-xxhdpi/msg_in.9.png
 create mode 100644 briar-android/src/main/res/drawable-night-xxhdpi/msg_in_top.9.png
 create mode 100644 briar-android/src/main/res/drawable-night/contact_connected.xml
 create mode 100644 briar-android/src/main/res/drawable-night/contact_disconnected.xml
 create mode 100644 briar-android/src/main/res/drawable-night/ic_our_identity.xml
 create mode 100644 briar-android/src/main/res/drawable-night/qr_code_explanation.xml
 create mode 100644 briar-android/src/main/res/drawable-night/splash_screen.xml
 rename briar-android/src/main/res/drawable/{ic_backspace_black.xml => ic_backspace.xml} (94%)
 delete mode 100644 briar-android/src/main/res/drawable/ic_info.xml
 rename briar-android/src/main/res/drawable/{ic_keyboard_black.xml => ic_keyboard.xml} (95%)
 rename briar-android/src/main/res/drawable/{ic_our_identity_black.xml => ic_our_identity.xml} (95%)
 create mode 100644 briar-android/src/main/res/values-night/color.xml

diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java
index bbb8a568ca..0b2f034660 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java
@@ -19,6 +19,7 @@ import org.briarproject.briar.android.logging.CachingLogHandler;
 import org.briarproject.briar.android.reporting.BriarReportPrimer;
 import org.briarproject.briar.android.reporting.BriarReportSenderFactory;
 import org.briarproject.briar.android.reporting.DevReportActivity;
+import org.briarproject.briar.android.util.UiUtils;
 
 import java.util.Collection;
 import java.util.logging.Handler;
@@ -85,6 +86,7 @@ public class BriarApplicationImpl extends Application
 		Localizer.initialize(prefs);
 		super.attachBaseContext(
 				Localizer.getInstance().setLocale(base));
+		setTheme(base, prefs);
 		ACRA.init(this);
 	}
 
@@ -123,6 +125,17 @@ public class BriarApplicationImpl extends Application
 		Localizer.getInstance().setLocale(this);
 	}
 
+	private void setTheme(Context ctx, SharedPreferences prefs) {
+		String theme = prefs.getString("pref_key_theme", null);
+		if (theme == null) {
+			// set default value
+			theme = getString(R.string.pref_theme_light_value);
+			prefs.edit().putString("pref_key_theme", theme).apply();
+		}
+		// set theme
+		UiUtils.setTheme(ctx, theme);
+	}
+
 	private void enableStrictMode() {
 		ThreadPolicy.Builder threadPolicy = new ThreadPolicy.Builder();
 		threadPolicy.detectAll();
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
index d557e717fc..3d2d8361cb 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
@@ -92,7 +92,6 @@ public abstract class BriarActivity extends BaseActivity {
 		window.setEnterTransition(slide);
 		window.setTransitionBackgroundFadeDuration(getResources()
 				.getInteger(android.R.integer.config_longAnimTime));
-		window.setBackgroundDrawableResource(android.R.color.transparent);
 	}
 
 	/**
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java
index 2280594150..b330aeb7a7 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java
@@ -11,7 +11,7 @@ import android.text.Spanned;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.ImageView;
+import android.widget.ImageButton;
 import android.widget.TextView;
 
 import org.briarproject.bramble.api.identity.Author;
@@ -40,7 +40,7 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder {
 	private final ViewGroup layout;
 	private final AuthorView reblogger;
 	private final AuthorView author;
-	private final ImageView reblogButton;
+	private final ImageButton reblogButton;
 	private final TextView body;
 	private final ViewGroup commentContainer;
 	private final boolean fullText;
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumListAdapter.java b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumListAdapter.java
index d2c4b96d38..f16e839707 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumListAdapter.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumListAdapter.java
@@ -2,7 +2,6 @@ package org.briarproject.briar.android.forum;
 
 import android.content.Context;
 import android.content.Intent;
-import android.support.v4.content.ContextCompat;
 import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -55,12 +54,8 @@ class ForumListAdapter
 			ui.postCount.setText(ctx.getResources()
 					.getQuantityString(R.plurals.posts, postCount,
 							postCount));
-			ui.postCount.setTextColor(
-					ContextCompat.getColor(ctx, R.color.briar_text_secondary));
 		} else {
 			ui.postCount.setText(ctx.getString(R.string.no_posts));
-			ui.postCount.setTextColor(
-					ContextCompat.getColor(ctx, R.color.briar_text_tertiary));
 		}
 
 		// Date
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupViewHolder.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupViewHolder.java
index a2992ef890..b64eb25a29 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupViewHolder.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupViewHolder.java
@@ -16,7 +16,6 @@ import org.briarproject.briar.android.privategroup.conversation.GroupActivity;
 import org.briarproject.briar.android.util.UiUtils;
 import org.briarproject.briar.android.view.TextAvatarView;
 
-import static android.support.v4.content.ContextCompat.getColor;
 import static android.view.View.GONE;
 import static android.view.View.VISIBLE;
 import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID;
@@ -83,8 +82,6 @@ class GroupViewHolder extends RecyclerView.ViewHolder {
 				postCount.setText(ctx.getResources()
 						.getQuantityString(R.plurals.messages, messageCount,
 								messageCount));
-				postCount.setTextColor(
-						getColor(ctx, R.color.briar_text_secondary));
 
 				long lastUpdate = group.getTimestamp();
 				date.setText(UiUtils.formatDate(ctx, lastUpdate));
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java
index a25e1e41fc..e9f49eaf9d 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java
@@ -33,6 +33,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.logging.Logger;
 
+import static android.support.v7.app.AppCompatDelegate.MODE_NIGHT_YES;
 import static android.view.View.GONE;
 import static android.view.View.INVISIBLE;
 import static android.view.View.VISIBLE;
@@ -84,6 +85,7 @@ public class DevReportActivity extends BaseCrashReportDialog
 
 	@Override
 	public void onCreate(Bundle state) {
+		getDelegate().setLocalNightMode(MODE_NIGHT_YES);
 		getDelegate().installViewFactory();
 		getDelegate().onCreate(state);
 		super.onCreate(state);
@@ -94,6 +96,7 @@ public class DevReportActivity extends BaseCrashReportDialog
 		getDelegate().setSupportActionBar(tb);
 
 		View requestReport = findViewById(R.id.request_report);
+		View reportForm = findViewById(R.id.report_form);
 		userCommentView = findViewById(R.id.user_comment);
 		userEmailView = findViewById(R.id.user_email);
 		includeDebugReport = findViewById(R.id.include_debug_report);
@@ -111,13 +114,18 @@ public class DevReportActivity extends BaseCrashReportDialog
 		if (isFeedback()) {
 			includeDebugReport
 					.setText(getString(R.string.include_debug_report_feedback));
+			reportForm.setVisibility(VISIBLE);
+			requestReport.setVisibility(INVISIBLE);
 		} else {
 			includeDebugReport.setChecked(true);
+			reportForm.setVisibility(INVISIBLE);
+			requestReport.setVisibility(VISIBLE);
 		}
 
 		findViewById(R.id.acceptButton).setOnClickListener(v -> {
 			reviewing = true;
-			requestReport.setVisibility(GONE);
+			reportForm.setVisibility(VISIBLE);
+			requestReport.setVisibility(INVISIBLE);
 			((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
 					.showSoftInput(userCommentView, SHOW_FORCED);
 		});
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
index d9faceff50..7442c20f02 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
@@ -34,6 +34,7 @@ import org.briarproject.bramble.util.StringUtils;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.Localizer;
 import org.briarproject.briar.android.navdrawer.NavDrawerActivity;
+import org.briarproject.briar.android.util.UiUtils;
 import org.briarproject.briar.android.util.UserFeedback;
 
 import java.util.ArrayList;
@@ -44,6 +45,8 @@ import java.util.logging.Logger;
 import javax.inject.Inject;
 
 import static android.app.Activity.RESULT_OK;
+import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
+import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.media.RingtoneManager.ACTION_RINGTONE_PICKER;
 import static android.media.RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI;
 import static android.media.RingtoneManager.EXTRA_RINGTONE_EXISTING_URI;
@@ -99,6 +102,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
 
 	private SettingsActivity listener;
 	private ListPreference language;
+	private ListPreference theme;
 	private ListPreference enableBluetooth;
 	private ListPreference torNetwork;
 	private CheckBoxPreference notifyPrivateMessages;
@@ -135,6 +139,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
 
 		language = (ListPreference) findPreference(LANGUAGE);
 		setLanguageEntries();
+		theme = (ListPreference) findPreference("pref_key_theme");
 		enableBluetooth = (ListPreference) findPreference("pref_key_bluetooth");
 		torNetwork = (ListPreference) findPreference("pref_key_tor_network");
 		notifyPrivateMessages = (CheckBoxPreference) findPreference(
@@ -154,6 +159,23 @@ public class SettingsFragment extends PreferenceFragmentCompat
 		setSettingsEnabled(false);
 
 		language.setOnPreferenceChangeListener(this);
+		theme.setOnPreferenceChangeListener((preference, newValue) -> {
+			if (getActivity() != null) {
+				// activate new theme
+				UiUtils.setTheme(getActivity(), (String) newValue);
+				// bring up parent activity, so it can change its theme as well
+				Intent intent =
+						new Intent(getActivity(), NavDrawerActivity.class);
+				intent.setFlags(
+						FLAG_ACTIVITY_CLEAR_TASK | FLAG_ACTIVITY_NEW_TASK);
+				startActivity(intent);
+				// bring this activity back to the foreground
+				intent = new Intent(getActivity(), getActivity().getClass());
+				startActivity(intent);
+				getActivity().finish();
+			}
+			return true;
+		});
 		enableBluetooth.setOnPreferenceChangeListener(this);
 		torNetwork.setOnPreferenceChangeListener(this);
 		if (SDK_INT >= 21) {
@@ -320,6 +342,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
 	}
 
 	private void setSettingsEnabled(boolean enabled) {
+		// theme not needed here, because handled by SharedPreferences
 		enableBluetooth.setEnabled(enabled);
 		torNetwork.setEnabled(enabled);
 		notifyPrivateMessages.setEnabled(enabled);
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/threaded/BaseThreadItemViewHolder.java b/briar-android/src/main/java/org/briarproject/briar/android/threaded/BaseThreadItemViewHolder.java
index 0532e6a951..dc21378d6c 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/threaded/BaseThreadItemViewHolder.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/threaded/BaseThreadItemViewHolder.java
@@ -4,10 +4,8 @@ import android.animation.Animator;
 import android.animation.ArgbEvaluator;
 import android.animation.ValueAnimator;
 import android.content.Context;
-import android.graphics.drawable.ColorDrawable;
 import android.support.annotation.CallSuper;
 import android.support.annotation.UiThread;
-import android.support.v4.content.ContextCompat;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.view.ViewGroup;
@@ -20,6 +18,8 @@ import org.briarproject.briar.R;
 import org.briarproject.briar.android.threaded.ThreadItemAdapter.ThreadItemListener;
 import org.briarproject.briar.android.view.AuthorView;
 
+import static android.support.v4.content.ContextCompat.getColor;
+
 @UiThread
 @NotNullByDefault
 public abstract class BaseThreadItemViewHolder<I extends ThreadItem>
@@ -61,10 +61,9 @@ public abstract class BaseThreadItemViewHolder<I extends ThreadItem>
 	private void animateFadeOut() {
 		setIsRecyclable(false);
 		ValueAnimator anim = new ValueAnimator();
-		ColorDrawable viewColor = new ColorDrawable(ContextCompat
-				.getColor(getContext(), R.color.forum_cell_highlight));
-		anim.setIntValues(viewColor.getColor(), ContextCompat
-				.getColor(getContext(), R.color.window_background));
+		int viewColor = getColor(getContext(), R.color.thread_item_highlight);
+		anim.setIntValues(viewColor,
+				getColor(getContext(), R.color.window_background));
 		anim.setEvaluator(new ArgbEvaluator());
 		anim.setInterpolator(new AccelerateInterpolator());
 		anim.addListener(new Animator.AnimatorListener() {
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java
index 4c0e145dc5..2d30f5c8d5 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java
@@ -286,6 +286,7 @@ public abstract class ThreadListActivity<G extends NamedGroup, I extends ThreadI
 	public void onReplyClick(I item) {
 		replyId = item.getId();
 		updateTextInput();
+		// FIXME This does not work for a hardware keyboard
 		if (textInput.isKeyboardOpen()) {
 			scrollToItemAtTop(item);
 		} else {
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 884264a61d..a5589a11a6 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
@@ -38,6 +38,11 @@ import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.os.Build.MANUFACTURER;
 import static android.os.Build.VERSION.SDK_INT;
 import static android.provider.Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS;
+import static android.support.v7.app.AppCompatDelegate.MODE_NIGHT_AUTO;
+import static android.support.v7.app.AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
+import static android.support.v7.app.AppCompatDelegate.MODE_NIGHT_NO;
+import static android.support.v7.app.AppCompatDelegate.MODE_NIGHT_YES;
+import static android.support.v7.app.AppCompatDelegate.setDefaultNightMode;
 import static android.text.format.DateUtils.DAY_IN_MILLIS;
 import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
 import static android.text.format.DateUtils.FORMAT_ABBREV_RELATIVE;
@@ -191,4 +196,20 @@ public class UiUtils {
 		if (v.getFilterTouchesWhenObscured() != filter)
 			v.setFilterTouchesWhenObscured(!filter);
 	}
+
+	public static void setTheme(Context ctx, String theme) {
+		if (theme.equals(ctx.getString(R.string.pref_theme_light_value))) {
+			setDefaultNightMode(MODE_NIGHT_NO);
+		} else if (theme
+				.equals(ctx.getString(R.string.pref_theme_dark_value))) {
+			setDefaultNightMode(MODE_NIGHT_YES);
+		} else if (theme
+				.equals(ctx.getString(R.string.pref_theme_auto_value))) {
+			setDefaultNightMode(MODE_NIGHT_AUTO);
+		} else if (theme
+				.equals(ctx.getString(R.string.pref_theme_system_value))) {
+			setDefaultNightMode(MODE_NIGHT_FOLLOW_SYSTEM);
+		}
+	}
+
 }
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/LargeTextInputView.java b/briar-android/src/main/java/org/briarproject/briar/android/view/LargeTextInputView.java
index 3cdf8fff8a..9bcd6c4510 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/view/LargeTextInputView.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/view/LargeTextInputView.java
@@ -7,7 +7,6 @@ import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.ViewGroup;
 import android.widget.Button;
-import android.widget.LinearLayout;
 
 import org.briarproject.briar.R;
 
@@ -58,7 +57,7 @@ public class LargeTextInputView extends TextInputView {
 		if (buttonText != null) setButtonText(buttonText);
 		if (maxLines > 0) ui.editText.setMaxLines(maxLines);
 		if (fillHeight) {
-			LinearLayout layout = findViewById(R.id.input_layout);
+			ViewGroup layout = findViewById(R.id.input_layout);
 			LayoutParams params = (LayoutParams) layout.getLayoutParams();
 			params.height = 0;
 			params.weight = 1;
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/TrustIndicatorView.java b/briar-android/src/main/java/org/briarproject/briar/android/view/TrustIndicatorView.java
index 918755eb6c..3aac50e9b5 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/view/TrustIndicatorView.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/view/TrustIndicatorView.java
@@ -38,7 +38,7 @@ public class TrustIndicatorView extends ImageView {
 				res = R.drawable.trust_indicator_verified;
 				break;
 			case OURSELVES:
-				res = R.drawable.ic_our_identity_black;
+				res = R.drawable.ic_our_identity;
 				break;
 			default:
 				res = R.drawable.trust_indicator_unknown;
diff --git a/briar-android/src/main/java/org/thoughtcrime/securesms/components/RepeatableImageKey.java b/briar-android/src/main/java/org/thoughtcrime/securesms/components/RepeatableImageKey.java
index 453f82f8cf..51e7401869 100644
--- a/briar-android/src/main/java/org/thoughtcrime/securesms/components/RepeatableImageKey.java
+++ b/briar-android/src/main/java/org/thoughtcrime/securesms/components/RepeatableImageKey.java
@@ -2,11 +2,11 @@ package org.thoughtcrime.securesms.components;
 
 import android.content.Context;
 import android.support.annotation.UiThread;
+import android.support.v7.widget.AppCompatImageButton;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewConfiguration;
-import android.widget.ImageButton;
 
 import static android.view.HapticFeedbackConstants.KEYBOARD_TAP;
 import static android.view.MotionEvent.ACTION_CANCEL;
@@ -14,7 +14,7 @@ import static android.view.MotionEvent.ACTION_DOWN;
 import static android.view.MotionEvent.ACTION_UP;
 
 @UiThread
-public class RepeatableImageKey extends ImageButton {
+public class RepeatableImageKey extends AppCompatImageButton {
 
 	private KeyEventListener listener;
 
diff --git a/briar-android/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiDrawer.java b/briar-android/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiDrawer.java
index 7ba1810f9e..d54f4cbcab 100644
--- a/briar-android/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiDrawer.java
+++ b/briar-android/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiDrawer.java
@@ -1,10 +1,13 @@
 package org.thoughtcrime.securesms.components.emoji;
 
 import android.content.Context;
+import android.content.res.ColorStateList;
 import android.support.annotation.NonNull;
 import android.support.annotation.UiThread;
+import android.support.v4.content.ContextCompat;
 import android.support.v4.view.PagerAdapter;
 import android.support.v4.view.ViewPager;
+import android.support.v7.widget.AppCompatImageView;
 import android.util.AttributeSet;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
@@ -26,6 +29,7 @@ import java.util.logging.Logger;
 
 import javax.annotation.Nullable;
 
+import static android.support.v4.widget.ImageViewCompat.setImageTintList;
 import static android.view.KeyEvent.ACTION_DOWN;
 import static android.view.KeyEvent.KEYCODE_DEL;
 import static android.widget.ImageView.ScaleType.CENTER_INSIDE;
@@ -142,8 +146,10 @@ public class EmojiDrawer extends LinearLayout {
 			return pages.size();
 		}
 
+		@NonNull
 		@Override
-		public Object instantiateItem(ViewGroup container, int position) {
+		public Object instantiateItem(@NonNull ViewGroup container,
+				int position) {
 			EmojiPageView page = new EmojiPageView(context);
 			page.setModel(pages.get(position));
 			page.setEmojiSelectedListener(listener);
@@ -152,21 +158,24 @@ public class EmojiDrawer extends LinearLayout {
 		}
 
 		@Override
-		public void destroyItem(ViewGroup container, int position,
-				Object object) {
+		public void destroyItem(@NonNull ViewGroup container, int position,
+				@NonNull Object object) {
 			container.removeView((View) object);
 		}
 
 		@Override
-		public boolean isViewFromObject(View view, Object object) {
+		public boolean isViewFromObject(@NonNull View view,
+				@NonNull Object object) {
 			return view == object;
 		}
 
 		@Override
 		public View getCustomTabView(ViewGroup viewGroup, int i) {
-			ImageView image = new ImageView(context);
+			ImageView image = new AppCompatImageView(context);
 			image.setScaleType(CENTER_INSIDE);
 			image.setImageResource(pages.get(i).getIcon());
+			setImageTintList(image, ColorStateList.valueOf(
+					ContextCompat.getColor(context, R.color.color_primary)));
 			return image;
 		}
 
diff --git a/briar-android/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiToggle.java b/briar-android/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiToggle.java
index 75e79bb271..5858af0a79 100644
--- a/briar-android/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiToggle.java
+++ b/briar-android/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiToggle.java
@@ -4,8 +4,8 @@ import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.support.annotation.UiThread;
 import android.support.v4.content.ContextCompat;
+import android.support.v7.widget.AppCompatImageButton;
 import android.util.AttributeSet;
-import android.widget.ImageButton;
 
 import org.briarproject.briar.R;
 import org.thoughtcrime.securesms.components.emoji.EmojiDrawer.EmojiDrawerListener;
@@ -13,7 +13,8 @@ import org.thoughtcrime.securesms.components.emoji.EmojiDrawer.EmojiDrawerListen
 import javax.annotation.Nullable;
 
 @UiThread
-public class EmojiToggle extends ImageButton implements EmojiDrawerListener {
+public class EmojiToggle extends AppCompatImageButton
+		implements EmojiDrawerListener {
 
 	private final Drawable emojiToggle;
 	private final Drawable imeToggle;
@@ -33,7 +34,7 @@ public class EmojiToggle extends ImageButton implements EmojiDrawerListener {
 		emojiToggle = ContextCompat
 				.getDrawable(getContext(), R.drawable.ic_emoji_toggle);
 		imeToggle = ContextCompat
-				.getDrawable(getContext(), R.drawable.ic_keyboard_black);
+				.getDrawable(getContext(), R.drawable.ic_keyboard);
 		setToEmoji();
 	}
 
diff --git a/briar-android/src/main/res/drawable-night-hdpi/msg_in.9.png b/briar-android/src/main/res/drawable-night-hdpi/msg_in.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..008d7833b1e82d1c4a3a0712bd0950f98d67dbef
GIT binary patch
literal 1990
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
Y19*jy?~GIQApigX07*qoM6N<$f(z553jhEB

literal 0
HcmV?d00001

diff --git a/briar-android/src/main/res/drawable-night-hdpi/msg_in_top.9.png b/briar-android/src/main/res/drawable-night-hdpi/msg_in_top.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d34c50659e80df651b330f5302aae551170b7f2
GIT binary patch
literal 1600
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

literal 0
HcmV?d00001

diff --git a/briar-android/src/main/res/drawable-night-mdpi/msg_in.9.png b/briar-android/src/main/res/drawable-night-mdpi/msg_in.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b8904541f8a268642590d7936a26bbd1531487d
GIT binary patch
literal 1435
zcmV;M1!Ve(P)<h;3K|Lk000e1NJLTq001=r001ut1^@s7G_0~400006VoOIv0RI60
z0RN!9r;`8x1yD&uK~!ko-CE60Bt;beRZY(a1GxBsXv|Kcm?eQ^T@w>967&Rp+p|Y+
zo=m)W)4#x@A@N`E;DJ-kAXx-VI2t2~mx;+_lXZ+nMrM{7`r~=93g6at_w-CR1MW*I
z19Vrt_v(H9-W!Av0&(O3!1ng`dpkQjNBn_Osw(u(%FN8n+WPwX1NQKFNkjn9?{>RC
z*~d!8GqfKH_OJ-xRV{}P;E@<6ZOL`rf&D-!B_se(DOIx{5)nxN1mI!RvC_O4B`Fu^
zMF6+-&m91Nnui4dC9RH(5k3Uq0T=)X9me{(m6es1+qZA;A%T=qw}_}?PWJ%(esXg1
zgHq~sB$I?C7HKg~k%FT1@rUg3?VG#2QGKA$i%UfMk|@y!h$!*}!>*`J;UtNt_4geu
zM#XjA&ajJ6O1%W&)c8`Ul)97R0;d58v*{ebA4;jaLpC{P695DN{s!<+DfP}M_6h*>
zw6l(6WQq#hG@d~T?^7J7LBgg%lt)MaQ#u&S%$3Yx9RTN1ULu+QMd=&zO~P7;*qDaM
za&oi4vp`{EW8>Xwwfa4BBBj&}fD7#gA-{NWaB%RWQtCA+<p(+OGq#XC$D4RB0;m9(
z0Wepq)m~m+Uf#=~*&6`<0?;F(3y0lrz%p$gK)2Ouby}^~TL4~gUH8El{KQig(=sk+
zdZCw}$DNuYix{S+p7e8JmXvn$CYd5;!VK5w^I{@~XlBZH6~L_a(uzsKF~a%A!2p~A
zcx+;A7&DVi3YtNIr6nX_hfv$x*Pk@BRK}hbh7dwfL}?XL#>*kbbr9plY4`K&AuNZv
zk_2qhl(9)%nMlKkEIWk;?_C;xYisK_A;erxS$<9@0nfgsLcLypGYrE=ImK*Mhl%9a
z<kDu1Mq@n)f?soBG{wvS$;-38SATbR_rB+OKWAiAVvK|hoJ<Kh-`m^!sNe4&XJF)T
zhmtI+1D!S=Ylzp`-{1eF*XuRLWF+E}tYJ1_knr^I@bHUnxBE@r+1%Fb48YmZ(a~2|
zQ8qZUzGj%YAjVZ*o`o+=&|Os_BrEm*KgzqrgeWZ|%1|<{9IRXdm9)-aJa1IGuu)M`
z3UPE6p4Nz{%E5h1SPWRO_jIf4J1I1}&`bk;fHQ=Vxq*TH3;~dn!bZM@-9$o(k1FMq
z76pycISvIUX#htet{aB!hB-r;zfFQ@l-PD61QrPk8JqmPFezD9eZs;{%s7p&0{gVb
zZDImS@uI~soBcOLfpB3d<!o+l-V;K6D}<QG4I-t~ye|J9tIn5-$(Wdt01Ayp<Cl89
zes6w$ej^Bi)(z6jB>IvKTBG_h)5e;%siapKKxJ)h?Um{2>932$;+<=@)DlC5d_EHp
z5jhc=BxF|exWdQB$87)~E-o(4)oQgb%jNRh*QA%j<_C5X3!R8e6GjARz?R=^Hoa!E
z`SHTS!tB!0(&yD`_5BGeRftGfB5CwS`USGExtWZWwAuUZcKf{DZhz)D&eZDa>Zh}_
zv-fX8z@;4*@exHqPgKi#O|eyVUH7{Q#ME7l@_1Z%I;Mg&V9d6hZ@FW@<|lL$Eajwp
zk1Ho4x&l6Ex_+hT-$pm>Y>%vj60n%_k<-{avr=OGUN;twUpGlSgY+yaC9)`GyIn4$
zpOh3>Ac0uRJGP}Lrk|cvqVTQ$oy#-!HyXSc7xCXe9aPvVF%)fz_Ba;d(?&Dm>{~_G
z<JNOBx?jj9CFXZC3wQA37bK&8NkS2gq0f|fN|{lMZ=CyumH=LaA~HjlJWA(FS>4aZ
phNH|jCO)GW_a?7;0yWY!=^q_oSgK$ubM62D002ovPDHLkV1mztw8;Pf

literal 0
HcmV?d00001

diff --git a/briar-android/src/main/res/drawable-night-mdpi/msg_in_top.9.png b/briar-android/src/main/res/drawable-night-mdpi/msg_in_top.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..ebad24e9f486147a8e13530ab92f20e84ac131d2
GIT binary patch
literal 1177
zcmV;K1ZMk*P)<h;3K|Lk000e1NJLTq001=r001Tk1^@s76QkqP00006VoOIv0RI60
z0RN!9r;`8x1WrjrK~z}7-B`_QV^tLYotu}W^O`zUj1{B-txTbXaRi|iOLf)0-K<@@
zb0xTOr+<M<DflnAaM9IGYM9zq=u*Ujn;?V%jR-bQVw1d&>%x1>nL97ZOWsRb=fEZ5
zy?5@p=j(UQxkN-5Mh*ZR92~rNczAfmUq~rk(wqyWQfYf<XXg=n`Jzxt0YI<Q>HK7G
zE11m4eo5mFRPa2nZ@-XIk^taKDJ%9%rIZo?6oAKZ+Y0kx++oatasUbd@{GZz2!Icu
z4<K^b?k{X^Zf>rwuGTSvq?C7+Qf;%l58#iBi;Ewml&@nn30TKc`WTl;Kyms6V|W5?
zoLEvyskjdeS6*Ax86`!l5jX${z=G#_?Q!}@DPIO~X}lguDeon)!y*7OOjiK@lv3Uw
z!{ity00;s64dAhq@|{V{9s=kBXiw@Z6_-Ux9IQrsuZBtLk6`Kpc*@~qEwJB7NU>kO
zz*8)@ySw|Y>$=|~Ba%{<01UKqB5n>kIXU@JO8J@);)9Ij-33rIW;bRe{U8ru0YC}B
za-~vvWn*Kbo<g%X0Q?1@tCSiz%)TLmu^xa<v)ODno6WZXyySV_qbcOkGeyO6E*Cn`
zE6Bp8rVe3<Py^PzOoWXB!>map$eAdG83WC)#=`u_Q)u%i<>z5fmZmd74wGLw{Y>aZ
zQwTCa6|jho9Hvcfe}DgXB3jM}o|bj=`nH*J)oS(4D2jf|DA-(GsRb`}*FLM&YCB;V
z{+fZHJIoCbER0Pk2S-Oo4}IVNIi;Wi6GV0$HrRJnuh&27^?K(i1UWpQ1nUz+jdTC#
zj-h>geEdnb+pSG0h=!qq5!PoN#^veh=@*?&=bNly$kyx$fG1~XXJ5?%@3^p@7ML2z
zhn0+oW%s}&-K-Fthkf|JsY?QLqNIXUijpz&DtldFlLmu{yh&+bm-9prlA`KnL243r
zIxz>P5eq2?lC0X0r&<#0|1*s;vGzo;w#EDst28tR#gv6pyiD8A5Z8B+rIfR`xA%aE
zz9phEZV^c-%Np^02FTZni6J>70OV@5+Aq~=^+CB@-VMXBd5iRN^~71Q`;@p=oOGC(
zPPw305x~Os_V%lbi;G|9^Z9!>?5TCu2=G}lR7xo)21z33HJ>YdetzBp@Zs9p+H$2*
z`Lb9nzI{V_IeO({KrC`%kS2;r(2%X5(P;RMM&sj^m6fIS_4UtP*L{D^O66hzi$+}&
zDE)!5+A%Z57qr`Ztyb%*)oOj_IL@7|t*uX&mX;pghJ+h8N86}q@-46Ptf)sMvs};f
zzMDf%-PfZ7&nsW&ROlqE6J)hAVa$rAY}#g$aFY~4<Fz2BQ_W4V-)xmq|IIc@uXB_I
zC?U(aAge37)JoCx<IT|Pp_?Xw=a8O9r6`S3cGzVy?I)zrY7(wPpNOXRl$}rEoPi=>
rrNy4BKtnEeW>x7E3sXu>J*)i-n*__;ti%aA00000NkvXXu0mjfY`-)n

literal 0
HcmV?d00001

diff --git a/briar-android/src/main/res/drawable-night-xhdpi/msg_in.9.png b/briar-android/src/main/res/drawable-night-xhdpi/msg_in.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..13597cfa4ea0bdb67d162cfdd7cc06ef3381272f
GIT binary patch
literal 2835
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

literal 0
HcmV?d00001

diff --git a/briar-android/src/main/res/drawable-night-xhdpi/msg_in_top.9.png b/briar-android/src/main/res/drawable-night-xhdpi/msg_in_top.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3b950d4bd36d2ba2af61b19e2331ea9ade8f311
GIT binary patch
literal 2289
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
LNkvXXu0mjfuN7=Q

literal 0
HcmV?d00001

diff --git a/briar-android/src/main/res/drawable-night-xxhdpi/msg_in.9.png b/briar-android/src/main/res/drawable-night-xxhdpi/msg_in.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..cef3f185e0daca7c700b160dd38f313909a9eaf4
GIT binary patch
literal 3885
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

literal 0
HcmV?d00001

diff --git a/briar-android/src/main/res/drawable-night-xxhdpi/msg_in_top.9.png b/briar-android/src/main/res/drawable-night-xxhdpi/msg_in_top.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..60ea93838e90612c838e4974865aaa917c448738
GIT binary patch
literal 3084
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
a2>uU_?DbXHNz1(e0000<MNUMnLSTXb_r1LU

literal 0
HcmV?d00001

diff --git a/briar-android/src/main/res/drawable-night/contact_connected.xml b/briar-android/src/main/res/drawable-night/contact_connected.xml
new file mode 100644
index 0000000000..f62562b735
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/contact_connected.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24"
+        android:viewportWidth="24">
+
+	<path
+		android:fillColor="#ffffff"
+		android:pathData="M12,2 C6.48,2,2,6.48,2,12 S6.48,22,12,22 S22,17.52,22,12 S17.52,2,12,2 Z M12,20
+C7.58,20,4,16.42,4,12 S7.58,4,12,4 S20,7.58,20,12 S16.42,20,12,20 Z"/>
+
+	<path
+		android:fillColor="#95d220"
+		android:pathData="M10.8972,19.9503 C6.5514,19.3493,3.43091,15.2154,4.0625,10.896
+C4.55452,7.53099,7.09451,4.8236,10.394,4.14714
+C14.2569,3.35517,18.1698,5.54347,19.5236,9.25295
+C20.0698,10.7495,20.1616,12.4612,19.777,13.9758
+C19.5457,14.8864,18.8106,16.3388,18.2072,17.0771
+C16.4904,19.1779,13.581,20.3215,10.8973,19.9503 Z"
+		android:strokeLineCap="round"
+		android:strokeLineJoin="round"
+		android:strokeWidth="0.76779664"/>
+</vector>
\ No newline at end of file
diff --git a/briar-android/src/main/res/drawable-night/contact_disconnected.xml b/briar-android/src/main/res/drawable-night/contact_disconnected.xml
new file mode 100644
index 0000000000..60c5f829c1
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/contact_disconnected.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+	<path
+		android:fillColor="#ffffff"
+		android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zm0,18c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z"/>
+</vector>
diff --git a/briar-android/src/main/res/drawable-night/ic_our_identity.xml b/briar-android/src/main/res/drawable-night/ic_our_identity.xml
new file mode 100644
index 0000000000..685ad6b8c0
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/ic_our_identity.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="16dp"
+        android:height="16dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+	<path
+		android:fillColor="#FFFFFF"
+		android:pathData="M12,5.9c1.16,0 2.1,0.94 2.1,2.1s-0.94,2.1 -2.1,2.1S9.9,9.16 9.9,8s0.94,-2.1 2.1,-2.1m0,9c2.97,0 6.1,1.46 6.1,2.1v1.1L5.9,18.1L5.9,17c0,-0.64 3.13,-2.1 6.1,-2.1M12,4C9.79,4 8,5.79 8,8s1.79,4 4,4 4,-1.79 4,-4 -1.79,-4 -4,-4zM12,13c-2.67,0 -8,1.34 -8,4v3h16v-3c0,-2.66 -5.33,-4 -8,-4z"/>
+</vector>
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
new file mode 100644
index 0000000000..433179877b
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/qr_code_explanation.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="400dp"
+        android:height="100dp"
+        android:viewportHeight="49.5"
+        android:viewportWidth="194.8">
+	<path
+		android:fillColor="#ffffff"
+		android:pathData="M30.1 16.5l-9 0 0 -5c0 -2.4 -2 -4.4 -4.4 -4.4L4.4 7.1C2 7.1 0 9.1 0 11.5l0 24.2c0 2.4 2 4.4 4.4 4.4l9 0 0 5c0 2.4 2 4.4 4.4 4.4l12.2 0c2.4 0 4.4 -2 4.4 -4.4l0 -24.2c0.1 -2.4 -1.9 -4.4 -4.3 -4.4zm-27.4 16.1l0 -20.9 15.8 0 0 20.9 -15.8 0zm10.7 4.6l-5.8 0 0 -1.5 5.8 0 0 1.5zm13.5 9.4l-5.8 0 0 -1.5 5.8 0 0 1.5zm5 -4.6l-15.8 0 0 -1.9 0.5 0c2.4 0 4.4 -2 4.4 -4.4l0 -14.6 10.8 0 0 20.9z"/>
+	<path
+		android:fillColor="#ffffff"
+		android:pathData="M101.2 16.5l-8.3 0 0 -4.4c0 -1.4 -1.2 -2.6 -2.6 -2.6l-3.9 0 -2.1 -2.5 -6.9 0 -2.2 2.5 -3.8 0c-1.4 0 -2.6 1.2 -2.6 2.6l0 13.3c0 1.4 1.2 2.6 2.6 2.6l13.1 0 0 17.2c0 2.4 2 4.4 4.4 4.4l12.2 0c2.4 0 4.4 -2 4.4 -4.4l0 -24.3c0.2 -2.4 -1.8 -4.4 -4.3 -4.4zm-26.4 2.4c0 -3.3 2.7 -6 6 -6 3.3 0 6 2.7 6 6 0 3.3 -2.7 6 -6 6 -3.3 0 -6 -2.7 -6 -6zm23.2 27.7l-5.8 0 0 -1.5 5.8 0 0 1.5zm5 -4.6l-15.8 0 0 -14.1 3.1 0c1.4 0 2.6 -1.2 2.6 -2.6l0 -4.2 10.1 0 0 20.9z"/>
+	<path
+		android:fillColor="#ffffff"
+		android:pathData="M84.600003 18.9a3.8 3.8 0 0 1 -3.8 3.8 3.8 3.8 0 0 1 -3.8 -3.8 3.8 3.8 0 0 1 3.8 -3.8 3.8 3.8 0 0 1 3.8 3.8z"/>
+	<path
+		android:fillColor="#ffffff"
+		android:pathData="M175.3 16.5l-9.8 0 0 -5.7c0 -1.4 -1.2 -2.6 -2.6 -2.6l-19.3 0c-1.4 0 -2.6 1.2 -2.6 2.6l0 14.4c0 1.4 1.2 2.6 2.6 2.6l15.1 0 0 17.3c0 2.4 2 4.4 4.4 4.4l12.2 0c2.4 0 4.4 -2 4.4 -4.4l0 -24.2c0.1 -2.4 -1.9 -4.4 -4.4 -4.4zm-12.4 -5.9l-9.6 6 -9.6 -6 19.2 0zm-19.4 14.8l0 -12.3 9.8 6.1 9.8 -6.1 0 12.3 -19.6 0zm28.6 21.2l-5.8 0 0 -1.5 5.8 0 0 1.5zm5 -4.6l-15.8 0 0 -14.2 1.6 0c1.4 0 2.6 -1.2 2.6 -2.6l0 -4.1 11.6 0 0 20.9z"/>
+	<path
+		android:fillColor="#ff0000"
+		android:pathData="M101.4 17.8l2 2 7.4 -7.3 7.3 7.3 2.1 -2 -7.4 -7.4 7.4 -7.3 -2.1 -2.1 -7.3 7.4 -7.4 -7.4 -2 2.1 7.3 7.3z"/>
+	<path
+		android:fillColor="#ff0000"
+		android:pathData="M176 17.8l2.1 2 7.3 -7.3 7.4 7.3 2 -2 -7.3 -7.4 7.3 -7.3 -2 -2.1 -7.4 7.4 -7.3 -7.4 -2.1 2.1 7.3 7.3z"/>
+	<path
+		android:fillColor="#08b124"
+		android:pathData="M35.8 18.8l0 0L52.5 2.1 50.5 0 35.6 14.8 28.5 7.7l-2.1 2.1 9.2 9.1z"/>
+</vector>
diff --git a/briar-android/src/main/res/drawable-night/splash_screen.xml b/briar-android/src/main/res/drawable-night/splash_screen.xml
new file mode 100644
index 0000000000..b1904b0039
--- /dev/null
+++ b/briar-android/src/main/res/drawable-night/splash_screen.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="235dp"
+        android:height="310dp"
+        android:viewportHeight="310"
+        android:viewportWidth="235">
+
+	<path
+		android:fillColor="#87c214"
+		android:pathData="M47.2,47.2 L90.9,47.2 L90.9,90.9 L47.2,90.9 L47.2,47.2 Z"/>
+	<path
+		android:fillColor="#87c214"
+		android:pathData="M64.9004,0 C55.2004,0,47.1992,7.99922,47.1992,17.6992 L47.1992,40.1992
+L90.8008,40.1992 L90.8008,17.6992
+C90.8008,7.99922,82.8992,0,73.1992,0 L64.9004,0 Z M161.9,0
+C152.2,0,144.199,7.99922,144.199,17.6992 L144.199,137.199 L187.801,137.199
+L187.801,17.6992 C187.801,7.99922,179.899,0,170.199,0 L161.9,0 Z
+M47.1992,97.8008 L47.1992,217.301 C47.1992,227.001,55.1004,235,64.9004,235
+L73.1992,235 C82.8992,235,90.9004,227.001,90.9004,217.301 L90.9004,97.8008
+L47.1992,97.8008 Z M144.199,194.801 L144.199,217.301
+C144.199,227.001,152.2,235,161.9,235 L170.199,235
+C179.899,235,187.9,227.001,187.9,217.301 L187.9,194.801 L144.199,194.801 Z"/>
+	<path
+		android:fillColor="#87c214"
+		android:pathData="M144.2,144.2 L187.9,144.2 L187.9,187.9 L144.2,187.9 L144.2,144.2 Z"/>
+	<path
+		android:fillColor="#95d220"
+		android:pathData="M17.6992,47.1992 C7.99922,47.1992,0,55.1004,0,64.9004 L0,73.1992
+C0,82.8992,7.89922,90.9004,17.6992,90.9004 L137.199,90.9004 L137.199,47.1992
+L17.6992,47.1992 Z M194.801,47.1992 L194.801,90.9004 L217.301,90.9004
+C227.001,90.9004,235,82.9992,235,73.1992 L235,64.9004
+C235,55.1004,227.001,47.1992,217.301,47.1992 L194.801,47.1992 Z M17.6992,144.199
+C7.99922,144.199,0,152.1,0,161.9 L0,170.199
+C0,179.899,7.89922,187.9,17.6992,187.9 L40.1992,187.9 L40.1992,144.199
+L17.6992,144.199 Z M97.8008,144.199 L97.8008,187.9 L217.301,187.9
+C227.001,187.9,235,179.899,235,170.199 L235,161.9
+C235,152.1,227.001,144.199,217.301,144.199 L97.8008,144.199 Z"/>
+	<path
+		android:fillColor="#ffffff"
+		android:pathData="M0,253.9 L0,310 L26.2656,310 C38.6498,310,45.1426,303.8,45.1426,294.1
+C45.1426,287.8,42.2457,283.1,36.4531,280.5 L36.4531,280.4
+C40.8475,277.7,42.7461,274.3,42.7461,269 C42.7461,261,37.2532,253.9,25.668,253.9
+L0,253.9 Z M54.5313,253.9 L54.5313,310 L61.1211,310 L61.1211,287.5
+L60.4238,286.801 L73.7051,286.801
+C81.0956,286.801,85.2917,289.399,87.9883,295.199 L94.9785,310 L102.369,310
+L94.0801,292.5 C92.2824,288.6,89.3857,286.1,86.7891,285 L86.7891,284.9
+C92.8813,283.3,97.9746,277.8,97.9746,270.5
+C97.9746,259.4,89.3865,253.9,79.0996,253.9 L54.5313,253.9 Z M109.26,253.9
+L109.26,310 L115.852,310 L115.852,253.9 L109.26,253.9 Z M148.012,253.9
+L123.342,310 L130.533,310 L136.525,296.5 L136.227,295.801 L166.887,295.801
+L166.588,296.5 L172.58,310 L179.771,310 L155.002,253.9 L148.012,253.9 Z
+M187.16,253.9 L187.16,310 L193.752,310 L193.752,287.5 L193.053,286.801
+L206.336,286.801 C213.727,286.801,217.923,289.399,220.619,295.199 L227.609,310
+L235,310 L226.711,292.5 C224.913,288.6,222.017,286.1,219.42,285 L219.42,284.9
+C225.512,283.3,230.605,277.8,230.605,270.5
+C230.605,259.4,222.017,253.9,211.73,253.9 L187.16,253.9 Z M5.89258,260.1
+L24.9688,260.1 C32.1596,260.1,35.9531,263,35.9531,269
+C35.9531,274,32.9585,278,24.9688,278 L5.89258,278 L6.5918,277.301
+L6.5918,260.801 L5.89258,260.1 Z M60.4238,260.1 L79.0996,260.1
+C85.8909,260.1,91.0837,262.9,91.1836,270.4
+C91.1836,276.4,86.4901,280.6,78.4004,280.6 L60.4238,280.6 L61.1211,279.9
+L61.1211,260.801 L60.4238,260.1 Z M192.953,260.1 L211.629,260.1
+C218.52,260.1,223.715,262.9,223.715,270.4
+C223.715,276.4,219.021,280.6,210.932,280.6 L192.953,280.6 L193.652,279.9
+L193.652,260.801 L192.953,260.1 Z M151.605,260.801 L151.707,260.801
+L153.404,266.4 L163.291,288.9 L163.99,289.6 L139.322,289.6 L140.021,288.9
+L149.908,266.4 L151.605,260.801 Z M5.89258,284.199 L26.2656,284.199
+C34.555,284.199,38.3516,288,38.3516,294.1
+C38.3516,300.3,34.8547,303.801,26.2656,303.801 L5.89258,303.801 L6.5918,303.1
+L6.5918,284.9 L5.89258,284.199 Z"/>
+</vector>
\ No newline at end of file
diff --git a/briar-android/src/main/res/drawable/action_delete_black.xml b/briar-android/src/main/res/drawable/action_delete_black.xml
index 814d0993fb..2cedb57ffb 100644
--- a/briar-android/src/main/res/drawable/action_delete_black.xml
+++ b/briar-android/src/main/res/drawable/action_delete_black.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.56"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/blogs.xml b/briar-android/src/main/res/drawable/blogs.xml
index cf8009a5b7..551d200455 100644
--- a/briar-android/src/main/res/drawable/blogs.xml
+++ b/briar-android/src/main/res/drawable/blogs.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/border_explanation.xml b/briar-android/src/main/res/drawable/border_explanation.xml
index b2e380fbc2..f545133765 100644
--- a/briar-android/src/main/res/drawable/border_explanation.xml
+++ b/briar-android/src/main/res/drawable/border_explanation.xml
@@ -8,6 +8,6 @@
 
 	<stroke
 		android:width="2dp"
-		android:color="@color/briar_text_primary"/>
+		android:color="@color/color_primary"/>
 
 </shape>
\ No newline at end of file
diff --git a/briar-android/src/main/res/drawable/bubble_white.xml b/briar-android/src/main/res/drawable/bubble_white.xml
index 21d0e8e15e..bb79ab2fa7 100644
--- a/briar-android/src/main/res/drawable/bubble_white.xml
+++ b/briar-android/src/main/res/drawable/bubble_white.xml
@@ -14,4 +14,3 @@
 	    android:width="1dp"/>
 
 </shape>
-
diff --git a/briar-android/src/main/res/drawable/contact_connected.xml b/briar-android/src/main/res/drawable/contact_connected.xml
index fc0426085e..a531425099 100644
--- a/briar-android/src/main/res/drawable/contact_connected.xml
+++ b/briar-android/src/main/res/drawable/contact_connected.xml
@@ -1,26 +1,26 @@
 <?xml version="1.0" encoding="utf-8"?>
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-		android:width="24dp"
-		android:height="24dp"
-		android:viewportWidth="24"
-		android:viewportHeight="24"
-		android:alpha="0.56">
+        android:width="24dp"
+        android:height="24dp"
+        android:alpha="0.56"
+        android:viewportHeight="24"
+        android:viewportWidth="24">
 
 	<path
 		android:fillColor="#FF000000"
 		android:pathData="M12,2 C6.48,2,2,6.48,2,12 S6.48,22,12,22 S22,17.52,22,12 S17.52,2,12,2 Z M12,20
-C7.58,20,4,16.42,4,12 S7.58,4,12,4 S20,7.58,20,12 S16.42,20,12,20 Z" />
+C7.58,20,4,16.42,4,12 S7.58,4,12,4 S20,7.58,20,12 S16.42,20,12,20 Z"/>
 	<path
-		android:pathData="M0,0 L24,0 L24,24 L0,24 Z" />
+		android:pathData="M0,0 L24,0 L24,24 L0,24 Z"/>
 	<path
 		android:fillColor="#95d220"
-		android:strokeWidth="0.76779664"
-		android:strokeLineJoin="round"
-		android:strokeLineCap="round"
 		android:pathData="M10.8972,19.9503 C6.5514,19.3493,3.43091,15.2154,4.0625,10.896
 C4.55452,7.53099,7.09451,4.8236,10.394,4.14714
 C14.2569,3.35517,18.1698,5.54347,19.5236,9.25295
 C20.0698,10.7495,20.1616,12.4612,19.777,13.9758
 C19.5457,14.8864,18.8106,16.3388,18.2072,17.0771
-C16.4904,19.1779,13.581,20.3215,10.8973,19.9503 Z" />
-</vector>
\ No newline at end of file
+C16.4904,19.1779,13.581,20.3215,10.8973,19.9503 Z"
+		android:strokeLineCap="round"
+		android:strokeLineJoin="round"
+		android:strokeWidth="0.76779664"/>
+</vector>
diff --git a/briar-android/src/main/res/drawable/contact_disconnected.xml b/briar-android/src/main/res/drawable/contact_disconnected.xml
index 76c1002379..c1a088235a 100644
--- a/briar-android/src/main/res/drawable/contact_disconnected.xml
+++ b/briar-android/src/main/res/drawable/contact_disconnected.xml
@@ -1,5 +1,10 @@
-<vector android:alpha="0.56" android:height="24dp"
-	android:viewportHeight="24.0" android:viewportWidth="24.0"
-	android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-	<path android:fillColor="#FF000000" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zm0,18c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z"/>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:alpha="0.56"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+	<path
+		android:fillColor="#FF000000"
+		android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zm0,18c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/ic_backspace_black.xml b/briar-android/src/main/res/drawable/ic_backspace.xml
similarity index 94%
rename from briar-android/src/main/res/drawable/ic_backspace_black.xml
rename to briar-android/src/main/res/drawable/ic_backspace.xml
index b0224405a6..e4ecae7b16 100644
--- a/briar-android/src/main/res/drawable/ic_backspace_black.xml
+++ b/briar-android/src/main/res/drawable/ic_backspace.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/ic_contact_introduction.xml b/briar-android/src/main/res/drawable/ic_contact_introduction.xml
index 56966678d4..077ce4189f 100644
--- a/briar-android/src/main/res/drawable/ic_contact_introduction.xml
+++ b/briar-android/src/main/res/drawable/ic_contact_introduction.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="48dp"
         android:height="48dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/ic_contacts.xml b/briar-android/src/main/res/drawable/ic_contacts.xml
index cd3e499303..c033a04bef 100644
--- a/briar-android/src/main/res/drawable/ic_contacts.xml
+++ b/briar-android/src/main/res/drawable/ic_contacts.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/ic_emoji_activity.xml b/briar-android/src/main/res/drawable/ic_emoji_activity.xml
index cdec171106..3b74969d39 100644
--- a/briar-android/src/main/res/drawable/ic_emoji_activity.xml
+++ b/briar-android/src/main/res/drawable/ic_emoji_activity.xml
@@ -4,6 +4,6 @@
         android:viewportHeight="24"
         android:viewportWidth="24">
 	<path
-		android:fillColor="#FF2D3E50"
+		android:fillColor="#000000"
 		android:pathData="M7.5,7.5C9.17,5.87 11.29,4.69 13.37,4.18C15.46,3.67 17.5,3.83 18.6,4C19.71,4.15 19.87,4.31 20.03,5.41C20.18,6.5 20.33,8.55 19.82,10.63C19.31,12.71 18.13,14.83 16.5,16.5C14.83,18.13 12.71,19.31 10.63,19.82C8.55,20.33 6.5,20.18 5.41,20.03C4.31,19.87 4.15,19.71 4,18.6C3.83,17.5 3.67,15.46 4.18,13.37C4.69,11.29 5.87,9.17 7.5,7.5M7.3,15.79L8.21,16.7L9.42,15.5L10.63,16.7L11.54,15.79L10.34,14.58L12,12.91L13.21,14.12L14.12,13.21L12.91,12L14.58,10.34L15.79,11.54L16.7,10.63L15.5,9.42L16.7,8.21L15.79,7.3L14.58,8.5L13.37,7.3L12.46,8.21L13.66,9.42L12,11.09L10.79,9.88L9.88,10.79L11.09,12L9.42,13.66L8.21,12.46L7.3,13.37L8.5,14.58L7.3,15.79Z"/>
 </vector>
\ No newline at end of file
diff --git a/briar-android/src/main/res/drawable/ic_emoji_animals_nature.xml b/briar-android/src/main/res/drawable/ic_emoji_animals_nature.xml
index d63c313653..29b9c0c452 100644
--- a/briar-android/src/main/res/drawable/ic_emoji_animals_nature.xml
+++ b/briar-android/src/main/res/drawable/ic_emoji_animals_nature.xml
@@ -4,6 +4,6 @@
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
-		android:fillColor="#FF2D3E50"
+		android:fillColor="#000000"
 		android:pathData="M18.7,12.4c-0.28,-0.16 -0.57,-0.29 -0.86,-0.4 0.29,-0.11 0.58,-0.24 0.86,-0.4 1.92,-1.11 2.99,-3.12 3,-5.19 -1.79,-1.03 -4.07,-1.11 -6,0 -0.28,0.16 -0.54,0.35 -0.78,0.54 0.05,-0.31 0.08,-0.63 0.08,-0.95 0,-2.22 -1.21,-4.15 -3,-5.19C10.21,1.85 9,3.78 9,6c0,0.32 0.03,0.64 0.08,0.95 -0.24,-0.2 -0.5,-0.39 -0.78,-0.55 -1.92,-1.11 -4.2,-1.03 -6,0 0,2.07 1.07,4.08 3,5.19 0.28,0.16 0.57,0.29 0.86,0.4 -0.29,0.11 -0.58,0.24 -0.86,0.4 -1.92,1.11 -2.99,3.12 -3,5.19 1.79,1.03 4.07,1.11 6,0 0.28,-0.16 0.54,-0.35 0.78,-0.54 -0.05,0.32 -0.08,0.64 -0.08,0.96 0,2.22 1.21,4.15 3,5.19 1.79,-1.04 3,-2.97 3,-5.19 0,-0.32 -0.03,-0.64 -0.08,-0.95 0.24,0.2 0.5,0.38 0.78,0.54 1.92,1.11 4.2,1.03 6,0 -0.01,-2.07 -1.08,-4.08 -3,-5.19zM12,16c-2.21,0 -4,-1.79 -4,-4s1.79,-4 4,-4 4,1.79 4,4 -1.79,4 -4,4z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/ic_emoji_emoticons.xml b/briar-android/src/main/res/drawable/ic_emoji_emoticons.xml
index cb97f4e15a..262be839fa 100644
--- a/briar-android/src/main/res/drawable/ic_emoji_emoticons.xml
+++ b/briar-android/src/main/res/drawable/ic_emoji_emoticons.xml
@@ -6,7 +6,7 @@
         android:viewportWidth="24">
 
 	<path
-		android:fillColor="#FF2D3E50"
+		android:fillColor="#000000"
 		android:pathData="M15.4839,3.8557 C14.8224,3.89611,14.9476,5.06823,15.4034,5.47978
 C16.7652,6.93176,17.1508,8.98786,17.299,10.9051
 C17.4081,13.1214,17.2144,15.4608,16.1275,17.4387
diff --git a/briar-android/src/main/res/drawable/ic_emoji_flags.xml b/briar-android/src/main/res/drawable/ic_emoji_flags.xml
index 68976f28c1..c4b56853f8 100644
--- a/briar-android/src/main/res/drawable/ic_emoji_flags.xml
+++ b/briar-android/src/main/res/drawable/ic_emoji_flags.xml
@@ -4,6 +4,6 @@
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
-		android:fillColor="#FF2D3E50"
+		android:fillColor="#000000"
 		android:pathData="M14.4,6L14,4H5v17h2v-7h5.6l0.4,2h7V6z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/ic_emoji_food_drink.xml b/briar-android/src/main/res/drawable/ic_emoji_food_drink.xml
index 958664070d..625a7c12b4 100644
--- a/briar-android/src/main/res/drawable/ic_emoji_food_drink.xml
+++ b/briar-android/src/main/res/drawable/ic_emoji_food_drink.xml
@@ -4,6 +4,6 @@
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
-		android:fillColor="#FF2D3E50"
+		android:fillColor="#000000"
 		android:pathData="M12,6c1.11,0 2,-0.9 2,-2 0,-0.38 -0.1,-0.73 -0.29,-1.03L12,0l-1.71,2.97c-0.19,0.3 -0.29,0.65 -0.29,1.03 0,1.1 0.9,2 2,2zM16.6,15.99l-1.07,-1.07 -1.08,1.07c-1.3,1.3 -3.58,1.31 -4.89,0l-1.07,-1.07 -1.09,1.07C6.75,16.64 5.88,17 4.96,17c-0.73,0 -1.4,-0.23 -1.96,-0.61L3,21c0,0.55 0.45,1 1,1h16c0.55,0 1,-0.45 1,-1v-4.61c-0.56,0.38 -1.23,0.61 -1.96,0.61 -0.92,0 -1.79,-0.36 -2.44,-1.01zM18,9h-5L13,7h-2v2L6,9c-1.66,0 -3,1.34 -3,3v1.54c0,1.08 0.88,1.96 1.96,1.96 0.52,0 1.02,-0.2 1.38,-0.57l2.14,-2.13 2.13,2.13c0.74,0.74 2.03,0.74 2.77,0l2.14,-2.13 2.13,2.13c0.37,0.37 0.86,0.57 1.38,0.57 1.08,0 1.96,-0.88 1.96,-1.96L20.99,12C21,10.34 19.66,9 18,9z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/ic_emoji_objects.xml b/briar-android/src/main/res/drawable/ic_emoji_objects.xml
index 70f0ec6ea5..7b15232cff 100644
--- a/briar-android/src/main/res/drawable/ic_emoji_objects.xml
+++ b/briar-android/src/main/res/drawable/ic_emoji_objects.xml
@@ -4,6 +4,6 @@
         android:viewportHeight="24"
         android:viewportWidth="24">
 	<path
-		android:fillColor="#FF2D3E50"
+		android:fillColor="#000000"
 		android:pathData="M5,16L3,5L8.5,12L12,5L15.5,12L21,5L19,16H5M19,19A1,1 0 0,1 18,20H6A1,1 0 0,1 5,19V18H19V19Z"/>
 </vector>
\ No newline at end of file
diff --git a/briar-android/src/main/res/drawable/ic_emoji_recent.xml b/briar-android/src/main/res/drawable/ic_emoji_recent.xml
index 3f891e2e43..fc0081fc7b 100644
--- a/briar-android/src/main/res/drawable/ic_emoji_recent.xml
+++ b/briar-android/src/main/res/drawable/ic_emoji_recent.xml
@@ -4,6 +4,6 @@
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
-		android:fillColor="#FF2D3E50"
+		android:fillColor="#000000"
 		android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8zM12.5,7H11v6l5.25,3.15 0.75,-1.23 -4.5,-2.67z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/ic_emoji_smiley_people.xml b/briar-android/src/main/res/drawable/ic_emoji_smiley_people.xml
index 12dfdcd2e0..8af1409804 100644
--- a/briar-android/src/main/res/drawable/ic_emoji_smiley_people.xml
+++ b/briar-android/src/main/res/drawable/ic_emoji_smiley_people.xml
@@ -4,6 +4,6 @@
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
-		android:fillColor="#FF2D3E50"
+		android:fillColor="#000000"
 		android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8zM15.5,11c0.83,0 1.5,-0.67 1.5,-1.5S16.33,8 15.5,8 14,8.67 14,9.5s0.67,1.5 1.5,1.5zM8.5,11c0.83,0 1.5,-0.67 1.5,-1.5S9.33,8 8.5,8 7,8.67 7,9.5 7.67,11 8.5,11zM12,17.5c2.33,0 4.31,-1.46 5.11,-3.5L6.89,14c0.8,2.04 2.78,3.5 5.11,3.5z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/ic_emoji_symbols.xml b/briar-android/src/main/res/drawable/ic_emoji_symbols.xml
index 28d8ff8cf5..524912968a 100644
--- a/briar-android/src/main/res/drawable/ic_emoji_symbols.xml
+++ b/briar-android/src/main/res/drawable/ic_emoji_symbols.xml
@@ -4,6 +4,6 @@
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
-		android:fillColor="#FF2D3E50"
+		android:fillColor="#000000"
 		android:pathData="M12,7.77L18.39,18H5.61L12,7.77M12,4L2,20h20L12,4z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/ic_emoji_toggle.xml b/briar-android/src/main/res/drawable/ic_emoji_toggle.xml
index b497d47fd3..32324f57b5 100644
--- a/briar-android/src/main/res/drawable/ic_emoji_toggle.xml
+++ b/briar-android/src/main/res/drawable/ic_emoji_toggle.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/ic_emoji_travel_places.xml b/briar-android/src/main/res/drawable/ic_emoji_travel_places.xml
index a0534fbbfc..c52b6076fc 100644
--- a/briar-android/src/main/res/drawable/ic_emoji_travel_places.xml
+++ b/briar-android/src/main/res/drawable/ic_emoji_travel_places.xml
@@ -4,6 +4,6 @@
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
-		android:fillColor="#FF2D3E50"
+		android:fillColor="#000000"
 		android:pathData="M18.92,6.01C18.72,5.42 18.16,5 17.5,5h-11c-0.66,0 -1.21,0.42 -1.42,1.01L3,12v8c0,0.55 0.45,1 1,1h1c0.55,0 1,-0.45 1,-1v-1h12v1c0,0.55 0.45,1 1,1h1c0.55,0 1,-0.45 1,-1v-8l-2.08,-5.99zM6.5,16c-0.83,0 -1.5,-0.67 -1.5,-1.5S5.67,13 6.5,13s1.5,0.67 1.5,1.5S7.33,16 6.5,16zM17.5,16c-0.83,0 -1.5,-0.67 -1.5,-1.5s0.67,-1.5 1.5,-1.5 1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5zM5,11l1.5,-4.5h11L19,11L5,11z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/ic_forums_black_24dp.xml b/briar-android/src/main/res/drawable/ic_forums_black_24dp.xml
index 039f929ddb..5bb4d8ebce 100644
--- a/briar-android/src/main/res/drawable/ic_forums_black_24dp.xml
+++ b/briar-android/src/main/res/drawable/ic_forums_black_24dp.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/ic_group.xml b/briar-android/src/main/res/drawable/ic_group.xml
index d7e92099ba..b751690323 100644
--- a/briar-android/src/main/res/drawable/ic_group.xml
+++ b/briar-android/src/main/res/drawable/ic_group.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/ic_info.xml b/briar-android/src/main/res/drawable/ic_info.xml
deleted file mode 100644
index 112cabcada..0000000000
--- a/briar-android/src/main/res/drawable/ic_info.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:alpha="0.56"
-        android:viewportHeight="24.0"
-        android:viewportWidth="24.0">
-	<path
-		android:fillColor="#000000"
-		android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z"/>
-</vector>
diff --git a/briar-android/src/main/res/drawable/ic_keyboard_black.xml b/briar-android/src/main/res/drawable/ic_keyboard.xml
similarity index 95%
rename from briar-android/src/main/res/drawable/ic_keyboard_black.xml
rename to briar-android/src/main/res/drawable/ic_keyboard.xml
index f1f26791ab..dfcb91016b 100644
--- a/briar-android/src/main/res/drawable/ic_keyboard_black.xml
+++ b/briar-android/src/main/res/drawable/ic_keyboard.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/ic_our_identity_black.xml b/briar-android/src/main/res/drawable/ic_our_identity.xml
similarity index 95%
rename from briar-android/src/main/res/drawable/ic_our_identity_black.xml
rename to briar-android/src/main/res/drawable/ic_our_identity.xml
index af997ec0c0..f8e38d95b4 100644
--- a/briar-android/src/main/res/drawable/ic_our_identity_black.xml
+++ b/briar-android/src/main/res/drawable/ic_our_identity.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="16dp"
         android:height="16dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/ic_repeat.xml b/briar-android/src/main/res/drawable/ic_repeat.xml
index 115dbda813..a7771172a0 100644
--- a/briar-android/src/main/res/drawable/ic_repeat.xml
+++ b/briar-android/src/main/res/drawable/ic_repeat.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/ic_settings_black_24dp.xml b/briar-android/src/main/res/drawable/ic_settings_black_24dp.xml
index ddb38f6d6d..11f1920e25 100644
--- a/briar-android/src/main/res/drawable/ic_settings_black_24dp.xml
+++ b/briar-android/src/main/res/drawable/ic_settings_black_24dp.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/ic_signout_black_24dp.xml b/briar-android/src/main/res/drawable/ic_signout_black_24dp.xml
index a61a3158ad..05569dbdf3 100644
--- a/briar-android/src/main/res/drawable/ic_signout_black_24dp.xml
+++ b/briar-android/src/main/res/drawable/ic_signout_black_24dp.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/ic_visibility.xml b/briar-android/src/main/res/drawable/ic_visibility.xml
index 146e495349..8039549569 100644
--- a/briar-android/src/main/res/drawable/ic_visibility.xml
+++ b/briar-android/src/main/res/drawable/ic_visibility.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.54"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/ic_visibility_off.xml b/briar-android/src/main/res/drawable/ic_visibility_off.xml
index 80bea183c3..681832c9a3 100644
--- a/briar-android/src/main/res/drawable/ic_visibility_off.xml
+++ b/briar-android/src/main/res/drawable/ic_visibility_off.xml
@@ -1,7 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:alpha="0.53"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/level_indicator_circle.xml b/briar-android/src/main/res/drawable/level_indicator_circle.xml
index 265ff997f9..4b48691119 100644
--- a/briar-android/src/main/res/drawable/level_indicator_circle.xml
+++ b/briar-android/src/main/res/drawable/level_indicator_circle.xml
@@ -1,5 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+<shape
+	xmlns:android="http://schemas.android.com/apk/res/android"
+	android:shape="oval">
 
 	<solid android:color="@color/window_background"/>
 
diff --git a/briar-android/src/main/res/drawable/list_item_thread_background.xml b/briar-android/src/main/res/drawable/list_item_thread_background.xml
index c47b28c765..40891618b4 100644
--- a/briar-android/src/main/res/drawable/list_item_thread_background.xml
+++ b/briar-android/src/main/res/drawable/list_item_thread_background.xml
@@ -3,9 +3,7 @@
 	xmlns:android="http://schemas.android.com/apk/res/android">
 
 	<item
-		android:drawable="@color/forum_cell_highlight"
+		android:drawable="@color/thread_item_highlight"
 		android:state_activated="true"/>
-	<item
-		android:drawable="@color/window_background"/>
 
 </selector>
\ No newline at end of file
diff --git a/briar-android/src/main/res/drawable/message_delivered.xml b/briar-android/src/main/res/drawable/message_delivered.xml
index 414c707b63..8853562686 100644
--- a/briar-android/src/main/res/drawable/message_delivered.xml
+++ b/briar-android/src/main/res/drawable/message_delivered.xml
@@ -1,5 +1,9 @@
-<vector android:alpha="0.56" android:height="16dp"
-	android:viewportHeight="24.0" android:viewportWidth="24.0"
-	android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
-	<path android:fillColor="#FF000000" android:pathData="M18,7l-1.41,-1.41 -6.34,6.34 1.41,1.41L18,7zm4.24,-1.41L11.66,16.17 7.48,12l-1.41,1.41L11.66,19l12,-12 -1.42,-1.41zM0.41,13.41L6,19l1.41,-1.41L1.83,12 0.41,13.41z"/>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="16dp"
+        android:height="16dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+	<path
+		android:fillColor="#FF000000"
+		android:pathData="M18,7l-1.41,-1.41 -6.34,6.34 1.41,1.41L18,7zm4.24,-1.41L11.66,16.17 7.48,12l-1.41,1.41L11.66,19l12,-12 -1.42,-1.41zM0.41,13.41L6,19l1.41,-1.41L1.83,12 0.41,13.41z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/message_sent.xml b/briar-android/src/main/res/drawable/message_sent.xml
index 37dd9ca84f..a205b178da 100644
--- a/briar-android/src/main/res/drawable/message_sent.xml
+++ b/briar-android/src/main/res/drawable/message_sent.xml
@@ -1,5 +1,9 @@
-<vector android:alpha="0.56" android:height="16dp"
-	android:viewportHeight="24.0" android:viewportWidth="24.0"
-	android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
-	<path android:fillColor="#FF000000" android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="16dp"
+        android:height="16dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+	<path
+		android:fillColor="#FF000000"
+		android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/message_stored.xml b/briar-android/src/main/res/drawable/message_stored.xml
index d687ff5207..f1a1a31b08 100644
--- a/briar-android/src/main/res/drawable/message_stored.xml
+++ b/briar-android/src/main/res/drawable/message_stored.xml
@@ -1,5 +1,9 @@
-<vector android:alpha="0.56" android:height="16dp"
-	android:viewportHeight="24.0" android:viewportWidth="24.0"
-	android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
-	<path android:fillAlpha=".9" android:fillColor="#FF000000" android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8zM12.5,7H11v6l5.25,3.15 0.75,-1.23 -4.5,-2.67z"/>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="16dp"
+        android:height="16dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+	<path
+		android:fillColor="#FF000000"
+		android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8zM12.5,7H11v6l5.25,3.15 0.75,-1.23 -4.5,-2.67z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/social_send_now_white.xml b/briar-android/src/main/res/drawable/social_send_now_white.xml
index 29d5069d50..9c8a759a34 100644
--- a/briar-android/src/main/res/drawable/social_send_now_white.xml
+++ b/briar-android/src/main/res/drawable/social_send_now_white.xml
@@ -1,6 +1,6 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="38dp"
-        android:height="38dp"
+        android:width="42dp"
+        android:height="42dp"
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
 	<path
diff --git a/briar-android/src/main/res/drawable/transport_bt.xml b/briar-android/src/main/res/drawable/transport_bt.xml
index be80561b54..2a8774c8c4 100644
--- a/briar-android/src/main/res/drawable/transport_bt.xml
+++ b/briar-android/src/main/res/drawable/transport_bt.xml
@@ -1,5 +1,9 @@
-<vector android:alpha="0.54" android:height="24dp"
-	android:viewportHeight="24.0" android:viewportWidth="24.0"
-	android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-	<path android:fillColor="#FF000000" android:pathData="M17.71,7.71L12,2h-1v7.59L6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 11,14.41V22h1l5.71,-5.71 -4.3,-4.29 4.3,-4.29zM13,5.83l1.88,1.88L13,9.59V5.83zm1.88,10.46L13,18.17v-3.76l1.88,1.88z"/>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+	<path
+		android:fillColor="#FF000000"
+		android:pathData="M17.71,7.71L12,2h-1v7.59L6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 11,14.41V22h1l5.71,-5.71 -4.3,-4.29 4.3,-4.29zM13,5.83l1.88,1.88L13,9.59V5.83zm1.88,10.46L13,18.17v-3.76l1.88,1.88z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/transport_lan.xml b/briar-android/src/main/res/drawable/transport_lan.xml
index ad12a96252..60844d4d4d 100644
--- a/briar-android/src/main/res/drawable/transport_lan.xml
+++ b/briar-android/src/main/res/drawable/transport_lan.xml
@@ -1,6 +1,13 @@
-<vector android:alpha="0.54" android:height="24dp"
-	android:viewportHeight="24.0" android:viewportWidth="24.0"
-	android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-	<path android:fillAlpha=".3" android:fillColor="#FF000000" android:pathData="M12.01,21.49L23.64,7c-0.45,-0.34 -4.93,-4 -11.64,-4C5.28,3 0.81,6.66 0.36,7l11.63,14.49 0.01,0.01 0.01,-0.01z"/>
-	<path android:fillColor="#FF000000" android:pathData="M3.53,10.95l8.46,10.54 0.01,0.01 0.01,-0.01 8.46,-10.54C20.04,10.62 16.81,8 12,8c-4.81,0 -8.04,2.62 -8.47,2.95z"/>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+	<path
+		android:fillAlpha=".3"
+		android:fillColor="#FF000000"
+		android:pathData="M12.01,21.49L23.64,7c-0.45,-0.34 -4.93,-4 -11.64,-4C5.28,3 0.81,6.66 0.36,7l11.63,14.49 0.01,0.01 0.01,-0.01z"/>
+	<path
+		android:fillColor="#FF000000"
+		android:pathData="M3.53,10.95l8.46,10.54 0.01,0.01 0.01,-0.01 8.46,-10.54C20.04,10.62 16.81,8 12,8c-4.81,0 -8.04,2.62 -8.47,2.95z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/transport_tor.xml b/briar-android/src/main/res/drawable/transport_tor.xml
index 9084ddbad1..ce8f0060f3 100644
--- a/briar-android/src/main/res/drawable/transport_tor.xml
+++ b/briar-android/src/main/res/drawable/transport_tor.xml
@@ -1,5 +1,9 @@
-<vector android:alpha="0.54" android:height="24dp"
-	android:viewportHeight="24.0" android:viewportWidth="24.0"
-	android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-	<path android:fillColor="#FF000000" android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zm6.93,6h-2.95c-0.32,-1.25 -0.78,-2.45 -1.38,-3.56 1.84,0.63 3.37,1.91 4.33,3.56zM12,4.04c0.83,1.2 1.48,2.53 1.91,3.96h-3.82c0.43,-1.43 1.08,-2.76 1.91,-3.96zM4.26,14C4.1,13.36 4,12.69 4,12s0.1,-1.36 0.26,-2h3.38c-0.08,0.66 -0.14,1.32 -0.14,2 0,0.68 0.06,1.34 0.14,2H4.26zm0.82,2h2.95c0.32,1.25 0.78,2.45 1.38,3.56 -1.84,-0.63 -3.37,-1.9 -4.33,-3.56zm2.95,-8H5.08c0.96,-1.66 2.49,-2.93 4.33,-3.56C8.81,5.55 8.35,6.75 8.03,8zM12,19.96c-0.83,-1.2 -1.48,-2.53 -1.91,-3.96h3.82c-0.43,1.43 -1.08,2.76 -1.91,3.96zM14.34,14H9.66c-0.09,-0.66 -0.16,-1.32 -0.16,-2 0,-0.68 0.07,-1.35 0.16,-2h4.68c0.09,0.65 0.16,1.32 0.16,2 0,0.68 -0.07,1.34 -0.16,2zm0.25,5.56c0.6,-1.11 1.06,-2.31 1.38,-3.56h2.95c-0.96,1.65 -2.49,2.93 -4.33,3.56zM16.36,14c0.08,-0.66 0.14,-1.32 0.14,-2 0,-0.68 -0.06,-1.34 -0.14,-2h3.38c0.16,0.64 0.26,1.31 0.26,2s-0.1,1.36 -0.26,2h-3.38z"/>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+	<path
+		android:fillColor="#FF000000"
+		android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zm6.93,6h-2.95c-0.32,-1.25 -0.78,-2.45 -1.38,-3.56 1.84,0.63 3.37,1.91 4.33,3.56zM12,4.04c0.83,1.2 1.48,2.53 1.91,3.96h-3.82c0.43,-1.43 1.08,-2.76 1.91,-3.96zM4.26,14C4.1,13.36 4,12.69 4,12s0.1,-1.36 0.26,-2h3.38c-0.08,0.66 -0.14,1.32 -0.14,2 0,0.68 0.06,1.34 0.14,2H4.26zm0.82,2h2.95c0.32,1.25 0.78,2.45 1.38,3.56 -1.84,-0.63 -3.37,-1.9 -4.33,-3.56zm2.95,-8H5.08c0.96,-1.66 2.49,-2.93 4.33,-3.56C8.81,5.55 8.35,6.75 8.03,8zM12,19.96c-0.83,-1.2 -1.48,-2.53 -1.91,-3.96h3.82c-0.43,1.43 -1.08,2.76 -1.91,3.96zM14.34,14H9.66c-0.09,-0.66 -0.16,-1.32 -0.16,-2 0,-0.68 0.07,-1.35 0.16,-2h4.68c0.09,0.65 0.16,1.32 0.16,2 0,0.68 -0.07,1.34 -0.16,2zm0.25,5.56c0.6,-1.11 1.06,-2.31 1.38,-3.56h2.95c-0.96,1.65 -2.49,2.93 -4.33,3.56zM16.36,14c0.08,-0.66 0.14,-1.32 0.14,-2 0,-0.68 -0.06,-1.34 -0.14,-2h3.38c0.16,0.64 0.26,1.31 0.26,2s-0.1,1.36 -0.26,2h-3.38z"/>
 </vector>
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 2c98d29748..c1f5cb114b 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
@@ -46,7 +46,6 @@
 
 		<TextView
 			android:id="@+id/explanationText"
-			style="@style/BriarTextBody"
 			android:layout_width="0dp"
 			android:layout_height="wrap_content"
 			android:layout_weight="1"
diff --git a/briar-android/src/main/res/layout/activity_conversation.xml b/briar-android/src/main/res/layout/activity_conversation.xml
index 1e624c91d6..6208ec5fd7 100644
--- a/briar-android/src/main/res/layout/activity_conversation.xml
+++ b/briar-android/src/main/res/layout/activity_conversation.xml
@@ -27,6 +27,7 @@
 				<org.thoughtcrime.securesms.components.emoji.EmojiTextView
 					android:id="@+id/contactName"
 					style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"
+					android:textColor="@color/action_bar_text"
 					android:layout_width="wrap_content"
 					android:layout_height="match_parent"
 					android:layout_marginLeft="@dimen/margin_medium"
@@ -44,15 +45,12 @@
 		android:id="@+id/conversationView"
 		android:layout_width="match_parent"
 		android:layout_height="0dp"
-		android:layout_weight="1"
-		android:background="@color/window_background"/>
+		android:layout_weight="1"/>
 
 	<org.briarproject.briar.android.view.TextInputView
 		android:id="@+id/text_input_container"
 		android:layout_width="match_parent"
 		android:layout_height="wrap_content"
-		android:background="@color/button_bar_background"
-		android:elevation="@dimen/margin_tiny"
 		app:hint="@string/message_hint"/>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/briar-android/src/main/res/layout/activity_dev_report.xml b/briar-android/src/main/res/layout/activity_dev_report.xml
index fc9e649cec..ab17da50e4 100644
--- a/briar-android/src/main/res/layout/activity_dev_report.xml
+++ b/briar-android/src/main/res/layout/activity_dev_report.xml
@@ -6,9 +6,11 @@
 	android:layout_height="match_parent">
 
 	<LinearLayout
+		android:id="@+id/report_form"
 		android:layout_width="match_parent"
 		android:layout_height="match_parent"
 		android:orientation="vertical"
+		android:visibility="visible"
 		tools:context=".android.reporting.DevReportActivity">
 
 		<include layout="@layout/toolbar"/>
@@ -112,11 +114,10 @@
 		android:id="@+id/request_report"
 		android:layout_width="match_parent"
 		android:layout_height="match_parent"
-		android:background="@color/window_background"
 		android:clickable="true"
 		android:gravity="center"
 		android:padding="@dimen/margin_large"
-		android:visibility="gone">
+		android:visibility="invisible">
 
 		<TextView
 			android:id="@+id/crashed"
@@ -125,7 +126,7 @@
 			android:layout_marginTop="@dimen/margin_large"
 			android:gravity="center"
 			android:text="@string/briar_crashed"
-			android:textColor="@color/briar_text_secondary"
+			android:textColor="?android:attr/textColorSecondary"
 			android:textSize="@dimen/text_size_large"/>
 
 		<TextView
@@ -136,7 +137,7 @@
 			android:layout_marginTop="@dimen/margin_large"
 			android:gravity="center"
 			android:text="@string/not_your_fault"
-			android:textColor="@color/briar_text_secondary"
+			android:textColor="?android:attr/textColorSecondary"
 			android:textSize="@dimen/text_size_large"/>
 
 		<TextView
@@ -147,7 +148,7 @@
 			android:layout_marginTop="@dimen/margin_large"
 			android:gravity="center"
 			android:text="@string/please_send_report"
-			android:textColor="@color/briar_text_secondary"
+			android:textColor="?android:attr/textColorSecondary"
 			android:textSize="@dimen/text_size_large"/>
 
 		<TextView
@@ -159,7 +160,7 @@
 			android:layout_marginTop="@dimen/margin_large"
 			android:gravity="center"
 			android:text="@string/report_is_encrypted"
-			android:textColor="@color/briar_text_secondary"
+			android:textColor="?android:attr/textColorSecondary"
 			android:textSize="@dimen/text_size_large"/>
 
 		<Button
diff --git a/briar-android/src/main/res/layout/activity_nav_drawer.xml b/briar-android/src/main/res/layout/activity_nav_drawer.xml
index e13728956f..ec6f40fc0d 100644
--- a/briar-android/src/main/res/layout/activity_nav_drawer.xml
+++ b/briar-android/src/main/res/layout/activity_nav_drawer.xml
@@ -50,8 +50,7 @@
 		<FrameLayout
 			android:id="@+id/fragmentContainer"
 			android:layout_width="match_parent"
-			android:layout_height="match_parent"
-			android:background="@color/window_background"/>
+			android:layout_height="match_parent"/>
 
 	</LinearLayout>
 
diff --git a/briar-android/src/main/res/layout/activity_open_database.xml b/briar-android/src/main/res/layout/activity_open_database.xml
index d73fc0da88..3efce6d655 100644
--- a/briar-android/src/main/res/layout/activity_open_database.xml
+++ b/briar-android/src/main/res/layout/activity_open_database.xml
@@ -12,7 +12,7 @@
 		android:layout_height="128dp"
 		android:scaleType="center"
 		android:src="@drawable/startup_lock"
-		android:tint="@color/briar_primary"
+		android:tint="@color/briar_accent"
 		app:layout_constraintBottom_toTopOf="@+id/textView"
 		app:layout_constraintEnd_toEndOf="parent"
 		app:layout_constraintStart_toStartOf="parent"
diff --git a/briar-android/src/main/res/layout/activity_password.xml b/briar-android/src/main/res/layout/activity_password.xml
index 15e6d94a1d..022d31c4ca 100644
--- a/briar-android/src/main/res/layout/activity_password.xml
+++ b/briar-android/src/main/res/layout/activity_password.xml
@@ -37,7 +37,7 @@
 
 		<Button
 			android:id="@+id/btn_sign_in"
-			style="@style/BriarButton.Default"
+			style="@style/BriarButton"
 			android:layout_width="match_parent"
 			android:layout_height="wrap_content"
 			android:layout_below="@id/password_layout"
@@ -54,7 +54,6 @@
 			android:visibility="invisible"/>
 
 		<TextView
-			style="@style/BriarTextBody"
 			android:layout_width="wrap_content"
 			android:layout_height="wrap_content"
 			android:layout_below="@id/btn_sign_in"
diff --git a/briar-android/src/main/res/layout/activity_sharing_status.xml b/briar-android/src/main/res/layout/activity_sharing_status.xml
index 359c87569b..2e808c62f5 100644
--- a/briar-android/src/main/res/layout/activity_sharing_status.xml
+++ b/briar-android/src/main/res/layout/activity_sharing_status.xml
@@ -1,30 +1,56 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout
+<android.support.constraint.ConstraintLayout
+	android:id="@+id/linearLayout"
 	xmlns:android="http://schemas.android.com/apk/res/android"
 	xmlns:app="http://schemas.android.com/apk/res-auto"
 	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
-	android:layout_height="match_parent"
-	android:orientation="vertical">
+	android:layout_height="match_parent">
+
+	<android.support.v7.widget.AppCompatImageView
+		android:id="@+id/infoView"
+		android:layout_width="wrap_content"
+		android:layout_height="0dp"
+		android:layout_marginLeft="8dp"
+		android:layout_marginStart="8dp"
+		android:elevation="@dimen/margin_tiny"
+		android:src="@drawable/ic_info_white"
+		app:layout_constraintBottom_toTopOf="@+id/divider"
+		app:layout_constraintStart_toStartOf="parent"
+		app:layout_constraintTop_toTopOf="parent"
+		app:tint="?attr/colorControlNormal"/>
 
 	<TextView
 		android:id="@+id/info"
-		android:layout_width="match_parent"
+		android:layout_width="0dp"
 		android:layout_height="wrap_content"
-		android:drawableLeft="@drawable/ic_info"
-		android:drawablePadding="@dimen/margin_medium"
+		android:elevation="@dimen/margin_tiny"
 		android:padding="@dimen/margin_medium"
 		android:textColor="?android:textColorSecondary"
 		android:textSize="@dimen/text_size_tiny"
+		app:layout_constraintBottom_toTopOf="@+id/divider"
+		app:layout_constraintEnd_toEndOf="parent"
+		app:layout_constraintStart_toEndOf="@+id/infoView"
+		app:layout_constraintTop_toTopOf="parent"
 		tools:text="@string/sharing_status_forum"/>
 
-	<View style="@style/Divider.Horizontal"/>
+	<View
+		android:id="@+id/divider"
+		style="@style/Divider.Horizontal"
+		android:elevation="@dimen/margin_tiny"
+		app:layout_constraintBottom_toTopOf="@+id/list"
+		app:layout_constraintStart_toStartOf="@+id/info"
+		app:layout_constraintTop_toBottomOf="@+id/info"/>
 
 	<org.briarproject.briar.android.view.BriarRecyclerView
 		android:id="@+id/list"
-		android:layout_width="match_parent"
-		android:layout_height="match_parent"
+		android:layout_width="0dp"
+		android:layout_height="0dp"
+		app:layout_constraintBottom_toBottomOf="parent"
+		app:layout_constraintEnd_toEndOf="parent"
+		app:layout_constraintStart_toStartOf="parent"
+		app:layout_constraintTop_toBottomOf="@+id/divider"
 		app:scrollToEnd="false"
-		tools:listitem="@layout/list_item_contact"/>
+		tools:listitem="@layout/list_item_contact_small"/>
 
-</LinearLayout>
\ No newline at end of file
+</android.support.constraint.ConstraintLayout>
\ No newline at end of file
diff --git a/briar-android/src/main/res/layout/activity_test_data.xml b/briar-android/src/main/res/layout/activity_test_data.xml
index 18ce6ac856..33a659c86b 100644
--- a/briar-android/src/main/res/layout/activity_test_data.xml
+++ b/briar-android/src/main/res/layout/activity_test_data.xml
@@ -2,24 +2,27 @@
 <android.support.constraint.ConstraintLayout
 	xmlns:android="http://schemas.android.com/apk/res/android"
 	xmlns:app="http://schemas.android.com/apk/res-auto"
+	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
 	android:layout_height="match_parent">
 
 	<ScrollView
 		android:layout_width="match_parent"
 		android:layout_height="0dp"
-		android:padding="8dp">
+		android:padding="8dp"
+		tools:ignore="HardcodedText">
 
 		<android.support.constraint.ConstraintLayout
 			xmlns:android="http://schemas.android.com/apk/res/android"
 			xmlns:app="http://schemas.android.com/apk/res-auto"
 			android:layout_width="match_parent"
-			android:layout_height="match_parent">
+			android:layout_height="wrap_content">
 
 			<TextView
 				android:id="@+id/textViewContacts"
-				android:layout_width="wrap_content"
+				android:layout_width="match_parent"
 				android:layout_height="wrap_content"
+				android:layout_margin="@dimen/margin_medium"
 				android:text="Number of contacts"
 				app:layout_constraintStart_toStartOf="parent"
 				app:layout_constraintTop_toTopOf="parent"/>
@@ -46,8 +49,9 @@
 
 			<TextView
 				android:id="@+id/textViewMessages"
-				android:layout_width="wrap_content"
+				android:layout_width="match_parent"
 				android:layout_height="wrap_content"
+				android:layout_margin="@dimen/margin_medium"
 				android:text="Number of messages per contact"
 				app:layout_constraintStart_toStartOf="parent"
 				app:layout_constraintTop_toBottomOf="@+id/seekBarContacts"/>
@@ -74,8 +78,9 @@
 
 			<TextView
 				android:id="@+id/textViewBlogPosts"
-				android:layout_width="wrap_content"
+				android:layout_width="match_parent"
 				android:layout_height="wrap_content"
+				android:layout_margin="@dimen/margin_medium"
 				android:text="Number of blog posts"
 				app:layout_constraintStart_toStartOf="parent"
 				app:layout_constraintTop_toBottomOf="@+id/seekBarMessages"/>
@@ -102,8 +107,9 @@
 
 			<TextView
 				android:id="@+id/textViewForums"
-				android:layout_width="wrap_content"
+				android:layout_width="match_parent"
 				android:layout_height="wrap_content"
+				android:layout_margin="@dimen/margin_medium"
 				android:text="Number of forums"
 				app:layout_constraintStart_toStartOf="parent"
 				app:layout_constraintTop_toBottomOf="@+id/seekBarBlogPosts"/>
@@ -130,8 +136,9 @@
 
 			<TextView
 				android:id="@+id/textViewForumMessages"
-				android:layout_width="wrap_content"
+				android:layout_width="match_parent"
 				android:layout_height="wrap_content"
+				android:layout_margin="@dimen/margin_medium"
 				android:text="Number of forum messages"
 				app:layout_constraintStart_toStartOf="parent"
 				app:layout_constraintTop_toBottomOf="@+id/seekBarForums"/>
@@ -158,6 +165,7 @@
 
 			<Button
 				android:id="@+id/buttonCreateTestData"
+				style="@style/BriarButton"
 				android:layout_width="wrap_content"
 				android:layout_height="wrap_content"
 				android:layout_margin="10dp"
diff --git a/briar-android/src/main/res/layout/activity_threaded_conversation.xml b/briar-android/src/main/res/layout/activity_threaded_conversation.xml
index 0252bbec95..752b9f4912 100644
--- a/briar-android/src/main/res/layout/activity_threaded_conversation.xml
+++ b/briar-android/src/main/res/layout/activity_threaded_conversation.xml
@@ -42,8 +42,6 @@
 		android:id="@+id/text_input_container"
 		android:layout_width="match_parent"
 		android:layout_height="wrap_content"
-		android:background="@color/button_bar_background"
-		android:elevation="@dimen/margin_tiny"
 		app:hint="@string/forum_new_message_hint"/>
 
 </LinearLayout>
diff --git a/briar-android/src/main/res/layout/author_view.xml b/briar-android/src/main/res/layout/author_view.xml
index 5812a7f43b..c606a82879 100644
--- a/briar-android/src/main/res/layout/author_view.xml
+++ b/briar-android/src/main/res/layout/author_view.xml
@@ -32,7 +32,7 @@
 		android:layout_height="wrap_content"
 		android:layout_toEndOf="@+id/avatar"
 		android:layout_toRightOf="@+id/avatar"
-		android:textColor="@color/briar_text_primary"
+		android:textColor="?android:attr/textColorPrimary"
 		android:textSize="@dimen/text_size_small"
 		tools:text="Author Name"/>
 
@@ -55,7 +55,7 @@
 		android:layout_toEndOf="@+id/avatar"
 		android:layout_toRightOf="@+id/avatar"
 		android:gravity="bottom"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_tiny"
 		tools:text="yesterday"/>
 
diff --git a/briar-android/src/main/res/layout/emoji_drawer.xml b/briar-android/src/main/res/layout/emoji_drawer.xml
index 37f3723339..28f2cfa492 100644
--- a/briar-android/src/main/res/layout/emoji_drawer.xml
+++ b/briar-android/src/main/res/layout/emoji_drawer.xml
@@ -9,7 +9,6 @@
 	<LinearLayout
 		android:layout_width="match_parent"
 		android:layout_height="40dp"
-		android:background="@color/emoji_pager_background"
 		android:orientation="horizontal">
 
 		<com.astuetz.PagerSlidingTabStrip
@@ -17,7 +16,7 @@
 			android:layout_width="0dp"
 			android:layout_height="match_parent"
 			android:layout_weight="1"
-			app:pstsIndicatorColor="@color/briar_accent"
+			app:pstsIndicatorColor="@color/color_primary"
 			app:pstsIndicatorHeight="@dimen/emoji_drawer_indicator_height"
 			app:pstsShouldExpand="true"
 			app:pstsTabPaddingLeftRight="@dimen/emoji_drawer_left_right_padding"/>
@@ -33,10 +32,11 @@
 			android:id="@+id/backspace"
 			android:layout_width="wrap_content"
 			android:layout_height="match_parent"
-			android:background="@color/emoji_pager_background"
+			android:background="?attr/selectableItemBackground"
 			android:paddingLeft="@dimen/margin_medium"
 			android:paddingRight="@dimen/margin_medium"
-			android:src="@drawable/ic_backspace_black"/>
+			android:src="@drawable/ic_backspace"
+			app:tint="?attr/colorControlNormal"/>
 
 	</LinearLayout>
 
@@ -47,7 +47,6 @@
 		android:id="@+id/emoji_pager"
 		android:layout_width="match_parent"
 		android:layout_height="match_parent"
-		android:background="@color/window_background"
 		android:visibility="visible"/>
 
 </merge>
diff --git a/briar-android/src/main/res/layout/fragment_blog.xml b/briar-android/src/main/res/layout/fragment_blog.xml
index 1a1c64c045..df5e36a9e7 100644
--- a/briar-android/src/main/res/layout/fragment_blog.xml
+++ b/briar-android/src/main/res/layout/fragment_blog.xml
@@ -6,6 +6,5 @@
 	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
 	android:layout_height="match_parent"
-	android:background="@color/window_background"
 	app:scrollToEnd="false"
 	tools:context=".android.blog.BlogActivity"/>
diff --git a/briar-android/src/main/res/layout/fragment_blog_post.xml b/briar-android/src/main/res/layout/fragment_blog_post.xml
index 228e5dd695..3fdce0b1c5 100644
--- a/briar-android/src/main/res/layout/fragment_blog_post.xml
+++ b/briar-android/src/main/res/layout/fragment_blog_post.xml
@@ -2,8 +2,7 @@
 <ScrollView
 	xmlns:android="http://schemas.android.com/apk/res/android"
 	android:layout_width="match_parent"
-	android:layout_height="match_parent"
-	android:background="@color/window_background">
+	android:layout_height="match_parent">
 
 	<FrameLayout
 		android:layout_width="wrap_content"
diff --git a/briar-android/src/main/res/layout/fragment_error.xml b/briar-android/src/main/res/layout/fragment_error.xml
index 4870bf8ee4..71b521cd1a 100644
--- a/briar-android/src/main/res/layout/fragment_error.xml
+++ b/briar-android/src/main/res/layout/fragment_error.xml
@@ -14,7 +14,7 @@
 		android:layout_marginStart="8dp"
 		android:layout_marginTop="8dp"
 		android:src="@drawable/alerts_and_states_error"
-		android:tint="?colorControlNormal"
+		android:tint="?attr/colorControlNormal"
 		app:layout_constraintEnd_toEndOf="parent"
 		app:layout_constraintStart_toStartOf="parent"
 		app:layout_constraintTop_toTopOf="parent"
diff --git a/briar-android/src/main/res/layout/fragment_keyagreement_id.xml b/briar-android/src/main/res/layout/fragment_keyagreement_id.xml
index 8653617ee4..c8f9b0999b 100644
--- a/briar-android/src/main/res/layout/fragment_keyagreement_id.xml
+++ b/briar-android/src/main/res/layout/fragment_keyagreement_id.xml
@@ -21,6 +21,7 @@
 			android:paddingBottom="@dimen/margin_large"
 			android:scaleType="fitCenter"
 			android:src="@drawable/qr_code_intro"
+			android:tint="@color/color_primary"
 			app:layout_constraintBottom_toTopOf="@id/explanationImage"
 			app:layout_constraintEnd_toEndOf="parent"
 			app:layout_constraintStart_toStartOf="parent"
@@ -44,7 +45,6 @@
 
 		<TextView
 			android:id="@+id/explanationText"
-			style="@style/BriarTextBody"
 			android:layout_width="wrap_content"
 			android:layout_height="wrap_content"
 			android:padding="@dimen/margin_large"
diff --git a/briar-android/src/main/res/layout/fragment_link_dialog.xml b/briar-android/src/main/res/layout/fragment_link_dialog.xml
index 307b7110ee..328185e424 100644
--- a/briar-android/src/main/res/layout/fragment_link_dialog.xml
+++ b/briar-android/src/main/res/layout/fragment_link_dialog.xml
@@ -16,7 +16,7 @@
 			android:layout_width="match_parent"
 			android:layout_height="wrap_content"
 			android:text="@string/link_warning_title"
-			android:textColor="@color/briar_primary"
+			android:textColor="?android:attr/textColorPrimary"
 			android:textSize="@dimen/text_size_large"
 			android:textStyle="bold"/>
 
@@ -25,7 +25,7 @@
 			android:layout_height="wrap_content"
 			android:layout_marginTop="@dimen/margin_large"
 			android:text="@string/link_warning_intro"
-			android:textColor="@color/briar_primary"
+			android:textColor="?android:attr/textColorPrimary"
 			android:textSize="@dimen/text_size_medium"/>
 
 		<TextView
@@ -42,7 +42,7 @@
 			android:layout_height="wrap_content"
 			android:layout_marginTop="@dimen/margin_large"
 			android:text="@string/link_warning_text"
-			android:textColor="@color/briar_primary"
+			android:textColor="?android:attr/textColorPrimary"
 			android:textSize="@dimen/text_size_medium"/>
 
 	</LinearLayout>
diff --git a/briar-android/src/main/res/layout/fragment_reblog.xml b/briar-android/src/main/res/layout/fragment_reblog.xml
index 1d5f553e20..401a2bacd6 100644
--- a/briar-android/src/main/res/layout/fragment_reblog.xml
+++ b/briar-android/src/main/res/layout/fragment_reblog.xml
@@ -4,15 +4,13 @@
 	xmlns:app="http://schemas.android.com/apk/res-auto"
 	android:layout_width="match_parent"
 	android:layout_height="match_parent"
-	android:background="@color/window_background"
 	android:orientation="vertical">
 
 	<ScrollView
 		android:id="@+id/scrollView"
 		android:layout_width="match_parent"
 		android:layout_height="0dp"
-		android:layout_weight="1"
-		android:background="@color/window_background">
+		android:layout_weight="1">
 
 		<RelativeLayout
 			android:layout_width="match_parent"
diff --git a/briar-android/src/main/res/layout/introduction_message.xml b/briar-android/src/main/res/layout/introduction_message.xml
index 0cdc34ba86..9fe6196d5a 100644
--- a/briar-android/src/main/res/layout/introduction_message.xml
+++ b/briar-android/src/main/res/layout/introduction_message.xml
@@ -42,17 +42,18 @@
 					android:layout_height="wrap_content"
 					android:layout_marginTop="@dimen/margin_small"
 					android:gravity="center"
-					android:textColor="@color/briar_text_primary"
+					android:textColor="?android:attr/textColorPrimary"
 					android:textSize="@dimen/text_size_small"
 					tools:text="Contact 1"/>
 
 			</LinearLayout>
 
-			<ImageView
+			<android.support.v7.widget.AppCompatImageView
 				android:id="@+id/introductionIcon"
 				android:layout_width="@dimen/listitem_picture_size"
 				android:layout_height="@dimen/listitem_picture_size"
 				android:src="@drawable/ic_contact_introduction"
+				app:tint="?attr/colorControlNormal"
 				tools:ignore="ContentDescription"/>
 
 			<LinearLayout
@@ -78,7 +79,7 @@
 					android:layout_height="wrap_content"
 					android:layout_marginTop="@dimen/margin_small"
 					android:gravity="center"
-					android:textColor="@color/briar_text_primary"
+					android:textColor="?android:attr/textColorPrimary"
 					android:textSize="@dimen/text_size_small"
 					tools:text="Contact 2"/>
 
diff --git a/briar-android/src/main/res/layout/list_item_blog_comment.xml b/briar-android/src/main/res/layout/list_item_blog_comment.xml
index 3cab8e948b..cafe987015 100644
--- a/briar-android/src/main/res/layout/list_item_blog_comment.xml
+++ b/briar-android/src/main/res/layout/list_item_blog_comment.xml
@@ -28,7 +28,7 @@
 		android:paddingBottom="@dimen/listitem_vertical_margin"
 		android:paddingLeft="@dimen/listitem_vertical_margin"
 		android:paddingRight="@dimen/listitem_vertical_margin"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"
 		tools:text="This is a comment that appears below a blog post. Usually, it is expected to be rather short. Not much longer than this one."/>
 
diff --git a/briar-android/src/main/res/layout/list_item_blog_post.xml b/briar-android/src/main/res/layout/list_item_blog_post.xml
index a0fef3ea7b..a3f8f85f7c 100644
--- a/briar-android/src/main/res/layout/list_item_blog_post.xml
+++ b/briar-android/src/main/res/layout/list_item_blog_post.xml
@@ -7,7 +7,7 @@
 	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
 	android:layout_height="wrap_content"
-	android:foreground="?android:attr/selectableItemBackground">
+	android:foreground="?attr/selectableItemBackground">
 
 	<LinearLayout
 		android:layout_width="match_parent"
@@ -38,24 +38,24 @@
 				android:layout_marginBottom="@dimen/listitem_vertical_margin"
 				android:layout_toLeftOf="@+id/commentView"/>
 
-			<ImageView
+			<android.support.v7.widget.AppCompatImageButton
 				android:id="@+id/commentView"
 				android:layout_width="wrap_content"
 				android:layout_height="wrap_content"
 				android:layout_alignParentRight="true"
 				android:layout_alignParentTop="true"
 				android:background="?attr/selectableItemBackground"
-				android:clickable="true"
 				android:contentDescription="@string/blogs_reblog_comment_hint"
 				android:padding="@dimen/margin_small"
-				android:src="@drawable/ic_repeat"/>
+				android:src="@drawable/ic_repeat"
+				app:tint="?attr/colorControlNormal"/>
 
 			<org.thoughtcrime.securesms.components.emoji.EmojiTextView
 				android:id="@+id/bodyView"
 				android:layout_width="wrap_content"
 				android:layout_height="wrap_content"
 				android:layout_below="@+id/authorView"
-				android:textColor="@color/briar_text_secondary"
+				android:textColor="?android:attr/textColorSecondary"
 				android:textSize="@dimen/text_size_medium"
 				tools:text="This is a body text that shows the content of a blog post.\n\nThis one is not short, but it is also not too long."/>
 
diff --git a/briar-android/src/main/res/layout/list_item_contact.xml b/briar-android/src/main/res/layout/list_item_contact.xml
index bb297ef433..bac38bf186 100644
--- a/briar-android/src/main/res/layout/list_item_contact.xml
+++ b/briar-android/src/main/res/layout/list_item_contact.xml
@@ -4,12 +4,14 @@
 	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
 	android:layout_height="wrap_content"
+	android:background="?attr/selectableItemBackground"
+	android:clickable="true"
+	android:focusable="true"
 	android:orientation="vertical">
 
 	<RelativeLayout
 		android:layout_width="match_parent"
 		android:layout_height="wrap_content"
-		android:background="?attr/selectableItemBackground"
 		android:paddingBottom="@dimen/listitem_horizontal_margin"
 		android:paddingTop="@dimen/listitem_horizontal_margin">
 
@@ -62,7 +64,7 @@
 				android:layout_width="wrap_content"
 				android:layout_height="wrap_content"
 				android:maxLines="2"
-				android:textColor="@color/briar_text_primary"
+				android:textColor="?android:attr/textColorPrimary"
 				android:textSize="@dimen/text_size_medium"
 				tools:text="This is a name of a contact"/>
 
@@ -70,7 +72,7 @@
 				android:id="@+id/dateView"
 				android:layout_width="wrap_content"
 				android:layout_height="wrap_content"
-				android:textColor="@color/briar_text_secondary"
+				android:textColor="?android:attr/textColorSecondary"
 				android:textSize="@dimen/text_size_small"
 				tools:text="Dec 24"/>
 
diff --git a/briar-android/src/main/res/layout/list_item_contact_small.xml b/briar-android/src/main/res/layout/list_item_contact_small.xml
index 1415b1e394..01bfc431aa 100644
--- a/briar-android/src/main/res/layout/list_item_contact_small.xml
+++ b/briar-android/src/main/res/layout/list_item_contact_small.xml
@@ -27,7 +27,7 @@
 		android:layout_marginStart="@dimen/margin_medium"
 		android:layout_weight="1"
 		android:maxLines="2"
-		android:textColor="@color/briar_text_primary"
+		android:textColor="?android:attr/textColorPrimary"
 		android:textSize="@dimen/text_size_medium"
 		tools:text="This is a name of a contact"/>
 
diff --git a/briar-android/src/main/res/layout/list_item_conversation_msg_in.xml b/briar-android/src/main/res/layout/list_item_conversation_msg_in.xml
index ef5c7a953b..b16a1b8abd 100644
--- a/briar-android/src/main/res/layout/list_item_conversation_msg_in.xml
+++ b/briar-android/src/main/res/layout/list_item_conversation_msg_in.xml
@@ -14,7 +14,7 @@
 		android:id="@+id/text"
 		android:layout_width="wrap_content"
 		android:layout_height="wrap_content"
-		android:textColor="@color/briar_text_primary"
+		android:textColor="?android:attr/textColorPrimary"
 		android:textIsSelectable="true"
 		android:textSize="@dimen/text_size_medium"
 		tools:text="Short message"/>
@@ -26,7 +26,7 @@
 		android:layout_gravity="right|end"
 		android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
 		android:maxLines="1"
-		android:textColor="@color/private_message_date"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_tiny"
 		tools:text="Dec 24, 13:37"/>
 
diff --git a/briar-android/src/main/res/layout/list_item_conversation_notice_in.xml b/briar-android/src/main/res/layout/list_item_conversation_notice_in.xml
index 073edf537c..4e34325e9d 100644
--- a/briar-android/src/main/res/layout/list_item_conversation_notice_in.xml
+++ b/briar-android/src/main/res/layout/list_item_conversation_notice_in.xml
@@ -14,7 +14,7 @@
 		android:layout_marginLeft="@dimen/message_bubble_margin_tail"
 		android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
 		android:background="@drawable/msg_in_top"
-		android:textColor="@color/briar_text_primary"
+		android:textColor="?android:attr/textColorPrimary"
 		android:textIsSelectable="true"
 		android:textSize="@dimen/text_size_medium"
 		tools:text="Short message"/>
@@ -32,7 +32,7 @@
 			android:layout_width="match_parent"
 			android:layout_height="wrap_content"
 			android:minWidth="80dp"
-			android:textColor="@color/briar_text_secondary"
+			android:textColor="?android:attr/textColorSecondary"
 			android:textIsSelectable="true"
 			android:textSize="@dimen/text_size_medium"
 			android:textStyle="italic"
@@ -46,7 +46,7 @@
 			android:layout_alignRight="@+id/text"
 			android:layout_below="@+id/text"
 			android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
-			android:textColor="@color/private_message_date"
+			android:textColor="?android:attr/textColorTertiary"
 			android:textSize="@dimen/text_size_tiny"
 			tools:text="Dec 24, 13:37"/>
 
diff --git a/briar-android/src/main/res/layout/list_item_conversation_notice_out.xml b/briar-android/src/main/res/layout/list_item_conversation_notice_out.xml
index 9ea5bd9677..58a847d9f0 100644
--- a/briar-android/src/main/res/layout/list_item_conversation_notice_out.xml
+++ b/briar-android/src/main/res/layout/list_item_conversation_notice_out.xml
@@ -30,7 +30,7 @@
 			android:id="@+id/text"
 			android:layout_width="match_parent"
 			android:layout_height="wrap_content"
-			android:textColor="@color/briar_text_secondary"
+			android:textColor="?android:attr/textColorSecondary"
 			android:textIsSelectable="true"
 			android:textSize="@dimen/text_size_medium"
 			android:textStyle="italic"
@@ -44,7 +44,7 @@
 			android:layout_alignParentStart="true"
 			android:layout_below="@+id/text"
 			android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
-			android:textColor="@color/private_message_date"
+			android:textColor="?android:attr/textColorTertiary"
 			android:textSize="@dimen/text_size_tiny"
 			tools:text="Dec 24, 13:37"/>
 
@@ -56,6 +56,7 @@
 			android:layout_marginLeft="@dimen/margin_medium"
 			android:layout_toEndOf="@+id/time"
 			android:layout_toRightOf="@+id/time"
+			android:tint="?attr/colorControlNormal"
 			tools:ignore="ContentDescription"
 			tools:src="@drawable/message_delivered"/>
 
diff --git a/briar-android/src/main/res/layout/list_item_conversation_request.xml b/briar-android/src/main/res/layout/list_item_conversation_request.xml
index 3d6388a1ce..4c8a377a5c 100644
--- a/briar-android/src/main/res/layout/list_item_conversation_request.xml
+++ b/briar-android/src/main/res/layout/list_item_conversation_request.xml
@@ -13,7 +13,7 @@
 		android:layout_marginLeft="@dimen/message_bubble_margin_tail"
 		android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
 		android:background="@drawable/msg_in_top"
-		android:textColor="@color/briar_text_primary"
+		android:textColor="?android:attr/textColorPrimary"
 		android:textIsSelectable="true"
 		android:textSize="@dimen/text_size_medium"
 		tools:text="Short message"/>
@@ -31,7 +31,7 @@
 			android:layout_width="match_parent"
 			android:layout_height="wrap_content"
 			android:minWidth="80dp"
-			android:textColor="@color/briar_text_secondary"
+			android:textColor="?android:attr/textColorSecondary"
 			android:textIsSelectable="true"
 			android:textSize="@dimen/text_size_medium"
 			android:textStyle="italic"
@@ -45,7 +45,7 @@
 			android:layout_alignRight="@+id/text"
 			android:layout_below="@+id/acceptButton"
 			android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
-			android:textColor="@color/private_message_date"
+			android:textColor="?android:attr/textColorTertiary"
 			android:textSize="@dimen/text_size_tiny"
 			tools:text="Dec 24, 13:37"/>
 
diff --git a/briar-android/src/main/res/layout/list_item_crash.xml b/briar-android/src/main/res/layout/list_item_crash.xml
index f7aa3d0eba..63439eddb0 100644
--- a/briar-android/src/main/res/layout/list_item_crash.xml
+++ b/briar-android/src/main/res/layout/list_item_crash.xml
@@ -23,7 +23,7 @@
 			android:layout_marginBottom="@dimen/margin_small"
 			android:gravity="bottom"
 			android:textSize="@dimen/text_size_large"
-			android:textColor="@color/briar_text_primary"
+			android:textColor="?android:attr/textColorPrimary"
 			tools:text="Crash log entry title"/>
 	</LinearLayout>
 
@@ -32,7 +32,7 @@
 		android:layout_width="wrap_content"
 		android:layout_height="wrap_content"
 		android:layout_marginBottom="@dimen/margin_medium"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		tools:text="Crash log entry value"/>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/briar-android/src/main/res/layout/list_item_forum.xml b/briar-android/src/main/res/layout/list_item_forum.xml
index a3881e9e74..7919244922 100644
--- a/briar-android/src/main/res/layout/list_item_forum.xml
+++ b/briar-android/src/main/res/layout/list_item_forum.xml
@@ -4,9 +4,10 @@
 	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
 	android:layout_height="wrap_content"
-	android:layout_marginLeft="@dimen/listitem_horizontal_margin"
-	android:layout_marginStart="@dimen/listitem_horizontal_margin"
-	android:background="?attr/selectableItemBackground">
+	android:background="?attr/selectableItemBackground"
+	android:paddingLeft="@dimen/listitem_horizontal_margin"
+	android:paddingStart="@dimen/listitem_horizontal_margin"
+	tools:ignore="RtlSymmetry">
 
 	<org.briarproject.briar.android.view.TextAvatarView
 		android:id="@+id/avatarView"
@@ -27,7 +28,7 @@
 		android:layout_toEndOf="@+id/avatarView"
 		android:layout_toRightOf="@+id/avatarView"
 		android:maxLines="2"
-		android:textColor="@color/briar_text_primary"
+		android:textColor="?android:attr/textColorPrimary"
 		android:textSize="@dimen/text_size_medium"
 		tools:text="This is a name of a forum"/>
 
@@ -40,7 +41,7 @@
 		android:layout_toRightOf="@+id/avatarView"
 		android:paddingBottom="@dimen/listitem_horizontal_margin"
 		android:paddingTop="@dimen/margin_medium"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"
 		tools:text="1337 posts"/>
 
@@ -55,7 +56,7 @@
 		android:layout_marginRight="@dimen/listitem_horizontal_margin"
 		android:paddingBottom="@dimen/listitem_horizontal_margin"
 		android:paddingTop="@dimen/margin_medium"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"
 		tools:text="Dec 24"/>
 
diff --git a/briar-android/src/main/res/layout/list_item_group.xml b/briar-android/src/main/res/layout/list_item_group.xml
index 19ea41eb87..7340f096c5 100644
--- a/briar-android/src/main/res/layout/list_item_group.xml
+++ b/briar-android/src/main/res/layout/list_item_group.xml
@@ -4,9 +4,10 @@
 	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
 	android:layout_height="wrap_content"
-	android:layout_marginLeft="@dimen/listitem_horizontal_margin"
-	android:layout_marginStart="@dimen/listitem_horizontal_margin"
-	android:background="?attr/selectableItemBackground">
+	android:background="?attr/selectableItemBackground"
+	android:paddingLeft="@dimen/listitem_horizontal_margin"
+	android:paddingStart="@dimen/listitem_horizontal_margin"
+	tools:ignore="RtlSymmetry">
 
 	<org.briarproject.briar.android.view.TextAvatarView
 		android:id="@+id/avatarView"
@@ -27,7 +28,7 @@
 		android:layout_toEndOf="@+id/avatarView"
 		android:layout_toRightOf="@+id/avatarView"
 		android:maxLines="2"
-		android:textColor="@color/briar_text_primary"
+		android:textColor="?android:attr/textColorPrimary"
 		android:textSize="@dimen/text_size_medium"
 		tools:text="This is a name of a Private Group"/>
 
@@ -40,7 +41,7 @@
 		android:layout_toEndOf="@+id/avatarView"
 		android:layout_toRightOf="@+id/avatarView"
 		android:paddingTop="@dimen/margin_small"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"
 		tools:text="Created by Santa Claus"/>
 
@@ -53,7 +54,7 @@
 		android:layout_toEndOf="@+id/avatarView"
 		android:layout_toRightOf="@+id/avatarView"
 		android:paddingTop="@dimen/margin_small"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"
 		tools:text="1337 messages"
 		tools:visibility="visible"/>
@@ -68,7 +69,7 @@
 		android:layout_marginEnd="@dimen/listitem_horizontal_margin"
 		android:layout_marginRight="@dimen/listitem_horizontal_margin"
 		android:paddingTop="@dimen/margin_small"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"
 		tools:text="3 weeks ago, 12:00"
 		tools:visibility="visible"/>
@@ -79,10 +80,10 @@
 		android:layout_height="wrap_content"
 		android:layout_below="@+id/messageCountView"
 		android:layout_toEndOf="@+id/avatarView"
-		android:layout_toRightOf="@+id/avatarView"
 		android:layout_toLeftOf="@+id/removeButton"
+		android:layout_toRightOf="@+id/avatarView"
 		android:paddingTop="@dimen/margin_small"
-		android:textColor="@color/briar_text_tertiary"
+		android:textColor="?android:attr/textColorTertiary"
 		tools:text="@string/groups_group_is_empty"/>
 
 	<Button
diff --git a/briar-android/src/main/res/layout/list_item_group_join_notice.xml b/briar-android/src/main/res/layout/list_item_group_join_notice.xml
index ee57435fb1..c6e480d69e 100644
--- a/briar-android/src/main/res/layout/list_item_group_join_notice.xml
+++ b/briar-android/src/main/res/layout/list_item_group_join_notice.xml
@@ -14,7 +14,7 @@
 		android:layout_width="match_parent"
 		android:layout_height="wrap_content"
 		android:layout_margin="@dimen/margin_medium"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_medium"
 		android:textStyle="italic"
 		tools:text="@string/groups_member_joined"/>
diff --git a/briar-android/src/main/res/layout/list_item_group_member.xml b/briar-android/src/main/res/layout/list_item_group_member.xml
index 2c4a61b2cf..143e15c3a8 100644
--- a/briar-android/src/main/res/layout/list_item_group_member.xml
+++ b/briar-android/src/main/res/layout/list_item_group_member.xml
@@ -44,7 +44,7 @@
 		android:layout_marginLeft="@dimen/listitem_group_member_indentation"
 		android:layout_marginStart="@dimen/listitem_group_member_indentation"
 		android:text="@string/groups_member_created_you"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		tools:visibility="visible"/>
 
 	<View
diff --git a/briar-android/src/main/res/layout/list_item_invitations.xml b/briar-android/src/main/res/layout/list_item_invitations.xml
index 5aab1e5919..8d2dbfcb2c 100644
--- a/briar-android/src/main/res/layout/list_item_invitations.xml
+++ b/briar-android/src/main/res/layout/list_item_invitations.xml
@@ -15,8 +15,7 @@
 		android:layout_height="@dimen/listitem_picture_frame_size"
 		android:layout_alignParentLeft="true"
 		android:layout_alignParentStart="true"
-		android:layout_marginRight="@dimen/listitem_horizontal_margin"
-		/>
+		android:layout_marginRight="@dimen/listitem_horizontal_margin"/>
 
 	<org.thoughtcrime.securesms.components.emoji.EmojiTextView
 		android:id="@+id/forumNameView"
@@ -27,7 +26,7 @@
 		android:layout_toEndOf="@+id/avatarView"
 		android:layout_toRightOf="@+id/avatarView"
 		android:maxLines="2"
-		android:textColor="@color/briar_primary"
+		android:textColor="?android:attr/textColorPrimary"
 		android:textSize="@dimen/text_size_medium"
 		tools:text="This is a name of a forum that is available"/>
 
@@ -41,7 +40,7 @@
 		android:layout_toEndOf="@+id/avatarView"
 		android:layout_toRightOf="@+id/avatarView"
 		android:paddingTop="@dimen/margin_medium"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"
 		tools:text="Shared by Megalox"/>
 
@@ -54,7 +53,7 @@
 		android:layout_marginRight="@dimen/listitem_horizontal_margin"
 		android:paddingTop="@dimen/margin_medium"
 		android:text="@string/forum_invitation_exists"
-		android:textColor="@color/briar_text_tertiary"
+		android:textColor="?android:attr/textColorTertiary"
 		android:textSize="@dimen/text_size_small"
 		tools:visibility="visible"/>
 
diff --git a/briar-android/src/main/res/layout/list_item_revealable_contact.xml b/briar-android/src/main/res/layout/list_item_revealable_contact.xml
index f00838fcc3..3b43ad49e5 100644
--- a/briar-android/src/main/res/layout/list_item_revealable_contact.xml
+++ b/briar-android/src/main/res/layout/list_item_revealable_contact.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
 	xmlns:android="http://schemas.android.com/apk/res/android"
+	xmlns:app="http://schemas.android.com/apk/res-auto"
 	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
 	android:layout_height="wrap_content"
 	android:orientation="vertical">
 
-
 	<RelativeLayout
 		xmlns:android="http://schemas.android.com/apk/res/android"
 		xmlns:tools="http://schemas.android.com/tools"
@@ -32,11 +32,11 @@
 			android:layout_width="wrap_content"
 			android:layout_height="wrap_content"
 			android:layout_toRightOf="@+id/avatarView"
-			android:textColor="@color/briar_text_primary"
+			android:textColor="?android:attr/textColorPrimary"
 			android:textSize="@dimen/text_size_large"
 			tools:text="Revealable Contact"/>
 
-		<ImageView
+		<android.support.v7.widget.AppCompatImageView
 			android:id="@+id/visibilityView"
 			android:layout_width="wrap_content"
 			android:layout_height="wrap_content"
@@ -44,6 +44,7 @@
 			android:layout_marginRight="@dimen/margin_small"
 			android:layout_toRightOf="@+id/avatarView"
 			android:src="@drawable/ic_visibility"
+			app:tint="?attr/colorControlNormal"
 			tools:ignore="ContentDescription"/>
 
 		<TextView
@@ -55,7 +56,7 @@
 			android:layout_toRightOf="@+id/visibilityView"
 			android:gravity="center_vertical"
 			android:text="@string/groups_reveal_visible"
-			android:textColor="@color/briar_text_tertiary"
+			android:textColor="?android:attr/textColorSecondary"
 			android:textSize="@dimen/text_size_small"
 			tools:visibility="visible"/>
 
diff --git a/briar-android/src/main/res/layout/list_item_rss_feed.xml b/briar-android/src/main/res/layout/list_item_rss_feed.xml
index 183dfc3b0c..750f8a1264 100644
--- a/briar-android/src/main/res/layout/list_item_rss_feed.xml
+++ b/briar-android/src/main/res/layout/list_item_rss_feed.xml
@@ -15,7 +15,7 @@
 		android:layout_height="wrap_content"
 		android:layout_alignParentTop="true"
 		android:maxLines="2"
-		android:textColor="@color/briar_text_primary"
+		android:textColor="?android:attr/textColorPrimary"
 		android:textSize="@dimen/text_size_medium"
 		tools:text="This is a name of a RSS Feed"/>
 
@@ -38,7 +38,7 @@
 		android:layout_marginRight="@dimen/margin_small"
 		android:paddingTop="@dimen/margin_tiny"
 		android:text="@string/blogs_rss_feeds_manage_author"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"/>
 
 	<org.thoughtcrime.securesms.components.emoji.EmojiTextView
@@ -49,7 +49,7 @@
 		android:layout_marginEnd="@dimen/listitem_horizontal_margin"
 		android:layout_marginRight="@dimen/listitem_horizontal_margin"
 		android:layout_toRightOf="@+id/author"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"
 		tools:text="Bruce Schneier"/>
 
@@ -61,7 +61,7 @@
 		android:layout_marginRight="@dimen/margin_small"
 		android:paddingTop="@dimen/margin_tiny"
 		android:text="@string/blogs_rss_feeds_manage_imported"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"/>
 
 	<TextView
@@ -72,7 +72,7 @@
 		android:layout_marginEnd="@dimen/listitem_horizontal_margin"
 		android:layout_marginRight="@dimen/listitem_horizontal_margin"
 		android:layout_toRightOf="@+id/imported"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"
 		tools:text="July 4"/>
 
@@ -85,7 +85,7 @@
 		android:layout_marginRight="@dimen/margin_small"
 		android:paddingTop="@dimen/margin_tiny"
 		android:text="@string/blogs_rss_feeds_manage_updated"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"/>
 
 	<TextView
@@ -96,7 +96,7 @@
 		android:layout_marginEnd="@dimen/listitem_horizontal_margin"
 		android:layout_marginRight="@dimen/listitem_horizontal_margin"
 		android:layout_toRightOf="@+id/updated"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"
 		tools:text="5 min. ago"/>
 
@@ -108,7 +108,7 @@
 		android:layout_marginEnd="@dimen/listitem_horizontal_margin"
 		android:layout_marginRight="@dimen/listitem_horizontal_margin"
 		android:paddingTop="@dimen/margin_medium"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		android:textSize="@dimen/text_size_small"
 		tools:text="This is a description of the RSS feed. It can be several lines long, but it can also not exist at all if it is not present in the feed itself."/>
 
diff --git a/briar-android/src/main/res/layout/list_item_selectable_contact.xml b/briar-android/src/main/res/layout/list_item_selectable_contact.xml
index 4073eb00ea..df31c253d1 100644
--- a/briar-android/src/main/res/layout/list_item_selectable_contact.xml
+++ b/briar-android/src/main/res/layout/list_item_selectable_contact.xml
@@ -37,10 +37,9 @@
 				android:id="@+id/nameView"
 				android:layout_width="wrap_content"
 				android:layout_height="wrap_content"
-				android:maxLines="2"
-				android:textColor="@color/briar_text_primary"
+				android:textColor="?android:attr/textColorPrimary"
 				android:textSize="@dimen/text_size_large"
-				tools:text="This is a name of a contact"/>
+				tools:text="This is a name of a contact with a long name"/>
 
 			<TextView
 				android:id="@+id/infoView"
@@ -48,7 +47,7 @@
 				android:layout_height="wrap_content"
 				android:maxLines="2"
 				android:text="@string/forum_invitation_already_sharing"
-				android:textColor="@color/briar_text_tertiary"
+				android:textColor="?android:attr/textColorTertiary"
 				android:textSize="@dimen/text_size_small"
 				tools:visibility="visible"/>
 
diff --git a/briar-android/src/main/res/layout/list_item_thread.xml b/briar-android/src/main/res/layout/list_item_thread.xml
index c161088397..3fcb607f64 100644
--- a/briar-android/src/main/res/layout/list_item_thread.xml
+++ b/briar-android/src/main/res/layout/list_item_thread.xml
@@ -6,8 +6,8 @@
 	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
 	android:layout_height="wrap_content"
-	android:background="@drawable/list_item_thread_background"
 	android:baselineAligned="false"
+	android:background="@drawable/list_item_thread_background"
 	android:orientation="horizontal">
 
 	<RelativeLayout
@@ -76,7 +76,7 @@
 			android:layout_width="match_parent"
 			android:layout_height="wrap_content"
 			android:padding="@dimen/margin_medium"
-			android:textColor="@color/briar_text_primary"
+			android:textColor="?android:attr/textColorPrimary"
 			android:textIsSelectable="true"
 			android:textSize="@dimen/text_size_medium"
 			tools:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."/>
diff --git a/briar-android/src/main/res/layout/list_item_transport.xml b/briar-android/src/main/res/layout/list_item_transport.xml
index ac362bdcbc..ab79670497 100644
--- a/briar-android/src/main/res/layout/list_item_transport.xml
+++ b/briar-android/src/main/res/layout/list_item_transport.xml
@@ -20,7 +20,7 @@
 		android:layout_width="wrap_content"
 		android:layout_height="match_parent"
 		android:padding="@dimen/margin_small"
-		android:textColor="@color/briar_text_secondary"
+		android:textColor="?android:attr/textColorSecondary"
 		tools:text="@string/transport_tor"/>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/briar-android/src/main/res/layout/navigation_menu.xml b/briar-android/src/main/res/layout/navigation_menu.xml
index bac5f8a8f2..8880822607 100644
--- a/briar-android/src/main/res/layout/navigation_menu.xml
+++ b/briar-android/src/main/res/layout/navigation_menu.xml
@@ -4,7 +4,7 @@
 	xmlns:app="http://schemas.android.com/apk/res-auto"
 	android:layout_width="wrap_content"
 	android:layout_height="match_parent"
-	android:background="@color/menu_background"
+	android:background="?android:attr/windowBackground"
 	android:fillViewport="true"
 	android:orientation="vertical">
 
@@ -17,11 +17,10 @@
 			android:id="@+id/navigation"
 			android:layout_width="wrap_content"
 			android:layout_height="wrap_content"
-			android:background="@color/menu_background"
 			app:elevation="0dp"
 			app:headerLayout="@layout/navigation_header"
-			app:itemIconTint="@color/briar_text_primary"
-			app:itemTextColor="@color/briar_text_primary"
+			app:itemIconTint="?attr/colorControlNormal"
+			app:itemTextColor="?android:textColorPrimary"
 			app:menu="@menu/navigation_drawer"/>
 
 		<View
diff --git a/briar-android/src/main/res/layout/power_view.xml b/briar-android/src/main/res/layout/power_view.xml
index 707611e1ec..3a89a89200 100644
--- a/briar-android/src/main/res/layout/power_view.xml
+++ b/briar-android/src/main/res/layout/power_view.xml
@@ -24,7 +24,7 @@
 		android:layout_height="24dp"
 		android:layout_margin="8dp"
 		android:src="@drawable/ic_check_white"
-		android:tint="?colorControlNormal"
+		android:tint="?attr/colorControlNormal"
 		android:visibility="invisible"
 		app:layout_constraintBottom_toBottomOf="@+id/button"
 		app:layout_constraintStart_toStartOf="parent"
diff --git a/briar-android/src/main/res/layout/splash.xml b/briar-android/src/main/res/layout/splash.xml
index 595cecaf22..bab1dc6fb5 100644
--- a/briar-android/src/main/res/layout/splash.xml
+++ b/briar-android/src/main/res/layout/splash.xml
@@ -2,8 +2,7 @@
 <FrameLayout
 	xmlns:android="http://schemas.android.com/apk/res/android"
 	android:layout_width="match_parent"
-	android:layout_height="match_parent"
-	android:background="@color/window_background" >
+	android:layout_height="match_parent">
 
 	<ImageView
 		android:src="@drawable/splash_screen"
diff --git a/briar-android/src/main/res/layout/text_input_view.xml b/briar-android/src/main/res/layout/text_input_view.xml
index c539c0351b..6669c4de97 100644
--- a/briar-android/src/main/res/layout/text_input_view.xml
+++ b/briar-android/src/main/res/layout/text_input_view.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <merge
 	xmlns:android="http://schemas.android.com/apk/res/android"
+	xmlns:app="http://schemas.android.com/apk/res-auto"
 	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
 	android:layout_height="wrap_content"
@@ -10,43 +11,54 @@
 		style="@style/Divider.Horizontal"
 		android:layout_alignParentTop="true"/>
 
-	<LinearLayout
+	<android.support.v7.widget.CardView
 		android:layout_width="match_parent"
-		android:layout_height="wrap_content">
-
-		<org.thoughtcrime.securesms.components.emoji.EmojiToggle
-			android:id="@+id/emoji_toggle"
-			android:layout_width="@dimen/text_input_height"
-			android:layout_height="@dimen/text_input_height"
-			android:background="?attr/selectableItemBackground"
-			android:padding="@dimen/margin_small"
-			android:scaleType="center"/>
-
-		<org.thoughtcrime.securesms.components.emoji.EmojiEditText
-			android:id="@+id/input_text"
-			android:layout_width="0dp"
-			android:layout_height="wrap_content"
-			android:layout_weight="1"
-			android:background="@android:color/transparent"
-			android:inputType="textMultiLine|textCapSentences"
-			android:maxLines="3"
-			android:minHeight="@dimen/text_input_height"
-			android:textColor="@color/briar_text_primary"
-			android:textColorHint="@color/briar_text_tertiary"/>
-
-		<ImageButton
-			android:id="@+id/btn_send"
-			android:layout_width="@dimen/text_input_height"
-			android:layout_height="@dimen/text_input_height"
-			android:background="?attr/selectableItemBackground"
-			android:clickable="true"
-			android:contentDescription="@string/send"
-			android:enabled="false"
-			android:padding="@dimen/margin_small"
-			android:src="@drawable/social_send_now_white"
-			android:tint="@color/briar_primary"/>
-
-	</LinearLayout>
+		android:layout_height="wrap_content"
+		app:cardCornerRadius="0dp"
+		app:cardUseCompatPadding="false"
+		app:elevation="0dp">
+
+		<LinearLayout
+			android:layout_width="match_parent"
+			android:layout_height="wrap_content">
+
+			<org.thoughtcrime.securesms.components.emoji.EmojiToggle
+				android:id="@+id/emoji_toggle"
+				android:layout_width="@dimen/text_input_height"
+				android:layout_height="@dimen/text_input_height"
+				android:background="?attr/selectableItemBackground"
+				android:padding="@dimen/margin_small"
+				android:scaleType="center"
+				app:tint="?attr/colorControlNormal"/>
+
+			<org.thoughtcrime.securesms.components.emoji.EmojiEditText
+				android:id="@+id/input_text"
+				android:layout_width="0dp"
+				android:layout_height="wrap_content"
+				android:layout_weight="1"
+				android:background="@android:color/transparent"
+				android:inputType="textMultiLine|textCapSentences"
+				android:maxLines="3"
+				android:minHeight="@dimen/text_input_height"
+				android:textColor="?android:attr/textColorPrimary"
+				android:textColorHint="?android:attr/textColorTertiary"/>
+
+			<ImageButton
+				android:id="@+id/btn_send"
+				android:layout_width="@dimen/text_input_height"
+				android:layout_height="@dimen/text_input_height"
+				android:background="?attr/selectableItemBackground"
+				android:clickable="true"
+				android:contentDescription="@string/send"
+				android:enabled="false"
+				android:focusable="true"
+				android:padding="@dimen/margin_small"
+				android:src="@drawable/social_send_now_white"
+				android:tint="@color/briar_accent"/>
+
+		</LinearLayout>
+
+	</android.support.v7.widget.CardView>
 
 	<org.thoughtcrime.securesms.components.emoji.EmojiDrawer
 		android:id="@+id/emoji_drawer"
diff --git a/briar-android/src/main/res/layout/text_input_view_large.xml b/briar-android/src/main/res/layout/text_input_view_large.xml
index b01d2a82a9..60155836cc 100644
--- a/briar-android/src/main/res/layout/text_input_view_large.xml
+++ b/briar-android/src/main/res/layout/text_input_view_large.xml
@@ -1,12 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
 <merge
 	xmlns:android="http://schemas.android.com/apk/res/android"
+	xmlns:app="http://schemas.android.com/apk/res-auto"
 	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
 	android:layout_height="wrap_content"
 	tools:showIn="@layout/fragment_reblog">
 
-	<LinearLayout
+	<android.support.v7.widget.CardView
 		android:id="@+id/input_layout"
 		android:layout_width="match_parent"
 		android:layout_height="wrap_content"
@@ -15,37 +16,45 @@
 		android:layout_marginRight="@dimen/margin_medium"
 		android:layout_marginStart="@dimen/margin_medium"
 		android:layout_marginTop="@dimen/margin_medium"
-		android:background="@android:color/white"
 		android:elevation="@dimen/cardview_default_elevation"
 		android:minHeight="@dimen/text_input_height"
-		android:orientation="horizontal">
+		app:cardCornerRadius="0dp"
+		app:cardUseCompatPadding="false">
 
-		<org.thoughtcrime.securesms.components.emoji.EmojiToggle
-			android:id="@+id/emoji_toggle"
-			android:layout_width="@dimen/text_input_height"
-			android:layout_height="@dimen/text_input_height"
-			android:layout_gravity="bottom"
-			android:background="?attr/selectableItemBackground"
-			android:padding="@dimen/margin_small"
-			android:scaleType="center"/>
-
-		<org.thoughtcrime.securesms.components.emoji.EmojiEditText
-			android:id="@+id/input_text"
+		<LinearLayout
 			android:layout_width="match_parent"
-			android:layout_height="wrap_content"
-			android:background="@android:color/transparent"
-			android:gravity="bottom"
-			android:inputType="textMultiLine|textLongMessage|textCapSentences|textAutoCorrect"
-			android:minHeight="@dimen/text_input_height"
-			android:paddingBottom="10dp"
-			android:paddingEnd="@dimen/margin_small"
-			android:paddingRight="@dimen/margin_small"
-			android:paddingTop="@dimen/margin_small"
-			android:textColor="@color/briar_text_primary"
-			android:textColorHint="@color/briar_text_tertiary"
-			tools:ignore="RtlSymmetry"/>
+			android:layout_height="match_parent"
+			android:orientation="horizontal">
+
+			<org.thoughtcrime.securesms.components.emoji.EmojiToggle
+				android:id="@+id/emoji_toggle"
+				android:layout_width="@dimen/text_input_height"
+				android:layout_height="@dimen/text_input_height"
+				android:layout_gravity="bottom"
+				android:background="?attr/selectableItemBackground"
+				android:padding="@dimen/margin_small"
+				android:scaleType="center"
+				app:tint="?attr/colorControlNormal"/>
+
+			<org.thoughtcrime.securesms.components.emoji.EmojiEditText
+				android:id="@+id/input_text"
+				android:layout_width="match_parent"
+				android:layout_height="wrap_content"
+				android:background="@android:color/transparent"
+				android:gravity="bottom"
+				android:inputType="textMultiLine|textLongMessage|textCapSentences|textAutoCorrect"
+				android:minHeight="@dimen/text_input_height"
+				android:paddingBottom="10dp"
+				android:paddingEnd="@dimen/margin_small"
+				android:paddingRight="@dimen/margin_small"
+				android:paddingTop="@dimen/margin_small"
+				android:textColor="?android:attr/textColorPrimary"
+				android:textColorHint="?android:attr/textColorTertiary"
+				tools:ignore="RtlSymmetry"/>
+
+		</LinearLayout>
 
-	</LinearLayout>
+	</android.support.v7.widget.CardView>
 
 	<Button
 		android:id="@+id/btn_send"
diff --git a/briar-android/src/main/res/values-night/color.xml b/briar-android/src/main/res/values-night/color.xml
new file mode 100644
index 0000000000..6dcfb7264e
--- /dev/null
+++ b/briar-android/src/main/res/values-night/color.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+	<color name="briar_accent">#476380</color>
+
+	<color name="color_primary">#ffffff</color>
+	<color name="color_primary_inverse">#dd000000</color>
+	<color name="color_secondary">#b2ffffff</color>
+
+	<color name="window_background">#ff303030</color>
+	<color name="thread_item_highlight">#2D3E50</color>
+
+</resources>
\ No newline at end of file
diff --git a/briar-android/src/main/res/values/arrays.xml b/briar-android/src/main/res/values/arrays.xml
index 978c986980..d4001a3c9a 100644
--- a/briar-android/src/main/res/values/arrays.xml
+++ b/briar-android/src/main/res/values/arrays.xml
@@ -51,4 +51,20 @@
 		<item>tr</item>
 		<item>zh-CN</item>
 	</string-array>
+	<string-array name="pref_theme_entries">
+		<item>@string/pref_theme_light</item>
+		<item>@string/pref_theme_dark</item>
+		<item>@string/pref_theme_auto</item>
+		<item>@string/pref_theme_system</item>
+	</string-array>
+	<string name="pref_theme_light_value">light</string>
+	<string name="pref_theme_dark_value">dark</string>
+	<string name="pref_theme_auto_value">auto</string>
+	<string name="pref_theme_system_value">system</string>
+	<string-array name="pref_theme_values">
+		<item>@string/pref_theme_light_value</item>
+		<item>@string/pref_theme_dark_value</item>
+		<item>@string/pref_theme_auto_value</item>
+		<item>@string/pref_theme_system_value</item>
+	</string-array>
 </resources>
diff --git a/briar-android/src/main/res/values/color.xml b/briar-android/src/main/res/values/color.xml
index 18669d8b2d..d5767587f1 100644
--- a/briar-android/src/main/res/values/color.xml
+++ b/briar-android/src/main/res/values/color.xml
@@ -7,7 +7,7 @@
 	<color name="briar_green_light">#95D220</color>
 	<color name="briar_link">#06B9FF</color>
 
-	<color name="window_background">#eceff1</color>
+	<color name="window_background">#fffafafa</color>
 	<color name="action_bar_text">#FFFFFF</color>
 	<color name="button_bar_background">#FFFFFF</color>
 	<color name="private_message_date">#AAAAAA</color>
@@ -20,6 +20,10 @@
 	<color name="briar_accent">@color/briar_blue</color>
 	<color name="control_normal_light">#757575</color>
 
+	<color name="color_primary">#dd000000</color>
+	<color name="color_primary_inverse">#ffffff</color>
+	<color name="color_secondary">#89000000</color>
+
 	<!-- text colors -->
 	<color name="briar_text_link">@color/briar_link</color>
 	<color name="briar_text_primary">#df000000</color>
@@ -40,5 +44,5 @@
 	<color name="menu_background">#FFFFFF</color>
 
 	<color name="spinner_border">#61000000</color> <!-- 38% Black -->
-	<color name="forum_cell_highlight">#ffffff</color>
+	<color name="thread_item_highlight">#729ecc</color>
 </resources>
\ No newline at end of file
diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml
index 9acb6c935e..1c0fb4d57e 100644
--- a/briar-android/src/main/res/values/strings.xml
+++ b/briar-android/src/main/res/values/strings.xml
@@ -329,6 +329,11 @@
 	<string name="pref_language_changed">This setting will take effect when you restart Briar. Please sign out and restart Briar.</string>
 	<string name="pref_language_default">System default</string>
 	<string name="display_settings_title">Display</string>
+	<string name="pref_theme_title">Theme</string>
+	<string name="pref_theme_light">Light</string>
+	<string name="pref_theme_dark">Dark</string>
+	<string name="pref_theme_auto">Automatic (Daytime)</string>
+	<string name="pref_theme_system">System Default</string>
 
 	<!-- Settings Network -->
 	<string name="network_settings_title">Networks</string>
diff --git a/briar-android/src/main/res/values/styles.xml b/briar-android/src/main/res/values/styles.xml
index c967fdb071..c65995bc76 100644
--- a/briar-android/src/main/res/values/styles.xml
+++ b/briar-android/src/main/res/values/styles.xml
@@ -32,6 +32,7 @@
 		<item name="android:layout_height">wrap_content</item>
 		<item name="android:textSize">@dimen/text_size_medium</item>
 		<item name="android:padding">@dimen/margin_large</item>
+		<item name="android:textColor">@color/briar_text_primary_inverse</item>
 	</style>
 
 	<style name="BriarButtonFlat.Negative" parent="Widget.AppCompat.Button.Borderless">
@@ -50,20 +51,6 @@
 		<item name="android:minWidth">@dimen/button_size</item>
 	</style>
 
-	<style name="BriarTextTitle">
-		<item name="android:textSize">@dimen/text_size_medium</item>
-		<item name="android:textColor">@android:color/primary_text_light</item>
-	</style>
-
-	<style name="BriarTextTitleInverted" parent="BriarTextTitle">
-		<item name="android:textColor">@android:color/primary_text_dark</item>
-	</style>
-
-	<style name="BriarTextBody">
-		<item name="android:textSize">@dimen/text_size_small</item>
-		<item name="android:textColor">@android:color/primary_text_light</item>
-	</style>
-
 	<style name="Divider">
 		<item name="android:background">@color/divider</item>
 	</style>
@@ -86,7 +73,7 @@
 
 	<style name="BriarAvatar">
 		<item name="civ_border_width">@dimen/avatar_border_width</item>
-		<item name="civ_border_color">@color/briar_primary</item>
+		<item name="civ_border_color">?android:attr/textColorPrimary</item>
 	</style>
 
 	<style name="NavMenuButton" parent="Widget.AppCompat.Button.Borderless.Colored">
diff --git a/briar-android/src/main/res/values/themes.xml b/briar-android/src/main/res/values/themes.xml
index 146081c428..c4dc47a67f 100644
--- a/briar-android/src/main/res/values/themes.xml
+++ b/briar-android/src/main/res/values/themes.xml
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
 
-	<style name="BriarTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+	<style name="BriarTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
 		<item name="colorPrimary">@color/briar_primary</item>
 		<item name="colorPrimaryDark">@color/briar_primary_dark</item>
 		<item name="colorAccent">@color/briar_accent</item>
-		<item name="colorControlNormal">@color/control_normal_light</item>
 		<item name="android:textColorLink">@color/briar_text_link</item>
-		<item name="android:windowBackground">@color/window_background</item>
 		<item name="android:windowAnimationStyle">@style/ActivityAnimation</item>
 		<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
 	</style>
@@ -25,7 +23,7 @@
 		<item name="android:activityCloseExitAnimation">@anim/screen_new_out</item>
 	</style>
 
-	<style name="BriarDialogTheme" parent="Theme.AppCompat.Light.Dialog">
+	<style name="BriarDialogTheme" parent="Theme.AppCompat.DayNight.Dialog">
 		<item name="colorPrimary">@color/briar_primary</item>
 		<item name="colorPrimaryDark">@color/briar_primary_dark</item>
 		<item name="colorAccent">@color/briar_accent</item>
diff --git a/briar-android/src/main/res/xml/settings.xml b/briar-android/src/main/res/xml/settings.xml
index 7b3181fa05..c74c7e3c3e 100644
--- a/briar-android/src/main/res/xml/settings.xml
+++ b/briar-android/src/main/res/xml/settings.xml
@@ -5,12 +5,21 @@
 		android:layout="@layout/preferences_category"
 		android:title="@string/display_settings_title">
 
-	<ListPreference
-		android:defaultValue="default"
-		android:entryValues="@array/pref_language_values"
-		android:key="pref_key_language"
-		android:summary="%s"
-		android:title="@string/pref_language_title"/>
+		<ListPreference
+			android:defaultValue="default"
+			android:entryValues="@array/pref_language_values"
+			android:key="pref_key_language"
+			android:summary="%s"
+			android:title="@string/pref_language_title"/>
+
+		<ListPreference
+			android:defaultValue="@string/pref_theme_light_value"
+			android:entries="@array/pref_theme_entries"
+			android:entryValues="@array/pref_theme_values"
+			android:key="pref_key_theme"
+			android:summary="%s"
+			android:title="@string/pref_theme_title"/>
+		
 	</PreferenceCategory>
 
 	<PreferenceCategory
-- 
GitLab