From dd1e71f7755f758870742a6344d41819e572b177 Mon Sep 17 00:00:00 2001 From: Mariotaku Lee Date: Tue, 11 Apr 2017 22:22:50 +0800 Subject: [PATCH] fixed extension library --- build.gradle | 2 +- .../java/org/mariotaku/twidere/Twidere.java | 3 +- .../mariotaku/ktextension/MenuExtensions.kt | 5 +++ .../twidere/activity/ComposeActivity.kt | 43 +++++++++++-------- .../org/mariotaku/twidere/util/MenuUtils.kt | 3 +- 5 files changed, 33 insertions(+), 23 deletions(-) diff --git a/build.gradle b/build.gradle index 1881945a8..4f375bfda 100644 --- a/build.gradle +++ b/build.gradle @@ -56,7 +56,7 @@ subprojects { TwitterText : '1.14.3', MediaViewerLibrary: '0.9.23', MultiValueSwitch : '0.9.8', - PickNCrop : '0.9.24', + PickNCrop : '0.9.25', AndroidGIFDrawable: '1.2.6', KPreferences : '0.9.6', Kovenant : '3.3.0', diff --git a/twidere.library.extension/src/main/java/org/mariotaku/twidere/Twidere.java b/twidere.library.extension/src/main/java/org/mariotaku/twidere/Twidere.java index fdbbf46d0..06bc7a1dc 100644 --- a/twidere.library.extension/src/main/java/org/mariotaku/twidere/Twidere.java +++ b/twidere.library.extension/src/main/java/org/mariotaku/twidere/Twidere.java @@ -66,7 +66,8 @@ public final class Twidere implements TwidereConstants { public static void setComposeExtensionResult(@NonNull final Activity activity, @Nullable final String text, final boolean isReplacementMode, @Nullable Uri[] media) { final Intent intent = new Intent(); - intent.putExtra(Intent.EXTRA_TEXT, isReplacementMode); + intent.putExtra(Intent.EXTRA_TEXT, text); + intent.putExtra(EXTRA_IS_REPLACE_MODE, isReplacementMode); if (media != null && media.length > 0) { intent.setData(media[0]); diff --git a/twidere/src/main/kotlin/org/mariotaku/ktextension/MenuExtensions.kt b/twidere/src/main/kotlin/org/mariotaku/ktextension/MenuExtensions.kt index ed7c5397d..f8ca7fb9a 100644 --- a/twidere/src/main/kotlin/org/mariotaku/ktextension/MenuExtensions.kt +++ b/twidere/src/main/kotlin/org/mariotaku/ktextension/MenuExtensions.kt @@ -22,6 +22,7 @@ package org.mariotaku.ktextension import android.graphics.drawable.Drawable import android.support.v4.view.MenuItemCompat import android.view.Menu +import android.view.SubMenu fun Menu.setItemAvailability(id: Int, available: Boolean) { val item = findItem(id) ?: return @@ -59,3 +60,7 @@ fun Menu.setMenuItemShowAsActionFlags(id: Int, flags: Int) { item.setShowAsActionFlags(flags) MenuItemCompat.setShowAsAction(item, flags) } + +fun Menu.findSubmenu(id: Int): SubMenu? { + return findItem(id)?.subMenu +} diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/ComposeActivity.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/ComposeActivity.kt index 83c5570d4..1912a0b49 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/ComposeActivity.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/ComposeActivity.kt @@ -274,11 +274,13 @@ class ComposeActivity : BaseActivity(), OnMenuItemClickListener, OnClickListener val composeExtensionsIntent = Intent(INTENT_ACTION_EXTENSION_COMPOSE) - MenuUtils.addIntentToMenu(this, menu, composeExtensionsIntent, MENU_GROUP_COMPOSE_EXTENSION) val imageExtensionsIntent = Intent(INTENT_ACTION_EXTENSION_EDIT_IMAGE) val mediaMenuItem = menu.findItem(R.id.status_attachment) if (mediaMenuItem != null && mediaMenuItem.hasSubMenu()) { - MenuUtils.addIntentToMenu(this, mediaMenuItem.subMenu, imageExtensionsIntent, + val subMenu = mediaMenuItem.subMenu + MenuUtils.addIntentToMenu(this, subMenu, composeExtensionsIntent, + MENU_GROUP_COMPOSE_EXTENSION) + MenuUtils.addIntentToMenu(this, subMenu, imageExtensionsIntent, MENU_GROUP_IMAGE_EXTENSION) } updateViewStyle() @@ -329,7 +331,9 @@ class ComposeActivity : BaseActivity(), OnMenuItemClickListener, OnClickListener } val src = MediaPickerActivity.getMediaUris(data) - TaskStarter.execute(AddMediaTask(this, src, false, false)) + if (src.isNotNullOrEmpty()) { + TaskStarter.execute(AddMediaTask(this, src, false, false)) + } } } REQUEST_PURCHASE_EXTRA_FEATURES -> { @@ -703,23 +707,24 @@ class ComposeActivity : BaseActivity(), OnMenuItemClickListener, OnClickListener val intent = item.intent ?: return try { val action = intent.action - if (INTENT_ACTION_EXTENSION_COMPOSE == action) { - val accountKeys = accountsAdapter.selectedAccountKeys - intent.putExtra(EXTRA_TEXT, ParseUtils.parseString(editText.text)) - intent.putExtra(EXTRA_ACCOUNT_KEYS, accountKeys) - if (accountKeys.isNotEmpty()) { - val accountKey = accountKeys.first() - intent.putExtra(EXTRA_NAME, DataStoreUtils.getAccountName(this, accountKey)) - intent.putExtra(EXTRA_SCREEN_NAME, DataStoreUtils.getAccountScreenName(this, accountKey)) + when (action) { + INTENT_ACTION_EXTENSION_COMPOSE -> { + val accountKeys = accountsAdapter.selectedAccountKeys + intent.putExtra(EXTRA_TEXT, ParseUtils.parseString(editText.text)) + intent.putExtra(EXTRA_ACCOUNT_KEYS, accountKeys) + if (accountKeys.isNotEmpty()) { + val accountKey = accountKeys.first() + intent.putExtra(EXTRA_NAME, DataStoreUtils.getAccountName(this, accountKey)) + intent.putExtra(EXTRA_SCREEN_NAME, DataStoreUtils.getAccountScreenName(this, accountKey)) + } + inReplyToStatus?.let { + intent.putExtra(EXTRA_IN_REPLY_TO_ID, it.id) + intent.putExtra(EXTRA_IN_REPLY_TO_NAME, it.user_name) + intent.putExtra(EXTRA_IN_REPLY_TO_SCREEN_NAME, it.user_screen_name) + } + startActivityForResult(intent, REQUEST_EXTENSION_COMPOSE) } - inReplyToStatus?.let { - intent.putExtra(EXTRA_IN_REPLY_TO_ID, it.id) - intent.putExtra(EXTRA_IN_REPLY_TO_NAME, it.user_name) - intent.putExtra(EXTRA_IN_REPLY_TO_SCREEN_NAME, it.user_screen_name) - } - startActivityForResult(intent, REQUEST_EXTENSION_COMPOSE) - } else { - startActivity(intent) + else -> startActivity(intent) } } catch (e: ActivityNotFoundException) { Analyzer.logException(e) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/MenuUtils.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/MenuUtils.kt index 4bc15c452..536632c7a 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/MenuUtils.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/MenuUtils.kt @@ -95,9 +95,8 @@ object MenuUtils { item.setTitle(icon) } - fun addIntentToMenu(context: Context?, menu: Menu?, queryIntent: Intent?, + fun addIntentToMenu(context: Context, menu: Menu, queryIntent: Intent, groupId: Int = Menu.NONE) { - if (context == null || menu == null || queryIntent == null) return val pm = context.packageManager val res = context.resources val density = res.displayMetrics.density