From 684dfe53ee82fc8f48a9c712d9528c4db725d31e Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 22 Feb 2023 21:50:48 -0500 Subject: [PATCH] Fix for API less than 24 --- .../conversations/ui/ConversationFragment.java | 13 ++++++++++--- .../siacs/conversations/ui/SettingsActivity.java | 15 ++++++++++----- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index f0aa0eb57e8d54d26891c49e129dadee5c1d21f6..e051ff51cd996c9452e3a4898b7d884224dde6a9 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -2382,9 +2382,16 @@ public class ConversationFragment extends XmppFragment intent.putExtra("android.provider.extra.INITIAL_URI", Uri.parse(dir)); } else { new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/" + dir + "/User Pack").mkdirs(); - Intent tmp = ((StorageManager) activity.getSystemService(Context.STORAGE_SERVICE)).getPrimaryStorageVolume().createOpenDocumentTreeIntent(); - Uri uri = tmp.getParcelableExtra("android.provider.extra.INITIAL_URI"); - intent.putExtra("android.provider.extra.INITIAL_URI", Uri.parse(uri.toString().replace("/root/", "/document/") + "%3APictures%2F" + dir)); + Uri uri; + if (Build.VERSION.SDK_INT >= 24) { + Intent tmp = ((StorageManager) activity.getSystemService(Context.STORAGE_SERVICE)).getPrimaryStorageVolume().createOpenDocumentTreeIntent(); + uri = tmp.getParcelableExtra("android.provider.extra.INITIAL_URI"); + uri = Uri.parse(uri.toString().replace("/root/", "/document/") + "%3APictures%2F" + dir); + } else { + uri = Uri.parse("content://com.android.externalstorage.documents/document/primary%3APictures%2F" + dir); + } + intent.putExtra("android.provider.extra.INITIAL_URI", uri); + intent.putExtra("android.content.extra.SHOW_ADVANCED", true); } Toast.makeText(activity, "Choose a sticker pack to add this sticker to", Toast.LENGTH_SHORT).show(); diff --git a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java index 496cba8659fe8ad1ac2bd38017d7947b40ae9ca4..daa13ab7c629732d3160ed941f431d6c28fa6823 100644 --- a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java @@ -378,11 +378,16 @@ public class SettingsActivity extends XmppActivity implements OnSharedPreference final Preference stickerDir = mSettingsFragment.findPreference("sticker_directory"); if (stickerDir != null) { - stickerDir.setOnPreferenceClickListener((p) -> { - Intent intent = ((StorageManager) getSystemService(Context.STORAGE_SERVICE)).getPrimaryStorageVolume().createOpenDocumentTreeIntent(); - startActivityForResult(Intent.createChooser(intent, "Choose sticker location"), 0); - return true; - }); + if (Build.VERSION.SDK_INT >= 24) { + stickerDir.setOnPreferenceClickListener((p) -> { + Intent intent = ((StorageManager) getSystemService(Context.STORAGE_SERVICE)).getPrimaryStorageVolume().createOpenDocumentTreeIntent(); + startActivityForResult(Intent.createChooser(intent, "Choose sticker location"), 0); + return true; + }); + } else { + PreferenceCategory expertMedia = (PreferenceCategory) mSettingsFragment.findPreference("expert_media"); + expertMedia.removePreference(stickerDir); + } } final Preference clearBlockedMedia = mSettingsFragment.findPreference("clear_blocked_media");