fixed extension library

This commit is contained in:
Mariotaku Lee 2017-04-11 22:22:50 +08:00
parent bad968e5b4
commit dd1e71f775
No known key found for this signature in database
GPG Key ID: 15C10F89D7C33535
5 changed files with 33 additions and 23 deletions

View File

@ -56,7 +56,7 @@ subprojects {
TwitterText : '1.14.3', TwitterText : '1.14.3',
MediaViewerLibrary: '0.9.23', MediaViewerLibrary: '0.9.23',
MultiValueSwitch : '0.9.8', MultiValueSwitch : '0.9.8',
PickNCrop : '0.9.24', PickNCrop : '0.9.25',
AndroidGIFDrawable: '1.2.6', AndroidGIFDrawable: '1.2.6',
KPreferences : '0.9.6', KPreferences : '0.9.6',
Kovenant : '3.3.0', Kovenant : '3.3.0',

View File

@ -66,7 +66,8 @@ public final class Twidere implements TwidereConstants {
public static void setComposeExtensionResult(@NonNull final Activity activity, public static void setComposeExtensionResult(@NonNull final Activity activity,
@Nullable final String text, final boolean isReplacementMode, @Nullable Uri[] media) { @Nullable final String text, final boolean isReplacementMode, @Nullable Uri[] media) {
final Intent intent = new Intent(); 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) { if (media != null && media.length > 0) {
intent.setData(media[0]); intent.setData(media[0]);

View File

@ -22,6 +22,7 @@ package org.mariotaku.ktextension
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.support.v4.view.MenuItemCompat import android.support.v4.view.MenuItemCompat
import android.view.Menu import android.view.Menu
import android.view.SubMenu
fun Menu.setItemAvailability(id: Int, available: Boolean) { fun Menu.setItemAvailability(id: Int, available: Boolean) {
val item = findItem(id) ?: return val item = findItem(id) ?: return
@ -59,3 +60,7 @@ fun Menu.setMenuItemShowAsActionFlags(id: Int, flags: Int) {
item.setShowAsActionFlags(flags) item.setShowAsActionFlags(flags)
MenuItemCompat.setShowAsAction(item, flags) MenuItemCompat.setShowAsAction(item, flags)
} }
fun Menu.findSubmenu(id: Int): SubMenu? {
return findItem(id)?.subMenu
}

View File

@ -274,11 +274,13 @@ class ComposeActivity : BaseActivity(), OnMenuItemClickListener, OnClickListener
val composeExtensionsIntent = Intent(INTENT_ACTION_EXTENSION_COMPOSE) 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 imageExtensionsIntent = Intent(INTENT_ACTION_EXTENSION_EDIT_IMAGE)
val mediaMenuItem = menu.findItem(R.id.status_attachment) val mediaMenuItem = menu.findItem(R.id.status_attachment)
if (mediaMenuItem != null && mediaMenuItem.hasSubMenu()) { 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) MENU_GROUP_IMAGE_EXTENSION)
} }
updateViewStyle() updateViewStyle()
@ -329,7 +331,9 @@ class ComposeActivity : BaseActivity(), OnMenuItemClickListener, OnClickListener
} }
val src = MediaPickerActivity.getMediaUris(data) 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 -> { REQUEST_PURCHASE_EXTRA_FEATURES -> {
@ -703,23 +707,24 @@ class ComposeActivity : BaseActivity(), OnMenuItemClickListener, OnClickListener
val intent = item.intent ?: return val intent = item.intent ?: return
try { try {
val action = intent.action val action = intent.action
if (INTENT_ACTION_EXTENSION_COMPOSE == action) { when (action) {
val accountKeys = accountsAdapter.selectedAccountKeys INTENT_ACTION_EXTENSION_COMPOSE -> {
intent.putExtra(EXTRA_TEXT, ParseUtils.parseString(editText.text)) val accountKeys = accountsAdapter.selectedAccountKeys
intent.putExtra(EXTRA_ACCOUNT_KEYS, accountKeys) intent.putExtra(EXTRA_TEXT, ParseUtils.parseString(editText.text))
if (accountKeys.isNotEmpty()) { intent.putExtra(EXTRA_ACCOUNT_KEYS, accountKeys)
val accountKey = accountKeys.first() if (accountKeys.isNotEmpty()) {
intent.putExtra(EXTRA_NAME, DataStoreUtils.getAccountName(this, accountKey)) val accountKey = accountKeys.first()
intent.putExtra(EXTRA_SCREEN_NAME, DataStoreUtils.getAccountScreenName(this, accountKey)) 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 { else -> startActivity(intent)
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)
} }
} catch (e: ActivityNotFoundException) { } catch (e: ActivityNotFoundException) {
Analyzer.logException(e) Analyzer.logException(e)

View File

@ -95,9 +95,8 @@ object MenuUtils {
item.setTitle(icon) item.setTitle(icon)
} }
fun addIntentToMenu(context: Context?, menu: Menu?, queryIntent: Intent?, fun addIntentToMenu(context: Context, menu: Menu, queryIntent: Intent,
groupId: Int = Menu.NONE) { groupId: Int = Menu.NONE) {
if (context == null || menu == null || queryIntent == null) return
val pm = context.packageManager val pm = context.packageManager
val res = context.resources val res = context.resources
val density = res.displayMetrics.density val density = res.displayMetrics.density