diff options
Diffstat (limited to '')
3 files changed, 19 insertions, 6 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java index 72168ab89..070914bb8 100644 --- a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java @@ -57,6 +57,7 @@ import de.pixart.messenger.ui.util.GridManager; import de.pixart.messenger.ui.util.MucDetailsContextMenuHelper; import de.pixart.messenger.ui.util.MyLinkify; import de.pixart.messenger.ui.util.SoftKeyboardUtils; +import de.pixart.messenger.utils.Compatibility; import de.pixart.messenger.utils.EmojiWrapper; import de.pixart.messenger.utils.MenuDoubleTabUtil; import de.pixart.messenger.utils.StringUtils; @@ -337,6 +338,7 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers if (this.mTheme != theme) { recreate(); } + binding.mediaWrapper.setVisibility(Compatibility.hasStoragePermission(this) ? View.VISIBLE : View.GONE); } @Override @@ -521,9 +523,11 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers if (uuid != null) { this.mConversation = xmppConnectionService.findConversationByUuid(uuid); if (this.mConversation != null) { - final int limit = GridManager.getCurrentColumnCount(this.binding.media); - xmppConnectionService.getAttachments(this.mConversation, limit, this); - this.binding.showMedia.setOnClickListener((v) -> MediaBrowserActivity.launch(this, mConversation)); + if (Compatibility.hasStoragePermission(this)) { + final int limit = GridManager.getCurrentColumnCount(this.binding.media); + xmppConnectionService.getAttachments(this.mConversation, limit, this); + this.binding.showMedia.setOnClickListener((v) -> MediaBrowserActivity.launch(this, mConversation)); + } updateView(); } } diff --git a/src/main/java/de/pixart/messenger/ui/ContactDetailsActivity.java b/src/main/java/de/pixart/messenger/ui/ContactDetailsActivity.java index 3aabf08e4..1dfc80e3c 100644 --- a/src/main/java/de/pixart/messenger/ui/ContactDetailsActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ContactDetailsActivity.java @@ -51,6 +51,7 @@ import de.pixart.messenger.ui.adapter.MediaAdapter; import de.pixart.messenger.ui.interfaces.OnMediaLoaded; import de.pixart.messenger.ui.util.Attachment; import de.pixart.messenger.ui.util.GridManager; +import de.pixart.messenger.utils.Compatibility; import de.pixart.messenger.utils.CryptoHelper; import de.pixart.messenger.utils.IrregularUnicodeDetector; import de.pixart.messenger.utils.MenuDoubleTabUtil; @@ -289,6 +290,7 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp this.showDynamicTags = preferences.getBoolean(SettingsActivity.SHOW_DYNAMIC_TAGS, false); this.showLastSeen = preferences.getBoolean("last_activity", false); } + binding.mediaWrapper.setVisibility(Compatibility.hasStoragePermission(this) ? View.VISIBLE : View.GONE); mMediaAdapter.setAttachments(Collections.emptyList()); } @@ -676,9 +678,11 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp processFingerprintVerification(mPendingFingerprintVerificationUri); mPendingFingerprintVerificationUri = null; } - final int limit = GridManager.getCurrentColumnCount(this.binding.media); - xmppConnectionService.getAttachments(account, contact.getJid().asBareJid(), limit, this); - this.binding.showMedia.setOnClickListener((v) -> MediaBrowserActivity.launch(this, contact)); + if (Compatibility.hasStoragePermission(this)) { + final int limit = GridManager.getCurrentColumnCount(this.binding.media); + xmppConnectionService.getAttachments(account, contact.getJid().asBareJid(), limit, this); + this.binding.showMedia.setOnClickListener((v) -> MediaBrowserActivity.launch(this, contact)); + } populateView(); } } diff --git a/src/main/java/de/pixart/messenger/ui/util/GridManager.java b/src/main/java/de/pixart/messenger/ui/util/GridManager.java index 717fef526..ae615b051 100644 --- a/src/main/java/de/pixart/messenger/ui/util/GridManager.java +++ b/src/main/java/de/pixart/messenger/ui/util/GridManager.java @@ -22,6 +22,11 @@ public class GridManager { @Override public void onGlobalLayout() { recyclerView.getViewTreeObserver().removeOnGlobalLayoutListener(this); + final int availableWidth = recyclerView.getMeasuredWidth(); + if (availableWidth == 0) { + Log.e(Config.LOGTAG, "GridManager: available width was 0; probably because layout was hidden"); + return; + } final ColumnInfo columnInfo = calculateColumnCount(context, recyclerView.getMeasuredWidth(), desiredSize); Log.d(Config.LOGTAG, "final count " + columnInfo.count); if (recyclerView.getAdapter().getItemCount() != 0) { |