From 536371eb894193463648be5184ee5eaa1cf5d3bc Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Sun, 28 Jun 2020 16:49:50 -0400 Subject: [PATCH] Fix a bunch of deprecations in Kotlin, and a few misc things --- .../activity/QuickSearchBarActivity.kt | 7 ++-- .../twidere/activity/SignInActivity.kt | 8 ++--- .../TrendsLocationSelectorActivity.kt | 18 ++++++++++ .../activity/UserListSelectorActivity.kt | 6 ++-- .../twidere/activity/UserSelectorActivity.kt | 4 +-- .../activity/WebLinkHandlerActivity.kt | 4 +-- .../twidere/adapter/DummyItemAdapter.kt | 2 +- .../adapter/ParcelableActivitiesAdapter.kt | 2 +- .../adapter/ParcelableStatusesAdapter.kt | 2 +- .../model/api/microblog/ActivityExtensions.kt | 16 ++++----- .../fragment/APIEditorDialogFragment.kt | 2 +- .../twidere/fragment/AbsActivitiesFragment.kt | 5 +-- .../fragment/AbsMediaStatusesFragment.kt | 5 +-- .../twidere/fragment/AbsStatusesFragment.kt | 5 +-- .../fragment/AccountsDashboardFragment.kt | 25 +++++++++++-- .../fragment/AccountsManagerFragment.kt | 2 +- .../fragment/CursorActivitiesFragment.kt | 5 +-- .../fragment/CursorStatusesFragment.kt | 3 +- .../twidere/fragment/CustomTabsFragment.kt | 5 +-- .../fragment/EditUserListDialogFragment.kt | 12 +++---- .../fragment/ExtensionsListFragment.kt | 3 +- .../twidere/fragment/GroupFragment.kt | 5 +-- .../fragment/HostMappingsListFragment.kt | 4 +-- .../twidere/fragment/ItemsListFragment.kt | 5 +-- .../fragment/ParcelableGroupsFragment.kt | 7 ++-- .../fragment/ParcelableStatusesFragment.kt | 5 +-- .../fragment/ParcelableUserListsFragment.kt | 9 ++--- .../fragment/ParcelableUsersFragment.kt | 9 ++--- .../fragment/SavedSearchesListFragment.kt | 9 ++--- .../fragment/TrendsSuggestionsFragment.kt | 5 +-- .../twidere/fragment/UserFragment.kt | 17 ++++----- .../twidere/fragment/UserListFragment.kt | 9 ++--- .../fragment/UserListsOwnershipsFragment.kt | 2 +- .../fragment/UserProfileEditorFragment.kt | 3 +- .../twidere/fragment/UserQrDialogFragment.kt | 4 +-- .../fragment/drafts/DraftsListFragment.kt | 3 +- .../fragment/filter/AddEditItemFragment.kt | 2 +- .../fragment/filter/BaseFiltersFragment.kt | 4 +-- .../filter/BaseFiltersImportFragment.kt | 8 ++--- .../filter/FiltersSubscriptionsFragment.kt | 14 ++++---- .../MessageConversationInfoFragment.kt | 23 ++++++------ .../message/MessageNewConversationFragment.kt | 13 +++---- .../message/MessagesConversationFragment.kt | 7 ++-- .../message/MessagesEntriesFragment.kt | 3 +- .../status/AbsStatusDialogFragment.kt | 8 ++--- .../status/BlockStatusUsersDialogFragment.kt | 2 +- .../status/MuteStatusUsersDialogFragment.kt | 2 +- .../twidere/fragment/status/StatusFragment.kt | 19 +++++----- .../TranslationDestinationDialogFragment.kt | 2 +- .../statuses/MediaStatusesSearchFragment.kt | 3 +- .../statuses/UserMediaTimelineFragment.kt | 3 +- .../fragment/statuses/UserTimelineFragment.kt | 2 +- .../fragment/users/UserListMembersFragment.kt | 2 +- .../twidere/loader/ExtensionsListLoader.kt | 35 +++++++++++++++++-- .../twidere/model/ParameterizedExpression.kt | 18 ++++++++++ .../model/util/ParcelableRelationshipUtils.kt | 8 ++--- .../preference/ColorPickerPreference.kt | 2 +- .../preference/DefaultAPIPreference.kt | 2 +- .../preference/KeyboardShortcutPreference.kt | 2 +- .../RandomizeAccountNamePreference.kt | 2 +- .../preference/ThemedEditTextPreference.kt | 2 +- .../preference/ThemedListPreference.kt | 2 +- .../task/twitter/GetActivitiesAboutMeTask.kt | 4 +-- .../twidere/task/twitter/UpdateStatusTask.kt | 26 ++++++++++++-- .../twidere/util/AsyncTwitterWrapper.kt | 4 --- .../mariotaku/twidere/util/DataStoreUtils.kt | 4 +-- .../org/mariotaku/twidere/util/IntentUtils.kt | 2 +- .../twidere/util/gifshare/GifShareProvider.kt | 2 +- .../util/glide/RoundedRectTransformation.kt | 4 +-- .../twidere/util/glide/TwidereGlideModule.kt | 3 +- .../twidere/util/media/MediaPreloader.kt | 4 +-- .../twidere/util/net/SystemDnsFetcher.kt | 4 +-- .../util/schedule/StatusScheduleProvider.kt | 2 +- .../twidere/util/sync/TimelineSyncManager.kt | 2 +- .../twidere/util/text/TwitterValidator.kt | 3 +- .../mariotaku/twidere/view/IconActionView.kt | 6 ++-- .../org/mariotaku/yandex/YandexAPIFactory.kt | 2 +- ...message_conversation_info_button_space.xml | 2 +- 78 files changed, 313 insertions(+), 188 deletions(-) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/QuickSearchBarActivity.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/QuickSearchBarActivity.kt index 91551eb84..4d47640c3 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/QuickSearchBarActivity.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/QuickSearchBarActivity.kt @@ -28,6 +28,7 @@ import android.database.Cursor import android.graphics.PorterDuff.Mode import android.net.Uri import android.os.Bundle +import androidx.loader.app.LoaderManager import androidx.loader.app.LoaderManager.LoaderCallbacks import androidx.loader.content.CursorLoader import androidx.loader.content.Loader @@ -157,7 +158,7 @@ class QuickSearchBarActivity : BaseActivity(), OnClickListener, LoaderCallbacks< searchQuery.setSelection(searchQuery.length()) } - supportLoaderManager.initLoader(0, null, this) + LoaderManager.getInstance(this).initLoader(0, null, this) updateSubmitButton() promotionService.loadBanner(adContainer) @@ -179,7 +180,7 @@ class QuickSearchBarActivity : BaseActivity(), OnClickListener, LoaderCallbacks< adapter.addRemovedPositions(reverseSortedPositions) ContentResolverUtils.bulkDelete(contentResolver, SearchHistory.CONTENT_URI, SearchHistory._ID, false, ids, null, null) - supportLoaderManager.restartLoader(0, null, this) + LoaderManager.getInstance(this).restartLoader(0, null, this) } override fun onClick(v: View) { @@ -298,7 +299,7 @@ class QuickSearchBarActivity : BaseActivity(), OnClickListener, LoaderCallbacks< } override fun onItemSelected(parent: AdapterView<*>, view: View?, position: Int, id: Long) { - supportLoaderManager.restartLoader(0, null, this) + LoaderManager.getInstance(this).restartLoader(0, null, this) } override fun onNothingSelected(parent: AdapterView<*>) { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/SignInActivity.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/SignInActivity.kt index 3889005f8..45df854f6 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/SignInActivity.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/SignInActivity.kt @@ -583,9 +583,9 @@ class SignInActivity : BaseActivity(), OnClickListener, TextWatcher, val builder = AlertDialog.Builder(requireContext()) builder.setView(R.layout.dialog_expandable_list) val dialog = builder.create() - dialog.onShow { - it.applyTheme() - val listView = it.expandableList + dialog.onShow { alertDialog -> + alertDialog.applyTheme() + val listView = alertDialog.expandableList val adapter = LoginTypeAdapter(requireContext()) listView.setAdapter(adapter) listView.setOnGroupClickListener { _, _, groupPosition, _ -> @@ -613,7 +613,7 @@ class SignInActivity : BaseActivity(), OnClickListener, TextWatcher, return@setOnChildClickListener true } - loaderManager.initLoader(0, null, this) + LoaderManager.getInstance(this).initLoader(0, null, this) } return dialog } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/TrendsLocationSelectorActivity.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/TrendsLocationSelectorActivity.kt index 9ab2c7d63..0ef1493b5 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/TrendsLocationSelectorActivity.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/TrendsLocationSelectorActivity.kt @@ -275,6 +275,24 @@ class TrendsLocationSelectorActivity : BaseActivity() { dest.writeTypedArray(children, flags) } + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as LocationsData + + if (root != other.root) return false + if (!children.contentEquals(other.children)) return false + + return true + } + + override fun hashCode(): Int { + var result = root.hashCode() + result = 31 * result + children.contentHashCode() + return result + } + companion object { @JvmField val CREATOR = object : Parcelable.Creator { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/UserListSelectorActivity.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/UserListSelectorActivity.kt index 9187f4b21..d557a6de3 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/UserListSelectorActivity.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/UserListSelectorActivity.kt @@ -55,7 +55,7 @@ class UserListSelectorActivity : BaseActivity(), override var refreshing: Boolean get() { - return supportLoaderManager.hasRunningLoadersSafe() + return LoaderManager.getInstance(this).hasRunningLoadersSafe() } set(value) { } @@ -199,9 +199,9 @@ class UserListSelectorActivity : BaseActivity(), } if (!loaderInitialized) { loaderInitialized = true - supportLoaderManager.initLoader(0, args, this) + LoaderManager.getInstance(this).initLoader(0, args, this) } else { - supportLoaderManager.restartLoader(0, args, this) + LoaderManager.getInstance(this).restartLoader(0, args, this) } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/UserSelectorActivity.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/UserSelectorActivity.kt index de3a94f7d..e0c5d8034 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/UserSelectorActivity.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/UserSelectorActivity.kt @@ -153,10 +153,10 @@ class UserSelectorActivity : BaseActivity(), OnItemClickListener, LoaderManager. this[EXTRA_FROM_CACHE] = fromCache } if (loaderInitialized) { - supportLoaderManager.initLoader(0, args, this) + LoaderManager.getInstance(this).initLoader(0, args, this) loaderInitialized = true } else { - supportLoaderManager.restartLoader(0, args, this) + LoaderManager.getInstance(this).restartLoader(0, args, this) } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/WebLinkHandlerActivity.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/WebLinkHandlerActivity.kt index c409f3911..97aa02cd5 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/WebLinkHandlerActivity.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/WebLinkHandlerActivity.kt @@ -177,7 +177,7 @@ class WebLinkHandlerActivity : Activity() { if (pathSegments[0] in TWITTER_RESERVED_PATHS) { return Pair(null, true) } - return handleUserSpecificPageIntent(uri, pathSegments, pathSegments[0]) + return handleUserSpecificPageIntent(pathSegments, pathSegments[0]) } } } @@ -185,7 +185,7 @@ class WebLinkHandlerActivity : Activity() { return Pair(homeIntent, true) } - private fun handleUserSpecificPageIntent(uri: Uri, pathSegments: List, screenName: String): Pair { + private fun handleUserSpecificPageIntent(pathSegments: List, screenName: String): Pair { val segsSize = pathSegments.size if (segsSize == 1) { val builder = Uri.Builder() diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/DummyItemAdapter.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/DummyItemAdapter.kt index 57ac870c8..3be7cf012 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/DummyItemAdapter.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/DummyItemAdapter.kt @@ -104,7 +104,7 @@ class DummyItemAdapter( override fun getAccountKey(position: Int, raw: Boolean) = UserKey.INVALID - override fun findStatusById(accountKey: UserKey, statusId: String) = null + override fun findStatusById(accountKey: UserKey, statusId: String): Nothing? = null override fun isCardNumbersShown(position: Int): Boolean { if (position == RecyclerView.NO_POSITION) return showCardNumbers diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableActivitiesAdapter.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableActivitiesAdapter.kt index f2e55fc4b..68437cfeb 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableActivitiesAdapter.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableActivitiesAdapter.kt @@ -22,7 +22,7 @@ package org.mariotaku.twidere.adapter import android.annotation.SuppressLint import android.content.Context import android.database.CursorIndexOutOfBoundsException -import androidx.legacy.widget.Space +import android.widget.Space import androidx.recyclerview.widget.RecyclerView import android.view.LayoutInflater import android.view.View diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableStatusesAdapter.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableStatusesAdapter.kt index 54bcbc980..890a87304 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableStatusesAdapter.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableStatusesAdapter.kt @@ -24,7 +24,7 @@ import android.database.CursorIndexOutOfBoundsException import android.util.SparseBooleanArray import android.view.LayoutInflater import android.view.ViewGroup -import androidx.legacy.widget.Space +import android.widget.Space import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.RequestManager import org.mariotaku.kpreferences.get diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/extension/model/api/microblog/ActivityExtensions.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/extension/model/api/microblog/ActivityExtensions.kt index 8f3f9b0db..ad45439fc 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/extension/model/api/microblog/ActivityExtensions.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/extension/model/api/microblog/ActivityExtensions.kt @@ -71,26 +71,26 @@ fun Activity.toParcelable(accountKey: UserKey, accountType: String, isGap: Boole it.toParcelable(accountKey, accountType, profileImageSize = profileImageSize) } - result.targets = ParcelableActivity.RelatedObject().also { - it.statuses = targetStatuses?.mapToArray { + result.targets = ParcelableActivity.RelatedObject().also { relatedObject -> + relatedObject.statuses = targetStatuses?.mapToArray { it.toParcelable(accountKey, accountType, profileImageSize) } - it.users = targetUsers?.mapToArray { + relatedObject.users = targetUsers?.mapToArray { it.toParcelable(accountKey, accountType, profileImageSize = profileImageSize) } - it.user_lists = targetUserLists?.mapToArray { + relatedObject.user_lists = targetUserLists?.mapToArray { it.toParcelable(accountKey, profileImageSize = profileImageSize) } } - result.target_objects = ParcelableActivity.RelatedObject().also { - it.statuses = targetObjectStatuses?.mapToArray { + result.target_objects = ParcelableActivity.RelatedObject().also { relatedObject -> + relatedObject.statuses = targetObjectStatuses?.mapToArray { it.toParcelable(accountKey, accountType, profileImageSize) } - it.users = targetObjectUsers?.mapToArray { + relatedObject.users = targetObjectUsers?.mapToArray { it.toParcelable(accountKey, accountType, profileImageSize = profileImageSize) } - it.user_lists = targetObjectUserLists?.mapToArray { + relatedObject.user_lists = targetObjectUserLists?.mapToArray { it.toParcelable(accountKey, profileImageSize = profileImageSize) } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/APIEditorDialogFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/APIEditorDialogFragment.kt index 4efcfdfb7..2bdeb9464 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/APIEditorDialogFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/APIEditorDialogFragment.kt @@ -152,7 +152,7 @@ class APIEditorDialogFragment : BaseDialogFragment() { adapter = CustomAPIConfigArrayAdapter(requireContext()) val builder = AlertDialog.Builder(requireContext()) builder.setAdapter(adapter, this) - loaderManager.initLoader(0, null, this) + LoaderManager.getInstance(this).initLoader(0, null, this) val dialog = builder.create() dialog.onShow { it.applyTheme() } return dialog diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AbsActivitiesFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AbsActivitiesFragment.kt index 551bb68be..87b84594e 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AbsActivitiesFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AbsActivitiesFragment.kt @@ -33,6 +33,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.OnScrollListener import android.view.* +import androidx.loader.app.LoaderManager import com.squareup.otto.Subscribe import kotlinx.android.synthetic.main.fragment_content_recyclerview.* import org.mariotaku.kpreferences.get @@ -110,7 +111,7 @@ abstract class AbsActivitiesFragment protected constructor() : val loaderArgs = Bundle(arguments) loaderArgs.putBoolean(EXTRA_FROM_USER, true) - loaderManager.initLoader(loaderId, loaderArgs, this) + LoaderManager.getInstance(this).initLoader(loaderId, loaderArgs, this) showProgress() } @@ -531,7 +532,7 @@ abstract class AbsActivitiesFragment protected constructor() : return true } else -> activity?.let { - fragmentManager?.let { fragmentManager -> + parentFragmentManager.let { fragmentManager -> MenuUtils.handleStatusClick(it, this, fragmentManager, preferences, userColorNameManager, twitterWrapper, status, item) } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AbsMediaStatusesFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AbsMediaStatusesFragment.kt index efa94888d..14e9e7466 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AbsMediaStatusesFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AbsMediaStatusesFragment.kt @@ -21,6 +21,7 @@ package org.mariotaku.twidere.fragment import android.content.Context import android.os.Bundle +import androidx.loader.app.LoaderManager import androidx.loader.app.LoaderManager.LoaderCallbacks import androidx.loader.app.hasRunningLoadersSafe import androidx.loader.content.Loader @@ -49,7 +50,7 @@ abstract class AbsMediaStatusesFragment : AbsContentRecyclerViewFragment return MenuUtils.handleStatusClick(requireActivity(), this, requireFragmentManager(), + else -> return MenuUtils.handleStatusClick(requireActivity(), this, parentFragmentManager, preferences, userColorNameManager, twitterWrapper, status, item) } } 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 42b1e12c6..6ab1efc53 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsDashboardFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsDashboardFragment.kt @@ -46,6 +46,7 @@ import androidx.appcompat.view.SupportMenuInflater import androidx.appcompat.widget.ActionMenuView.OnMenuItemClickListener import androidx.core.content.ContextCompat import androidx.core.view.MenuItemCompat +import androidx.loader.app.LoaderManager import androidx.loader.app.LoaderManager.LoaderCallbacks import androidx.loader.content.FixedAsyncTaskLoader import androidx.loader.content.Loader @@ -286,9 +287,9 @@ class AccountsDashboardFragment : BaseFragment(), LoaderCallbacks, fun loadAccounts() { if (!loaderInitialized) { loaderInitialized = true - loaderManager.initLoader(0, null, this) + LoaderManager.getInstance(this).initLoader(0, null, this) } else { - loaderManager.restartLoader(0, null, this) + LoaderManager.getInstance(this).restartLoader(0, null, this) } } @@ -659,7 +660,25 @@ class AccountsDashboardFragment : BaseFragment(), LoaderCallbacks, data class AccountsInfo( val accounts: Array, val draftsCount: Int - ) + ) { + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as AccountsInfo + + if (!accounts.contentEquals(other.accounts)) return false + if (draftsCount != other.draftsCount) return false + + return true + } + + override fun hashCode(): Int { + var result = accounts.contentHashCode() + result = 31 * result + draftsCount + return result + } + } class AccountsInfoLoader( context: Context, diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsManagerFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsManagerFragment.kt index b87fe9f65..e63c0ca4c 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsManagerFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsManagerFragment.kt @@ -86,7 +86,7 @@ class AccountsManagerFragment : BaseFragment(), LoaderManager.LoaderCallbacks
  • , MultiChoice df.arguments = Bundle { this[EXTRA_OBJECT] = tab } - fragmentManager?.let { df.show(it, TabEditorDialogFragment.TAG_EDIT_TAB) } + parentFragmentManager.let { df.show(it, TabEditorDialogFragment.TAG_EDIT_TAB) } } listView.adapter = adapter listView.emptyView = emptyView @@ -115,7 +116,7 @@ class CustomTabsFragment : BaseFragment(), LoaderCallbacks, MultiChoice } emptyText.setText(R.string.no_tab) emptyIcon.setImageResource(R.drawable.ic_info_tab) - loaderManager.initLoader(0, null, this) + LoaderManager.getInstance(this).initLoader(0, null, this) setListShown(false) } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/EditUserListDialogFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/EditUserListDialogFragment.kt index 75226fdbc..217e4a7cc 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/EditUserListDialogFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/EditUserListDialogFragment.kt @@ -46,13 +46,13 @@ class EditUserListDialogFragment : BaseDialogFragment() { builder.positive(android.R.string.ok, this::onPositiveClick) builder.setNegativeButton(android.R.string.cancel, null) val dialog = builder.create() - dialog.onShow { dialog -> - dialog.applyTheme() - dialog.editName.addValidator(UserListNameValidator(getString(R.string.invalid_list_name))) + dialog.onShow { alertDialog -> + alertDialog.applyTheme() + alertDialog.editName.addValidator(UserListNameValidator(getString(R.string.invalid_list_name))) if (savedInstanceState == null) { - dialog.editName.setText(arguments?.getString(EXTRA_LIST_NAME)) - dialog.editDescription.setText(arguments?.getString(EXTRA_DESCRIPTION)) - dialog.isPublic.isChecked = arguments?.getBoolean(EXTRA_IS_PUBLIC, true) ?: true + alertDialog.editName.setText(arguments?.getString(EXTRA_LIST_NAME)) + alertDialog.editDescription.setText(arguments?.getString(EXTRA_DESCRIPTION)) + alertDialog.isPublic.isChecked = arguments?.getBoolean(EXTRA_IS_PUBLIC, true) ?: true } } return dialog diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ExtensionsListFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ExtensionsListFragment.kt index 28b50c5d7..a621c11ca 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ExtensionsListFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ExtensionsListFragment.kt @@ -33,6 +33,7 @@ import android.view.MenuItem import android.view.View import android.widget.AdapterView import android.widget.AdapterView.AdapterContextMenuInfo +import androidx.loader.app.LoaderManager import com.bumptech.glide.RequestManager import kotlinx.android.synthetic.main.fragment_content_listview.* import org.mariotaku.ktextension.isNullOrEmpty @@ -52,7 +53,7 @@ class ExtensionsListFragment : AbsContentListViewFragment(), listView.onItemClickListener = this - loaderManager.initLoader(0, null, this) + LoaderManager.getInstance(this).initLoader(0, null, this) showProgress() } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/GroupFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/GroupFragment.kt index 4f7925964..3911bb29c 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/GroupFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/GroupFragment.kt @@ -5,6 +5,7 @@ import android.nfc.NdefMessage import android.nfc.NdefRecord import android.nfc.NfcAdapter import android.os.Bundle +import androidx.loader.app.LoaderManager import androidx.loader.app.LoaderManager.LoaderCallbacks import androidx.loader.content.FixedAsyncTaskLoader import androidx.loader.content.Loader @@ -69,7 +70,7 @@ class GroupFragment : AbsToolbarTabPagesFragment(), LoaderCallbacks { val df = AddMappingDialogFragment() - fragmentManager?.let { df.show(it, "add_mapping") } + parentFragmentManager.let { df.show(it, "add_mapping") } } } return super.onOptionsItemSelected(item) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ItemsListFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ItemsListFragment.kt index 9e91d53a6..2ca47a4af 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ItemsListFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ItemsListFragment.kt @@ -11,6 +11,7 @@ import android.view.ContextMenu import android.view.MenuInflater import android.view.MenuItem import android.view.View +import androidx.loader.app.LoaderManager import com.bumptech.glide.RequestManager import kotlinx.android.synthetic.main.fragment_content_recyclerview.* import org.mariotaku.kpreferences.get @@ -46,7 +47,7 @@ open class ItemsListFragment : AbsContentListRecyclerViewFragment?> { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableStatusesFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableStatusesFragment.kt index d68cda6a7..c2b6f0b59 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableStatusesFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableStatusesFragment.kt @@ -24,6 +24,7 @@ import android.os.Bundle import androidx.loader.app.hasRunningLoadersSafe import androidx.loader.content.Loader import android.text.TextUtils +import androidx.loader.app.LoaderManager import com.bumptech.glide.RequestManager import com.squareup.otto.Subscribe import org.mariotaku.twidere.R @@ -57,7 +58,7 @@ abstract class ParcelableStatusesFragment : AbsStatusesFragment() { override var refreshing: Boolean get() { if (context == null || isDetached) return false - return loaderManager.hasRunningLoadersSafe() + return LoaderManager.getInstance(this).hasRunningLoadersSafe() } set(value) { super.refreshing = value @@ -113,7 +114,7 @@ abstract class ParcelableStatusesFragment : AbsStatusesFragment() { args.putBoolean(EXTRA_LOADING_MORE, param.isLoadingMore) args.putBoolean(EXTRA_FROM_USER, true) args.putParcelable(EXTRA_PAGINATION, param.pagination?.getOrNull(0)) - loaderManager.restartLoader(loaderId, args, this) + LoaderManager.getInstance(this).restartLoader(loaderId, args, this) return true } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUserListsFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUserListsFragment.kt index bc8111859..65559d509 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUserListsFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUserListsFragment.kt @@ -21,6 +21,7 @@ package org.mariotaku.twidere.fragment import android.content.Context import android.os.Bundle +import androidx.loader.app.LoaderManager import androidx.loader.app.LoaderManager.LoaderCallbacks import androidx.loader.app.hasRunningLoadersSafe import androidx.loader.content.Loader @@ -62,7 +63,7 @@ abstract class ParcelableUserListsFragment : AbsContentListRecyclerViewFragment< override var refreshing: Boolean get() { if (context == null || isDetached) return false - return loaderManager.hasRunningLoadersSafe() + return LoaderManager.getInstance(this).hasRunningLoadersSafe() } set(value) { super.refreshing = value @@ -103,7 +104,7 @@ abstract class ParcelableUserListsFragment : AbsContentListRecyclerViewFragment< val loaderArgs = Bundle(arguments) loaderArgs.putBoolean(EXTRA_FROM_USER, true) loaderArgs.putParcelable(EXTRA_PAGINATION, nextPagination) - loaderManager.restartLoader(0, loaderArgs, this) + LoaderManager.getInstance(this).restartLoader(0, loaderArgs, this) } override fun handleKeyboardShortcutSingle(handler: KeyboardShortcutsHandler, keyCode: Int, @@ -130,7 +131,7 @@ abstract class ParcelableUserListsFragment : AbsContentListRecyclerViewFragment< this) val loaderArgs = Bundle(arguments) loaderArgs.putBoolean(EXTRA_FROM_USER, true) - loaderManager.initLoader(0, loaderArgs, this) + LoaderManager.getInstance(this).initLoader(0, loaderArgs, this) } override fun onCreateLoader(id: Int, args: Bundle?): Loader> { @@ -159,7 +160,7 @@ abstract class ParcelableUserListsFragment : AbsContentListRecyclerViewFragment< val loaderArgs = Bundle(arguments).apply { this[EXTRA_FROM_USER] = true } - loaderManager.restartLoader(0, loaderArgs, this) + LoaderManager.getInstance(this).restartLoader(0, loaderArgs, this) showProgress() return true } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUsersFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUsersFragment.kt index 6a32187f0..4a2c05dcc 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUsersFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUsersFragment.kt @@ -28,6 +28,7 @@ import androidx.loader.content.Loader import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import android.view.KeyEvent +import androidx.loader.app.LoaderManager import com.bumptech.glide.RequestManager import com.squareup.otto.Subscribe import kotlinx.android.synthetic.main.fragment_content_recyclerview.* @@ -65,7 +66,7 @@ abstract class ParcelableUsersFragment : AbsContentListRecyclerViewFragment, child: View, position: Int, id: Long): Boolean { val item = adapter.findItem(id) ?: return false - fragmentManager?.let { DestroySavedSearchDialogFragment.show(it, accountKey, item.id, item.name) } + parentFragmentManager.let { DestroySavedSearchDialogFragment.show(it, accountKey, item.id, item.name) } return true } @@ -104,7 +105,7 @@ class SavedSearchesListFragment : AbsContentListViewFragment(), L override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) listView.onItemClickListener = this - loaderManager.initLoader(0, null, this) + LoaderManager.getInstance(this).initLoader(0, null, this) showProgress() } @@ -123,7 +124,7 @@ class TrendsSuggestionsFragment : AbsContentListViewFragment(), L override fun onStart() { super.onStart() - loaderManager.restartLoader(0, null, this) + LoaderManager.getInstance(this).restartLoader(0, null, this) bus.register(this) } 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 140da6573..6961c639b 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserFragment.kt @@ -73,6 +73,7 @@ import android.view.View.OnTouchListener import android.view.animation.AnimationUtils import android.widget.TextView import android.widget.Toast +import androidx.loader.app.LoaderManager import com.squareup.otto.Subscribe import kotlinx.android.synthetic.main.fragment_user.* import kotlinx.android.synthetic.main.fragment_user.view.* @@ -432,7 +433,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener, } profileImage.visibility = View.VISIBLE val resources = resources - val lm = loaderManager + val lm = LoaderManager.getInstance(this) lm.destroyLoader(LOADER_ID_USER) lm.destroyLoader(LOADER_ID_FRIENDSHIP) cardContent.visibility = View.VISIBLE @@ -530,7 +531,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener, externalThemeManager.emoji?.applyTo(it) } - val userCreationDay = condition@ if (user.created_at >= 0) { + val userCreationDay = if (user.created_at >= 0) { val cal = Calendar.getInstance() val currentMonth = cal.get(Calendar.MONTH) val currentDay = cal.get(Calendar.DAY_OF_MONTH) @@ -577,7 +578,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener, fun getUserInfo(accountKey: UserKey, userKey: UserKey?, screenName: String?, omitIntentExtra: Boolean) { - val lm = loaderManager + val lm = LoaderManager.getInstance(this) lm.destroyLoader(LOADER_ID_USER) lm.destroyLoader(LOADER_ID_FRIENDSHIP) val args = Bundle() @@ -787,7 +788,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener, override fun onDestroyView() { user = null relationship = null - val lm = loaderManager + val lm = LoaderManager.getInstance(this) lm.destroyLoader(LOADER_ID_USER) lm.destroyLoader(LOADER_ID_FRIENDSHIP) super.onDestroyView() @@ -903,7 +904,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener, val twitter = twitterWrapper val user = user ?: return false val accountKey = user.account_key ?: return false - val currentFragmentManager = fragmentManager ?: return false + val currentFragmentManager = parentFragmentManager val userRelationship = relationship when (item.itemId) { R.id.block -> { @@ -1221,7 +1222,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener, override fun onClick(view: View) { val activity = activity ?: return - val fragmentManager = fragmentManager ?: return + val fragmentManager = parentFragmentManager val user = user ?: return val accountKey = user.account_key ?: return when (view.id) { @@ -1394,7 +1395,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener, private fun getFriendship() { val user = user ?: return relationship = null - val lm = loaderManager + val lm = LoaderManager.getInstance(this) lm.destroyLoader(LOADER_ID_FRIENDSHIP) val args = Bundle() args.putParcelable(EXTRA_ACCOUNT_KEY, user.account_key) @@ -1890,7 +1891,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener, df.arguments = Bundle { this[EXTRA_ACCOUNT_KEY] = accountKey } - df.show(requireFragmentManager(), "create_user_list") + df.show(parentFragmentManager, "create_user_list") } } return dialog diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserListFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserListFragment.kt index 64eb99029..db975cf39 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserListFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserListFragment.kt @@ -28,6 +28,7 @@ import android.nfc.NdefMessage import android.nfc.NdefRecord import android.nfc.NfcAdapter.CreateNdefMessageCallback import android.os.Bundle +import androidx.loader.app.LoaderManager import androidx.loader.app.LoaderManager.LoaderCallbacks import androidx.loader.content.FixedAsyncTaskLoader import androidx.loader.content.Loader @@ -81,7 +82,7 @@ class UserListFragment : AbsToolbarTabPagesFragment(), OnClickListener, fun displayUserList(userList: ParcelableUserList?) { val activity = activity ?: return - loaderManager.destroyLoader(0) + LoaderManager.getInstance(this).destroyLoader(0) this.userList = userList if (userList != null) { @@ -93,7 +94,7 @@ class UserListFragment : AbsToolbarTabPagesFragment(), OnClickListener, } fun getUserListInfo(omitIntentExtra: Boolean) { - val lm = loaderManager + val lm = LoaderManager.getInstance(this) lm.destroyLoader(0) val args = Bundle(arguments) args.putBoolean(EXTRA_OMIT_INTENT_EXTRA, omitIntentExtra) @@ -180,7 +181,7 @@ class UserListFragment : AbsToolbarTabPagesFragment(), OnClickListener, override fun onDestroyView() { userList = null - loaderManager.destroyLoader(0) + LoaderManager.getInstance(this).destroyLoader(0) super.onDestroyView() } @@ -227,7 +228,7 @@ class UserListFragment : AbsToolbarTabPagesFragment(), OnClickListener, val twitter = twitterWrapper val userList = userList ?: return false val activity = activity ?: return false - val fragmentManager = fragmentManager ?: return false + val fragmentManager = parentFragmentManager when (item.itemId) { R.id.add -> { if (userList.user_key != userList.account_key) return false diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserListsOwnershipsFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserListsOwnershipsFragment.kt index 5e3e7c25a..bfeb921b4 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserListsOwnershipsFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserListsOwnershipsFragment.kt @@ -68,7 +68,7 @@ class UserListsOwnershipsFragment : ParcelableUserListsFragment() { val args = Bundle() args.putParcelable(EXTRA_ACCOUNT_KEY, accountKey) f.arguments = args - fragmentManager?.let { f.show(it, null) } + parentFragmentManager.let { f.show(it, null) } return true } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserProfileEditorFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserProfileEditorFragment.kt index 8aa3ea90c..74b390225 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserProfileEditorFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserProfileEditorFragment.kt @@ -33,6 +33,7 @@ import android.text.TextUtils.isEmpty import android.view.* import android.view.View.OnClickListener import android.widget.Toast +import androidx.loader.app.LoaderManager import com.twitter.twittertext.Validator import kotlinx.android.synthetic.main.fragment_user_profile_editor.* import nl.komponents.kovenant.combine.and @@ -337,7 +338,7 @@ class UserProfileEditorFragment : BaseFragment(), OnSizeChangedListener, private fun getUserInfo() { if (activity == null || isDetached) return - val lm = loaderManager + val lm = LoaderManager.getInstance(this) lm.destroyLoader(LOADER_ID_USER) getUserInfoCalled = true if (userInfoLoaderInitialized) { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserQrDialogFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserQrDialogFragment.kt index 78870607b..17bfeb902 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserQrDialogFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserQrDialogFragment.kt @@ -125,13 +125,13 @@ class UserQrDialogFragment : BaseDialogFragment() { return task { try { return@task requestManager.loadOriginalProfileImage(requireContext(), user, 0) - .into(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).get() + .submit(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).get() } catch (e: ExecutionException) { // Ignore } // Return fallback profile image return@task requestManager.loadProfileImage(requireContext(), user, 0, size = profileImageSize) - .into(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).get() + .submit(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).get() } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/drafts/DraftsListFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/drafts/DraftsListFragment.kt index b266b6696..063faca16 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/drafts/DraftsListFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/drafts/DraftsListFragment.kt @@ -41,6 +41,7 @@ import android.widget.AbsListView.MultiChoiceModeListener import android.widget.AdapterView import android.widget.AdapterView.OnItemClickListener import android.widget.ListView +import androidx.loader.app.LoaderManager import com.bumptech.glide.RequestManager import kotlinx.android.synthetic.main.fragment_content_listview.* import org.mariotaku.kpreferences.get @@ -84,7 +85,7 @@ class DraftsListFragment : AbsContentListViewFragment(), LoaderCa listView.choiceMode = ListView.CHOICE_MODE_MULTIPLE_MODAL listView.setMultiChoiceModeListener(this) refreshEnabled = false - loaderManager.initLoader(0, null, this) + LoaderManager.getInstance(this).initLoader(0, null, this) showProgress() } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/filter/AddEditItemFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/filter/AddEditItemFragment.kt index 02e134849..da7cca06f 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/filter/AddEditItemFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/filter/AddEditItemFragment.kt @@ -151,7 +151,7 @@ class AddEditItemFragment : BaseDialogFragment() { val df = ExtraFeaturesIntroductionDialogFragment.create( ExtraFeaturesService.FEATURE_ADVANCED_FILTERS) df.setTargetFragment(this@AddEditItemFragment, REQUEST_CHANGE_SCOPE_PURCHASE) - df.show(requireFragmentManager(), ExtraFeaturesIntroductionDialogFragment.FRAGMENT_TAG) + df.show(parentFragmentManager, ExtraFeaturesIntroductionDialogFragment.FRAGMENT_TAG) } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/filter/BaseFiltersFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/filter/BaseFiltersFragment.kt index b5ca06376..ed897908e 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/filter/BaseFiltersFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/filter/BaseFiltersFragment.kt @@ -88,7 +88,7 @@ abstract class BaseFiltersFragment : AbsContentListViewFragment if (!extraFeaturesService.isAdvancedFiltersEnabled) { - ExtraFeaturesIntroductionDialogFragment.show(requireFragmentManager(), + ExtraFeaturesIntroductionDialogFragment.show(parentFragmentManager, feature = ExtraFeaturesService.FEATURE_ADVANCED_FILTERS, requestCode = REQUEST_PURCHASE_EXTRA_FEATURES) return@listener false diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/filter/FiltersSubscriptionsFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/filter/FiltersSubscriptionsFragment.kt index fffad9752..b267a3f94 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/filter/FiltersSubscriptionsFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/filter/FiltersSubscriptionsFragment.kt @@ -67,7 +67,7 @@ class FiltersSubscriptionsFragment : BaseFragment(), LoaderManager.LoaderCallbac listContainer.visibility = View.GONE progressContainer.visibility = View.VISIBLE - loaderManager.initLoader(0, null, this) + LoaderManager.getInstance(this).initLoader(0, null, this) if (!extraFeaturesService.isSupported()) { @@ -76,7 +76,7 @@ class FiltersSubscriptionsFragment : BaseFragment(), LoaderManager.LoaderCallbac } if (savedInstanceState == null) { - fragmentManager?.let { fragmentManager -> + parentFragmentManager.let { fragmentManager -> when (arguments?.getString(EXTRA_ACTION)) { ACTION_ADD_URL_SUBSCRIPTION -> { if (!extraFeaturesService.isAdvancedFiltersEnabled) { @@ -131,17 +131,17 @@ class FiltersSubscriptionsFragment : BaseFragment(), LoaderManager.LoaderCallbac when (item.itemId) { R.id.add -> { val df = AddUrlSubscriptionDialogFragment() - fragmentManager?.let { df.show(it, "add_url_subscription") } + parentFragmentManager.let { df.show(it, "add_url_subscription") } return true } R.id.refresh -> { executeAfterFragmentResumed { fragment -> - ProgressDialogFragment.show(fragment.childFragmentManager, FRAGMENT_TAG_RREFRESH_FILTERS) + ProgressDialogFragment.show(fragment.childFragmentManager, FRAGMENT_TAG_REFRESH_FILTERS) val task = RefreshFiltersSubscriptionsTask(fragment.requireContext()) val fragmentRef = WeakReference(fragment) task.callback = { fragmentRef.get()?.executeAfterFragmentResumed { fragment -> - fragment.fragmentManager?.dismissDialogFragment(FRAGMENT_TAG_RREFRESH_FILTERS) + fragment.parentFragmentManager.dismissDialogFragment(FRAGMENT_TAG_REFRESH_FILTERS) } } TaskStarter.execute(task) @@ -255,7 +255,7 @@ class FiltersSubscriptionsFragment : BaseFragment(), LoaderManager.LoaderCallbac this[EXTRA_ADD_SUBSCRIPTION_URL] = arguments?.getString(EXTRA_ADD_SUBSCRIPTION_URL) this[EXTRA_ADD_SUBSCRIPTION_NAME] = arguments?.getString(EXTRA_ADD_SUBSCRIPTION_NAME) } - fragmentManager?.let { df.show(it, "add_url_subscription") } + parentFragmentManager.let { df.show(it, "add_url_subscription") } } class FilterSubscriptionsAdapter(context: Context) : SimpleCursorAdapter(context, @@ -337,7 +337,7 @@ class FiltersSubscriptionsFragment : BaseFragment(), LoaderManager.LoaderCallbac const val EXTRA_ADD_SUBSCRIPTION_URL = "add_subscription.url" const val EXTRA_ADD_SUBSCRIPTION_NAME = "add_subscription.name" private const val REQUEST_ADD_URL_SUBSCRIPTION_PURCHASE = 101 - private const val FRAGMENT_TAG_RREFRESH_FILTERS = "refresh_filters" + private const val FRAGMENT_TAG_REFRESH_FILTERS = "refresh_filters" } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/message/MessageConversationInfoFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/message/MessageConversationInfoFragment.kt index 35835f5ce..a9b77eefd 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/message/MessageConversationInfoFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/message/MessageConversationInfoFragment.kt @@ -28,20 +28,20 @@ import android.content.Intent import android.graphics.Rect import android.net.Uri import android.os.Bundle +import android.view.* +import android.widget.CompoundButton +import android.widget.EditText +import androidx.appcompat.app.AlertDialog +import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.widget.Toolbar import androidx.fragment.app.DialogFragment import androidx.fragment.app.FragmentActivity import androidx.loader.app.LoaderManager import androidx.loader.content.FixedAsyncTaskLoader import androidx.loader.content.Loader -import androidx.appcompat.app.AlertDialog -import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.FixedLinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import androidx.appcompat.widget.Toolbar -import android.view.* -import android.widget.CompoundButton -import android.widget.EditText import com.bumptech.glide.RequestManager import kotlinx.android.synthetic.main.activity_home_content.view.* import kotlinx.android.synthetic.main.fragment_messages_conversation_info.* @@ -72,7 +72,6 @@ import org.mariotaku.twidere.adapter.iface.IItemCountsAdapter import org.mariotaku.twidere.annotation.AccountType import org.mariotaku.twidere.annotation.ImageShapeStyle import org.mariotaku.twidere.annotation.ProfileImageSize -import org.mariotaku.twidere.constant.IntentConstants import org.mariotaku.twidere.constant.IntentConstants.* import org.mariotaku.twidere.constant.nameFirstKey import org.mariotaku.twidere.constant.profileImageStyleKey @@ -182,7 +181,7 @@ class MessageConversationInfoFragment : BaseFragment(), IToolBarSupportFragment, } } - loaderManager.initLoader(0, null, this) + LoaderManager.getInstance(this).initLoader(0, null, this) } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { @@ -331,10 +330,10 @@ class MessageConversationInfoFragment : BaseFragment(), IToolBarSupportFragment, ProgressDialogFragment.show(childFragmentManager, "add_participant_progress") val weakThis = WeakReference(this) val task = AddParticipantsTask(requireContext(), accountKey, conversationId, listOf(user)) - task.callback = callback@ { succeed -> + task.callback = callback@ { val f = weakThis.get() ?: return@callback f.dismissDialogThen("add_participant_progress") { - loaderManager.restartLoader(0, null, this) + LoaderManager.getInstance(this).restartLoader(0, null, this) } } TaskStarter.execute(task) @@ -347,7 +346,7 @@ class MessageConversationInfoFragment : BaseFragment(), IToolBarSupportFragment, task.callback = callback@ { _ -> val f = weakThis.get() ?: return@callback f.dismissDialogThen("set_notifications_disabled_progress") { - loaderManager.restartLoader(0, null, this) + LoaderManager.getInstance(this).restartLoader(0, null, this) } } TaskStarter.execute(task) @@ -470,7 +469,7 @@ class MessageConversationInfoFragment : BaseFragment(), IToolBarSupportFragment, }.alwaysUi { val fragment = weakThis.get() ?: return@alwaysUi fragment.dismissDialogThen(tag) { - loaderManager.restartLoader(0, null, this) + LoaderManager.getInstance(this).restartLoader(0, null, this) } } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/message/MessageNewConversationFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/message/MessageNewConversationFragment.kt index 43d4d1eec..bddb2df15 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/message/MessageNewConversationFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/message/MessageNewConversationFragment.kt @@ -25,16 +25,17 @@ import android.graphics.Canvas import android.graphics.Paint import android.graphics.RectF import android.os.Bundle -import androidx.annotation.WorkerThread -import androidx.loader.app.LoaderManager.LoaderCallbacks -import androidx.loader.content.Loader -import androidx.recyclerview.widget.LinearLayoutManager import android.text.Editable import android.text.Spannable import android.text.SpannableStringBuilder import android.text.TextUtils import android.text.style.ReplacementSpan import android.view.* +import androidx.annotation.WorkerThread +import androidx.loader.app.LoaderManager +import androidx.loader.app.LoaderManager.LoaderCallbacks +import androidx.loader.content.Loader +import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_messages_conversation_new.* import org.mariotaku.kpreferences.get import org.mariotaku.ktextension.* @@ -305,10 +306,10 @@ class MessageNewConversationFragment : BaseFragment(), LoaderCallbacks + val context = alertDialog.context + alertDialog.applyTheme() val am = AccountManager.get(context) val details = AccountUtils.getAccountDetails(am, accountKey, true) ?: run { @@ -89,7 +89,7 @@ abstract class AbsStatusDialogFragment : BaseDialogFragment() { return@onShow } val weakThis = WeakReference(this) - val weakHolder = WeakReference(StatusViewHolder(adapter = adapter, itemView = it.itemContent).apply { + val weakHolder = WeakReference(StatusViewHolder(adapter = adapter, itemView = alertDialog.itemContent).apply { setupViewOptions() }) val extraStatus = status diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/BlockStatusUsersDialogFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/BlockStatusUsersDialogFragment.kt index 7bea40eca..510a4aaff 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/BlockStatusUsersDialogFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/BlockStatusUsersDialogFragment.kt @@ -50,7 +50,7 @@ class BlockStatusUsersDialogFragment : BaseDialogFragment() { }.toTypedArray() builder.setTitle(R.string.action_status_block_users) builder.setItems(displayNames) { _, which -> - CreateUserBlockDialogFragment.show(requireFragmentManager(), referencedUsers[which]) + CreateUserBlockDialogFragment.show(parentFragmentManager, referencedUsers[which]) } val dialog = builder.create() dialog.applyOnShow { applyTheme() } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/MuteStatusUsersDialogFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/MuteStatusUsersDialogFragment.kt index d93d6306c..409b66e56 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/MuteStatusUsersDialogFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/MuteStatusUsersDialogFragment.kt @@ -50,7 +50,7 @@ class MuteStatusUsersDialogFragment : BaseDialogFragment() { }.toTypedArray() builder.setTitle(R.string.action_status_mute_users) builder.setItems(displayNames) { _, which -> - CreateUserMuteDialogFragment.show(requireFragmentManager(), referencedUsers[which]) + CreateUserMuteDialogFragment.show(parentFragmentManager, referencedUsers[which]) } val dialog = builder.create() dialog.onShow { it.applyTheme() } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/StatusFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/StatusFragment.kt index 8a71d837f..eea9202aa 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/StatusFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/StatusFragment.kt @@ -36,6 +36,7 @@ import android.text.TextUtils import android.view.* import android.widget.Toast import androidx.appcompat.app.AlertDialog +import androidx.loader.app.LoaderManager import androidx.loader.app.LoaderManager.LoaderCallbacks import androidx.loader.app.hasRunningLoadersSafe import androidx.loader.content.FixedAsyncTaskLoader @@ -210,7 +211,7 @@ class StatusFragment : BaseFragment(), LoaderCallbacks { @@ -261,7 +262,7 @@ class StatusFragment : BaseFragment(), LoaderCallbacks currentIndex.set(which) } - builder.setPositiveButton(android.R.string.ok) lambda@ { di, _ -> + builder.setPositiveButton(android.R.string.ok) lambda@ { _, _ -> val idx = currentIndex.get() if (idx < 0) return@lambda preferences[translationDestinationKey] = languages[idx].code diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/statuses/MediaStatusesSearchFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/statuses/MediaStatusesSearchFragment.kt index 6f556dea1..fe6ce3a74 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/statuses/MediaStatusesSearchFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/statuses/MediaStatusesSearchFragment.kt @@ -21,6 +21,7 @@ package org.mariotaku.twidere.fragment.statuses import android.content.Context import android.os.Bundle +import androidx.loader.app.LoaderManager import androidx.loader.content.Loader import org.mariotaku.twidere.TwidereConstants.* import org.mariotaku.twidere.fragment.AbsMediaStatusesFragment @@ -52,7 +53,7 @@ class MediaStatusesSearchFragment : AbsMediaStatusesFragment() { args.putString(EXTRA_MAX_ID, maxId) args.putString(EXTRA_SINCE_ID, sinceId) args.putBoolean(EXTRA_FROM_USER, true) - loaderManager.restartLoader(loaderId, args, this) + LoaderManager.getInstance(this).restartLoader(loaderId, args, this) return 0 } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/statuses/UserMediaTimelineFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/statuses/UserMediaTimelineFragment.kt index 3063367ce..8e256b270 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/statuses/UserMediaTimelineFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/statuses/UserMediaTimelineFragment.kt @@ -21,6 +21,7 @@ package org.mariotaku.twidere.fragment.statuses import android.content.Context import android.os.Bundle +import androidx.loader.app.LoaderManager import androidx.loader.content.Loader import org.mariotaku.twidere.constant.IntentConstants.* import org.mariotaku.twidere.fragment.AbsMediaStatusesFragment @@ -52,7 +53,7 @@ class UserMediaTimelineFragment : AbsMediaStatusesFragment() { args.putString(EXTRA_MAX_ID, maxId) args.putString(EXTRA_SINCE_ID, sinceId) args.putBoolean(EXTRA_FROM_USER, true) - loaderManager.restartLoader(loaderId, args, this) + LoaderManager.getInstance(this).restartLoader(loaderId, args, this) return 0 } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/statuses/UserTimelineFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/statuses/UserTimelineFragment.kt index 328d02dd0..598e2e671 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/statuses/UserTimelineFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/statuses/UserTimelineFragment.kt @@ -138,7 +138,7 @@ class UserTimelineFragment : ParcelableStatusesFragment() { override fun onFilterClick(holder: TimelineFilterHeaderViewHolder) { val df = UserTimelineFilterDialogFragment() df.setTargetFragment(this, REQUEST_SET_TIMELINE_FILTER) - fragmentManager?.let { df.show(it, "set_timeline_filter") } + parentFragmentManager.let { df.show(it, "set_timeline_filter") } } @Subscribe diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/users/UserListMembersFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/users/UserListMembersFragment.kt index 2633a7f15..a414cc6f3 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/users/UserListMembersFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/users/UserListMembersFragment.kt @@ -110,7 +110,7 @@ class UserListMembersFragment : ParcelableUsersFragment() { val user = adapter.getUser(contextMenuInfo.position) ?: return false when (item.itemId) { R.id.delete_from_list -> { - fragmentManager?.let { DeleteUserListMembersDialogFragment.show(it, userList, user) } + parentFragmentManager.let { DeleteUserListMembersDialogFragment.show(it, userList, user) } return true } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/loader/ExtensionsListLoader.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/loader/ExtensionsListLoader.kt index b00771bc4..6d20807bb 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/loader/ExtensionsListLoader.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/loader/ExtensionsListLoader.kt @@ -118,6 +118,35 @@ class ExtensionsListLoader( info.metaData?.getString(METADATA_KEY_EXTENSION_SETTINGS) ) + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as ExtensionInfo + + if (packageName != other.packageName) return false + if (label != other.label) return false + if (description != other.description) return false + if (icon != other.icon) return false + if (permissions != null) { + if (other.permissions == null) return false + if (!permissions.contentEquals(other.permissions)) return false + } else if (other.permissions != null) return false + if (settings != other.settings) return false + + return true + } + + override fun hashCode(): Int { + var result = packageName.hashCode() + result = 31 * result + label.hashCode() + result = 31 * result + (description?.hashCode() ?: 0) + result = 31 * result + (icon?.hashCode() ?: 0) + result = 31 * result + (permissions?.contentHashCode() ?: 0) + result = 31 * result + (settings?.hashCode() ?: 0) + return result + } + } /** @@ -126,8 +155,8 @@ class ExtensionsListLoader( */ class InterestingConfigChanges { - internal val lastConfiguration = Configuration() - internal var lastDensity: Int = 0 + private val lastConfiguration = Configuration() + private var lastDensity: Int = 0 internal fun applyNewConfig(res: Resources): Boolean { val configChanges = lastConfiguration.updateFrom(res.configuration) @@ -165,7 +194,7 @@ class ExtensionsListLoader( } } - class ExtensionInfoComparator(val collator: Collator) : Comparator { + class ExtensionInfoComparator(private val collator: Collator) : Comparator { override fun compare(o1: ExtensionInfo, o2: ExtensionInfo): Int { val label1 = o1.label.toString() val label2 = o2.label.toString() diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/model/ParameterizedExpression.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/model/ParameterizedExpression.kt index 9dd31a716..f0735b8d5 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/model/ParameterizedExpression.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/model/ParameterizedExpression.kt @@ -27,4 +27,22 @@ import org.mariotaku.sqliteqb.library.Expression data class ParameterizedExpression(var expression: Expression, val parameters: Array) { val sql: String get() = expression.sql + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as ParameterizedExpression + + if (expression != other.expression) return false + if (!parameters.contentEquals(other.parameters)) return false + + return true + } + + override fun hashCode(): Int { + var result = expression.hashCode() + result = 31 * result + parameters.contentHashCode() + return result + } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/model/util/ParcelableRelationshipUtils.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/model/util/ParcelableRelationshipUtils.kt index 601c58569..3cc7f0b6d 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/model/util/ParcelableRelationshipUtils.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/model/util/ParcelableRelationshipUtils.kt @@ -69,15 +69,15 @@ object ParcelableRelationshipUtils { */ fun insert(cr: ContentResolver, relationships: Collection) { val insertItems = ArraySet() - relationships.forEach { - if (it._id > 0) { - val where = Expression.equals(CachedRelationships._ID, it._id).sql + relationships.forEach { parcelableRelationship -> + if (parcelableRelationship._id > 0) { + val where = Expression.equals(CachedRelationships._ID, parcelableRelationship._id).sql cr.updateItems(CachedRelationships.CONTENT_URI, CachedRelationships.COLUMNS, where, null, ParcelableRelationship::class.java) { return@updateItems it } } else { - insertItems.add(it) + insertItems.add(parcelableRelationship) } } cr.bulkInsert(CachedRelationships.CONTENT_URI, insertItems, ParcelableRelationship::class.java) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/preference/ColorPickerPreference.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/preference/ColorPickerPreference.kt index fe46be5ae..5ecbe1327 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/preference/ColorPickerPreference.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/preference/ColorPickerPreference.kt @@ -81,7 +81,7 @@ class ColorPickerPreference(context: Context, attrs: AttributeSet? = null) : override fun displayDialog(fragment: PreferenceFragmentCompat) { val df = ColorPickerPreferenceDialogFragment.newInstance(key) df.setTargetFragment(fragment, 0) - fragment.fragmentManager?.let { df.show(it, key) } + fragment.parentFragmentManager.let { df.show(it, key) } } override fun onBindViewHolder(holder: PreferenceViewHolder) { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/preference/DefaultAPIPreference.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/preference/DefaultAPIPreference.kt index d4076d7a2..3171593f4 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/preference/DefaultAPIPreference.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/preference/DefaultAPIPreference.kt @@ -35,7 +35,7 @@ class DefaultAPIPreference( override fun displayDialog(fragment: PreferenceFragmentCompat) { val df = APIEditorDialogFragment() df.setTargetFragment(fragment, 0) - fragment.fragmentManager?.let { df.show(it, key) } + fragment.parentFragmentManager.let { df.show(it, key) } } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/preference/KeyboardShortcutPreference.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/preference/KeyboardShortcutPreference.kt index 7305098ac..854a7f93c 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/preference/KeyboardShortcutPreference.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/preference/KeyboardShortcutPreference.kt @@ -72,7 +72,7 @@ class KeyboardShortcutPreference(context: Context, attrs: AttributeSet? = null) override fun displayDialog(fragment: PreferenceFragmentCompat) { val df = KeyboardShortcutDialogFragment.newInstance(action) df.setTargetFragment(fragment, 0) - fragment.fragmentManager?.let { df.show(it, action) } + fragment.parentFragmentManager.let { df.show(it, action) } } class KeyboardShortcutDialogFragment : ThemedPreferenceDialogFragmentCompat(), DialogInterface.OnKeyListener { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/preference/RandomizeAccountNamePreference.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/preference/RandomizeAccountNamePreference.kt index 52acc7b12..58bbc1e12 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/preference/RandomizeAccountNamePreference.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/preference/RandomizeAccountNamePreference.kt @@ -58,7 +58,7 @@ class RandomizeAccountNamePreference @JvmOverloads constructor( override fun displayDialog(fragment: PreferenceFragmentCompat) { val df = RenameAccountsConfirmDialogFragment.newInstance(key, getPersistedBoolean(false)) df.setTargetFragment(fragment, 0) - fragment.fragmentManager?.let { df.show(it, key) } + fragment.parentFragmentManager.let { df.show(it, key) } } class RenameAccountsConfirmDialogFragment : PreferenceDialogFragmentCompat() { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/preference/ThemedEditTextPreference.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/preference/ThemedEditTextPreference.kt index 7d2421e4d..d880e20ab 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/preference/ThemedEditTextPreference.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/preference/ThemedEditTextPreference.kt @@ -36,6 +36,6 @@ class ThemedEditTextPreference(context: Context, attrs: AttributeSet? = null) : override fun displayDialog(fragment: PreferenceFragmentCompat) { val df = ThemedEditTextPreferenceDialogFragmentCompat.newInstance(key) df.setTargetFragment(fragment, 0) - fragment.fragmentManager?.let { df.show(it, key) } + fragment.parentFragmentManager.let { df.show(it, key) } } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/preference/ThemedListPreference.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/preference/ThemedListPreference.kt index d2972f115..02375ad20 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/preference/ThemedListPreference.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/preference/ThemedListPreference.kt @@ -17,6 +17,6 @@ open class ThemedListPreference(context: Context, attrs: AttributeSet? = null) : override fun displayDialog(fragment: PreferenceFragmentCompat) { val df = ThemedListPreferenceDialogFragmentCompat.newInstance(key) df.setTargetFragment(fragment, 0) - fragment.fragmentManager?.let { df.show(it, key) } + fragment.parentFragmentManager.let { df.show(it, key) } } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/task/twitter/GetActivitiesAboutMeTask.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/task/twitter/GetActivitiesAboutMeTask.kt index 41901ef6a..8224642ed 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/task/twitter/GetActivitiesAboutMeTask.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/task/twitter/GetActivitiesAboutMeTask.kt @@ -123,8 +123,8 @@ class GetActivitiesAboutMeTask(context: Context) : GetActivitiesTask(context) { } return GetTimelineResult(account, activities, activities.flatMap { it.sources?.toList().orEmpty() - }, timeline.flatMap { - it.entities?.hashtags?.map { it.text }.orEmpty() + }, timeline.flatMap { status -> + status.entities?.hashtags?.map { it.text }.orEmpty() }) } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/task/twitter/UpdateStatusTask.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/task/twitter/UpdateStatusTask.kt index ad4f5f431..0c2395322 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/task/twitter/UpdateStatusTask.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/task/twitter/UpdateStatusTask.kt @@ -687,7 +687,27 @@ class UpdateStatusTask( val ids: Array, val deleteOnSuccess: List, val deleteAlways: List - ) + ) { + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as SharedMediaUploadResult + + if (!ids.contentEquals(other.ids)) return false + if (deleteOnSuccess != other.deleteOnSuccess) return false + if (deleteAlways != other.deleteAlways) return false + + return true + } + + override fun hashCode(): Int { + var result = ids.contentHashCode() + result = 31 * result + deleteOnSuccess.hashCode() + result = 31 * result + deleteAlways.hashCode() + return result + } + } companion object { @@ -914,7 +934,7 @@ class UpdateStatusTask( return null } - if (imageLimit == null || (imageLimit.checkGeomentry(o.outWidth, o.outHeight) + if (imageLimit == null || (imageLimit.checkGeometry(o.outWidth, o.outHeight) && imageLimit.checkSize(imageSize, chucked))) return null o.inSampleSize = o.calculateInSampleSize(imageLimit.maxWidth, imageLimit.maxHeight) o.inJustDecodeBounds = false @@ -1092,7 +1112,7 @@ class UpdateStatusTask( context.contentResolver.delete(Drafts.CONTENT_URI, where, null) } - fun AccountExtras.ImageLimit.checkGeomentry(width: Int, height: Int): Boolean { + fun AccountExtras.ImageLimit.checkGeometry(width: Int, height: Int): Boolean { if (this.maxWidth <= 0 || this.maxHeight <= 0) return true return (width <= this.maxWidth && height <= this.maxHeight) || (height <= this.maxWidth && width <= this.maxHeight) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/AsyncTwitterWrapper.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/AsyncTwitterWrapper.kt index 2d28a6756..cdbfe405a 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/AsyncTwitterWrapper.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/AsyncTwitterWrapper.kt @@ -360,10 +360,6 @@ class AsyncTwitterWrapper( } override fun onException(callback: Any?, exception: MicroBlogException) { - if (exception !is MicroBlogException) { - Analyzer.logException(exception) - return - } DebugLog.w(TwidereConstants.LOGTAG, "Unable to update friendship", exception) } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/DataStoreUtils.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/DataStoreUtils.kt index e4f9f09fe..1550ea5ea 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/DataStoreUtils.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/DataStoreUtils.kt @@ -242,7 +242,7 @@ object DataStoreUtils { val (where, whereArgs) = getIdsWhere(isOfficial) getNewestActivityMaxSortPositions(context, uri, keys, where, whereArgs) }, { arr1, arr2 -> - LongArray(accountKeys.size) { arr1.elementAtOrNull(it)?.takeIf { it > 0 } ?: arr2.elementAtOrNull(it) ?: 0 } + LongArray(accountKeys.size) { array -> arr1.elementAtOrNull(array)?.takeIf { it > 0 } ?: arr2.elementAtOrNull(array) ?: 0 } }, accountKeys) } @@ -259,7 +259,7 @@ object DataStoreUtils { val (where, whereArgs) = getIdsWhere(isOfficial) getOldestActivityMaxSortPositions(context, uri, keys, where, whereArgs) }, { arr1, arr2 -> - LongArray(accountKeys.size) { arr1.elementAtOrNull(it)?.takeIf { it > 0 } ?: arr2.elementAtOrNull(it) ?: 0 } + LongArray(accountKeys.size) { array -> arr1.elementAtOrNull(array)?.takeIf { it > 0 } ?: arr2.elementAtOrNull(array) ?: 0 } }, accountKeys) } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/IntentUtils.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/IntentUtils.kt index 697669e94..9a55dc1a8 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/IntentUtils.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/IntentUtils.kt @@ -187,7 +187,7 @@ object IntentUtils { intent.data = Uri.parse("${uri.scheme}://") return intent.resolveActivity(context.packageManager)?.takeIf { - it.className != null && it.packageName != "android" + it.packageName != "android" }?.packageName } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/gifshare/GifShareProvider.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/gifshare/GifShareProvider.kt index 91716483a..57e6edfed 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/gifshare/GifShareProvider.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/gifshare/GifShareProvider.kt @@ -42,7 +42,7 @@ interface GifShareProvider { fun newFactory(): Factory = ServiceLoader.load(Factory::class.java)?.firstOrNull() ?: NullFactory private object NullFactory : Factory { - override fun newInstance(context: Context) = null + override fun newInstance(context: Context): Nothing? = null } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/glide/RoundedRectTransformation.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/glide/RoundedRectTransformation.kt index e4be99d63..936ef97bf 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/glide/RoundedRectTransformation.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/glide/RoundedRectTransformation.kt @@ -71,8 +71,8 @@ class RoundedRectTransformation( return "RoundedRectTransformation(radius=$radius, radiusPercent=$radius)" } - override fun equals(o: Any?): Boolean { - return o is RoundedRectTransformation + override fun equals(other: Any?): Boolean { + return other is RoundedRectTransformation } override fun hashCode(): Int { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/glide/TwidereGlideModule.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/glide/TwidereGlideModule.kt index ed9865db4..208ca55d5 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/glide/TwidereGlideModule.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/glide/TwidereGlideModule.kt @@ -24,6 +24,7 @@ import android.os.Build import com.bumptech.glide.Glide import com.bumptech.glide.GlideBuilder import com.bumptech.glide.Registry +import com.bumptech.glide.annotation.GlideModule import com.bumptech.glide.integration.okhttp3.OkHttpUrlLoader import com.bumptech.glide.load.model.GlideUrl import com.bumptech.glide.module.AppGlideModule @@ -39,7 +40,7 @@ import org.mariotaku.twidere.util.media.ThumborWrapper import org.mariotaku.twidere.util.okhttp.ModifyRequestInterceptor import java.io.InputStream -@com.bumptech.glide.annotation.GlideModule +@GlideModule class TwidereGlideModule : AppGlideModule() { override fun applyOptions(context: Context, builder: GlideBuilder) { // Do nothing. diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/media/MediaPreloader.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/media/MediaPreloader.kt index 24c46e5bd..3d5b4f06e 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/media/MediaPreloader.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/media/MediaPreloader.kt @@ -70,12 +70,12 @@ class MediaPreloader(val context: Context) { } private fun preLoadProfileImage(status: ParcelableStatus) { - Glide.with(context).loadProfileImage(context, status, 0).into(Target.SIZE_ORIGINAL, + Glide.with(context).loadProfileImage(context, status, 0).submit(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) } private fun preloadPreviewImage(url: String?) { - Glide.with(context).load(url).into(Target.SIZE_ORIGINAL, + Glide.with(context).load(url).submit(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/net/SystemDnsFetcher.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/net/SystemDnsFetcher.kt index a84452bd5..e3998a003 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/net/SystemDnsFetcher.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/net/SystemDnsFetcher.kt @@ -42,8 +42,8 @@ object SystemDnsFetcher { @SuppressLint("PrivateApi") open fun get(context: Context): List? { try { - val SystemProperties = Class.forName("android.os.SystemProperties") - val method = SystemProperties.getMethod("get", String::class.java) + val systemProperties = Class.forName("android.os.SystemProperties") + val method = systemProperties.getMethod("get", String::class.java) val netdns = arrayOf("net.dns1", "net.dns2", "net.dns3", "net.dns4") return netdns.mapNotNull { key -> return@mapNotNull method(null, key) as? String diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/schedule/StatusScheduleProvider.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/schedule/StatusScheduleProvider.kt index 3ed434627..e55fd686f 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/schedule/StatusScheduleProvider.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/schedule/StatusScheduleProvider.kt @@ -64,7 +64,7 @@ interface StatusScheduleProvider { } private object NullFactory : Factory { - override fun newInstance(context: Context) = null + override fun newInstance(context: Context): Nothing? = null override fun parseInfo(json: String): ScheduleInfo? = null diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/sync/TimelineSyncManager.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/sync/TimelineSyncManager.kt index 52ab6d9eb..2660ae2fb 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/sync/TimelineSyncManager.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/sync/TimelineSyncManager.kt @@ -90,7 +90,7 @@ abstract class TimelineSyncManager(val context: Context) { } object DummyFactory : Factory() { - override fun create(context: Context) = null + override fun create(context: Context): Nothing? = null } companion object { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/text/TwitterValidator.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/text/TwitterValidator.kt index 6d400b437..3da636e7c 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/text/TwitterValidator.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/text/TwitterValidator.kt @@ -22,6 +22,7 @@ package org.mariotaku.twidere.util.text import com.twitter.twittertext.Extractor import com.twitter.twittertext.Validator import java.text.Normalizer +import java.util.* object TwitterValidator : Validator() { @@ -54,7 +55,7 @@ object TwitterValidator : Validator() { for (urlEntity in extractor.extractURLsWithIndices(normalized)) { length += urlEntity.start - urlEntity.end - length += if (urlEntity.value.toLowerCase().startsWith("https://")) shortUrlLengthHttps else shortUrlLength + length += if (urlEntity.value.toLowerCase(Locale.ROOT).startsWith("https://")) shortUrlLengthHttps else shortUrlLength } return length diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/view/IconActionView.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/view/IconActionView.kt index f2615ed94..2fdafaa1e 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/view/IconActionView.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/view/IconActionView.kt @@ -23,7 +23,7 @@ open class IconActionView( context: Context, attrs: AttributeSet? = null ) : AppCompatImageView(context, attrs), IIconActionButton { - override var defaultColor: Int = 0 + final override var defaultColor: Int = 0 @ColorInt get() { if (field == 0) { @@ -40,7 +40,7 @@ open class IconActionView( updateColorFilter() } - override var activatedColor: Int = 0 + final override var activatedColor: Int = 0 @ColorInt get() { if (field != 0) return field @@ -51,7 +51,7 @@ open class IconActionView( updateColorFilter() } - override var disabledColor: Int = 0 + final override var disabledColor: Int = 0 @ColorInt get() { if (field != 0) return field diff --git a/twidere/src/main/kotlin/org/mariotaku/yandex/YandexAPIFactory.kt b/twidere/src/main/kotlin/org/mariotaku/yandex/YandexAPIFactory.kt index 5d9d6a4f7..2d05e5d37 100644 --- a/twidere/src/main/kotlin/org/mariotaku/yandex/YandexAPIFactory.kt +++ b/twidere/src/main/kotlin/org/mariotaku/yandex/YandexAPIFactory.kt @@ -15,7 +15,7 @@ class YandexAPIFactory(apiKey: String, endpoint: String) { init { factory.setEndpoint(Endpoint(endpoint)) - factory.setExceptionFactory { cause, request, response -> + factory.setExceptionFactory { cause, _, _ -> cause?.let { YandexException(it) } ?: YandexException() } diff --git a/twidere/src/main/res/layout/header_message_conversation_info_button_space.xml b/twidere/src/main/res/layout/header_message_conversation_info_button_space.xml index 60750f6e4..2785514c6 100644 --- a/twidere/src/main/res/layout/header_message_conversation_info_button_space.xml +++ b/twidere/src/main/res/layout/header_message_conversation_info_button_space.xml @@ -29,7 +29,7 @@ app:cardPreventCornerOverlap="false" app:cardUseCompatPadding="false"> - \ No newline at end of file