From 96f27fe81949d410d07ac60cdca6a7c05566929f Mon Sep 17 00:00:00 2001 From: Mariotaku Lee Date: Mon, 12 Mar 2018 01:54:43 +0800 Subject: [PATCH] updated lib versions --- build.gradle | 13 +++++----- twidere.component.common/build.gradle | 4 ++-- .../twidere/model/ParcelableStatus.java | 4 ++-- twidere/build.gradle | 2 +- twidere/src/.google.commit-id | 2 +- ...s.kt => AsyncPagedListDifferExtensions.kt} | 4 ++-- .../support/v4/app/LoaderManagerExtensions.kt | 14 ++++------- .../activity/UserListSelectorActivity.kt | 12 ++++++---- .../adapter/MessagesConversationAdapter.kt | 10 ++++---- .../twidere/adapter/MessagesEntriesAdapter.kt | 10 ++++---- .../adapter/ParcelableActivitiesAdapter.kt | 10 ++++---- .../adapter/ParcelableStatusesAdapter.kt | 13 +++++----- .../twidere/adapter/ParcelableUsersAdapter.kt | 10 ++++---- .../twidere/adapter/StatusDetailsAdapter.kt | 4 ++-- .../twidere/extension/ClassExtensions.kt | 4 ---- .../fragment/FileSelectorDialogFragment.kt | 4 ++-- .../fragment/ParcelableGroupsFragment.kt | 4 ++-- .../fragment/ParcelableUserListsFragment.kt | 4 ++-- .../twidere/fragment/group/GroupFragment.kt | 7 ++---- .../fragment/group/UserGroupsFragment.kt | 3 --- .../MessageConversationInfoFragment.kt | 4 ++-- .../twidere/fragment/status/StatusFragment.kt | 6 ++--- .../fragment/userlist/UserListFragment.kt | 5 ++-- .../task/twitter/message/GetMessagesTask.kt | 22 +++++++++-------- .../twidere/util/HttpClientFactory.kt | 24 +++++++------------ .../twidere/util/net/TLSSocketFactory.kt | 5 ++-- 26 files changed, 94 insertions(+), 110 deletions(-) rename twidere/src/main/kotlin/android/arch/paging/{PagedListAdapterHelperExtensions.kt => AsyncPagedListDifferExtensions.kt} (81%) diff --git a/build.gradle b/build.gradle index 37d740fd7..6e9f6e1e4 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ allprojects { projectVersionName = '4.0.0-SNAPSHOT' globalCompileSdkVersion = 27 - globalBuildToolsVersion = '27.0.2' + globalBuildToolsVersion = '27.0.3' } repositories { @@ -42,7 +42,8 @@ subprojects { ] libVersions = [ Kotlin : "${kotlinVersion}", - SupportLib : '27.0.2', + MultiDex : '1.0.3', + SupportLib : '27.1.0', SupportTest : '1.0.0', MariotakuCommons : '0.9.22', RestFu : '0.9.61', @@ -56,7 +57,7 @@ subprojects { Toro : '2.1.0', LoganSquare : '1.3.7', Mime4J : '0.7.2', - OkHttp : '3.9.0', + OkHttp : '3.10.0', Stetho : '1.5.0', OSMDroid : '5.6.5', LeakCanary : '1.5.1', @@ -68,7 +69,7 @@ subprojects { KPreferences : '0.9.7', Kovenant : '3.3.0', ParcelablePlease : '1.0.2', - Chameleon : '0.9.25', + Chameleon : '0.9.26', UniqR : '0.9.6', SQLiteQB : '0.9.18', Glide : '3.7.0', @@ -81,8 +82,8 @@ subprojects { Dagger : '2.11', StethoBeanShellREPL : '0.3', ArchLifecycleExtensions: '1.1.0', - ArchPaging : '1.0.0-alpha5', - ConstraintLayout : '1.1.0-beta4', + ArchPaging : '1.0.0-alpha6', + ConstraintLayout : '1.1.0-beta5', MessageBubbleView : '2.1', ] diff --git a/twidere.component.common/build.gradle b/twidere.component.common/build.gradle index 8a4efac10..cd655097d 100644 --- a/twidere.component.common/build.gradle +++ b/twidere.component.common/build.gradle @@ -38,7 +38,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' + classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' } } @@ -50,7 +50,7 @@ android { defaultConfig { minSdkVersion 14 - targetSdkVersion 26 + targetSdkVersion 27 versionCode projectVersionCode versionName projectVersionName } diff --git a/twidere.component.common/src/main/java/org/mariotaku/twidere/model/ParcelableStatus.java b/twidere.component.common/src/main/java/org/mariotaku/twidere/model/ParcelableStatus.java index 0469b6be6..2ca6da3f6 100644 --- a/twidere.component.common/src/main/java/org/mariotaku/twidere/model/ParcelableStatus.java +++ b/twidere.component.common/src/main/java/org/mariotaku/twidere/model/ParcelableStatus.java @@ -20,7 +20,7 @@ package org.mariotaku.twidere.model; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.IntDef; +import android.support.annotation.LongDef; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; @@ -593,7 +593,7 @@ public class ParcelableStatus implements Parcelable, Comparable * DO NOT CHANGE ONCE DEFINED! */ - @IntDef(value = { + @LongDef(value = { FilterFlags.QUOTE_NOT_AVAILABLE, FilterFlags.BLOCKING_USER, FilterFlags.BLOCKED_BY_USER, diff --git a/twidere/build.gradle b/twidere/build.gradle index 074ed9177..5c179d469 100644 --- a/twidere/build.gradle +++ b/twidere/build.gradle @@ -201,7 +201,7 @@ dependencies { implementation "android.arch.lifecycle:extensions:${libVersions['ArchLifecycleExtensions']}" implementation "android.arch.paging:runtime:${libVersions['ArchPaging']}" - implementation 'com.android.support:multidex:1.0.2' + implementation "com.android.support:multidex:${libVersions['MultiDex']}" implementation "com.android.support:support-annotations:${libVersions['SupportLib']}" implementation "com.android.support:support-compat:${libVersions['SupportLib']}" implementation "com.android.support:support-core-utils:${libVersions['SupportLib']}" diff --git a/twidere/src/.google.commit-id b/twidere/src/.google.commit-id index c48a14817..6dc95d972 100644 --- a/twidere/src/.google.commit-id +++ b/twidere/src/.google.commit-id @@ -1 +1 @@ -9246a03faeacbdf02e60fef3b988ef1e0d7f4bc0 +e17dccbf0a84adaa5cc963c83f0202923f99f3e6 diff --git a/twidere/src/main/kotlin/android/arch/paging/PagedListAdapterHelperExtensions.kt b/twidere/src/main/kotlin/android/arch/paging/AsyncPagedListDifferExtensions.kt similarity index 81% rename from twidere/src/main/kotlin/android/arch/paging/PagedListAdapterHelperExtensions.kt rename to twidere/src/main/kotlin/android/arch/paging/AsyncPagedListDifferExtensions.kt index 4c796fa3a..a746bf61e 100644 --- a/twidere/src/main/kotlin/android/arch/paging/PagedListAdapterHelperExtensions.kt +++ b/twidere/src/main/kotlin/android/arch/paging/AsyncPagedListDifferExtensions.kt @@ -19,8 +19,8 @@ package android.arch.paging -fun PagedListAdapterHelper.setPagedListListener(listener: ((list: PagedList?) -> Unit)?) { - mListener = if (listener != null) PagedListAdapterHelper.PagedListListener { pagedList -> +fun AsyncPagedListDiffer.setPagedListListener(listener: ((list: PagedList?) -> Unit)?) { + mListener = if (listener != null) AsyncPagedListDiffer.PagedListListener { pagedList -> listener(pagedList) } else null } \ No newline at end of file diff --git a/twidere/src/main/kotlin/android/support/v4/app/LoaderManagerExtensions.kt b/twidere/src/main/kotlin/android/support/v4/app/LoaderManagerExtensions.kt index be241b1d7..66c20e6eb 100644 --- a/twidere/src/main/kotlin/android/support/v4/app/LoaderManagerExtensions.kt +++ b/twidere/src/main/kotlin/android/support/v4/app/LoaderManagerExtensions.kt @@ -1,16 +1,10 @@ package android.support.v4.app -/** - * Created by mariotaku on 2016/11/26. - */ - fun LoaderManager.hasRunningLoadersSafe(): Boolean { if (this !is LoaderManagerImpl) return false - var loadersRunning = false - val count = mLoaders.size() - for (i in 0 until count) { - val li = mLoaders.valueAt(i) ?: continue - loadersRunning = loadersRunning or (li.mStarted && !li.mDeliveredData) + return try { + hasRunningLoaders() + } catch (e: Exception) { + false } - return loadersRunning } \ No newline at end of file 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 1197d864c..fe21ad1b1 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/UserListSelectorActivity.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/UserListSelectorActivity.kt @@ -37,7 +37,9 @@ import org.mariotaku.twidere.TwidereConstants.REQUEST_SELECT_USER import org.mariotaku.twidere.adapter.SimpleParcelableUserListsAdapter import org.mariotaku.twidere.annotation.LoadMorePosition import org.mariotaku.twidere.constant.IntentConstants.* +import org.mariotaku.twidere.extension.accountKey import org.mariotaku.twidere.extension.adapter.all +import org.mariotaku.twidere.extension.userKey import org.mariotaku.twidere.loader.iface.IPaginationLoader import org.mariotaku.twidere.loader.userlists.UserListOwnershipsLoader import org.mariotaku.twidere.model.ParcelableUser @@ -144,20 +146,20 @@ class UserListSelectorActivity : BaseActivity(), } } - override fun onCreateLoader(id: Int, args: Bundle): Loader> { - val accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY) - val userKey = args.getParcelable(EXTRA_USER_KEY) + override fun onCreateLoader(id: Int, args: Bundle?): Loader> { + val accountKey = args!!.accountKey!! + val userKey = args.userKey!! return UserListOwnershipsLoader(this, accountKey, userKey, null, adapter.all).apply { pagination = args.getParcelable(EXTRA_PAGINATION) } } - override fun onLoaderReset(loader: Loader>?) { + override fun onLoaderReset(loader: Loader>) { adapter.setData(null) } - override fun onLoadFinished(loader: Loader>?, data: List?) { + override fun onLoadFinished(loader: Loader>, data: List?) { adapter.loadMoreIndicatorPosition = LoadMorePosition.NONE adapter.loadMoreSupportedPosition = if (adapter.all != data) { LoadMorePosition.END diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/MessagesConversationAdapter.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/MessagesConversationAdapter.kt index 1655de9f5..1b6e956da 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/MessagesConversationAdapter.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/MessagesConversationAdapter.kt @@ -19,12 +19,12 @@ package org.mariotaku.twidere.adapter +import android.arch.paging.AsyncPagedListDiffer import android.arch.paging.PagedList -import android.arch.paging.PagedListAdapterHelper import android.content.Context import android.content.res.ColorStateList import android.support.v4.graphics.ColorUtils -import android.support.v7.recyclerview.extensions.ListAdapterConfig +import android.support.v7.recyclerview.extensions.AsyncDifferConfig import android.support.v7.widget.RecyclerView import android.view.LayoutInflater import android.view.View @@ -99,7 +99,7 @@ class MessagesConversationAdapter( var messages: PagedList? get() = pagedMessagesHelper.currentList set(value) { - pagedMessagesHelper.setList(value) + pagedMessagesHelper.submitList(value) if (value == null) { itemCounts[0] = 0 } @@ -116,8 +116,8 @@ class MessagesConversationAdapter( val bubbleColorOutgoing: ColorStateList? = ThemeUtils.getColorStateListFromAttribute(context, R.attr.messageBubbleColor) val bubbleColorIncoming: ColorStateList? = context.getIncomingMessageColor() - private var pagedMessagesHelper = PagedListAdapterHelper(ItemCountsAdapterListUpdateCallback(this, 0), - ListAdapterConfig.Builder().setDiffCallback(DiffCallbacks.message).build()) + private var pagedMessagesHelper = AsyncPagedListDiffer(ItemCountsAdapterListUpdateCallback(this, 0), + AsyncDifferConfig.Builder(DiffCallbacks.message).build()) private val calendars = Pair(Calendar.getInstance(), Calendar.getInstance()) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/MessagesEntriesAdapter.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/MessagesEntriesAdapter.kt index 829f4b35d..fdc0149b8 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/MessagesEntriesAdapter.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/MessagesEntriesAdapter.kt @@ -1,9 +1,9 @@ package org.mariotaku.twidere.adapter +import android.arch.paging.AsyncPagedListDiffer import android.arch.paging.PagedList -import android.arch.paging.PagedListAdapterHelper import android.content.Context -import android.support.v7.recyclerview.extensions.ListAdapterConfig +import android.support.v7.recyclerview.extensions.AsyncDifferConfig import android.support.v7.widget.RecyclerView import android.view.LayoutInflater import android.view.ViewGroup @@ -38,7 +38,7 @@ class MessagesEntriesAdapter( var conversations: PagedList? get() = pagedEntriesHelper.currentList set(value) { - pagedEntriesHelper.setList(value) + pagedEntriesHelper.submitList(value) if (value == null) { itemCounts[0] = 0 } @@ -55,8 +55,8 @@ class MessagesEntriesAdapter( var listener: MessageConversationClickListener? = null - private var pagedEntriesHelper = PagedListAdapterHelper(ItemCountsAdapterListUpdateCallback(this, 0), - ListAdapterConfig.Builder().setDiffCallback(DiffCallbacks.conversation).build()) + private var pagedEntriesHelper = AsyncPagedListDiffer(ItemCountsAdapterListUpdateCallback(this, 0), + AsyncDifferConfig.Builder(DiffCallbacks.conversation).build()) override fun getItemCount(): Int { return itemCounts.itemCount 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 f4bbd9852..0ac9e5b00 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableActivitiesAdapter.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableActivitiesAdapter.kt @@ -20,11 +20,11 @@ package org.mariotaku.twidere.adapter import android.annotation.SuppressLint +import android.arch.paging.AsyncPagedListDiffer import android.arch.paging.PagedList -import android.arch.paging.PagedListAdapterHelper import android.arch.paging.setPagedListListener import android.content.Context -import android.support.v7.recyclerview.extensions.ListAdapterConfig +import android.support.v7.recyclerview.extensions.AsyncDifferConfig import android.support.v7.widget.RecyclerView import android.view.LayoutInflater import android.view.View @@ -119,7 +119,7 @@ class ParcelableActivitiesAdapter( var activities: PagedList? get() = pagedActivitiesHelper.currentList set(value) { - pagedActivitiesHelper.setList(value) + pagedActivitiesHelper.submitList(value) gapLoadingIds.clear() } @@ -137,8 +137,8 @@ class ParcelableActivitiesAdapter( private val eventListener: EventListener private val gapLoadingIds: MutableSet> = HashSet() - private var pagedActivitiesHelper = PagedListAdapterHelper(ItemCountsAdapterListUpdateCallback(this, ITEM_INDEX_ACTIVITY), - ListAdapterConfig.Builder().setDiffCallback(DiffCallbacks.activity).build()) + private var pagedActivitiesHelper = AsyncPagedListDiffer(ItemCountsAdapterListUpdateCallback(this, ITEM_INDEX_ACTIVITY), + AsyncDifferConfig.Builder(DiffCallbacks.activity).build()) init { eventListener = EventListener(this) 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 30cadb35b..2879bd8d1 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableStatusesAdapter.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableStatusesAdapter.kt @@ -19,12 +19,12 @@ package org.mariotaku.twidere.adapter +import android.arch.paging.AsyncPagedListDiffer import android.arch.paging.PagedList -import android.arch.paging.PagedListAdapterHelper import android.arch.paging.setPagedListListener import android.content.Context import android.support.v4.widget.Space -import android.support.v7.recyclerview.extensions.ListAdapterConfig +import android.support.v7.recyclerview.extensions.AsyncDifferConfig import android.support.v7.widget.RecyclerView import android.util.SparseBooleanArray import android.view.LayoutInflater @@ -139,7 +139,7 @@ class ParcelableStatusesAdapter( var statuses: PagedList? get() = pagedStatusesHelper.currentList set(value) { - pagedStatusesHelper.setList(value) + pagedStatusesHelper.submitList(value) gapLoadingIds.clear() if (value == null) { itemCounts[ITEM_INDEX_STATUS] = 0 @@ -164,8 +164,8 @@ class ParcelableStatusesAdapter( private val showingFullTextStates = SparseBooleanArray() - private var pagedStatusesHelper = PagedListAdapterHelper(ItemCountsAdapterListUpdateCallback(this, ITEM_INDEX_STATUS), - ListAdapterConfig.Builder().setDiffCallback(DiffCallbacks.status).build()) + private var pagedStatusesHelper = AsyncPagedListDiffer(ItemCountsAdapterListUpdateCallback(this, ITEM_INDEX_STATUS), + AsyncDifferConfig.Builder(DiffCallbacks.status).build()) init { val handler = StatusAdapterLinkClickHandler>(context, preferences) @@ -395,7 +395,8 @@ class ParcelableStatusesAdapter( return if (loadAround) { pagedStatusesHelper.getItem(dataPosition) ?: ParcelableStatusPlaceholder } else { - pagedStatusesHelper.currentList?.get(dataPosition) ?: ParcelableStatusPlaceholder + pagedStatusesHelper.currentList?.get(dataPosition) + ?: ParcelableStatusPlaceholder } } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableUsersAdapter.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableUsersAdapter.kt index bce30b090..0dfe62ce2 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableUsersAdapter.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/ParcelableUsersAdapter.kt @@ -19,11 +19,11 @@ package org.mariotaku.twidere.adapter +import android.arch.paging.AsyncPagedListDiffer import android.arch.paging.PagedList -import android.arch.paging.PagedListAdapterHelper import android.content.Context import android.support.v4.util.ArrayMap -import android.support.v7.recyclerview.extensions.ListAdapterConfig +import android.support.v7.recyclerview.extensions.AsyncDifferConfig import android.support.v7.widget.RecyclerView import android.view.LayoutInflater import android.view.ViewGroup @@ -62,7 +62,7 @@ class ParcelableUsersAdapter( var users: PagedList? get() = pagedStatusesHelper.currentList set(value) { - pagedStatusesHelper.setList(value) + pagedStatusesHelper.submitList(value) if (value == null) { itemCounts[ITEM_INDEX_USER] = 0 } @@ -80,8 +80,8 @@ class ParcelableUsersAdapter( private val inflater = LayoutInflater.from(context) - private var pagedStatusesHelper = PagedListAdapterHelper(ItemCountsAdapterListUpdateCallback(this, ITEM_INDEX_USER), - ListAdapterConfig.Builder().setDiffCallback(DiffCallbacks.user).build()) + private var pagedStatusesHelper = AsyncPagedListDiffer(ItemCountsAdapterListUpdateCallback(this, ITEM_INDEX_USER), + AsyncDifferConfig.Builder(DiffCallbacks.user).build()) override fun getItemCount(): Int { val position = loadMoreIndicatorPosition diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/StatusDetailsAdapter.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/StatusDetailsAdapter.kt index 6b1b8d5a5..239913d7d 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/StatusDetailsAdapter.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/adapter/StatusDetailsAdapter.kt @@ -420,12 +420,12 @@ class StatusDetailsAdapter( return itemCounts.itemCount } - override fun onAttachedToRecyclerView(recyclerView: RecyclerView?) { + override fun onAttachedToRecyclerView(recyclerView: RecyclerView) { super.onAttachedToRecyclerView(recyclerView) this.recyclerView = recyclerView } - override fun onDetachedFromRecyclerView(recyclerView: RecyclerView?) { + override fun onDetachedFromRecyclerView(recyclerView: RecyclerView) { super.onDetachedFromRecyclerView(recyclerView) this.recyclerView = null } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/extension/ClassExtensions.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/extension/ClassExtensions.kt index 02bff526e..19cced3d0 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/extension/ClassExtensions.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/extension/ClassExtensions.kt @@ -21,10 +21,6 @@ package org.mariotaku.twidere.extension import java.lang.reflect.Field -/** - * Created by mariotaku on 2017/4/17. - */ - fun Class<*>.findFieldByTypes(vararg checkTypes: Class<*>): Field? { return declaredFields.firstOrNull { field -> checkTypes.all { it.isAssignableFrom(field.type) } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/FileSelectorDialogFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/FileSelectorDialogFragment.kt index 3b6cd57df..7669a35c0 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/FileSelectorDialogFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/FileSelectorDialogFragment.kt @@ -115,8 +115,8 @@ class FileSelectorDialogFragment : BaseDialogFragment(), LoaderCallbacks> { - val extensions = args.getStringArray(EXTRA_FILE_EXTENSIONS) + override fun onCreateLoader(id: Int, args: Bundle?): Loader> { + val extensions = args!!.getStringArray(EXTRA_FILE_EXTENSIONS) val path = args.getString(EXTRA_PATH) var currentDir: File? = if (path != null) File(path) else getExternalStorageDirectory() if (currentDir == null) { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableGroupsFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableGroupsFragment.kt index d8dc338f2..cd282d59a 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableGroupsFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableGroupsFragment.kt @@ -134,8 +134,8 @@ abstract class ParcelableGroupsFragment : AbsContentListRecyclerViewFragment?> { - val fromUser = args.getBoolean(EXTRA_FROM_USER) + override fun onCreateLoader(id: Int, args: Bundle?): Loader?> { + val fromUser = args!!.getBoolean(EXTRA_FROM_USER) args.remove(EXTRA_FROM_USER) return onCreateUserListsLoader(activity!!, args, fromUser) } 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 5d153be43..36f0f0317 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUserListsFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUserListsFragment.kt @@ -138,8 +138,8 @@ abstract class ParcelableUserListsFragment : AbsContentListRecyclerViewFragment< loaderManager.initLoader(0, loaderArgs, this) } - override fun onCreateLoader(id: Int, args: Bundle): Loader> { - val fromUser = args.getBoolean(EXTRA_FROM_USER) + override fun onCreateLoader(id: Int, args: Bundle?): Loader> { + val fromUser = args!!.getBoolean(EXTRA_FROM_USER) args.remove(EXTRA_FROM_USER) return onCreateUserListsLoader(activity!!, args, fromUser) } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/group/GroupFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/group/GroupFragment.kt index ec7884bc0..d01febc5f 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/group/GroupFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/group/GroupFragment.kt @@ -46,9 +46,6 @@ import org.mariotaku.twidere.model.SingleResponse import org.mariotaku.twidere.model.UserKey import org.mariotaku.twidere.util.Utils -/** - * Created by mariotaku on 16/3/23. - */ class GroupFragment : AbsToolbarTabPagesFragment(), LoaderCallbacks> { var group: ParcelableGroup? = null private set @@ -70,8 +67,8 @@ class GroupFragment : AbsToolbarTabPagesFragment(), LoaderCallbacks> { - val accountKey = args.accountKey + override fun onCreateLoader(id: Int, args: Bundle?): Loader> { + val accountKey = args!!.accountKey val groupId = args.groupId val groupName = args.groupName val omitIntentExtra = args.getBoolean(EXTRA_OMIT_INTENT_EXTRA, true) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/group/UserGroupsFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/group/UserGroupsFragment.kt index d3bf43344..046fd37eb 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/group/UserGroupsFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/group/UserGroupsFragment.kt @@ -30,9 +30,6 @@ import org.mariotaku.twidere.loader.group.UserGroupsLoader import org.mariotaku.twidere.model.ParcelableGroup import org.mariotaku.twidere.model.UserKey -/** - * Created by mariotaku on 16/3/9. - */ class UserGroupsFragment : ParcelableGroupsFragment() { override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) 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 2721410c4..f9aa4146c 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 @@ -247,10 +247,10 @@ class MessageConversationInfoFragment : BaseFragment(), IToolBarSupportFragment, return ConversationInfoLoader(context!!, accountKey, conversationId) } - override fun onLoaderReset(loader: Loader?) { + override fun onLoaderReset(loader: Loader) { } - override fun onLoadFinished(loader: Loader?, data: ParcelableMessageConversation?) { + override fun onLoadFinished(loader: Loader, data: ParcelableMessageConversation?) { val context = this.context ?: return if (data == null) { activity?.finish() 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 d9fe72e21..780d2b039 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 @@ -113,12 +113,12 @@ class StatusFragment : BaseFragment(), LoaderCallbacks> { - override fun onCreateLoader(id: Int, args: Bundle): Loader> { + override fun onCreateLoader(id: Int, args: Bundle?): Loader> { val adapter = this@StatusFragment.adapter adapter.isRepliesLoading = true adapter.isConversationsLoading = true adapter.updateItemDecoration() - val status: ParcelableStatus = args.getParcelable(EXTRA_STATUS) + val status: ParcelableStatus = args!!.getParcelable(EXTRA_STATUS) val loadingMore = args.getBoolean(EXTRA_LOADING_MORE, false) return ConversationLoader(activity!!, status, adapter.data, true, loadingMore).apply { pagination = args.toPagination() @@ -328,7 +328,7 @@ class StatusFragment : BaseFragment(), LoaderCallbacks> { + override fun onCreateLoader(id: Int, args: Bundle?): Loader> { val fragmentArgs = arguments!! val accountKey = fragmentArgs.accountKey val statusId = fragmentArgs.statusId diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/userlist/UserListFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/userlist/UserListFragment.kt index 2b01ef0e1..b5ec109a5 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/userlist/UserListFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/userlist/UserListFragment.kt @@ -45,7 +45,6 @@ import com.squareup.otto.Subscribe import org.mariotaku.kpreferences.get import org.mariotaku.ktextension.Bundle import org.mariotaku.ktextension.setItemAvailability -import org.mariotaku.microblog.library.MicroBlog import org.mariotaku.microblog.library.MicroBlogException import org.mariotaku.microblog.library.Twitter import org.mariotaku.twidere.Constants.* @@ -279,8 +278,8 @@ class UserListFragment : AbsToolbarTabPagesFragment(), OnClickListener, } - override fun onCreateLoader(id: Int, args: Bundle): Loader> { - val accountKey = args.accountKey + override fun onCreateLoader(id: Int, args: Bundle?): Loader> { + val accountKey = args!!.accountKey val userKey = args.userKey val listId = args.listId val listName = args.listName diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/task/twitter/message/GetMessagesTask.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/task/twitter/message/GetMessagesTask.kt index b88a2b2d4..232f76bbf 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/task/twitter/message/GetMessagesTask.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/task/twitter/message/GetMessagesTask.kt @@ -103,10 +103,10 @@ class GetMessagesTask( AccountType.TWITTER -> { val twitter = details.newMicroBlogInstance(context, cls = Twitter::class.java) // Use official DM api - if (details.isOfficial(context)) { - return getTwitterOfficialMessages(twitter, details, param, index) - } -// getTwitterMessages(twitter, details, param, index) +// if (details.isOfficial(context)) { +// return getTwitterOfficialMessages(twitter, details, param, index) +// } + getTwitterMessages(twitter, details, param, index) } } // Use default method @@ -336,7 +336,8 @@ class GetMessagesTask( val oldestConversations = DataStoreUtils.getOldestConversations(context, Conversations.CONTENT_URI, twitterOfficialKeys) oldestConversations.forEachIndexed { i, conversation -> - val extras = conversation?.conversation_extras as? TwitterOfficialConversationExtras ?: return@forEachIndexed + val extras = conversation?.conversation_extras as? TwitterOfficialConversationExtras + ?: return@forEachIndexed incomingIds[i] = extras.maxEntryId } return@lazy (incomingIds + outgoingIds).mapToArray { maxId -> @@ -463,11 +464,12 @@ class GetMessagesTask( if (myLastReadTimestamp > 0) { conversation.last_read_timestamp = myLastReadTimestamp } - val conversationExtras = conversation.conversation_extras as? TwitterOfficialConversationExtras ?: run { - val extras = TwitterOfficialConversationExtras() - conversation.conversation_extras = extras - return@run extras - } + val conversationExtras = conversation.conversation_extras as? TwitterOfficialConversationExtras + ?: run { + val extras = TwitterOfficialConversationExtras() + conversation.conversation_extras = extras + return@run extras + } conversationExtras.apply { this.minEntryId = v.minEntryId this.maxEntryId = v.maxEntryId diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/HttpClientFactory.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/HttpClientFactory.kt index 591c8bb83..cc83a6b7c 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/HttpClientFactory.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/HttpClientFactory.kt @@ -6,7 +6,6 @@ import android.os.Build import android.util.Base64 import android.util.Log import okhttp3.* -import okhttp3.internal.platform.Platform import org.mariotaku.kpreferences.get import org.mariotaku.restfu.http.RestHttpClient import org.mariotaku.restfu.okhttp3.OkHttpRestClient @@ -38,9 +37,15 @@ object HttpClientFactory { connectionPool: ConnectionPool, cache: Cache) { updateHttpClientConfiguration(builder, conf, dns, connectionPool, cache) if (Build.VERSION.SDK_INT in Build.VERSION_CODES.JELLY_BEAN until Build.VERSION_CODES.LOLLIPOP) { - val tlsSocketFactory = TLSSocketFactory() - val trustManager = Platform.get().trustManager(tlsSocketFactory) ?: - systemDefaultTrustManager() + val trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()) + trustManagerFactory.init(null as KeyStore?) + val trustManagers = trustManagerFactory.trustManagers + if (trustManagers.single() !is X509TrustManager) { + throw IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers)) + } + val trustManager = trustManagers[0] as X509TrustManager + + val tlsSocketFactory = TLSSocketFactory(trustManagers) builder.sslSocketFactory(tlsSocketFactory, trustManager) } updateTLSConnectionSpecs(builder) @@ -164,17 +169,6 @@ object HttpClientFactory { private fun String.prefix(prefix: String) = prefix + this - private fun systemDefaultTrustManager(): X509TrustManager { - val trustManagerFactory = TrustManagerFactory.getInstance( - TrustManagerFactory.getDefaultAlgorithm()) - trustManagerFactory.init(null as KeyStore?) - val trustManagers = trustManagerFactory.trustManagers - if (trustManagers.size != 1 || trustManagers[0] !is X509TrustManager) { - throw IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers)) - } - return trustManagers[0] as X509TrustManager - } - private val urlSupportedPatterns = listOf("[SCHEME]", "[HOST]", "[PORT]", "[AUTHORITY]", "[PATH]", "[/PATH]", "[PATH_ENCODED]", "[QUERY]", "[?QUERY]", "[QUERY_ENCODED]", "[FRAGMENT]", "[#FRAGMENT]", "[FRAGMENT_ENCODED]", "[URL_ENCODED]", "[URL_BASE64]") diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/net/TLSSocketFactory.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/net/TLSSocketFactory.kt index 4b5e4438f..62ac8c2a0 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/net/TLSSocketFactory.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/net/TLSSocketFactory.kt @@ -27,17 +27,18 @@ import java.net.Socket import javax.net.ssl.SSLContext import javax.net.ssl.SSLSocket import javax.net.ssl.SSLSocketFactory +import javax.net.ssl.TrustManager /** * @author fkrauthan */ -class TLSSocketFactory : SSLSocketFactory() { +class TLSSocketFactory(tm: Array) : SSLSocketFactory() { private val delegate: SSLSocketFactory init { val context = SSLContext.getInstance("TLS").apply { - init(null, null, null) + init(null, tm, null) } delegate = context.socketFactory }