added create list shortcut

This commit is contained in:
Mariotaku Lee 2017-09-03 22:53:27 +08:00
parent c69488ad0b
commit 76f2affe7e
No known key found for this signature in database
GPG Key ID: 15C10F89D7C33535
3 changed files with 21 additions and 4 deletions

View File

@ -31,6 +31,7 @@ import android.os.Bundle
import android.support.v4.app.LoaderManager.LoaderCallbacks
import android.support.v4.content.FixedAsyncTaskLoader
import android.support.v4.content.Loader
import android.support.v4.content.pm.ShortcutManagerCompat
import android.support.v7.app.AlertDialog
import android.text.TextUtils
import android.util.Log
@ -66,6 +67,7 @@ import org.mariotaku.twidere.model.UserKey
import org.mariotaku.twidere.model.event.UserListSubscriptionEvent
import org.mariotaku.twidere.model.event.UserListUpdatedEvent
import org.mariotaku.twidere.util.*
import org.mariotaku.twidere.util.shortcut.ShortcutCreator
class UserListFragment : AbsToolbarTabPagesFragment(), OnClickListener,
LoaderCallbacks<SingleResponse<ParcelableUserList>>, SystemWindowInsetsCallback,
@ -204,11 +206,13 @@ class UserListFragment : AbsToolbarTabPagesFragment(), OnClickListener,
extensionsIntent.setExtrasClassLoader(TwidereApplication::class.java.classLoader)
extensionsIntent.putExtra(EXTRA_USER_LIST, userList)
MenuUtils.addIntentToMenu(activity, menu, extensionsIntent, MENU_GROUP_USER_LIST_EXTENSION)
menu.setItemAvailability(R.id.add_to_home_screen_submenu, ShortcutManagerCompat.isRequestPinShortcutSupported(context))
} else {
menu.setItemAvailability(R.id.edit, false)
menu.setItemAvailability(R.id.follow, false)
menu.setItemAvailability(R.id.add, false)
menu.setItemAvailability(R.id.delete, false)
menu.setItemAvailability(R.id.add_to_home_screen_submenu, false)
}
}
@ -259,6 +263,11 @@ class UserListFragment : AbsToolbarTabPagesFragment(), OnClickListener,
df.arguments.putParcelable(EXTRA_USER_LIST, userList)
df.show(childFragmentManager, "user_list_details")
}
R.id.add_statuses_to_home_screen -> {
ShortcutCreator.performCreation(this) {
ShortcutCreator.userListTimeline(context, userList.account_key, userList)
}
}
else -> {
if (item.intent != null) {
try {

View File

@ -132,14 +132,11 @@ object ShortcutCreator {
}
fun userListTimeline(context: Context, accountKey: UserKey?, list: ParcelableUserList): Promise<ShortcutInfoCompat, Exception> {
val holder = DependencyHolder.get(context)
val preferences = holder.preferences
val userColorNameManager = holder.userColorNameManager
val launchIntent = IntentUtils.userListTimeline(accountKey, list.id,
list.user_key, list.user_screen_name, list.name)
val builder = ShortcutInfoCompat.Builder(context, "$accountKey:user-list-timeline:${list.id}")
builder.setIntent(launchIntent)
builder.setShortLabel(userColorNameManager.getDisplayName(list, preferences[nameFirstKey]))
builder.setShortLabel(list.name)
builder.setIcon(IconCompat.createWithResource(context, R.mipmap.ic_shortcut_list))
return Promise.of(builder.build())
}

View File

@ -31,5 +31,16 @@
android:id="@id/open_with_account"
android:icon="@drawable/ic_action_accounts"
android:title="@string/open_with_account"/>
<item
android:id="@+id/add_to_home_screen_submenu"
android:icon="@drawable/ic_action_home"
android:title="@string/action_add_to_home_screen_more">
<menu>
<item
android:id="@+id/add_statuses_to_home_screen"
android:icon="@drawable/ic_action_list"
android:title="@string/list_timeline"/>
</menu>
</item>
</menu>