diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index cee52eaf8d1b693dc43468f3233eaee5b46e581c..2efd545cb7aa7a0dce65c6535b3ed23751108593 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -60,7 +60,7 @@
android:name="android.hardware.microphone"
android:required="false" />
-
+
@@ -365,6 +365,8 @@
+
diff --git a/src/main/java/eu/siacs/conversations/ui/Activities.java b/src/main/java/eu/siacs/conversations/ui/Activities.java
index d95d6b4acd04e9aba716480294210202ab1d6f23..a0a118afb9fdc08aae679983abc230650540055e 100644
--- a/src/main/java/eu/siacs/conversations/ui/Activities.java
+++ b/src/main/java/eu/siacs/conversations/ui/Activities.java
@@ -17,7 +17,14 @@ public final class Activities {
public static void setStatusAndNavigationBarColors(
final Activity activity, final View view, final boolean raisedStatusBar) {
- final var isLightMode = isLightMode(activity);
+ setStatusAndNavigationBarColors(activity, view, isLightMode(activity), raisedStatusBar);
+ }
+
+ public static void setStatusAndNavigationBarColors(
+ final Activity activity,
+ final View view,
+ final boolean isLightMode,
+ final boolean raisedStatusBar) {
final var window = activity.getWindow();
final var flags = view.getSystemUiVisibility();
// an elevation of 4 matches the MaterialToolbar elevation
diff --git a/src/main/java/eu/siacs/conversations/ui/BaseActivity.java b/src/main/java/eu/siacs/conversations/ui/BaseActivity.java
index cea58c15ecef8e1fbff19b263b4b9980c243fde0..259809f9995a0764425bccae6d7b42405eb1b626 100644
--- a/src/main/java/eu/siacs/conversations/ui/BaseActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/BaseActivity.java
@@ -1,10 +1,8 @@
package eu.siacs.conversations.ui;
import android.util.Log;
-
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
-
import eu.siacs.conversations.Conversations;
import eu.siacs.conversations.ui.util.SettingsUtils;
@@ -23,7 +21,7 @@ public abstract class BaseActivity extends AppCompatActivity {
}
@Override
- protected void onResume(){
+ protected void onResume() {
super.onResume();
SettingsUtils.applyScreenshotSetting(this);
}
diff --git a/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java b/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java
index 06a1183d369490c51ddd9040d53cf713c9d74ec7..8b0ca874dc146f25bddf9c55031334a3b50f265f 100644
--- a/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java
@@ -637,6 +637,13 @@ public class ContactDetailsActivity extends OmemoActivity
}
private void onBadgeClick(final View view) {
+ final var intent = new Intent(this, ViewProfilePictureActivity.class);
+ intent.setData(Uri.fromParts("avatar", contact.getAvatar(), null));
+ intent.putExtra(ViewProfilePictureActivity.EXTRA_DISPLAY_NAME, contact.getDisplayName());
+ startActivity(intent);
+ }
+
+ private void onAddToAddressBookClick(final View view) {
if (QuickConversationsService.isContactListIntegration(this)) {
final Uri systemAccount = contact.getSystemAccount();
if (systemAccount == null) {
diff --git a/src/main/java/eu/siacs/conversations/ui/ViewProfilePictureActivity.java b/src/main/java/eu/siacs/conversations/ui/ViewProfilePictureActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..00f3c1f48b49b5efd95792aa9268c1f4bd16f95f
--- /dev/null
+++ b/src/main/java/eu/siacs/conversations/ui/ViewProfilePictureActivity.java
@@ -0,0 +1,49 @@
+package eu.siacs.conversations.ui;
+
+import static eu.siacs.conversations.ui.XmppActivity.configureActionBar;
+
+import android.net.Uri;
+import android.os.Bundle;
+import androidx.databinding.DataBindingUtil;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.databinding.ActivityViewProfilePictureBinding;
+import eu.siacs.conversations.persistance.FileBackend;
+
+public class ViewProfilePictureActivity extends ActionBarActivity {
+
+ public static final String EXTRA_DISPLAY_NAME = "eu.siacs.conversations.extra.DISPLAY_NAME";
+
+ private ActivityViewProfilePictureBinding binding;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ this.binding = DataBindingUtil.setContentView(this, R.layout.activity_view_profile_picture);
+ Activities.setStatusAndNavigationBarColors(this, binding.getRoot(), false, false);
+
+ setSupportActionBar(binding.toolbar);
+ configureActionBar(getSupportActionBar());
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ final var intent = getIntent();
+ if (intent == null) {
+ return;
+ }
+ final var uri = intent.getData();
+ if (uri == null) {
+ return;
+ }
+ final var avatar = uri.getSchemeSpecificPart();
+ if (avatar == null) {
+ return;
+ }
+ final var displayName = intent.getStringExtra(EXTRA_DISPLAY_NAME);
+ final var file = FileBackend.getAvatarFile(this, avatar);
+ this.binding.imageView.setImageURI(Uri.fromFile(file));
+ setTitle(displayName);
+ }
+}
diff --git a/src/main/res/layout/activity_view_profile_picture.xml b/src/main/res/layout/activity_view_profile_picture.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d5b8658692ee54ccdb670f3c2476e266a9517d04
--- /dev/null
+++ b/src/main/res/layout/activity_view_profile_picture.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/res/values-night/themes.xml b/src/main/res/values-night/themes.xml
index c6a2926e8ff2443987133d14d2f26e69e5141a9e..945addb9788876976829bc1452045d67f0fa877f 100644
--- a/src/main/res/values-night/themes.xml
+++ b/src/main/res/values-night/themes.xml
@@ -1,35 +1,6 @@
-
+
+
+