From 173fe2d4627b2417ee2095d8600d0f366f3082e9 Mon Sep 17 00:00:00 2001 From: Mariotaku Lee Date: Tue, 26 Jul 2016 14:51:43 +0800 Subject: [PATCH] fixed extensions fragment removed retweets_of_me --- .../twidere/annotation/CustomTabType.java | 2 - .../twidere/loader/ExtensionsListLoader.java | 2 + .../twidere/loader/ParcelableUserLoader.kt | 10 ++- .../twidere/loader/RetweetsOfMeLoader.kt | 61 ----------------- .../twidere/util/CustomTabUtils.java | 8 +-- .../twidere/adapter/ExtensionsAdapter.kt | 5 +- .../fragment/AccountsDashboardFragment.kt | 2 +- .../fragment/ExtensionsListFragment.kt | 5 +- .../twidere/fragment/HomeTimelineFragment.kt | 2 +- .../twidere/fragment/RetweetsOfMeFragment.kt | 66 ------------------- .../twidere/fragment/UserFragment.kt | 16 ++--- twidere/src/main/res/values/strings.xml | 1 + 12 files changed, 27 insertions(+), 153 deletions(-) delete mode 100644 twidere/src/main/java/org/mariotaku/twidere/loader/RetweetsOfMeLoader.kt delete mode 100644 twidere/src/main/kotlin/org/mariotaku/twidere/fragment/RetweetsOfMeFragment.kt diff --git a/twidere/src/main/java/org/mariotaku/twidere/annotation/CustomTabType.java b/twidere/src/main/java/org/mariotaku/twidere/annotation/CustomTabType.java index 36141643c..825f573dc 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/annotation/CustomTabType.java +++ b/twidere/src/main/java/org/mariotaku/twidere/annotation/CustomTabType.java @@ -14,7 +14,6 @@ import android.support.annotation.StringDef; CustomTabType.USER_TIMELINE, CustomTabType.SEARCH_STATUSES, CustomTabType.LIST_TIMELINE, - CustomTabType.RETWEETS_OF_ME, }) public @interface CustomTabType { String HOME_TIMELINE = "home_timeline"; @@ -26,5 +25,4 @@ public @interface CustomTabType { String USER_TIMELINE = "user_timeline"; String SEARCH_STATUSES = "search_statuses"; String LIST_TIMELINE = "list_timeline"; - String RETWEETS_OF_ME = "retweets_of_me"; } diff --git a/twidere/src/main/java/org/mariotaku/twidere/loader/ExtensionsListLoader.java b/twidere/src/main/java/org/mariotaku/twidere/loader/ExtensionsListLoader.java index 28a8314f6..a779ec5bc 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/loader/ExtensionsListLoader.java +++ b/twidere/src/main/java/org/mariotaku/twidere/loader/ExtensionsListLoader.java @@ -32,6 +32,7 @@ import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.support.v4.content.AsyncTaskLoader; import org.mariotaku.twidere.Constants; @@ -115,6 +116,7 @@ public class ExtensionsListLoader extends AsyncTaskLoader { + @Nullable public final String[] permissions; public final String label, description; public final String pname, settings; diff --git a/twidere/src/main/java/org/mariotaku/twidere/loader/ParcelableUserLoader.kt b/twidere/src/main/java/org/mariotaku/twidere/loader/ParcelableUserLoader.kt index 1d10ae58c..a52ab5477 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/loader/ParcelableUserLoader.kt +++ b/twidere/src/main/java/org/mariotaku/twidere/loader/ParcelableUserLoader.kt @@ -83,7 +83,9 @@ class ParcelableUserLoader( val values = ParcelableUserValuesCreator.create(user) resolver.insert(CachedUsers.CONTENT_URI, values) ParcelableUserUtils.updateExtraInformation(user, credentials, userColorNameManager) - return SingleResponse.Companion.getInstance(user) + val response = SingleResponse(user) + response.extras.putParcelable(EXTRA_ACCOUNT, credentials) + return response } } val twitter = MicroBlogAPIFactory.getInstance(context, credentials, true, true) ?: return SingleResponse() @@ -118,7 +120,9 @@ class ParcelableUserLoader( if (TextUtils.equals(UserKeyUtils.getUserHost(user), user.key.host)) { user.account_key = accountKey user.account_color = credentials.color - return SingleResponse.Companion.getInstance(user) + val response = SingleResponse(user) + response.extras.putParcelable(EXTRA_ACCOUNT, credentials) + return response } cur.moveToNext() } @@ -164,7 +168,7 @@ class ParcelableUserLoader( if (!omitIntentExtra && extras != null) { val user = extras.getParcelable(EXTRA_USER) if (user != null) { - deliverResult(SingleResponse.Companion.getInstance(user)) +// deliverResult(SingleResponse(user)) } } forceLoad() diff --git a/twidere/src/main/java/org/mariotaku/twidere/loader/RetweetsOfMeLoader.kt b/twidere/src/main/java/org/mariotaku/twidere/loader/RetweetsOfMeLoader.kt deleted file mode 100644 index 199f7ed1a..000000000 --- a/twidere/src/main/java/org/mariotaku/twidere/loader/RetweetsOfMeLoader.kt +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Twidere - Twitter client for Android - * - * Copyright (C) 2012-2014 Mariotaku Lee - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package org.mariotaku.twidere.loader - -import android.content.Context -import android.database.sqlite.SQLiteDatabase -import android.support.annotation.WorkerThread - -import org.mariotaku.microblog.library.MicroBlog -import org.mariotaku.microblog.library.MicroBlogException -import org.mariotaku.microblog.library.twitter.model.Paging -import org.mariotaku.microblog.library.twitter.model.ResponseList -import org.mariotaku.microblog.library.twitter.model.Status -import org.mariotaku.twidere.model.ParcelableCredentials -import org.mariotaku.twidere.model.ParcelableStatus -import org.mariotaku.twidere.model.UserKey -import org.mariotaku.twidere.util.InternalTwitterContentUtils - - -class RetweetsOfMeLoader( - context: Context, - accountKey: UserKey?, - sinceId: String?, - maxId: String?, - adapterData: List?, - savedStatusesArgs: Array?, - tabPosition: Int, - fromUser: Boolean, - loadingMore: Boolean -) : MicroBlogAPIStatusesLoader(context, accountKey, sinceId, maxId, -1, adapterData, savedStatusesArgs, - tabPosition, fromUser, loadingMore) { - - @Throws(MicroBlogException::class) - override fun getStatuses(microBlog: MicroBlog, credentials: ParcelableCredentials, paging: Paging): ResponseList { - return microBlog.getRetweetsOfMe(paging) - } - - @WorkerThread - override fun shouldFilterStatus(database: SQLiteDatabase, status: ParcelableStatus): Boolean { - return InternalTwitterContentUtils.isFiltered(database, null, status.text_plain, - status.quoted_text_plain, status.spans, status.quoted_spans, status.source, - status.quoted_source, status.retweeted_by_user_key, status.quoted_user_key) - } -} diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/CustomTabUtils.java b/twidere/src/main/java/org/mariotaku/twidere/util/CustomTabUtils.java index 52537db01..0a4e3ee75 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/CustomTabUtils.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/CustomTabUtils.java @@ -45,7 +45,6 @@ import org.mariotaku.twidere.fragment.HomeTimelineFragment; import org.mariotaku.twidere.fragment.InteractionsTimelineFragment; import org.mariotaku.twidere.fragment.InvalidTabFragment; import org.mariotaku.twidere.fragment.MessagesEntriesFragment; -import org.mariotaku.twidere.fragment.RetweetsOfMeFragment; import org.mariotaku.twidere.fragment.StatusesSearchFragment; import org.mariotaku.twidere.fragment.TrendsSuggestionsFragment; import org.mariotaku.twidere.fragment.UserFavoritesFragment; @@ -117,10 +116,6 @@ public class CustomTabUtils implements Constants { UserListTimelineFragment.class, R.string.list_timeline, R.drawable.ic_action_list, CustomTabConfiguration.ACCOUNT_REQUIRED, CustomTabConfiguration.FIELD_TYPE_USER_LIST, 7)); - CUSTOM_TABS_CONFIGURATION_MAP.put(CustomTabType.RETWEETS_OF_ME, new CustomTabConfiguration( - RetweetsOfMeFragment.class, R.string.retweets_of_me, R.drawable.ic_action_retweet, - CustomTabConfiguration.ACCOUNT_REQUIRED, CustomTabConfiguration.FIELD_TYPE_NONE, 10)); - CUSTOM_TABS_ICON_NAME_MAP.put("accounts", R.drawable.ic_action_accounts); CUSTOM_TABS_ICON_NAME_MAP.put("hashtag", R.drawable.ic_action_hashtag); CUSTOM_TABS_ICON_NAME_MAP.put("heart", R.drawable.ic_action_heart); @@ -214,8 +209,7 @@ public class CustomTabUtils implements Constants { switch (type) { case CustomTabType.HOME_TIMELINE: case CustomTabType.NOTIFICATIONS_TIMELINE: - case CustomTabType.DIRECT_MESSAGES: - case CustomTabType.RETWEETS_OF_ME: { + case CustomTabType.DIRECT_MESSAGES: { return JsonSerializer.parse(json, TabArguments.class); } case CustomTabType.USER_TIMELINE: diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ExtensionsAdapter.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ExtensionsAdapter.kt index e38385756..ea076a02b 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ExtensionsAdapter.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ExtensionsAdapter.kt @@ -54,10 +54,11 @@ class ExtensionsAdapter(context: Context) : ArrayAdapter(context, } val info = getItem(position) - val permissionValid = PermissionsManager.isPermissionValid(*info.permissions) + val permissions = info.permissions ?: emptyArray() + val permissionValid = PermissionsManager.isPermissionValid(*permissions) holder.checkbox.visibility = if (permissionValid) View.VISIBLE else View.GONE if (permissionValid) { - holder.checkbox.isChecked = mPermissionsManager.checkPermission(info.pname, *info.permissions) + holder.checkbox.isChecked = mPermissionsManager.checkPermission(info.pname, *permissions) } holder.text1.text = info.label holder.text2.visibility = if (TextUtils.isEmpty(info.description)) View.GONE else View.VISIBLE diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsDashboardFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsDashboardFragment.kt index 1a606226d..1c9be868c 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsDashboardFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsDashboardFragment.kt @@ -747,7 +747,7 @@ class AccountsDashboardFragment : BaseSupportFragment(), LoaderCallbacks> { + override fun onCreateLoader(id: Int, args: Bundle?): Loader> { return ExtensionsListLoader(activity, packageManager) } @@ -123,7 +124,7 @@ class ExtensionsListFragment : BaseListFragment(), LoaderCallbacks - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package org.mariotaku.twidere.fragment - -import android.content.Context -import android.os.Bundle -import android.support.v4.content.Loader -import edu.tsinghua.hotmobi.model.TimelineType -import org.mariotaku.twidere.TwidereConstants.* -import org.mariotaku.twidere.loader.RetweetsOfMeLoader -import org.mariotaku.twidere.model.ParcelableStatus -import org.mariotaku.twidere.util.Utils -import java.util.* - -class RetweetsOfMeFragment : ParcelableStatusesFragment() { - - override fun onCreateStatusesLoader(context: Context, - args: Bundle, - fromUser: Boolean): Loader?> { - val accountKey = Utils.getAccountKey(context, args) - val maxId = args.getString(EXTRA_MAX_ID) - val sinceId = args.getString(EXTRA_SINCE_ID) - val tabPosition = args.getInt(EXTRA_TAB_POSITION, -1) - val loadingMore = args.getBoolean(EXTRA_LOADING_MORE, false) - return RetweetsOfMeLoader(context, accountKey, sinceId, maxId, adapterData, - savedStatusesFileArgs, tabPosition, fromUser, loadingMore) - } - - override fun onActivityCreated(savedInstanceState: Bundle?) { - super.onActivityCreated(savedInstanceState) - // final IStatusesListAdapter> adapter = getAdapter(); - // adapter.setIndicateMyStatusDisabled(false); - // adapter.setFiltersEnabled(true); - // adapter.setIgnoredFilterFields(true, false, false, false, false); - } - - override val savedStatusesFileArgs: Array? - get() { - val args = arguments!! - val accountKey = Utils.getAccountKey(context, args)!! - val result = ArrayList() - result.add(AUTHORITY_RETWEETS_OF_ME) - result.add("account=$accountKey") - return result.toTypedArray() - } - - override val timelineType: String - get() = TimelineType.INTERACTIONS -} diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserFragment.kt index fe5bf60e6..d7ad7bb9b 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserFragment.kt @@ -122,7 +122,7 @@ class UserFragment : BaseSupportFragment(), OnClickListener, OnLinkClickListener // Data fields var user: ParcelableUser? = null private set - private var mAccount: ParcelableAccount? = null + private var account: ParcelableAccount? = null private var mRelationship: UserRelationship? = null private var mLocale: Locale? = null private var mGetUserInfoLoaderInitialized: Boolean = false @@ -218,7 +218,7 @@ class UserFragment : BaseSupportFragment(), OnClickListener, OnLinkClickListener cardContent!!.visibility = View.VISIBLE errorContainer!!.visibility = View.GONE progressContainer!!.visibility = View.GONE - displayUser(user, mAccount) + displayUser(user, account) updateOptionsMenuVisibility() } else { if (data.hasException()) { @@ -399,7 +399,7 @@ class UserFragment : BaseSupportFragment(), OnClickListener, OnLinkClickListener fun displayUser(user: ParcelableUser?, account: ParcelableAccount?) { val activity = activity ?: return this.user = user - mAccount = account + this.account = account if (user == null || user.key == null) { profileImage.visibility = View.GONE profileType!!.visibility = View.GONE @@ -552,7 +552,7 @@ class UserFragment : BaseSupportFragment(), OnClickListener, OnLinkClickListener val user = user // TODO check account status if (user == null || user != event.user) return - displayUser(event.user, mAccount) + displayUser(event.user, account) } @Subscribe @@ -748,9 +748,9 @@ class UserFragment : BaseSupportFragment(), OnClickListener, OnLinkClickListener MenuUtils.setItemAvailability(menu, R.id.mute_user, !isMyself) MenuUtils.setItemAvailability(menu, R.id.report_spam, !isMyself) MenuUtils.setItemAvailability(menu, R.id.enable_retweets, !isMyself) - if (mAccount != null) { + if (account != null) { MenuUtils.setItemAvailability(menu, R.id.add_to_list, TextUtils.equals(ParcelableAccount.Type.TWITTER, - ParcelableAccountUtils.getAccountType(mAccount!!))) + ParcelableAccountUtils.getAccountType(account!!))) } else { MenuUtils.setItemAvailability(menu, R.id.add_to_list, false) } @@ -1151,12 +1151,12 @@ class UserFragment : BaseSupportFragment(), OnClickListener, OnLinkClickListener override fun onUserNicknameChanged(userId: UserKey, nick: String) { if (user == null || user!!.key != userId) return - displayUser(user, mAccount) + displayUser(user, account) } override fun onUserColorChanged(userId: UserKey, color: Int) { if (user == null || user!!.key != userId) return - displayUser(user, mAccount) + displayUser(user, account) } override fun onSizeChanged(view: View, w: Int, h: Int, oldw: Int, oldh: Int) { diff --git a/twidere/src/main/res/values/strings.xml b/twidere/src/main/res/values/strings.xml index a8d3adef2..0cb60eb65 100644 --- a/twidere/src/main/res/values/strings.xml +++ b/twidere/src/main/res/values/strings.xml @@ -810,4 +810,5 @@ Hide retweets Hide quotes Hide replies + No extension installed \ No newline at end of file