diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java index f6e4a44f6..02316cb92 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java @@ -174,7 +174,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr private int charCount, charLimit, trimmedCharCount; private Button publishButton, languageButton, scheduleTimeBtn, draftsBtn; - private PopupMenu languagePopup, visibilityPopup, draftOptionsPopup; + private PopupMenu languagePopup, visibilityPopup, draftOptionsPopup, attachPopup; private ImageButton mediaBtn, pollBtn, emojiBtn, spoilerBtn, visibilityBtn, scheduleDraftDismiss; private ImageView sensitiveIcon; private ComposeMediaLayout attachmentsView; @@ -327,7 +327,19 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr sensitiveItem=view.findViewById(R.id.sensitive_item); replyText=view.findViewById(R.id.reply_text); - mediaBtn.setOnClickListener(v->openFilePicker()); + if (isPhotoPickerAvailable()) { + PopupMenu attachPopup = new PopupMenu(getContext(), mediaBtn); + attachPopup.inflate(R.menu.attach); + attachPopup.setOnMenuItemClickListener(i -> { + openFilePicker(i.getItemId() == R.id.media); + return true; + }); + UiUtils.enablePopupMenuIcons(getContext(), attachPopup); + mediaBtn.setOnClickListener(v->attachPopup.show()); + mediaBtn.setOnTouchListener(attachPopup.getDragToOpenListener()); + } else { + mediaBtn.setOnClickListener(v -> openFilePicker(false)); + } pollBtn.setOnClickListener(v->togglePoll()); emojiBtn.setOnClickListener(v->emojiKeyboard.toggleKeyboardPopup(mainEditText)); spoilerBtn.setOnClickListener(v->toggleSpoiler()); @@ -1176,9 +1188,9 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr * *

For earlier versions use the built in docs ui via {@link Intent#ACTION_GET_CONTENT} */ - private void openFilePicker(){ + private void openFilePicker(boolean photoPicker){ Intent intent; - boolean usePhotoPicker = isPhotoPickerAvailable(); + boolean usePhotoPicker = photoPicker && isPhotoPickerAvailable(); if (usePhotoPicker) { intent = new Intent(MediaStore.ACTION_PICK_IMAGES); intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, MediaStore.getPickImagesMaxLimit()); diff --git a/mastodon/src/main/res/drawable/ic_fluent_attach_24_regular.xml b/mastodon/src/main/res/drawable/ic_fluent_attach_24_regular.xml new file mode 100644 index 000000000..06c6ed284 --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_fluent_attach_24_regular.xml @@ -0,0 +1,3 @@ + + + diff --git a/mastodon/src/main/res/drawable/ic_fluent_document_24_regular.xml b/mastodon/src/main/res/drawable/ic_fluent_document_24_regular.xml new file mode 100644 index 000000000..8fab94e5e --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_fluent_document_24_regular.xml @@ -0,0 +1,3 @@ + + + diff --git a/mastodon/src/main/res/layout/fragment_compose.xml b/mastodon/src/main/res/layout/fragment_compose.xml index 3253288b8..cd9f3e051 100644 --- a/mastodon/src/main/res/layout/fragment_compose.xml +++ b/mastodon/src/main/res/layout/fragment_compose.xml @@ -329,7 +329,7 @@ android:tintMode="src_in" android:contentDescription="@string/add_media" android:tooltipText="@string/add_media" - android:src="@drawable/ic_fluent_image_24_regular"/> + android:src="@drawable/ic_fluent_attach_24_regular"/> +

+ + + \ No newline at end of file diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml index db16b5cfe..796586124 100644 --- a/mastodon/src/main/res/values/strings_sk.xml +++ b/mastodon/src/main/res/values/strings_sk.xml @@ -174,4 +174,6 @@ edited Edited posts Edits a reblogged post + Add media + Attach file \ No newline at end of file