diff --git a/briar-android/artwork/notification_signout.svg b/briar-android/artwork/notification_signout.svg
new file mode 100644
index 000000000..ac9680fe8
--- /dev/null
+++ b/briar-android/artwork/notification_signout.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/briar-android/build.gradle b/briar-android/build.gradle
index 95c18ca3c..12f93024c 100644
--- a/briar-android/build.gradle
+++ b/briar-android/build.gradle
@@ -25,6 +25,8 @@ android {
versionCode 10213
versionName "1.2.13"
applicationId "org.briarproject.briar.android"
+
+ vectorDrawables.useSupportLibrary = true
buildConfigField "String", "GitHash",
"\"${getStdout(['git', 'rev-parse', '--short=7', 'HEAD'], 'No commit hash')}\""
def now = (long) (System.currentTimeMillis() / 1000)
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java
index 7bad14178..4b007e3a0 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java
@@ -255,7 +255,7 @@ class AndroidNotificationManagerImpl implements AndroidNotificationManager,
R.string.ongoing_notification_title;
int text = locked ? R.string.lock_tap_to_unlock :
R.string.ongoing_notification_text;
- int icon = locked ? R.drawable.startup_lock :
+ int icon = locked ? R.drawable.notification_lock :
R.drawable.notification_ongoing;
// Ongoing foreground notification that shows BriarService is running
NotificationCompat.Builder b =
@@ -624,7 +624,7 @@ class AndroidNotificationManagerImpl implements AndroidNotificationManager,
NotificationCompat.Builder b =
new NotificationCompat.Builder(appContext, REMINDER_CHANNEL_ID);
- b.setSmallIcon(R.drawable.ic_signout);
+ b.setSmallIcon(R.drawable.notification_signout);
b.setColor(getColor(appContext, R.color.briar_primary));
b.setContentTitle(
appContext.getText(R.string.reminder_notification_title));
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java
index 9a46153f1..01e0c1647 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java
@@ -3,6 +3,7 @@ package org.briarproject.briar.android.conversation;
import android.annotation.SuppressLint;
import android.content.DialogInterface;
import android.content.Intent;
+import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Parcelable;
import android.transition.Slide;
@@ -105,6 +106,7 @@ import androidx.recyclerview.selection.SelectionTracker.SelectionObserver;
import androidx.recyclerview.selection.StorageStrategy;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
import de.hdodenhof.circleimageview.CircleImageView;
import uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt;
@@ -479,12 +481,10 @@ public class ConversationActivity extends BriarActivity
@UiThread
private void displayContactOnlineStatus() {
if (connectionRegistry.isConnected(contactId)) {
- toolbarStatus.setImageDrawable(ContextCompat.getDrawable(
- ConversationActivity.this, R.drawable.contact_online));
+ toolbarStatus.setImageResource(R.drawable.contact_online);
toolbarStatus.setContentDescription(getString(R.string.online));
} else {
- toolbarStatus.setImageDrawable(ContextCompat.getDrawable(
- ConversationActivity.this, R.drawable.contact_offline));
+ toolbarStatus.setImageResource(R.drawable.contact_offline);
toolbarStatus.setContentDescription(getString(R.string.offline));
}
}
@@ -935,13 +935,16 @@ public class ConversationActivity extends BriarActivity
return;
}
+ int color =
+ ContextCompat.getColor(this, R.color.briar_primary);
+ Drawable drawable = VectorDrawableCompat
+ .create(getResources(), R.drawable.ic_more_vert_accent, null);
new MaterialTapTargetPrompt.Builder(ConversationActivity.this,
R.style.OnboardingDialogTheme).setTarget(target)
.setPrimaryText(R.string.introduction_onboarding_title)
.setSecondaryText(R.string.introduction_onboarding_text)
- .setIcon(R.drawable.ic_more_vert_accent)
- .setBackgroundColour(
- ContextCompat.getColor(this, R.color.briar_primary))
+ .setIconDrawable(drawable)
+ .setBackgroundColour(color)
.show();
}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/LoginUtils.java b/briar-android/src/main/java/org/briarproject/briar/android/login/LoginUtils.java
index 39dedadaf..eb0869d91 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/login/LoginUtils.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/login/LoginUtils.java
@@ -1,17 +1,13 @@
package org.briarproject.briar.android.login;
import android.content.Context;
-import android.graphics.drawable.Drawable;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.R;
import androidx.appcompat.app.AlertDialog;
-import static androidx.core.content.ContextCompat.getColor;
-import static androidx.core.content.ContextCompat.getDrawable;
-import static androidx.core.graphics.drawable.DrawableCompat.setTint;
-import static java.util.Objects.requireNonNull;
+import static org.briarproject.briar.android.util.UiUtils.getDialogIcon;
@NotNullByDefault
class LoginUtils {
@@ -19,9 +15,7 @@ class LoginUtils {
static AlertDialog createKeyStrengthenerErrorDialog(Context ctx) {
AlertDialog.Builder builder =
new AlertDialog.Builder(ctx, R.style.BriarDialogTheme);
- Drawable icon = getDrawable(ctx, R.drawable.alerts_and_states_error);
- setTint(requireNonNull(icon), getColor(ctx, R.color.color_primary));
- builder.setIcon(icon);
+ builder.setIcon(getDialogIcon(ctx, R.drawable.alerts_and_states_error));
builder.setTitle(R.string.dialog_title_cannot_check_password);
builder.setMessage(R.string.dialog_message_cannot_check_password);
builder.setPositiveButton(R.string.ok, null);
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java
index 4b0f456fe..f301f854b 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java
@@ -2,6 +2,7 @@ package org.briarproject.briar.android.navdrawer;
import android.content.Intent;
import android.content.res.Configuration;
+import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -59,6 +60,7 @@ import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelProviders;
+import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
import uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt;
import static android.view.View.GONE;
@@ -433,8 +435,7 @@ public class NavDrawerActivity extends BriarActivity implements
Transport t = getItem(position);
ImageView icon = view.findViewById(R.id.imageView);
- icon.setImageDrawable(ContextCompat.getDrawable(
- NavDrawerActivity.this, t.iconDrawable));
+ icon.setImageResource(t.iconDrawable);
icon.setColorFilter(ContextCompat.getColor(
NavDrawerActivity.this, t.iconColor));
@@ -476,11 +477,13 @@ public class NavDrawerActivity extends BriarActivity implements
private void showTransportsOnboarding(boolean show, ImageView imageView) {
if (show) {
int color = resolveColorAttribute(this, R.attr.colorControlNormal);
+ Drawable drawable = VectorDrawableCompat
+ .create(getResources(), R.drawable.transport_tor, null);
new MaterialTapTargetPrompt.Builder(NavDrawerActivity.this,
R.style.OnboardingDialogTheme).setTarget(imageView)
.setPrimaryText(R.string.network_settings_title)
.setSecondaryText(R.string.transports_onboarding_text)
- .setIcon(R.drawable.transport_tor)
+ .setIconDrawable(drawable)
.setIconDrawableColourFilter(color)
.setBackgroundColour(
ContextCompat.getColor(this, R.color.briar_primary))
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/TransportsActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/TransportsActivity.java
index 688700cb9..d86c9fea5 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/TransportsActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/TransportsActivity.java
@@ -141,8 +141,7 @@ public class TransportsActivity extends BriarActivity {
Transport t = getItem(position);
ImageView icon = view.findViewById(R.id.icon);
- icon.setImageDrawable(ContextCompat.getDrawable(
- TransportsActivity.this, t.iconDrawable));
+ icon.setImageResource(t.iconDrawable);
icon.setColorFilter(ContextCompat.getColor(
TransportsActivity.this, t.iconColor));
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 404b7e621..0039dbd28 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
@@ -54,6 +54,7 @@ import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
+import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
import static android.content.Context.KEYGUARD_SERVICE;
import static android.content.Context.POWER_SERVICE;
@@ -88,7 +89,6 @@ import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_NO;
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES;
import static androidx.appcompat.app.AppCompatDelegate.setDefaultNightMode;
import static androidx.core.content.ContextCompat.getColor;
-import static androidx.core.content.ContextCompat.getDrawable;
import static androidx.core.content.ContextCompat.getSystemService;
import static androidx.core.graphics.drawable.DrawableCompat.setTint;
import static androidx.core.view.ViewCompat.LAYOUT_DIRECTION_RTL;
@@ -436,7 +436,8 @@ public class UiUtils {
}
public static Drawable getDialogIcon(Context ctx, @DrawableRes int resId) {
- Drawable icon = getDrawable(ctx, resId);
+ Drawable icon =
+ VectorDrawableCompat.create(ctx.getResources(), resId, null);
setTint(requireNonNull(icon), getColor(ctx, R.color.color_primary));
return icon;
}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/BriarRecyclerView.java b/briar-android/src/main/java/org/briarproject/briar/android/view/BriarRecyclerView.java
index 4dc6c6b3a..c54b3ea17 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/view/BriarRecyclerView.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/view/BriarRecyclerView.java
@@ -2,7 +2,6 @@ package org.briarproject.briar.android.view;
import android.content.Context;
import android.content.res.TypedArray;
-import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Looper;
import android.util.AttributeSet;
@@ -53,9 +52,8 @@ public class BriarRecyclerView extends FrameLayout {
R.styleable.BriarRecyclerView);
isScrollingToEnd = attributes
.getBoolean(R.styleable.BriarRecyclerView_scrollToEnd, true);
- Drawable drawable = attributes
- .getDrawable(R.styleable.BriarRecyclerView_emptyImage);
- if (drawable != null) setEmptyImage(drawable);
+ int drawableRes = attributes.getResourceId(R.styleable.BriarRecyclerView_emptyImage, -1);
+ if (drawableRes != -1) setEmptyImage(drawableRes);
String emtpyText =
attributes.getString(R.styleable.BriarRecyclerView_emptyText);
if (emtpyText != null) setEmptyText(emtpyText);
@@ -139,11 +137,6 @@ public class BriarRecyclerView extends FrameLayout {
}
}
- public void setEmptyImage(Drawable drawable) {
- if (recyclerView == null) initViews();
- emptyImage.setImageDrawable(drawable);
- }
-
public void setEmptyImage(@DrawableRes int res) {
if (recyclerView == null) initViews();
emptyImage.setImageResource(res);
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/TextAttachmentController.java b/briar-android/src/main/java/org/briarproject/briar/android/view/TextAttachmentController.java
index 07d7f08a6..a048d43e2 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/view/TextAttachmentController.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/view/TextAttachmentController.java
@@ -4,6 +4,7 @@ import android.app.Activity;
import android.content.ClipData;
import android.content.Context;
import android.content.Intent;
+import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
@@ -28,6 +29,7 @@ import androidx.customview.view.AbsSavedState;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
+import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
import uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt;
import static android.os.Build.VERSION.SDK_INT;
@@ -253,12 +255,14 @@ public class TextAttachmentController extends TextSendController
public void showImageOnboarding(Activity activity) {
int color = resolveColorAttribute(activity, R.attr.colorControlNormal);
+ Drawable drawable = VectorDrawableCompat
+ .create(activity.getResources(), R.drawable.ic_image, null);
new MaterialTapTargetPrompt.Builder(activity,
R.style.OnboardingDialogTheme).setTarget(sendButton)
.setPrimaryText(R.string.dialog_title_image_support)
.setSecondaryText(R.string.dialog_message_image_support)
.setBackgroundColour(getColor(activity, R.color.briar_primary))
- .setIcon(R.drawable.ic_image)
+ .setIconDrawable(drawable)
.setIconDrawableColourFilter(color)
.show();
}
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 ec1fc98ac..464fd0aa7 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
@@ -8,7 +8,6 @@ import org.briarproject.briar.R;
import androidx.annotation.UiThread;
import androidx.appcompat.widget.AppCompatImageView;
-import androidx.core.content.ContextCompat;
@UiThread
public class TrustIndicatorView extends AppCompatImageView {
@@ -44,7 +43,7 @@ public class TrustIndicatorView extends AppCompatImageView {
default:
res = R.drawable.trust_indicator_unknown;
}
- setImageDrawable(ContextCompat.getDrawable(getContext(), res));
+ setImageResource(res);
setVisibility(VISIBLE);
invalidate();
diff --git a/briar-android/src/main/res/drawable/notification_blog.xml b/briar-android/src/main/res/drawable-anydpi-v24/notification_blog.xml
similarity index 58%
rename from briar-android/src/main/res/drawable/notification_blog.xml
rename to briar-android/src/main/res/drawable-anydpi-v24/notification_blog.xml
index d5218f632..3432e1312 100644
--- a/briar-android/src/main/res/drawable/notification_blog.xml
+++ b/briar-android/src/main/res/drawable-anydpi-v24/notification_blog.xml
@@ -1,10 +1,10 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ android:pathData="M13,12h7v1.5h-7zM13,9.5h7L20,11h-7zM13,14.5h7L20,16h-7zM21,4L3,4c-1.1,0 -2,0.9 -2,2v13c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,6c0,-1.1 -0.9,-2 -2,-2zM21,19h-9L12,6h9v13z" />
diff --git a/briar-android/src/main/res/drawable/notification_contact_added.xml b/briar-android/src/main/res/drawable-anydpi-v24/notification_contact_added.xml
similarity index 68%
rename from briar-android/src/main/res/drawable/notification_contact_added.xml
rename to briar-android/src/main/res/drawable-anydpi-v24/notification_contact_added.xml
index 48c8339f0..dbeb8ef60 100644
--- a/briar-android/src/main/res/drawable/notification_contact_added.xml
+++ b/briar-android/src/main/res/drawable-anydpi-v24/notification_contact_added.xml
@@ -1,10 +1,10 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ android:pathData="M20,0L4,0v2h16L20,0zM4,24h16v-2L4,22v2zM20,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM12,6.75c1.24,0 2.25,1.01 2.25,2.25s-1.01,2.25 -2.25,2.25S9.75,10.24 9.75,9 10.76,6.75 12,6.75zM17,17L7,17v-1.5c0,-1.67 3.33,-2.5 5,-2.5s5,0.83 5,2.5L17,17z" />
diff --git a/briar-android/src/main/res/drawable/notification_forum.xml b/briar-android/src/main/res/drawable-anydpi-v24/notification_forum.xml
similarity index 100%
rename from briar-android/src/main/res/drawable/notification_forum.xml
rename to briar-android/src/main/res/drawable-anydpi-v24/notification_forum.xml
diff --git a/briar-android/src/main/res/drawable-anydpi-v24/notification_lock.xml b/briar-android/src/main/res/drawable-anydpi-v24/notification_lock.xml
new file mode 100644
index 000000000..cf2c80ccf
--- /dev/null
+++ b/briar-android/src/main/res/drawable-anydpi-v24/notification_lock.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable/notification_ongoing.xml b/briar-android/src/main/res/drawable-anydpi-v24/notification_ongoing.xml
similarity index 100%
rename from briar-android/src/main/res/drawable/notification_ongoing.xml
rename to briar-android/src/main/res/drawable-anydpi-v24/notification_ongoing.xml
diff --git a/briar-android/src/main/res/drawable/notification_private_group.xml b/briar-android/src/main/res/drawable-anydpi-v24/notification_private_group.xml
similarity index 74%
rename from briar-android/src/main/res/drawable/notification_private_group.xml
rename to briar-android/src/main/res/drawable-anydpi-v24/notification_private_group.xml
index 55cbde9ee..cbe143955 100644
--- a/briar-android/src/main/res/drawable/notification_private_group.xml
+++ b/briar-android/src/main/res/drawable-anydpi-v24/notification_private_group.xml
@@ -1,10 +1,10 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ android:pathData="M16,11c1.66,0 2.99,-1.34 2.99,-3S17.66,5 16,5c-1.66,0 -3,1.34 -3,3s1.34,3 3,3zM8,11c1.66,0 2.99,-1.34 2.99,-3S9.66,5 8,5C6.34,5 5,6.34 5,8s1.34,3 3,3zM8,13c-2.33,0 -7,1.17 -7,3.5L1,19h14v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5zM16,13c-0.29,0 -0.62,0.02 -0.97,0.05 1.16,0.84 1.97,1.97 1.97,3.45L17,19h6v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5z" />
diff --git a/briar-android/src/main/res/drawable/notification_private_message.xml b/briar-android/src/main/res/drawable-anydpi-v24/notification_private_message.xml
similarity index 60%
rename from briar-android/src/main/res/drawable/notification_private_message.xml
rename to briar-android/src/main/res/drawable-anydpi-v24/notification_private_message.xml
index b42ea09e2..48240fe75 100644
--- a/briar-android/src/main/res/drawable/notification_private_message.xml
+++ b/briar-android/src/main/res/drawable-anydpi-v24/notification_private_message.xml
@@ -1,10 +1,10 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM18,14L6,14v-2h12v2zM18,11L6,11L6,9h12v2zM18,8L6,8L6,6h12v2z" />
diff --git a/briar-android/src/main/res/drawable-anydpi-v24/notification_signout.xml b/briar-android/src/main/res/drawable-anydpi-v24/notification_signout.xml
new file mode 100644
index 000000000..73940840c
--- /dev/null
+++ b/briar-android/src/main/res/drawable-anydpi-v24/notification_signout.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/briar-android/src/main/res/drawable-hdpi/notification_blog.png b/briar-android/src/main/res/drawable-hdpi/notification_blog.png
new file mode 100644
index 000000000..d8af309d6
Binary files /dev/null and b/briar-android/src/main/res/drawable-hdpi/notification_blog.png differ
diff --git a/briar-android/src/main/res/drawable-hdpi/notification_contact_added.png b/briar-android/src/main/res/drawable-hdpi/notification_contact_added.png
new file mode 100644
index 000000000..562bde2a2
Binary files /dev/null and b/briar-android/src/main/res/drawable-hdpi/notification_contact_added.png differ
diff --git a/briar-android/src/main/res/drawable-hdpi/notification_forum.png b/briar-android/src/main/res/drawable-hdpi/notification_forum.png
new file mode 100644
index 000000000..b97be3b09
Binary files /dev/null and b/briar-android/src/main/res/drawable-hdpi/notification_forum.png differ
diff --git a/briar-android/src/main/res/drawable-hdpi/notification_lock.png b/briar-android/src/main/res/drawable-hdpi/notification_lock.png
new file mode 100644
index 000000000..cf1d2dbfe
Binary files /dev/null and b/briar-android/src/main/res/drawable-hdpi/notification_lock.png differ
diff --git a/briar-android/src/main/res/drawable-hdpi/notification_ongoing.png b/briar-android/src/main/res/drawable-hdpi/notification_ongoing.png
new file mode 100644
index 000000000..199c06400
Binary files /dev/null and b/briar-android/src/main/res/drawable-hdpi/notification_ongoing.png differ
diff --git a/briar-android/src/main/res/drawable-hdpi/notification_private_group.png b/briar-android/src/main/res/drawable-hdpi/notification_private_group.png
new file mode 100644
index 000000000..9bffc2f60
Binary files /dev/null and b/briar-android/src/main/res/drawable-hdpi/notification_private_group.png differ
diff --git a/briar-android/src/main/res/drawable-hdpi/notification_private_message.png b/briar-android/src/main/res/drawable-hdpi/notification_private_message.png
new file mode 100644
index 000000000..9f28a4ddd
Binary files /dev/null and b/briar-android/src/main/res/drawable-hdpi/notification_private_message.png differ
diff --git a/briar-android/src/main/res/drawable-hdpi/notification_signout.png b/briar-android/src/main/res/drawable-hdpi/notification_signout.png
new file mode 100644
index 000000000..7fa1f7ed8
Binary files /dev/null and b/briar-android/src/main/res/drawable-hdpi/notification_signout.png differ
diff --git a/briar-android/src/main/res/drawable-mdpi/notification_blog.png b/briar-android/src/main/res/drawable-mdpi/notification_blog.png
new file mode 100644
index 000000000..34c7dc551
Binary files /dev/null and b/briar-android/src/main/res/drawable-mdpi/notification_blog.png differ
diff --git a/briar-android/src/main/res/drawable-mdpi/notification_contact_added.png b/briar-android/src/main/res/drawable-mdpi/notification_contact_added.png
new file mode 100644
index 000000000..194314c65
Binary files /dev/null and b/briar-android/src/main/res/drawable-mdpi/notification_contact_added.png differ
diff --git a/briar-android/src/main/res/drawable-mdpi/notification_forum.png b/briar-android/src/main/res/drawable-mdpi/notification_forum.png
new file mode 100644
index 000000000..ef1e2504d
Binary files /dev/null and b/briar-android/src/main/res/drawable-mdpi/notification_forum.png differ
diff --git a/briar-android/src/main/res/drawable-mdpi/notification_lock.png b/briar-android/src/main/res/drawable-mdpi/notification_lock.png
new file mode 100644
index 000000000..780388e39
Binary files /dev/null and b/briar-android/src/main/res/drawable-mdpi/notification_lock.png differ
diff --git a/briar-android/src/main/res/drawable-mdpi/notification_ongoing.png b/briar-android/src/main/res/drawable-mdpi/notification_ongoing.png
new file mode 100644
index 000000000..b68561b2b
Binary files /dev/null and b/briar-android/src/main/res/drawable-mdpi/notification_ongoing.png differ
diff --git a/briar-android/src/main/res/drawable-mdpi/notification_private_group.png b/briar-android/src/main/res/drawable-mdpi/notification_private_group.png
new file mode 100644
index 000000000..4f52bc248
Binary files /dev/null and b/briar-android/src/main/res/drawable-mdpi/notification_private_group.png differ
diff --git a/briar-android/src/main/res/drawable-mdpi/notification_private_message.png b/briar-android/src/main/res/drawable-mdpi/notification_private_message.png
new file mode 100644
index 000000000..f095ee707
Binary files /dev/null and b/briar-android/src/main/res/drawable-mdpi/notification_private_message.png differ
diff --git a/briar-android/src/main/res/drawable-mdpi/notification_signout.png b/briar-android/src/main/res/drawable-mdpi/notification_signout.png
new file mode 100644
index 000000000..07db32ef1
Binary files /dev/null and b/briar-android/src/main/res/drawable-mdpi/notification_signout.png differ
diff --git a/briar-android/src/main/res/drawable-xhdpi/notification_blog.png b/briar-android/src/main/res/drawable-xhdpi/notification_blog.png
new file mode 100644
index 000000000..c6c16bd11
Binary files /dev/null and b/briar-android/src/main/res/drawable-xhdpi/notification_blog.png differ
diff --git a/briar-android/src/main/res/drawable-xhdpi/notification_contact_added.png b/briar-android/src/main/res/drawable-xhdpi/notification_contact_added.png
new file mode 100644
index 000000000..2f5d2afa3
Binary files /dev/null and b/briar-android/src/main/res/drawable-xhdpi/notification_contact_added.png differ
diff --git a/briar-android/src/main/res/drawable-xhdpi/notification_forum.png b/briar-android/src/main/res/drawable-xhdpi/notification_forum.png
new file mode 100644
index 000000000..990c390c7
Binary files /dev/null and b/briar-android/src/main/res/drawable-xhdpi/notification_forum.png differ
diff --git a/briar-android/src/main/res/drawable-xhdpi/notification_lock.png b/briar-android/src/main/res/drawable-xhdpi/notification_lock.png
new file mode 100644
index 000000000..970eb9928
Binary files /dev/null and b/briar-android/src/main/res/drawable-xhdpi/notification_lock.png differ
diff --git a/briar-android/src/main/res/drawable-xhdpi/notification_ongoing.png b/briar-android/src/main/res/drawable-xhdpi/notification_ongoing.png
new file mode 100644
index 000000000..8cdafa9d3
Binary files /dev/null and b/briar-android/src/main/res/drawable-xhdpi/notification_ongoing.png differ
diff --git a/briar-android/src/main/res/drawable-xhdpi/notification_private_group.png b/briar-android/src/main/res/drawable-xhdpi/notification_private_group.png
new file mode 100644
index 000000000..5082366e6
Binary files /dev/null and b/briar-android/src/main/res/drawable-xhdpi/notification_private_group.png differ
diff --git a/briar-android/src/main/res/drawable-xhdpi/notification_private_message.png b/briar-android/src/main/res/drawable-xhdpi/notification_private_message.png
new file mode 100644
index 000000000..4b1ff6684
Binary files /dev/null and b/briar-android/src/main/res/drawable-xhdpi/notification_private_message.png differ
diff --git a/briar-android/src/main/res/drawable-xhdpi/notification_signout.png b/briar-android/src/main/res/drawable-xhdpi/notification_signout.png
new file mode 100644
index 000000000..68f0c37d9
Binary files /dev/null and b/briar-android/src/main/res/drawable-xhdpi/notification_signout.png differ
diff --git a/briar-android/src/main/res/drawable-xxhdpi/notification_blog.png b/briar-android/src/main/res/drawable-xxhdpi/notification_blog.png
new file mode 100644
index 000000000..3f16ce360
Binary files /dev/null and b/briar-android/src/main/res/drawable-xxhdpi/notification_blog.png differ
diff --git a/briar-android/src/main/res/drawable-xxhdpi/notification_contact_added.png b/briar-android/src/main/res/drawable-xxhdpi/notification_contact_added.png
new file mode 100644
index 000000000..6eb750cfd
Binary files /dev/null and b/briar-android/src/main/res/drawable-xxhdpi/notification_contact_added.png differ
diff --git a/briar-android/src/main/res/drawable-xxhdpi/notification_forum.png b/briar-android/src/main/res/drawable-xxhdpi/notification_forum.png
new file mode 100644
index 000000000..68473d897
Binary files /dev/null and b/briar-android/src/main/res/drawable-xxhdpi/notification_forum.png differ
diff --git a/briar-android/src/main/res/drawable-xxhdpi/notification_lock.png b/briar-android/src/main/res/drawable-xxhdpi/notification_lock.png
new file mode 100644
index 000000000..848892ae9
Binary files /dev/null and b/briar-android/src/main/res/drawable-xxhdpi/notification_lock.png differ
diff --git a/briar-android/src/main/res/drawable-xxhdpi/notification_ongoing.png b/briar-android/src/main/res/drawable-xxhdpi/notification_ongoing.png
new file mode 100644
index 000000000..af6015742
Binary files /dev/null and b/briar-android/src/main/res/drawable-xxhdpi/notification_ongoing.png differ
diff --git a/briar-android/src/main/res/drawable-xxhdpi/notification_private_group.png b/briar-android/src/main/res/drawable-xxhdpi/notification_private_group.png
new file mode 100644
index 000000000..a1854cad9
Binary files /dev/null and b/briar-android/src/main/res/drawable-xxhdpi/notification_private_group.png differ
diff --git a/briar-android/src/main/res/drawable-xxhdpi/notification_private_message.png b/briar-android/src/main/res/drawable-xxhdpi/notification_private_message.png
new file mode 100644
index 000000000..af4463c7a
Binary files /dev/null and b/briar-android/src/main/res/drawable-xxhdpi/notification_private_message.png differ
diff --git a/briar-android/src/main/res/drawable-xxhdpi/notification_signout.png b/briar-android/src/main/res/drawable-xxhdpi/notification_signout.png
new file mode 100644
index 000000000..1b62d66bc
Binary files /dev/null and b/briar-android/src/main/res/drawable-xxhdpi/notification_signout.png differ
diff --git a/briar-android/src/main/res/layout-h650dp/navigation_header.xml b/briar-android/src/main/res/layout-h650dp/navigation_header.xml
index 92a452e94..4661f362c 100644
--- a/briar-android/src/main/res/layout-h650dp/navigation_header.xml
+++ b/briar-android/src/main/res/layout-h650dp/navigation_header.xml
@@ -1,5 +1,6 @@
+ app:srcCompat="@drawable/navigation_drawer_header" />
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 91b1da901..fb2fe2c21 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
@@ -20,11 +20,11 @@
android:adjustViewBounds="true"
android:padding="@dimen/margin_medium"
android:scaleType="fitCenter"
- android:src="@drawable/qr_code_intro"
app:layout_constraintBottom_toBottomOf="@id/explanationText"
app:layout_constraintEnd_toStartOf="@id/explanationText"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
+ app:srcCompat="@drawable/qr_code_intro"
app:tint="@color/color_primary"
tools:ignore="ContentDescription" />
@@ -38,11 +38,11 @@
android:paddingTop="@dimen/margin_large"
android:paddingEnd="@dimen/margin_large"
android:scaleType="fitCenter"
- android:src="@drawable/qr_code_explanation"
app:layout_constraintBottom_toTopOf="@id/explanationText"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/diagram"
app:layout_constraintTop_toTopOf="parent"
+ app:srcCompat="@drawable/qr_code_explanation"
tools:ignore="ContentDescription" />
\ No newline at end of file
diff --git a/briar-android/src/main/res/layout/author_view.xml b/briar-android/src/main/res/layout/author_view.xml
index a90aeb046..99d3cc04c 100644
--- a/briar-android/src/main/res/layout/author_view.xml
+++ b/briar-android/src/main/res/layout/author_view.xml
@@ -29,10 +29,10 @@
android:contentDescription="@string/blogs_reblog_button"
android:padding="2dp"
android:scaleType="fitCenter"
- android:src="@drawable/ic_repeat"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="@+id/avatar"
- app:layout_constraintEnd_toEndOf="@+id/avatar" />
+ app:layout_constraintEnd_toEndOf="@+id/avatar"
+ app:srcCompat="@drawable/ic_repeat" />
diff --git a/briar-android/src/main/res/layout/fragment_error.xml b/briar-android/src/main/res/layout/fragment_error.xml
index 300ff69a0..bd663a9e3 100644
--- a/briar-android/src/main/res/layout/fragment_error.xml
+++ b/briar-android/src/main/res/layout/fragment_error.xml
@@ -14,10 +14,10 @@
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
- android:src="@drawable/alerts_and_states_error"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
+ app:srcCompat="@drawable/alerts_and_states_error"
app:tint="?attr/colorControlNormal"
tools:ignore="ContentDescription" />
diff --git a/briar-android/src/main/res/layout/fragment_error_contact_exchange.xml b/briar-android/src/main/res/layout/fragment_error_contact_exchange.xml
index 3e18f40b1..d06ef1187 100644
--- a/briar-android/src/main/res/layout/fragment_error_contact_exchange.xml
+++ b/briar-android/src/main/res/layout/fragment_error_contact_exchange.xml
@@ -30,10 +30,10 @@
android:layout_marginTop="16dp"
android:layout_marginRight="16dp"
android:scaleType="fitCenter"
- android:src="@drawable/qr_code_error"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/errorTitle"
+ app:srcCompat="@drawable/qr_code_error"
app:tint="?attr/colorControlNormal"
tools:ignore="ContentDescription" />
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 955e8e71e..eb29e78fc 100644
--- a/briar-android/src/main/res/layout/fragment_keyagreement_id.xml
+++ b/briar-android/src/main/res/layout/fragment_keyagreement_id.xml
@@ -19,11 +19,11 @@
android:adjustViewBounds="true"
android:paddingBottom="@dimen/margin_large"
android:scaleType="fitCenter"
- android:src="@drawable/qr_code_intro"
app:layout_constraintBottom_toTopOf="@id/explanationImage"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
+ app:srcCompat="@drawable/qr_code_intro"
app:tint="@color/color_primary" />
diff --git a/briar-android/src/main/res/layout/fragment_sign_out.xml b/briar-android/src/main/res/layout/fragment_sign_out.xml
index 610f7fac1..c701bf28c 100644
--- a/briar-android/src/main/res/layout/fragment_sign_out.xml
+++ b/briar-android/src/main/res/layout/fragment_sign_out.xml
@@ -10,13 +10,13 @@
android:layout_width="128dp"
android:layout_height="128dp"
android:scaleType="center"
- android:src="@drawable/startup_lock"
app:layout_constraintBottom_toTopOf="@+id/textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.5"
app:layout_constraintVertical_chainStyle="packed"
+ app:srcCompat="@drawable/startup_lock"
app:tint="@color/briar_primary"
tools:ignore="ContentDescription" />
diff --git a/briar-android/src/main/res/layout/image_preview.xml b/briar-android/src/main/res/layout/image_preview.xml
index 9ec0317e9..83bd2271e 100644
--- a/briar-android/src/main/res/layout/image_preview.xml
+++ b/briar-android/src/main/res/layout/image_preview.xml
@@ -38,13 +38,13 @@
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="8dp"
- android:src="@drawable/ic_close"
app:backgroundTint="@color/briar_accent"
app:fabCustomSize="26dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0"
- app:maxImageSize="18dp" />
+ app:maxImageSize="18dp"
+ app:srcCompat="@drawable/ic_close" />
diff --git a/briar-android/src/main/res/layout/introduction_message.xml b/briar-android/src/main/res/layout/introduction_message.xml
index 518fa2f91..97387d6f6 100644
--- a/briar-android/src/main/res/layout/introduction_message.xml
+++ b/briar-android/src/main/res/layout/introduction_message.xml
@@ -43,11 +43,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_large"
- android:src="@drawable/ic_contact_introduction"
app:layout_constraintBottom_toBottomOf="@+id/barrier"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/avatarContact2"
+ app:srcCompat="@drawable/ic_contact_introduction"
app:tint="?attr/colorControlNormal"
tools:ignore="ContentDescription" />
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 293b69ae3..fa53019cf 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
@@ -47,9 +47,9 @@
android:layout_height="@dimen/button_size"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/blogs_reblog_comment_hint"
- android:src="@drawable/ic_repeat"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
+ app:srcCompat="@drawable/ic_repeat"
app:tint="?attr/colorControlNormal" />
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 81414aa96..f5f76e024 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
@@ -27,9 +27,9 @@
android:layout_margin="@dimen/margin_medium"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/delete"
- android:src="@drawable/action_delete_black"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
+ app:srcCompat="@drawable/action_delete_black"
app:tint="?attr/colorControlNormal" />
@@ -52,10 +52,10 @@
android:layout_height="24dp"
android:layout_margin="@dimen/margin_medium"
android:contentDescription="@string/help"
- android:src="@drawable/ic_help_outline_white"
android:tint="@color/briar_button_text_positive"
app:layout_constraintBottom_toBottomOf="@+id/button"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintTop_toTopOf="@+id/button" />
+ app:layout_constraintTop_toTopOf="@+id/button"
+ app:srcCompat="@drawable/ic_help_outline_white" />
\ No newline at end of file
diff --git a/briar-android/src/main/res/layout/qr_code_view.xml b/briar-android/src/main/res/layout/qr_code_view.xml
index 351ad5765..603549056 100644
--- a/briar-android/src/main/res/layout/qr_code_view.xml
+++ b/briar-android/src/main/res/layout/qr_code_view.xml
@@ -1,5 +1,6 @@
@@ -25,6 +26,6 @@
android:alpha="0.54"
android:background="?attr/selectableItemBackground"
android:contentDescription="@string/show_qr_code_fullscreen"
- android:src="@drawable/ic_fullscreen_black_48dp" />
+ app:srcCompat="@drawable/ic_fullscreen_black_48dp" />
diff --git a/briar-android/src/main/res/layout/splash.xml b/briar-android/src/main/res/layout/splash.xml
index 410dbb74d..0cd22a43c 100644
--- a/briar-android/src/main/res/layout/splash.xml
+++ b/briar-android/src/main/res/layout/splash.xml
@@ -1,5 +1,6 @@
@@ -9,6 +10,6 @@
android:layout_gravity="center"
android:layout_margin="@dimen/margin_xxlarge"
android:contentDescription="@string/app_name"
- android:src="@drawable/splash_screen" />
+ app:srcCompat="@drawable/splash_screen" />
diff --git a/briar-android/src/main/res/layout/view_composite_send_button.xml b/briar-android/src/main/res/layout/view_composite_send_button.xml
index 8ecfb1b81..b72677e71 100644
--- a/briar-android/src/main/res/layout/view_composite_send_button.xml
+++ b/briar-android/src/main/res/layout/view_composite_send_button.xml
@@ -19,8 +19,8 @@
android:focusable="true"
android:padding="4dp"
android:scaleType="center"
- android:src="@drawable/ic_image_off"
android:visibility="invisible"
+ app:srcCompat="@drawable/ic_image_off"
app:tint="?attr/colorControlNormal" />
- @drawable/bubble_completed
- center
- - @drawable/ic_check_white
+ - @drawable/ic_check_white
\ No newline at end of file