From a2485811cbf7059326b29b2f93d7e1ad84cb5de3 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Wed, 28 May 2025 16:15:15 +0200 Subject: [PATCH] add activity to view full screen avatars --- src/main/AndroidManifest.xml | 4 +- .../eu/siacs/conversations/ui/Activities.java | 9 +++- .../siacs/conversations/ui/BaseActivity.java | 4 +- .../ui/ContactDetailsActivity.java | 7 +++ .../ui/ViewProfilePictureActivity.java | 49 +++++++++++++++++++ .../layout/activity_view_profile_picture.xml | 28 +++++++++++ src/main/res/values-night/themes.xml | 31 +----------- src/main/res/values/themes.xml | 31 ++++++++++++ 8 files changed, 128 insertions(+), 35 deletions(-) create mode 100644 src/main/java/eu/siacs/conversations/ui/ViewProfilePictureActivity.java create mode 100644 src/main/res/layout/activity_view_profile_picture.xml 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 @@ - + + +