diff --git a/briar-android/build.gradle b/briar-android/build.gradle
index ebddc91dfdfb219e4636855808194d778201e7cf..7c74dd6370bf3e0ba5608f5e6c0ee651484d36f7 100644
--- a/briar-android/build.gradle
+++ b/briar-android/build.gradle
@@ -22,7 +22,7 @@ dependencies {
 	implementation "com.android.support:support-annotations:$supportVersion"
 	implementation 'com.android.support.constraint:constraint-layout:1.1.0'
 
-	implementation('ch.acra:acra:4.8.5') {
+	implementation('ch.acra:acra:4.9.1') {
 		exclude module: 'support-v4'
 		exclude module: 'support-annotations'
 	}
@@ -61,7 +61,7 @@ dependencyVerification {
 			'android.arch.lifecycle:viewmodel:1.1.0:viewmodel-1.1.0.aar:6407c93a5ea9850661dca42a0068d6f3deccefd7228ee69bae1c35d70cbc2557',
 			'backport-util-concurrent:backport-util-concurrent:3.1:backport-util-concurrent-3.1.jar:f5759b7fcdfc83a525a036deedcbd32e5b536b625ebc282426f16ca137eb5902',
 			'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861',
-			'ch.acra:acra:4.8.5:acra-4.8.5.aar:afd5b28934d5166b55f261c85685ad59e8a4ebe9ca1960906afaa8c76d8dc9eb',
+			'ch.acra:acra:4.9.1:acra-4.9.1.aar:d2762968c448757a7d6acc9f141881d9632f664988e9723ece33b5f7c79f3bc9',
 			'classworlds:classworlds:1.1-alpha-2:classworlds-1.1-alpha-2.jar:2bf4e59f3acd106fea6145a9a88fe8956509f8b9c0fdd11eb96fee757269e3f3',
 			'com.almworks.sqlite4java:sqlite4java:0.282:sqlite4java-0.282.jar:9e1d8dd83ca6003f841e3af878ce2dc7c22497493a7bb6d1b62ec1b0d0a83c05',
 			'com.android.support.constraint:constraint-layout-solver:1.1.0:constraint-layout-solver-1.1.0.jar:fcb4c7d705754ca3d69b1b2c3caf445a425599fda8caabbcf855d98ea0663e4e',
diff --git a/briar-android/src/main/AndroidManifest.xml b/briar-android/src/main/AndroidManifest.xml
index 366cb24e8677cfb6c8a37d96ff34debd29273be5..0f483f12b9b60b6fc7ea8cb5b07a72131a477af4 100644
--- a/briar-android/src/main/AndroidManifest.xml
+++ b/briar-android/src/main/AndroidManifest.xml
@@ -44,7 +44,6 @@
 			android:finishOnTaskLaunch="true"
 			android:label="@string/crash_report_title"
 			android:launchMode="singleInstance"
-			android:process=":briar_error_handler"
 			android:theme="@style/BriarTheme.NoActionBar"
 			android:windowSoftInputMode="stateHidden">
 		</activity>
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 bbb8a568cafb21ba2884ef9a1408dbfb541e1c53..0b2f034660a83ef46fb3d7b0922da1acd45d2eda 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 d557e717fc423eec24194a87f14f6ec2ffcc230e..3d2d8361cb4f79ef0645058700dfff1d62aba354 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 228059415036c86bc32ff4450aa3101d8a11160f..b330aeb7a71d36a4d1dd5035d3d68f9a930a6514 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 d2c4b96d388a2ebca2dfb573d3e6bc7e8a859498..f16e83970726557b9b52929e96527849f42bf90c 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/keyagreement/ShowQrCodeFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ShowQrCodeFragment.java
index aec6c26bb7ef34203af96f21d73882fa9f4393ed..2c38043fbbb5f3de96d97955855ac3e4d6c14e91 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ShowQrCodeFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ShowQrCodeFragment.java
@@ -86,9 +86,8 @@ public class ShowQrCodeFragment extends BaseEventFragment
 	private CameraView cameraView;
 	private View statusView;
 	private TextView status;
+	private View qrCodeContainer;
 	private ImageView qrCode;
-	private TextView mainProgressTitle;
-	private ViewGroup mainProgressContainer;
 	private boolean fullscreen = false;
 
 	private boolean gotRemotePayload;
@@ -131,12 +130,10 @@ public class ShowQrCodeFragment extends BaseEventFragment
 		cameraView = view.findViewById(R.id.camera_view);
 		statusView = view.findViewById(R.id.status_container);
 		status = view.findViewById(R.id.connect_status);
+		qrCodeContainer = view.findViewById(R.id.qr_code_container);
 		qrCode = view.findViewById(R.id.qr_code);
-		mainProgressTitle = view.findViewById(R.id.title_progress_bar);
-		mainProgressContainer = view.findViewById(R.id.container_progress);
 		ImageView fullscreenButton = view.findViewById(R.id.fullscreen_button);
 		fullscreenButton.setOnClickListener(v -> {
-			View qrCodeContainer = view.findViewById(R.id.qr_code_container);
 			LinearLayout cameraOverlay = view.findViewById(R.id.camera_overlay);
 			LayoutParams statusParams, qrCodeParams;
 			if (fullscreen) {
@@ -303,8 +300,8 @@ public class ShowQrCodeFragment extends BaseEventFragment
 			keyAgreementAborted(event.didRemoteAbort());
 		} else if (e instanceof KeyAgreementFinishedEvent) {
 			runOnUiThreadUnlessDestroyed(() -> {
-				mainProgressContainer.setVisibility(VISIBLE);
-				mainProgressTitle.setText(R.string.exchanging_contact_details);
+				statusView.setVisibility(VISIBLE);
+				status.setText(R.string.exchanging_contact_details);
 			});
 		}
 	}
@@ -363,16 +360,18 @@ public class ShowQrCodeFragment extends BaseEventFragment
 
 	private void keyAgreementStarted() {
 		runOnUiThreadUnlessDestroyed(() -> {
-			mainProgressContainer.setVisibility(VISIBLE);
-			mainProgressTitle.setText(R.string.authenticating_with_device);
+			qrCodeContainer.setVisibility(INVISIBLE);
+			statusView.setVisibility(VISIBLE);
+			status.setText(R.string.authenticating_with_device);
 		});
 	}
 
 	private void keyAgreementAborted(boolean remoteAborted) {
 		runOnUiThreadUnlessDestroyed(() -> {
 			reset();
-			mainProgressContainer.setVisibility(INVISIBLE);
-			mainProgressTitle.setText("");
+			qrCodeContainer.setVisibility(VISIBLE);
+			statusView.setVisibility(INVISIBLE);
+			status.setText(null);
 			// TODO show abort somewhere persistent?
 			Toast.makeText(getActivity(),
 					remoteAborted ? R.string.connection_aborted_remote :
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java
index 55f08b204b584e8bd573acce1ae6363bd14368c2..f4368dd9a0b21dd59d7106f93dacba44b692860c 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java
@@ -107,6 +107,7 @@ public class PasswordActivity extends BaseActivity {
 	private void deleteAccount() {
 		passwordController.deleteAccount(this);
 		Localizer.reinitialize();
+		UiUtils.setTheme(this, getString(R.string.pref_theme_light_value));
 		setResult(RESULT_CANCELED);
 		Intent i = new Intent(this, SetupActivity.class);
 		i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK);
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 a2992ef8905c86757ce4c7792df1d0f26b7b3c88..b64eb25a29ac555c63f1ad4fe27139eec899c218 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 a25e1e41fcb728116f91a9d04e4850720fecbc8b..2bf0f9381ff810c8a5b89f1905838cfd387c262a 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
@@ -3,6 +3,7 @@ package org.briarproject.briar.android.reporting;
 import android.content.res.Configuration;
 import android.os.AsyncTask;
 import android.os.Bundle;
+import android.support.annotation.Nullable;
 import android.support.v7.app.AppCompatDelegate;
 import android.support.v7.widget.Toolbar;
 import android.view.LayoutInflater;
@@ -33,6 +34,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.logging.Logger;
 
+import static android.os.Build.VERSION.SDK_INT;
 import static android.view.View.GONE;
 import static android.view.View.INVISIBLE;
 import static android.view.View.VISIBLE;
@@ -83,10 +85,27 @@ public class DevReportActivity extends BaseCrashReportDialog
 	}
 
 	@Override
-	public void onCreate(Bundle state) {
+	protected void preInit(@Nullable Bundle savedInstanceState) {
+		super.preInit(savedInstanceState);
 		getDelegate().installViewFactory();
-		getDelegate().onCreate(state);
-		super.onCreate(state);
+		getDelegate().onCreate(savedInstanceState);
+		if (getDelegate().applyDayNight()) {
+			// If DayNight has been applied, we need to re-apply the theme for
+			// the changes to take effect. On API 23+, we should bypass
+			// setTheme(), which will no-op if the theme ID is identical to the
+			// current theme ID.
+			int theme = R.style.BriarTheme_NoActionBar;
+			if (SDK_INT >= 23) {
+				onApplyThemeResource(getTheme(), theme, false);
+			} else {
+				setTheme(theme);
+			}
+		}
+	}
+
+	@Override
+	public void init(Bundle state) {
+		super.init(state);
 
 		getDelegate().setContentView(R.layout.activity_dev_report);
 
@@ -94,6 +113,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 +131,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 d9faceff50564355f77a017177d51b7698864d33..349bbfe02e7d59d3160e9abe53810a38d095e36d 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;
@@ -135,6 +138,8 @@ public class SettingsFragment extends PreferenceFragmentCompat
 
 		language = (ListPreference) findPreference(LANGUAGE);
 		setLanguageEntries();
+		ListPreference 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,24 @@ 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
+				// upstream bug: https://issuetracker.google.com/issues/38352704
+				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) {
@@ -174,6 +197,9 @@ public class SettingsFragment extends PreferenceFragmentCompat
 					}
 			);
 		} else {
+			// TODO remove before releasing theme to public
+			theme.setVisible(false);
+
 			findPreference("pref_key_explode").setVisible(false);
 			findPreference("pref_key_test_data").setVisible(false);
 			PreferenceGroup testing =
@@ -320,6 +346,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 0532e6a9512b22ee2cfeb1474822281760a4252d..45f66b83b3dec6546c206553906cabe83db04791 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.thread_item_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 4c0e145dc57e23346784e36ecf73127901ed3b7e..2d30f5c8d583553e0dfc33c3f95961d36ebbe6f4 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 884264a61d627d647b5fae521211ff42963f947d..ee30d8d37f5af99894c65fd7e13a3ad30e12a728 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java
@@ -7,6 +7,9 @@ import android.content.DialogInterface.OnClickListener;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.PowerManager;
+import android.support.annotation.AttrRes;
+import android.support.annotation.ColorInt;
+import android.support.annotation.ColorRes;
 import android.support.design.widget.TextInputLayout;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.content.ContextCompat;
@@ -20,6 +23,7 @@ import android.text.format.DateUtils;
 import android.text.style.ClickableSpan;
 import android.text.style.ForegroundColorSpan;
 import android.text.style.URLSpan;
+import android.util.TypedValue;
 import android.view.View;
 import android.widget.TextView;
 
@@ -38,6 +42,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 +200,33 @@ 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);
+		}
+	}
+
+	public static int resolveAttribute(Context ctx, @AttrRes int attr) {
+		TypedValue outValue = new TypedValue();
+		ctx.getTheme().resolveAttribute(attr, outValue, true);
+		return outValue.resourceId;
+	}
+
+	@ColorInt
+	public static int resolveColorAttribute(Context ctx, @AttrRes int res) {
+		@ColorRes
+		int color = resolveAttribute(ctx, res);
+		return ContextCompat.getColor(ctx, color);
+	}
+
 }
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java b/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java
index 117ce12cbe32b5e5db5cd5d2dfa3a044f146ed14..cbb3cc8d0f92d0fc0e843b5eaa1e2947b38268eb 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java
@@ -6,7 +6,6 @@ import android.graphics.Typeface;
 import android.support.annotation.DimenRes;
 import android.support.annotation.UiThread;
 import android.util.AttributeSet;
-import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.ImageView;
@@ -28,6 +27,7 @@ import static android.graphics.Typeface.BOLD;
 import static android.util.TypedValue.COMPLEX_UNIT_PX;
 import static org.briarproject.bramble.api.identity.Author.Status.NONE;
 import static org.briarproject.bramble.api.identity.Author.Status.OURSELVES;
+import static org.briarproject.briar.android.util.UiUtils.resolveAttribute;
 
 @UiThread
 public class AuthorView extends RelativeLayout {
@@ -107,16 +107,15 @@ public class AuthorView extends RelativeLayout {
 
 	public void setAuthorClickable(OnClickListener listener) {
 		setClickable(true);
-		TypedValue outValue = new TypedValue();
-		getContext().getTheme().resolveAttribute(
-				android.R.attr.selectableItemBackground, outValue, true);
-		setBackgroundResource(outValue.resourceId);
+		int res =
+				resolveAttribute(getContext(), R.attr.selectableItemBackground);
+		setBackgroundResource(res);
 		setOnClickListener(listener);
 	}
 
 	public void setAuthorNotClickable() {
 		setClickable(false);
-		setBackgroundResource(android.R.color.transparent);
+		setBackgroundResource(0);
 		setOnClickListener(null);
 	}
 
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 3cdf8fff8ac67e4cc08f3101929b2e6e95b5c5d2..9bcd6c4510d5aba280a9e3ada71d3a6f5ea9d7a8 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 918755eb6c2f0f32cb30dd68c635b1c23d2d68a5..3aac50e9b56e5b35704e3620584305967d79bf76 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 453f82f8cf0d79feeca1b74fd27625f30c74ac4c..51e74018694be4f99ced649318a187affff4d514 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 7ba1810f9e7e316a94b6f409e1ba7c42792874f8..d54f4cbcab958ff976fe9a7e807fee322b07761e 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 75e79bb271344433ea911d5e78f29bfe91089643..5858af0a79bb4fe8174fe69f81c8113ac1a45842 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/java/org/thoughtcrime/securesms/components/emoji/EmojiView.java b/briar-android/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiView.java
index 50217e3b770b43b38dcb523487c1dfd7300aaaee..2b6d61039b740dee54ce64ef39eaad31a41ccb2b 100644
--- a/briar-android/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiView.java
+++ b/briar-android/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiView.java
@@ -6,17 +6,15 @@ import android.graphics.Paint;
 import android.graphics.drawable.Drawable;
 import android.support.annotation.NonNull;
 import android.support.annotation.UiThread;
-import android.support.v4.content.ContextCompat;
 import android.util.AttributeSet;
 import android.view.View;
 
-import org.briarproject.briar.R;
-
 import javax.annotation.Nullable;
 
 import static android.graphics.Paint.ANTI_ALIAS_FLAG;
 import static android.graphics.Paint.Align.CENTER;
 import static android.graphics.Paint.FILTER_BITMAP_FLAG;
+import static org.briarproject.briar.android.util.UiUtils.resolveColorAttribute;
 
 @UiThread
 public class EmojiView extends View implements Drawable.Callback {
@@ -63,8 +61,9 @@ public class EmojiView extends View implements Drawable.Callback {
 			float targetFontSize =
 					0.75f * getHeight() - getPaddingTop() - getPaddingBottom();
 			paint.setTextSize(targetFontSize);
-			paint.setColor(ContextCompat
-					.getColor(getContext(), R.color.emoji_text_color));
+			int color = resolveColorAttribute(getContext(),
+					android.R.attr.textColorPrimary);
+			paint.setColor(color);
 			paint.setTextAlign(CENTER);
 			int xPos = (canvas.getWidth() / 2);
 			int yPos = (int) ((canvas.getHeight() / 2) -
diff --git a/briar-android/src/main/res/color/button_text.xml b/briar-android/src/main/res/color/button_text.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bbe56156e3ab020236adf10d25a050b9b3a39f50
--- /dev/null
+++ b/briar-android/src/main/res/color/button_text.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector
+	xmlns:android="http://schemas.android.com/apk/res/android">
+	<item
+		android:color="?attr/colorControlNormal"
+		android:state_enabled="false"/>
+	<item
+		android:color="#ffffffff"/>
+</selector>
\ No newline at end of file
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
Binary files /dev/null and b/briar-android/src/main/res/drawable-night-hdpi/msg_in.9.png differ
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
Binary files /dev/null and b/briar-android/src/main/res/drawable-night-hdpi/msg_in_top.9.png differ
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
Binary files /dev/null and b/briar-android/src/main/res/drawable-night-mdpi/msg_in.9.png differ
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
Binary files /dev/null and b/briar-android/src/main/res/drawable-night-mdpi/msg_in_top.9.png differ
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
Binary files /dev/null and b/briar-android/src/main/res/drawable-night-xhdpi/msg_in.9.png differ
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
Binary files /dev/null and b/briar-android/src/main/res/drawable-night-xhdpi/msg_in_top.9.png differ
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
Binary files /dev/null and b/briar-android/src/main/res/drawable-night-xxhdpi/msg_in.9.png differ
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
Binary files /dev/null and b/briar-android/src/main/res/drawable-night-xxhdpi/msg_in_top.9.png differ
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 0000000000000000000000000000000000000000..e4e45826a2f1dad3bf9d9ab5149b7beb3719a946
--- /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="#abffffff"
+		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 0000000000000000000000000000000000000000..1dd34144faca351c564681df936ce4f8fe3a97f3
--- /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="#abffffff"
+		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 0000000000000000000000000000000000000000..685ad6b8c090f007a1121796aa4cd60853de3358
--- /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 0000000000000000000000000000000000000000..433179877b000633f2bedaea0daa14e0c0d15f7c
--- /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 0000000000000000000000000000000000000000..b1904b00398b7951297ee102d4591169e272c95c
--- /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 814d0993fb0ef3181d02c780533339e61404a956..2cedb57ffb284f04221c928c12efaff010ef71bf 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 cf8009a5b782032b096420e1e9ec4abe81adb515..551d200455949a566b1f3bb98c62bde999a90466 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/bluetooth.xml b/briar-android/src/main/res/drawable/bluetooth.xml
deleted file mode 100644
index 26f10509be72ae72028e544ed35fd19412e446c3..0000000000000000000000000000000000000000
--- a/briar-android/src/main/res/drawable/bluetooth.xml
+++ /dev/null
@@ -1,151 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-	android:width="499.24373dp"
-	android:height="175.49413dp"
-	android:viewportWidth="499.24373"
-	android:viewportHeight="175.49413">
-
-	<path
-		android:fillColor="#000000"
-		android:pathData="M459.809,171.16 L455.482,166.826 L448.412,164.399
-C444.524,163.064,439.689,161.403,437.668,160.708 L433.994,159.445
-L437.518,159.272 C445.76,158.868,450.506,155.265,451.854,148.388
-C452.65,144.327,452.983,131.09,452.684,115.347
-C452.531,107.263,452.518,99.9306,452.656,99.0522
-C452.794,98.1738,453.191,96.6321,453.539,95.6262
-C454.761,92.0938,453.879,83.7179,451.681,77.9947
-C451.333,77.0872,449.747,73.7797,448.157,70.6447
-C443.999,62.4444,443.652,61.7028,443.264,60.1606
-C442.805,58.3392,443.052,54.7253,443.726,53.3947
-C444.392,52.0797,445.883,50.4785,446.972,49.9081
-C448.271,49.2279,449.588,50.0301,451.658,52.7632
-C455.08,57.2792,465.659,72.2041,467.39,74.9562
-C471.136,80.9126,473.346,86.1212,475.362,93.7447
-C476.017,96.2197,477.247,100.742,478.097,103.795
-C478.946,106.847,480.811,113.953,482.241,119.585 L484.841,129.825
-L489.491,135.018 C492.048,137.874,495.288,141.482,496.691,143.035
-C498.093,144.588,499.241,146.01,499.241,146.196
-C499.241,146.531,464.741,175.495,464.342,175.495
-C464.227,175.495,462.186,173.545,459.807,171.161 Z M365.944,154.772
-C364.687,154.144,363.739,153.393,363.03,152.465
-C360.941,149.729,361.08,154.834,361.166,83.9825 L361.244,19.9437
-L361.905,18.7088 C362.92,16.8111,363.897,15.7979,365.645,14.8299
-L367.245,13.9437 L405.029,13.8641
-C447.485,13.7747,444.431,13.6158,447.145,16.056
-C448.02,16.8431,448.902,18.0155,449.329,18.9598
-C450.042,20.5368,450.045,20.5982,450.135,33.1639 L450.225,45.7841
-L448.427,45.654 C447.001,45.5509,446.346,45.661,445.261,46.1861
-C443.248,47.1606,441.321,49.0848,440.146,51.2936 L439.109,53.2436
-L439.102,40.4186 L439.095,27.5936 L405.495,27.5936 L371.895,27.5936
-L371.895,78.8936 L371.895,130.194 L405.494,130.194 L439.093,130.194
-L439.169,95.769 C439.242,62.8088,439.267,61.4078,439.76,62.844
-C440.043,63.669,441.566,66.8415,443.143,69.894
-C448.636,80.5202,448.548,79.7541,448.539,117.097
-C448.532,144.718,448.415,147.048,446.877,150.206
-C445.806,152.405,444.166,153.916,441.819,154.866 L440.145,155.543
-L403.977,155.623 L367.809,155.703 L365.945,154.772 Z M408.344,149.734
-C411.215,148.425,412.802,146.056,412.774,143.117
-C412.735,139.001,409.665,135.894,405.638,135.894
-C403.518,135.894,402.071,136.503,400.474,138.066
-C398.229,140.264,397.72,143.505,399.173,146.353
-C399.886,147.751,401.694,149.362,403.135,149.883
-C404.632,150.425,406.975,150.358,408.344,149.734 Z" />
-	<path
-		android:fillColor="#000000"
-		android:pathData="M39.4343,171.16 L43.7609,166.826 L50.8305,164.399
-C54.7188,163.064,59.5534,161.403,61.574,160.708 L65.248,159.445 L61.724,159.272
-C53.4822,158.868,48.7362,155.265,47.3877,148.388
-C46.5914,144.327,46.2588,131.09,46.5575,115.347
-C46.7109,107.263,46.7237,99.9306,46.5859,99.0522
-C46.4482,98.1738,46.0506,96.6321,45.7025,95.6262
-C44.48,92.0938,45.3625,83.7179,47.5602,77.9947
-C47.9087,77.0872,49.4945,73.7797,51.0844,70.6447
-C55.2429,62.4444,55.589,61.7028,55.9773,60.1606
-C56.4359,58.3392,56.1889,54.7253,55.5148,53.3947
-C54.8486,52.0797,53.3578,50.4785,52.2686,49.9081
-C50.9697,49.2279,49.6529,50.0301,47.5822,52.7632
-C44.1607,57.2792,33.5808,72.2041,31.8503,74.9562
-C28.1048,80.9126,25.8947,86.1212,23.8781,93.7447
-C23.2234,96.2197,21.9929,100.742,21.1435,103.795
-C20.2942,106.847,18.4295,113.953,16.9996,119.585 L14.4,129.824 L9.75,135.017
-C7.1925,137.873,3.9525,141.481,2.55,143.034 C1.1475,144.587,0,146.009,0,146.195
-C0,146.53,34.4996,175.494,34.8991,175.494
-C35.0138,175.494,37.0547,173.544,39.4343,171.16 Z M133.299,154.772
-C134.557,154.144,135.505,153.393,136.213,152.465
-C138.302,149.729,138.163,154.834,138.077,83.9825 L137.999,19.9437
-L137.338,18.7088 C136.323,16.8111,135.346,15.7979,133.598,14.8299
-L131.998,13.9437 L94.2141,13.8641
-C51.7582,13.7747,54.8117,13.6158,52.0976,16.056
-C51.2222,16.8431,50.3404,18.0155,49.9137,18.9598
-C49.2011,20.5368,49.1976,20.5982,49.1081,33.1639 L49.0182,45.7841
-L50.8164,45.654 C52.2422,45.5509,52.8978,45.661,53.9824,46.1861
-C55.9953,47.1606,57.9223,49.0848,59.0972,51.2936 L60.1344,53.2436
-L60.1414,40.4186 L60.1484,27.5936 L93.7484,27.5936 L127.348,27.5936
-L127.348,78.8936 L127.348,130.194 L93.7493,130.194 L60.1506,130.194
-L60.0743,95.769 C60.0013,62.8088,59.9761,61.4078,59.4833,62.844
-C59.2002,63.669,57.6777,66.8415,56.0999,69.894
-C50.6074,80.5202,50.695,79.7541,50.7039,117.097
-C50.7109,144.718,50.8275,147.048,52.3659,150.206
-C53.4373,152.405,55.0773,153.916,57.4241,154.866 L59.0979,155.543
-L95.2656,155.623 L131.433,155.703 L133.297,154.772 Z M90.8996,149.734
-C88.0284,148.425,86.4419,146.056,86.4696,143.117
-C86.5084,139.001,89.5784,135.894,93.606,135.894
-C95.7256,135.894,97.1733,136.503,98.7696,138.066
-C101.015,140.264,101.524,143.505,100.071,146.353
-C99.3579,147.751,97.5496,149.362,96.1089,149.883
-C94.6118,150.425,92.2689,150.358,90.9,149.734 Z" />
-	<path
-		android:fillColor="#0a3d91"
-		android:pathData="M247.254,75.9792 L251.99,75.9792
-C265.155,75.9792,275.753,86.5777,275.753,99.7427 L275.753,131.917
-C275.753,145.082,265.154,155.68,251.99,155.68 L247.254,155.68
-C234.089,155.68,223.491,145.081,223.491,131.917 L223.491,99.7424
-C223.491,86.5774,234.09,75.9789,247.254,75.9789 Z" />
-	<path
-		android:strokeColor="#ffffff"
-		android:strokeWidth="4.32805729"
-		android:pathData="M236.311,102.927 L261.218,127.997 L249.214,142.533 L249.214,90.5963
-L261.218,104.479 L236.311,128.896" />
-	<path
-		android:fillColor="#0a3d91"
-		android:strokeWidth="7.55000019"
-		android:strokeLineJoin="round"
-		android:strokeLineCap="round"
-		android:pathData="M143.679,27.5571 C142.089,30.1809,143.861,33.1318,146.464,34.1998
-C149.159,35.7722,152.635,39.187,155.612,36.432
-C157.845,34.3925,156.213,30.7041,153.571,29.7617
-C150.507,28.085,147.019,24.2469,143.68,27.5572 Z M351.705,27.1294
-C348.937,29.09,344.636,29.8244,343.327,33.1721
-C342.685,35.9031,345.263,38.1647,347.911,37.5986
-C351.113,35.9607,354.968,34.7562,357.089,31.6509
-C357.658,29.0465,355.596,26.3002,352.821,26.9052
-C352.405,26.7975,352.061,26.9402,351.704,27.1294 Z M324.943,40.3012
-C322.009,42.0092,317.623,42.224,316.012,45.4542
-C315.104,48.1085,317.444,50.6134,320.136,50.3152
-C323.492,49.0109,327.456,48.2025,329.873,45.3129
-C330.687,42.7752,328.896,39.8433,326.077,40.184
-C325.673,40.0383,325.317,40.1458,324.944,40.3011 Z M169.707,42.7641
-C168.488,45.476,170.464,48.2246,173.151,48.9095
-C176.009,49.9903,179.82,53.0273,182.463,50.1434
-C184.778,48.1069,182.802,44.308,180.053,43.7252
-C176.725,42.5494,172.668,39.0116,169.707,42.7641 Z M296.98,50.3813
-C293.857,51.6905,289.488,51.352,287.488,54.3514
-C286.256,56.8701,288.261,59.6497,290.968,59.6911
-C294.455,58.7838,298.535,58.5783,301.271,55.952
-C302.385,53.5298,300.959,50.4059,298.119,50.401
-C297.736,50.2053,297.369,50.274,296.98,50.3813 Z M199.49,51.9262
-C197.261,53.388,196.81,56.7921,199.214,58.3031
-C201.801,59.7737,205.129,60.258,208.054,60.7984
-C210.839,61.1306,212.8,58.3192,211.945,55.7497
-C209.902,52.47,205.473,53.0161,202.228,51.6605
-C201.315,51.749,200.402,51.8376,199.49,51.9261 Z M268.004,56.434
-C264.728,57.2229,260.543,56.2461,258.068,58.816
-C256.418,61.0841,257.911,64.1697,260.572,64.6779
-C264.184,64.3855,268.29,64.7686,271.412,62.5839
-C272.874,60.3563,271.935,57.0522,269.127,56.6245
-C268.778,56.3753,268.405,56.3852,268.004,56.434 Z M228.555,57.852
-C226.622,59.6879,226.79,63.1186,229.426,64.1735
-C232.235,65.1623,235.597,65.0202,238.57,65.0349
-C241.369,64.8621,242.796,61.7451,241.494,59.3702
-C238.89,56.5186,234.647,57.8284,231.201,57.1003
-C230.319,57.3509,229.437,57.6015,228.555,57.8521 Z" />
-</vector>
\ No newline at end of file
diff --git a/briar-android/src/main/res/drawable/border_explanation.xml b/briar-android/src/main/res/drawable/border_explanation.xml
index b2e380fbc2b43a13a4ed90bf2dad3693d20f423c..f545133765c9a0f461e0bd666b372abf1a441006 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/border_spinner.xml b/briar-android/src/main/res/drawable/border_spinner.xml
deleted file mode 100644
index 9720073e4957731b66e72dff29e95723629d8ad6..0000000000000000000000000000000000000000
--- a/briar-android/src/main/res/drawable/border_spinner.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape
-	xmlns:android="http://schemas.android.com/apk/res/android"
-	android:shape="rectangle">
-
-	<solid
-		android:color="@android:color/transparent"/>
-
-	<stroke
-		android:width="1dp"
-		android:color="@color/spinner_border"/>
-
-	<corners
-		android:radius="2dp"/>
-
-</shape>
\ No newline at end of file
diff --git a/briar-android/src/main/res/drawable/bubble.xml b/briar-android/src/main/res/drawable/bubble.xml
index a00f451ed1cf85fb3f4ae9ec2518f7b240c2f382..8d2dd0c8088eae5f37ae0ab57dedeb32982512b2 100644
--- a/briar-android/src/main/res/drawable/bubble.xml
+++ b/briar-android/src/main/res/drawable/bubble.xml
@@ -12,7 +12,7 @@
 		android:bottom="1px"/>
 
 	<solid
-		android:color="@color/briar_primary"/>
+		android:color="@color/briar_accent"/>
 
 	<stroke
 		android:color="@color/briar_text_primary_inverse"
diff --git a/briar-android/src/main/res/drawable/bubble_white.xml b/briar-android/src/main/res/drawable/bubble_white.xml
index 21d0e8e15eb5e066cf275cc8ee087e98a5f34e74..bb79ab2fa740c59bac6b65c5c7d15713ac047ac7 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 fc0426085e9d4e4f2214e675c7c99988a8a58508..a5314250998a4145187e5b153dc1a676f07d930d 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 76c1002379a40d6207e82c267b51905f08fc2a4b..c1a088235a0df4d82940327128b21f2e79211d69 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 b0224405a66c0fc1972b4469daecd4cd11c8db6a..e4ecae7b16911a1c5dfd81e4cbc3832a5da3b771 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 56966678d412e370ea9b34e427295a7146bca84a..077ce4189f5bc8fda752a1aab9e1039493c1bcd0 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 cd3e499303967f8488262729e32cd1254d0b242d..c033a04befa44faa962ae56aa8d62439f4596115 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 cdec171106ede103ee3fe62d539818502c42b33d..3b74969d39614e1080ffcdf9bd7bc82b5994f4e8 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 d63c313653b45af47964eb454c7f1c77683becc1..29b9c0c452ba6226b4bd32d35df50c2fd5d2cb5e 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 cb97f4e15aa631a1dfabfed6229c8521e0cd1d7f..262be839facc62684e026abd8e1f5c0ecd7ae81a 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 68976f28c109287a74d3bb588877f69dc10275b7..c4b56853f89354bbb1f58e548189eb3eca3c9671 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 958664070d98b1b8993907540d94dedf0a709ea6..625a7c12b4b128ece6dc3de898974d1ff969439e 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 70f0ec6ea51310594bbfbcc54adce7d05f00b457..7b15232cff5598f12dbd38bea3dfebe3721d3bbe 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 3f891e2e43241fd849de538faea493738eed1521..fc0081fc7b722e22997aea2b8f60117b085691ea 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 12dfdcd2e065a22ef7e5262179ea16bfb4d90e0f..8af14098045c2fb9c31e54aa34a0bc7603d839f7 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 28d8ff8cf50e639137b4cb93a06335230a7af4c1..524912968a581c263199fed9d65ae5835e47ab9d 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 b497d47fd3d7181ab112b06ed61be9abc1840ff8..32324f57b52089fffde0d36ecafdc7956b64dda4 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 a0534fbbfc6d4b6a7df18f7caaf2239f6c09e7ed..c52b6076fcbaa22f01c8108ee72035e59197ff64 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 039f929ddbbeca4d75d3e13d02960e2a2525c526..5bb4d8ebce0599d382b7d9af54d6dd64754d3ced 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_fullscreen_black_48dp.xml b/briar-android/src/main/res/drawable/ic_fullscreen_black_48dp.xml
index affab0d46563683d99c14c53dc3e2118b65f63cf..29b26803eb0d29731863f9c99917b0bee8eeba65 100644
--- a/briar-android/src/main/res/drawable/ic_fullscreen_black_48dp.xml
+++ b/briar-android/src/main/res/drawable/ic_fullscreen_black_48dp.xml
@@ -1,4 +1,9 @@
-<vector android:height="48dp" android:viewportHeight="24.0"
-    android:viewportWidth="24.0" android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#FF000000" android:pathData="M7,14L5,14v5h5v-2L7,17v-3zM5,10h2L7,7h3L10,5L5,5v5zM17,17h-3v2h5v-5h-2v3zM14,5v2h3v3h2L19,5h-5z"/>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="48dp"
+        android:height="48dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+	<path
+		android:fillColor="#FF000000"
+		android:pathData="M7,14L5,14v5h5v-2L7,17v-3zM5,10h2L7,7h3L10,5L5,5v5zM17,17h-3v2h5v-5h-2v3zM14,5v2h3v3h2L19,5h-5z"/>
 </vector>
diff --git a/briar-android/src/main/res/drawable/ic_group.xml b/briar-android/src/main/res/drawable/ic_group.xml
index d7e92099baee0b510e8113d92841303f056adea0..b7516903236a0186d3a43bd38acd33777464a4ce 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 112cabcada8267fbc6cbe00a06cb171b0a58877e..0000000000000000000000000000000000000000
--- 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 f1f26791ab498485f2d619a3e0477ce9a1bbe28d..dfcb91016bddc552adb0055f1cb98add832ffa91 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 af997ec0c067ed1f944219241cf447136b0ce5e9..f8e38d95b4b82e992c4c16177e8aff536c442b12 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 115dbda813aa64bde9f6c4a91ba0e92ef4ddda1b..a7771172a07213c956911c78c12eeaffc039ddc6 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 ddb38f6d6d258bf88cbaffa541160ff216a2ccaa..11f1920e25810891c58c7636ea558e36315cfdaa 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 a61a3158ad698f50257f593da606afaf758eef7a..05569dbdf34c6d668d7f8f2a4d4c120fcf988c2d 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 146e495349f2c678116b7a11c58f8273db8a0e79..80395495695264e60033525f74f14628efd8b362 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 80bea183c339ea04b566a21facb360ebb72f44b2..681832c9a38403081e2f513b6f1d5068abd28927 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 265ff997f90f11bdb0dd027d6572195d90a65cd7..4b486911196b8d561ba9eee8fdf2538818f85037 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 c47b28c7658f5109f24f3281c3928674b1289570..4d71497abdf9488bb45749d683a4f712f3f55876 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,11 @@
 	xmlns:android="http://schemas.android.com/apk/res/android">
 
 	<item
-		android:drawable="@color/forum_cell_highlight"
-		android:state_activated="true"/>
+		android:drawable="@color/thread_item_background"
+		android:state_activated="false"/>
+
 	<item
-		android:drawable="@color/window_background"/>
+		android:drawable="@color/thread_item_highlight"
+		android:state_activated="true"/>
 
 </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 414c707b6341bb4d7d1fd418930b337147cdec5f..88535626864df7f3c7d0363e126009f441b1bb48 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 37dd9ca84f98edbfd0bf9b0a0ca9980583e0f0fd..a205b178da5f71ddb6c7f3b19c001f7d74636841 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 d687ff520707517d4d03f161160b969abf1d8a64..f1a1a31b0876b4a4b0e07c0f27372c29d72cef8c 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 29d5069d5053fefae0860ba62059a2ed1d5fc88c..9c8a759a345a0d6c101a4076e77d9d12c385d1d2 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 be80561b542d2209913bd450d5aa7c233f5b4834..2a8774c8c4e451bbb6275780db63f9a5a5d90c52 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 ad12a9625258323b9988d8af9de87382cfd7824e..60844d4d4d4a8ff174c83cdda09c5cfe8830d4ab 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 9084ddbad147dcc05beeeba37770a9eb6f00c1a6..ce8f0060f3b96f547645c15790a68b530736d70f 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 2c98d297489b9d371b64a9276657a3b419604916..c1f5cb114be074c45c6544825d52c20d8a6f4c86 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 1e624c91d6241ff2f83ff2bc8bf0fdfb68f1d655..6208ec5fd7530f703ad036d472bbf4207bb98d76 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 fc9e649cec55f4f355267f2fea24b23333b7ba2f..ab17da50e4e0f63f7b8f7fd46a77fcbc5f011cf9 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 e13728956fdd96cac72653e594a6e539f7ed7393..ec6f40fc0db6c37a7593435430803071305a2d9f 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 d73fc0da88258ab7ed886b378258833dea59e928..3efce6d655b760c077fa0cad05ab462dcba2511f 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 15e6d94a1d45a463d38e36b43a6d716587625eff..022d31c4cab36a5302298b02c428c0711f0a78f3 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 359c87569bef27ce0bc1be1f0719718d9500a99f..2e808c62f54028efdb6026c3f8b4f4940822976a 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 18ce6ac856c32ea84b2de5c7faad380ee886890e..33a659c86b18586114ab1de15189301fdf8462ea 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 0252bbec953649778857d7f300bf04b5d62d2c4f..752b9f49125315a709ae5f6d9cc132de46d8af12 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 5812a7f43bffe8bf2d50a295ac4813a458c5ef5e..c606a828791617b249bbfa7275bcbfff2ada8119 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 37f3723339a2cf728ecbe4ae61d59f5916275cce..28f2cfa4923123f73029ca0e7f344b6baa64accb 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 1a1c64c04585a34cf3eba2673a73f25a6271737a..df5e36a9e7644598ade8fe29f9fe93c9791f2ff2 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 228e5dd695065a726ff181b6e6e678b5d671d335..3fdce0b1c5a634db1ee967423f13ee85ae620299 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 4870bf8ee47b99070d9d9a3129b8ba7d64061b7b..b705051ccdd57d7d9b980ae534b3b99efc20023b 100644
--- a/briar-android/src/main/res/layout/fragment_error.xml
+++ b/briar-android/src/main/res/layout/fragment_error.xml
@@ -6,7 +6,7 @@
 	android:layout_width="match_parent"
 	android:layout_height="match_parent">
 
-	<ImageView
+	<android.support.v7.widget.AppCompatImageView
 		android:id="@+id/errorIcon"
 		android:layout_width="128dp"
 		android:layout_height="128dp"
@@ -14,10 +14,10 @@
 		android:layout_marginStart="8dp"
 		android:layout_marginTop="8dp"
 		android:src="@drawable/alerts_and_states_error"
-		android:tint="?colorControlNormal"
 		app:layout_constraintEnd_toEndOf="parent"
 		app:layout_constraintStart_toStartOf="parent"
 		app:layout_constraintTop_toTopOf="parent"
+		app:tint="?attr/colorControlNormal"
 		tools:ignore="ContentDescription"/>
 
 	<TextView
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 8653617ee4952e390c86f9a6fa0f5a9ecfd89164..c8f9b0999bcda1eb032d1f06bf4d69844523cd2d 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_keyagreement_qr.xml b/briar-android/src/main/res/layout/fragment_keyagreement_qr.xml
index be534ca22406e11a47dd7d89dc74e04d45d0dcf7..d9527df8fd386e966b5454398b6630ab4ff7f25f 100644
--- a/briar-android/src/main/res/layout/fragment_keyagreement_qr.xml
+++ b/briar-android/src/main/res/layout/fragment_keyagreement_qr.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <FrameLayout
 	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">
@@ -14,19 +15,19 @@
 		android:id="@+id/camera_overlay"
 		android:layout_width="match_parent"
 		android:layout_height="match_parent"
-		android:orientation="vertical"
-		android:baselineAligned="false">
+		android:baselineAligned="false"
+		android:orientation="vertical">
 
 		<LinearLayout
 			android:id="@+id/status_container"
 			android:layout_width="match_parent"
 			android:layout_height="0dp"
 			android:layout_weight="1"
-			android:background="@android:color/background_light"
 			android:gravity="center"
 			android:orientation="vertical"
 			android:padding="@dimen/margin_medium"
-			android:visibility="invisible">
+			android:visibility="invisible"
+			tools:visibility="visible">
 
 			<ProgressBar
 				style="?android:attr/progressBarStyleLarge"
@@ -65,46 +66,22 @@
 					android:layout_height="match_parent"
 					android:layout_centerInParent="true"
 					android:contentDescription="@string/qr_code"
-					android:scaleType="fitCenter"/>
+					android:scaleType="fitCenter"
+					tools:src="@drawable/startup_lock"/>
 
 				<ImageView
 					android:id="@+id/fullscreen_button"
-					android:background="?selectableItemBackground"
-					android:src="@drawable/ic_fullscreen_black_48dp"
-					android:alpha="0.54"
 					android:layout_width="wrap_content"
 					android:layout_height="wrap_content"
-					android:layout_margin="@dimen/margin_small"
 					android:layout_alignParentBottom="true"
-					android:layout_alignParentRight="true"
 					android:layout_alignParentEnd="true"
-					android:contentDescription="@string/show_qr_code_fullscreen"/>
+					android:layout_alignParentRight="true"
+					android:layout_margin="@dimen/margin_small"
+					android:alpha="0.54"
+					android:background="?selectableItemBackground"
+					android:contentDescription="@string/show_qr_code_fullscreen"
+					android:src="@drawable/ic_fullscreen_black_48dp"/>
 			</RelativeLayout>
 		</FrameLayout>
 	</LinearLayout>
-
-	<RelativeLayout
-		android:id="@+id/container_progress"
-		android:layout_width="match_parent"
-		android:layout_height="match_parent"
-		android:background="@android:color/white"
-		android:visibility="invisible">
-
-		<ProgressBar
-			android:id="@+id/progress_bar"
-			style="?android:attr/progressBarStyleLarge"
-			android:layout_width="wrap_content"
-			android:layout_height="wrap_content"
-			android:layout_above="@+id/title_progress_bar"
-			android:layout_centerHorizontal="true"/>
-
-		<TextView
-			android:id="@+id/title_progress_bar"
-			android:layout_width="match_parent"
-			android:layout_height="wrap_content"
-			android:layout_centerInParent="true"
-			android:gravity="center"
-			android:paddingTop="@dimen/margin_large"
-			tools:text="@string/waiting_for_contact_to_scan"/>
-	</RelativeLayout>
 </FrameLayout>
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 307b7110eebb5abe09820f5cb18edb7f30a6d5da..328185e424e33fcf135927cc423dee680e48ef7b 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 1d5f553e205f9f41235453bccd4ce017d6301946..401a2bacd6b5b351668e693270662771e0b78479 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 0cdc34ba86a400842a912bc59e6367b32c6095df..9fe6196d5a55fcfda3049f7f53cd2668ba860781 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 3cab8e948b57fa783635c26e4613934e6c78549c..cafe987015374b127c575b965f4cbcc98e5c75dc 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 a0fef3ea7b3da6bfd10a06cfb037e6502c8dc1e5..a3f8f85f7c270327234d8f76f0f0429efa236c7e 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 bb297ef433aa38ca5af3d43cbe698bf787faeaaa..bac38bf1869ce80e16b20a8e0db892a74e030630 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 1415b1e39443ea9e7e4522f728453521f181fc33..01bfc431aa659737eef3dfc18e1bd1e78f065e87 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 ef5c7a953b04987859556f9939050b6e02a5c897..b16a1b8abd7045f5b842424bf7f242c87ebbc48b 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 073edf537c67a9d86d955d59e7a581dd3544240a..4e34325e9d1a20fe5cdd4069f8a6ed1623854175 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 9ea5bd96772f6ffedf371bc7a70700e6a8ed68b3..3ffee121baf743ce324fbbfcd55da800e8954047 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
@@ -1,6 +1,7 @@
 <?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"
@@ -30,7 +31,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,11 +45,11 @@
 			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"/>
 
-		<ImageView
+		<android.support.v7.widget.AppCompatImageView
 			android:id="@+id/status"
 			android:layout_width="wrap_content"
 			android:layout_height="wrap_content"
@@ -56,6 +57,7 @@
 			android:layout_marginLeft="@dimen/margin_medium"
 			android:layout_toEndOf="@+id/time"
 			android:layout_toRightOf="@+id/time"
+			app: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 3d6388a1cea8d982ec0b7785a9651bc8dd70dc56..4c8a377a5c26f2c9d803f215088c13897b585370 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 f7aa3d0eba54efe6fe1ae3d58390f37c1371e78d..63439eddb09a90a94a222471f0d0c1cf1c008481 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 a3881e9e74c7731f3e45c355ee40320a37c715e2..791924492202aecdb9195cf837c03e5f7cc13904 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 19ea41eb87ed2792c45c661a91a0df580c9b6b19..7340f096c5ebf18bb7a02fd4f85deaea81112623 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 ee57435fb1a01b3fe95757e673128b4f43c0389e..c6e480d69e08806c4b1d02ab74c11f5bfe885347 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 2c4a61b2cf474f0131c371d0d4257002f72e38bc..143e15c3a8a94f164c0bc9d61d088e40ce6b98fd 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 5aab1e59199c53b838ea3bbbfa2882a518525992..8d2dbfcb2cc2ed59fcd50ff2bc3aa35e62975ed9 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 f00838fcc32183bacb5c0851762b3efa08aadadd..3b43ad49e50d6a42adbccdea79fec2ed827f38be 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 183dfc3b0c4faea28ba30dc4e0ca7203c0052db9..750f8a1264ab8ab6a097ea1fb71ba7e7a613a729 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 4073eb00eaff777dc76adfd3818ed30f9876dc6c..df31c253d1dc2da5ac1f3359782a33a59dbfedeb 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 c1610883978420ef28eba8c5ab795b40420a19f8..3fcb607f64d611d0cf349549f84370c21914d7b7 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 ac362bdcbc6ba9783ac6ce36acac42f674263321..ab796704971fbd47d86f7163cb3a8e5ff81549b3 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 bac5f8a8f2fd24b5a14e63a5b0ac048304017e67..88808226070f84eec94f04e26ceae0c4e3f84686 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 707611e1ec765408daedbe49ff1e316cbc7c3d87..b04c7dd7bf7bada6859b4bc58b30cd5dabf343f3 100644
--- a/briar-android/src/main/res/layout/power_view.xml
+++ b/briar-android/src/main/res/layout/power_view.xml
@@ -18,17 +18,17 @@
 		app:layout_constraintTop_toTopOf="parent"
 		tools:text="@string/setup_huawei_text"/>
 
-	<ImageView
+	<android.support.v7.widget.AppCompatImageView
 		android:id="@+id/checkImage"
 		android:layout_width="24dp"
 		android:layout_height="24dp"
 		android:layout_margin="8dp"
 		android:src="@drawable/ic_check_white"
-		android:tint="?colorControlNormal"
 		android:visibility="invisible"
 		app:layout_constraintBottom_toBottomOf="@+id/button"
 		app:layout_constraintStart_toStartOf="parent"
 		app:layout_constraintTop_toTopOf="@+id/button"
+		app:tint="?attr/colorControlNormal"
 		tools:ignore="ContentDescription"/>
 
 	<Button
diff --git a/briar-android/src/main/res/layout/preferences_category.xml b/briar-android/src/main/res/layout/preferences_category.xml
index 4e068a7cd10f961f39981a612dbc1a25102bd848..ced92b8ae9d84f5aff7581afea2236b7768416b3 100644
--- a/briar-android/src/main/res/layout/preferences_category.xml
+++ b/briar-android/src/main/res/layout/preferences_category.xml
@@ -1,11 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
-          android:id="@android:id/title"
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:layout_marginTop="16dp"
-          android:layout_marginLeft="16dp"
-          android:layout_marginStart="16dp"
-          android:textSize="14sp"
-          android:textStyle="bold"
-          android:textColor="@color/briar_blue_light"/>
\ No newline at end of file
+<TextView
+	xmlns:android="http://schemas.android.com/apk/res/android"
+	xmlns:tools="http://schemas.android.com/tools"
+	android:id="@android:id/title"
+	android:layout_width="match_parent"
+	android:layout_height="wrap_content"
+	android:layout_marginTop="16dp"
+	android:layout_marginLeft="16dp"
+	android:layout_marginStart="16dp"
+	android:textSize="14sp"
+	android:textStyle="bold"
+	android:textColor="@color/preference_category"
+	tools:text="This is a category"/>
\ No newline at end of file
diff --git a/briar-android/src/main/res/layout/splash.xml b/briar-android/src/main/res/layout/splash.xml
index 595cecaf22a3354b634d94e6bc00dc20974662e0..bab1dc6fb5bbce2da76fbe48bdf4d70c18d6cd91 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 c539c0351b12921c4225ab4d840dbb5d27bbd4f3..f5d989acce24500684aa848205c359d7f5fff004 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"
@@ -12,7 +13,8 @@
 
 	<LinearLayout
 		android:layout_width="match_parent"
-		android:layout_height="wrap_content">
+		android:layout_height="wrap_content"
+		android:background="@color/card_background">
 
 		<org.thoughtcrime.securesms.components.emoji.EmojiToggle
 			android:id="@+id/emoji_toggle"
@@ -20,7 +22,8 @@
 			android:layout_height="@dimen/text_input_height"
 			android:background="?attr/selectableItemBackground"
 			android:padding="@dimen/margin_small"
-			android:scaleType="center"/>
+			android:scaleType="center"
+			app:tint="?attr/colorControlNormal"/>
 
 		<org.thoughtcrime.securesms.components.emoji.EmojiEditText
 			android:id="@+id/input_text"
@@ -31,10 +34,10 @@
 			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"/>
+			android:textColor="?android:attr/textColorPrimary"
+			android:textColorHint="?android:attr/textColorTertiary"/>
 
-		<ImageButton
+		<android.support.v7.widget.AppCompatImageButton
 			android:id="@+id/btn_send"
 			android:layout_width="@dimen/text_input_height"
 			android:layout_height="@dimen/text_input_height"
@@ -42,9 +45,10 @@
 			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_primary"/>
+			app:tint="@color/briar_accent"/>
 
 	</LinearLayout>
 
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 b01d2a82a90ee4d41c20f1df2de28b1f1dd6a858..60155836cc4597dcf6f6909bb0f487c601dba030 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 0000000000000000000000000000000000000000..e15fb0256353cade187042bb121d48ded7a7e130
--- /dev/null
+++ b/briar-android/src/main/res/values-night/color.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+	<color name="briar_accent">@color/briar_blue_light2</color>
+	<color name="preference_category">@color/briar_blue_light2</color>
+
+	<color name="color_primary">#ffffff</color>
+
+	<color name="window_background">#ff303030</color>
+	<color name="card_background">@color/cardview_dark_background</color>
+	<color name="divider">#666666</color>
+
+	<color name="thread_item_background">@color/window_background</color>
+	<color name="thread_item_highlight">#000000</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 978c98698025dbab54c2b7405e6d35b334180e47..d4001a3c9ae19ca54dbb014535dc2273c07508ea 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 18669d8b2dc1355e83ef0270e6c23146ce8c9a5f..7fedb0cbffb370984622059ce05ce7b7e028ecfa 100644
--- a/briar-android/src/main/res/values/color.xml
+++ b/briar-android/src/main/res/values/color.xml
@@ -3,14 +3,13 @@
 	<color name="briar_blue">#2D3E50</color>
 	<color name="briar_blue_dark">#0F1720</color>
 	<color name="briar_blue_light">#4F6C8C</color>
-	<color name="briar_gold">#FCCF1C</color>
+	<color name="briar_blue_light2">#5a7da3</color>
 	<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="card_background">@color/cardview_light_background</color>
 	<color name="action_bar_text">#FFFFFF</color>
-	<color name="button_bar_background">#FFFFFF</color>
-	<color name="private_message_date">#AAAAAA</color>
 	<color name="private_message_date_inverse">#e0e0e0</color>
 	<color name="forum_avatar_shadow">#99000000</color>
 
@@ -18,27 +17,25 @@
 	<color name="briar_primary_dark">@color/briar_blue_dark</color>
 
 	<color name="briar_accent">@color/briar_blue</color>
-	<color name="control_normal_light">#757575</color>
+
+	<color name="color_primary">#dd000000</color>
 
 	<!-- text colors -->
 	<color name="briar_text_link">@color/briar_link</color>
 	<color name="briar_text_primary">#df000000</color>
 	<color name="briar_text_primary_inverse">#ffffff</color>
-	<color name="briar_text_secondary">#8a000000</color>
 	<color name="briar_text_secondary_inverse">#b4ffffff</color>
-	<color name="briar_text_tertiary">#61000000</color>
 	<color name="briar_text_tertiary_inverse">#80ffffff</color>
+	<color name="preference_category">@color/briar_blue_light</color>
+
 	<color name="briar_button_positive">@color/briar_link</color>
 	<color name="briar_button_negative">#ff0000</color>
 	<color name="briar_warning_background">#ff0000</color>
-	<color name="emoji_text_color">#ff000000</color>
-
-	<color name="emoji_pager_background">@color/window_background</color>
 
 	<color name="thread_indicator">#9e9e9e</color>
+	<color name="thread_item_background">#eceff1</color>
+	<color name="thread_item_highlight">#ffffff</color>
 	<color name="divider">#c1c1c1</color>
-	<color name="menu_background">#FFFFFF</color>
 
 	<color name="spinner_border">#61000000</color> <!-- 38% Black -->
-	<color name="forum_cell_highlight">#ffffff</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 9acb6c935e3b50d87612d0ecaa335db3d273adf1..1c0fb4d57e70d7c90c8462d4fd79390d6cd794b9 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 c967fdb0719cc839f1a06fe4c16e4c5c7f4b0e7a..f679d808159f316ee5878b79279aa55720fc4011 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/button_text</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,18 +73,7 @@
 
 	<style name="BriarAvatar">
 		<item name="civ_border_width">@dimen/avatar_border_width</item>
-		<item name="civ_border_color">@color/briar_primary</item>
-	</style>
-
-	<style name="NavMenuButton" parent="Widget.AppCompat.Button.Borderless.Colored">
-		<item name="android:textSize">@dimen/text_size_medium</item>
-		<item name="android:textColor">@android:color/tertiary_text_light</item>
-		<item name="android:paddingTop">@dimen/margin_large</item>
-		<item name="android:paddingBottom">@dimen/margin_large</item>
-		<item name="android:drawablePadding">@dimen/margin_xlarge</item>
-		<item name="android:gravity">left|center_vertical</item>
-		<item name="android:layout_margin">0dp</item>
-		<item name="android:paddingLeft">@dimen/margin_large</item>
+		<item name="civ_border_color">?android:attr/textColorSecondary</item>
 	</style>
 
 	<style name="DiscussionLevelIndicator">
@@ -105,24 +81,9 @@
 		<item name="android:background">@color/thread_indicator</item>
 	</style>
 
-	<style name="BriarTabLayout" parent="Widget.Design.TabLayout">
-		<item name="android:background">@color/briar_primary</item>
-		<item name="tabMode">scrollable</item>
-		<item name="tabMaxWidth">100dp</item>
-		<item name="tabIndicatorColor">@color/briar_text_primary_inverse</item>
-		<item name="tabIndicatorHeight">3dp</item>
-		<item name="tabSelectedTextColor">@color/briar_text_primary_inverse</item>
-		<item name="tabTextColor">@color/briar_text_primary_inverse</item>
-	</style>
-
 	<style name="BriarCard" parent="CardView">
 		<item name="cardUseCompatPadding">true</item>
 		<item name="android:layout_margin">@dimen/margin_small</item>
 	</style>
 
-	<!-- This fixes the missing TextAppearance.Design.Counter.Overflow style -->
-	<style name="BriarTextCounter.Overflow" parent="TextAppearance.Design.Counter">
-		<item name="android:textColor">@color/briar_button_negative</item>
-	</style>
-
 </resources>
\ No newline at end of file
diff --git a/briar-android/src/main/res/values/themes.xml b/briar-android/src/main/res/values/themes.xml
index 146081c42883c03e745e0af8bc3f107ecf52ce73..c4dc47a67fb400e59f19549f74313c92bfb9f22c 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 7b3181fa05dcf2bf827b1506b309786fc7cd8956..c74c7e3c3ec69ab980320ec5ce5a0ceacbb8ac1e 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