From ac2d20ad3fac4f0b9e3351a9f273de403a09dd60 Mon Sep 17 00:00:00 2001 From: ganfra Date: Wed, 16 Jan 2019 19:25:43 +0100 Subject: [PATCH 1/2] Migration androidx : first commit where it compiles. Updates some libs and android studio version in the same time. --- app/build.gradle | 18 +++++------ .../riotredesign/ExampleInstrumentedTest.kt | 4 +-- .../riotredesign/core/epoxy/KotlinModel.kt | 4 +-- .../riotredesign/core/extensions/Activity.kt | 4 +-- .../riotredesign/core/extensions/Fragment.kt | 14 ++++----- .../core/extensions/FragmentManager.kt | 5 ++-- .../riotredesign/core/extensions/LiveData.kt | 6 ++-- .../platform/DefaultListUpdateCallback.kt | 2 +- .../core/platform/ToolbarConfigurable.kt | 2 +- .../core/resources/LocaleProvider.kt | 2 +- .../riotredesign/core/utils/LiveEvent.kt | 2 +- .../features/home/AvatarRenderer.kt | 2 +- .../features/home/HomeActivity.kt | 8 ++--- .../features/home/HomeActivityViewModel.kt | 12 ++++---- .../features/home/HomeNavigator.kt | 2 +- .../features/home/group/GroupListViewModel.kt | 9 +++--- .../home/room/detail/RoomDetailFragment.kt | 5 ++-- .../home/room/detail/RoomDetailViewModel.kt | 8 ++--- .../room/detail/ScrollOnNewMessageCallback.kt | 2 +- .../paging/PagedListEpoxyController.kt | 4 +-- .../timeline/paging/PagedListModelCache.kt | 10 +++---- .../home/room/list/RoomCategoryItem.kt | 2 +- .../home/room/list/RoomListViewModel.kt | 12 ++++---- app/src/main/res/layout/activity_home.xml | 4 +-- app/src/main/res/layout/activity_login.xml | 4 +-- .../main/res/layout/fragment_home_drawer.xml | 4 +-- .../layout/fragment_loading_room_detail.xml | 4 +-- .../main/res/layout/fragment_room_detail.xml | 12 ++++---- .../main/res/layout/fragment_room_list.xml | 4 +-- .../res/layout/item_event_day_separator.xml | 4 +-- .../main/res/layout/item_event_message.xml | 4 +-- app/src/main/res/layout/item_room.xml | 4 +-- .../main/res/layout/item_room_category.xml | 4 +-- build.gradle | 4 +-- gradle.properties | 2 ++ gradle/wrapper/gradle-wrapper.properties | 4 +-- matrix-sdk-android-rx/build.gradle | 11 ++++--- .../matrix/rx/ExampleInstrumentedTest.java | 4 +-- .../im/vector/matrix/rx/LiveDataObservable.kt | 4 +-- matrix-sdk-android/build.gradle | 30 +++++++++---------- .../vector/matrix/android/InstrumentedTest.kt | 2 +- .../matrix/android/LiveDataTestObserver.java | 8 ++--- .../matrix/android/auth/AuthenticatorTest.kt | 6 ++-- .../room/timeline/TimelineHolderTest.kt | 4 +-- .../im/vector/matrix/android/api/Matrix.kt | 2 +- .../matrix/android/api/session/Session.kt | 2 +- .../android/api/session/group/GroupService.kt | 2 +- .../matrix/android/api/session/room/Room.kt | 2 +- .../android/api/session/room/RoomService.kt | 2 +- .../api/session/room/timeline/TimelineData.kt | 2 +- .../session/room/timeline/TimelineService.kt | 2 +- .../database/RealmLiveEntityObserver.kt | 4 +-- .../internal/session/DefaultSession.kt | 4 +-- .../session/group/DefaultGroupService.kt | 2 +- .../internal/session/room/DefaultRoom.kt | 4 +-- .../session/room/DefaultRoomService.kt | 2 +- .../room/timeline/DefaultTimelineService.kt | 6 ++-- .../room/timeline/TimelineBoundaryCallback.kt | 4 +-- .../util/BackgroundDetectionObserver.kt | 6 ++-- .../android/internal/util/LiveDataUtils.kt | 4 +-- .../internal/util/PagingRequestHelper.java | 26 ++++++++-------- 61 files changed, 171 insertions(+), 171 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a79d1788..ec9cc85c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,7 +19,7 @@ android { targetSdkVersion 28 versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { @@ -46,18 +46,18 @@ configurations.all { strategy -> dependencies { - def epoxy_version = "2.19.0" - def arrow_version = "0.8.0" + def epoxy_version = "3.0.0" + def arrow_version = "0.8.2" implementation fileTree(dir: 'libs', include: ['*.jar']) implementation project(":matrix-sdk-android") implementation project(":matrix-sdk-android-rx") implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation 'com.android.support:appcompat-v7:28.0.0' - implementation 'com.android.support.constraint:constraint-layout:1.1.3' + implementation 'androidx.appcompat:appcompat:1.1.0-alpha01' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' // Paging - implementation "android.arch.paging:runtime:1.0.1" + implementation 'androidx.paging:paging-runtime:2.1.0-rc01' implementation 'com.jakewharton.threetenabp:threetenabp:1.1.1' implementation 'com.jakewharton.timber:timber:4.7.1' @@ -69,7 +69,7 @@ dependencies { implementation("com.airbnb.android:epoxy:$epoxy_version") kapt "com.airbnb.android:epoxy-processor:$epoxy_version" - implementation 'com.airbnb.android:mvrx:0.6.0' + implementation 'com.airbnb.android:mvrx:0.7.0' // FP implementation "io.arrow-kt:arrow-core:$arrow_version" @@ -85,8 +85,8 @@ dependencies { // TESTS testImplementation 'junit:junit:4.12' - androidTestImplementation 'com.android.support.test:runner:1.0.2' - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + androidTestImplementation 'androidx.test:runner:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' } diff --git a/app/src/androidTest/java/im/vector/riotredesign/ExampleInstrumentedTest.kt b/app/src/androidTest/java/im/vector/riotredesign/ExampleInstrumentedTest.kt index b9ed47d0..69909395 100644 --- a/app/src/androidTest/java/im/vector/riotredesign/ExampleInstrumentedTest.kt +++ b/app/src/androidTest/java/im/vector/riotredesign/ExampleInstrumentedTest.kt @@ -1,7 +1,7 @@ package im.vector.riotredesign -import android.support.test.InstrumentationRegistry -import android.support.test.runner.AndroidJUnit4 +import androidx.test.InstrumentationRegistry +import androidx.test.runner.AndroidJUnit4 import org.junit.Test import org.junit.runner.RunWith diff --git a/app/src/main/java/im/vector/riotredesign/core/epoxy/KotlinModel.kt b/app/src/main/java/im/vector/riotredesign/core/epoxy/KotlinModel.kt index e94b7d04..1b20a593 100644 --- a/app/src/main/java/im/vector/riotredesign/core/epoxy/KotlinModel.kt +++ b/app/src/main/java/im/vector/riotredesign/core/epoxy/KotlinModel.kt @@ -1,7 +1,7 @@ package im.vector.riotredesign.core.epoxy -import android.support.annotation.IdRes -import android.support.annotation.LayoutRes +import androidx.annotation.IdRes +import androidx.annotation.LayoutRes import android.view.View import com.airbnb.epoxy.EpoxyModel import kotlin.properties.ReadOnlyProperty diff --git a/app/src/main/java/im/vector/riotredesign/core/extensions/Activity.kt b/app/src/main/java/im/vector/riotredesign/core/extensions/Activity.kt index d0c3c705..839100b7 100644 --- a/app/src/main/java/im/vector/riotredesign/core/extensions/Activity.kt +++ b/app/src/main/java/im/vector/riotredesign/core/extensions/Activity.kt @@ -1,7 +1,7 @@ package im.vector.riotredesign.core.extensions -import android.support.v4.app.Fragment -import android.support.v7.app.AppCompatActivity +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.Fragment fun AppCompatActivity.addFragment(fragment: Fragment, frameId: Int) { supportFragmentManager.inTransaction { add(frameId, fragment) } diff --git a/app/src/main/java/im/vector/riotredesign/core/extensions/Fragment.kt b/app/src/main/java/im/vector/riotredesign/core/extensions/Fragment.kt index 3d1bb9d2..f0689181 100644 --- a/app/src/main/java/im/vector/riotredesign/core/extensions/Fragment.kt +++ b/app/src/main/java/im/vector/riotredesign/core/extensions/Fragment.kt @@ -1,27 +1,27 @@ package im.vector.riotredesign.core.extensions -import android.support.v4.app.Fragment +import androidx.fragment.app.Fragment -fun Fragment.addFragment(fragment: Fragment, frameId: Int) { +fun androidx.fragment.app.Fragment.addFragment(fragment: Fragment, frameId: Int) { fragmentManager?.inTransaction { add(frameId, fragment) } } -fun Fragment.replaceFragment(fragment: Fragment, frameId: Int) { +fun androidx.fragment.app.Fragment.replaceFragment(fragment: Fragment, frameId: Int) { fragmentManager?.inTransaction { replace(frameId, fragment) } } -fun Fragment.addFragmentToBackstack(fragment: Fragment, frameId: Int, tag: String? = null) { +fun androidx.fragment.app.Fragment.addFragmentToBackstack(fragment: Fragment, frameId: Int, tag: String? = null) { fragmentManager?.inTransaction { replace(frameId, fragment).addToBackStack(tag) } } -fun Fragment.addChildFragment(fragment: Fragment, frameId: Int) { +fun androidx.fragment.app.Fragment.addChildFragment(fragment: Fragment, frameId: Int) { childFragmentManager.inTransaction { add(frameId, fragment) } } -fun Fragment.replaceChildFragment(fragment: Fragment, frameId: Int) { +fun androidx.fragment.app.Fragment.replaceChildFragment(fragment: Fragment, frameId: Int) { childFragmentManager.inTransaction { replace(frameId, fragment) } } -fun Fragment.addChildFragmentToBackstack(fragment: Fragment, frameId: Int, tag: String? = null) { +fun androidx.fragment.app.Fragment.addChildFragmentToBackstack(fragment: Fragment, frameId: Int, tag: String? = null) { childFragmentManager.inTransaction { replace(frameId, fragment).addToBackStack(tag) } } \ No newline at end of file diff --git a/app/src/main/java/im/vector/riotredesign/core/extensions/FragmentManager.kt b/app/src/main/java/im/vector/riotredesign/core/extensions/FragmentManager.kt index 6fcc045e..18f92934 100644 --- a/app/src/main/java/im/vector/riotredesign/core/extensions/FragmentManager.kt +++ b/app/src/main/java/im/vector/riotredesign/core/extensions/FragmentManager.kt @@ -1,8 +1,7 @@ package im.vector.riotredesign.core.extensions -import android.support.v4.app.FragmentManager -import android.support.v4.app.FragmentTransaction +import androidx.fragment.app.FragmentTransaction -inline fun FragmentManager.inTransaction(func: FragmentTransaction.() -> FragmentTransaction) { +inline fun androidx.fragment.app.FragmentManager.inTransaction(func: FragmentTransaction.() -> FragmentTransaction) { beginTransaction().func().commit() } \ No newline at end of file diff --git a/app/src/main/java/im/vector/riotredesign/core/extensions/LiveData.kt b/app/src/main/java/im/vector/riotredesign/core/extensions/LiveData.kt index b012483a..0c2a1884 100644 --- a/app/src/main/java/im/vector/riotredesign/core/extensions/LiveData.kt +++ b/app/src/main/java/im/vector/riotredesign/core/extensions/LiveData.kt @@ -1,8 +1,8 @@ package im.vector.riotredesign.core.extensions -import android.arch.lifecycle.LifecycleOwner -import android.arch.lifecycle.LiveData -import android.arch.lifecycle.Observer +import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.LiveData +import androidx.lifecycle.Observer import im.vector.riotredesign.core.utils.LiveEvent import im.vector.riotredesign.core.utils.EventObserver diff --git a/app/src/main/java/im/vector/riotredesign/core/platform/DefaultListUpdateCallback.kt b/app/src/main/java/im/vector/riotredesign/core/platform/DefaultListUpdateCallback.kt index 53ec2c04..ca3b2df4 100644 --- a/app/src/main/java/im/vector/riotredesign/core/platform/DefaultListUpdateCallback.kt +++ b/app/src/main/java/im/vector/riotredesign/core/platform/DefaultListUpdateCallback.kt @@ -1,6 +1,6 @@ package im.vector.riotredesign.core.platform -import android.support.v7.util.ListUpdateCallback +import androidx.recyclerview.widget.ListUpdateCallback interface DefaultListUpdateCallback : ListUpdateCallback { diff --git a/app/src/main/java/im/vector/riotredesign/core/platform/ToolbarConfigurable.kt b/app/src/main/java/im/vector/riotredesign/core/platform/ToolbarConfigurable.kt index acaece0b..25ef08f5 100644 --- a/app/src/main/java/im/vector/riotredesign/core/platform/ToolbarConfigurable.kt +++ b/app/src/main/java/im/vector/riotredesign/core/platform/ToolbarConfigurable.kt @@ -1,6 +1,6 @@ package im.vector.riotredesign.core.platform -import android.support.v7.widget.Toolbar +import androidx.appcompat.widget.Toolbar interface ToolbarConfigurable { diff --git a/app/src/main/java/im/vector/riotredesign/core/resources/LocaleProvider.kt b/app/src/main/java/im/vector/riotredesign/core/resources/LocaleProvider.kt index c8a3aabc..2285c221 100644 --- a/app/src/main/java/im/vector/riotredesign/core/resources/LocaleProvider.kt +++ b/app/src/main/java/im/vector/riotredesign/core/resources/LocaleProvider.kt @@ -1,7 +1,7 @@ package im.vector.riotredesign.core.resources import android.content.res.Resources -import android.support.v4.os.ConfigurationCompat +import androidx.core.os.ConfigurationCompat import java.util.* class LocaleProvider(private val resources: Resources) { diff --git a/app/src/main/java/im/vector/riotredesign/core/utils/LiveEvent.kt b/app/src/main/java/im/vector/riotredesign/core/utils/LiveEvent.kt index 153e3c3f..66ecb465 100644 --- a/app/src/main/java/im/vector/riotredesign/core/utils/LiveEvent.kt +++ b/app/src/main/java/im/vector/riotredesign/core/utils/LiveEvent.kt @@ -1,6 +1,6 @@ package im.vector.riotredesign.core.utils -import android.arch.lifecycle.Observer +import androidx.lifecycle.Observer open class LiveEvent(private val content: T) { diff --git a/app/src/main/java/im/vector/riotredesign/features/home/AvatarRenderer.kt b/app/src/main/java/im/vector/riotredesign/features/home/AvatarRenderer.kt index 0af2a3f4..1e6b27d3 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/AvatarRenderer.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/AvatarRenderer.kt @@ -1,6 +1,6 @@ package im.vector.riotredesign.features.home -import android.support.v4.content.ContextCompat +import androidx.core.content.ContextCompat import android.widget.ImageView import com.amulyakhare.textdrawable.TextDrawable import com.bumptech.glide.request.RequestOptions diff --git a/app/src/main/java/im/vector/riotredesign/features/home/HomeActivity.kt b/app/src/main/java/im/vector/riotredesign/features/home/HomeActivity.kt index da6a6731..568976d5 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/HomeActivity.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/HomeActivity.kt @@ -3,12 +3,12 @@ package im.vector.riotredesign.features.home import android.content.Context import android.content.Intent import android.os.Bundle -import android.support.v4.app.FragmentManager -import android.support.v4.view.GravityCompat -import android.support.v7.app.ActionBarDrawerToggle -import android.support.v7.widget.Toolbar import android.view.Gravity import android.view.MenuItem +import androidx.appcompat.app.ActionBarDrawerToggle +import androidx.appcompat.widget.Toolbar +import androidx.core.view.GravityCompat +import androidx.fragment.app.FragmentManager import com.airbnb.mvrx.viewModel import im.vector.riotredesign.R import im.vector.riotredesign.core.extensions.observeEvent diff --git a/app/src/main/java/im/vector/riotredesign/features/home/HomeActivityViewModel.kt b/app/src/main/java/im/vector/riotredesign/features/home/HomeActivityViewModel.kt index 06509e8a..a50de184 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/HomeActivityViewModel.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/HomeActivityViewModel.kt @@ -1,10 +1,10 @@ package im.vector.riotredesign.features.home -import android.arch.lifecycle.LiveData -import android.arch.lifecycle.MutableLiveData -import android.support.v4.app.FragmentActivity +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData import com.airbnb.mvrx.MvRxState import com.airbnb.mvrx.MvRxViewModelFactory +import com.airbnb.mvrx.ViewModelContext import im.vector.matrix.android.api.Matrix import im.vector.matrix.android.api.session.Session import im.vector.matrix.rx.rx @@ -21,12 +21,12 @@ class HomeActivityViewModel(state: EmptyState, roomSelectionRepository: RoomSelectionRepository ) : RiotViewModel(state) { - companion object : MvRxViewModelFactory { + companion object : MvRxViewModelFactory { @JvmStatic - override fun create(activity: FragmentActivity, state: EmptyState): HomeActivityViewModel { + override fun create(viewModelContext: ViewModelContext, state: EmptyState): HomeActivityViewModel? { val session = Matrix.getInstance().currentSession - val roomSelectionRepository = activity.get() + val roomSelectionRepository = viewModelContext.activity.get() return HomeActivityViewModel(state, session, roomSelectionRepository) } } diff --git a/app/src/main/java/im/vector/riotredesign/features/home/HomeNavigator.kt b/app/src/main/java/im/vector/riotredesign/features/home/HomeNavigator.kt index 29cb66bc..bc86edb8 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/HomeNavigator.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/HomeNavigator.kt @@ -1,7 +1,7 @@ package im.vector.riotredesign.features.home -import android.support.v4.app.FragmentManager import android.view.Gravity +import androidx.fragment.app.FragmentManager import im.vector.riotredesign.R import im.vector.riotredesign.core.extensions.addFragmentToBackstack import im.vector.riotredesign.core.extensions.replaceFragment diff --git a/app/src/main/java/im/vector/riotredesign/features/home/group/GroupListViewModel.kt b/app/src/main/java/im/vector/riotredesign/features/home/group/GroupListViewModel.kt index ca88f95a..79c29254 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/group/GroupListViewModel.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/group/GroupListViewModel.kt @@ -1,8 +1,7 @@ package im.vector.riotredesign.features.home.group -import android.support.v4.app.FragmentActivity -import com.airbnb.mvrx.BaseMvRxViewModel import com.airbnb.mvrx.MvRxViewModelFactory +import com.airbnb.mvrx.ViewModelContext import im.vector.matrix.android.api.Matrix import im.vector.matrix.android.api.session.Session import im.vector.matrix.rx.rx @@ -14,12 +13,12 @@ class GroupListViewModel(initialState: GroupListViewState, private val session: Session ) : RiotViewModel(initialState) { - companion object : MvRxViewModelFactory { + companion object : MvRxViewModelFactory { @JvmStatic - override fun create(activity: FragmentActivity, state: GroupListViewState): GroupListViewModel { + override fun create(viewModelContext: ViewModelContext, state: GroupListViewState): GroupListViewModel? { val currentSession = Matrix.getInstance().currentSession - val selectedGroupHolder = activity.get() + val selectedGroupHolder = viewModelContext.activity.get() return GroupListViewModel(state, selectedGroupHolder, currentSession) } } diff --git a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/RoomDetailFragment.kt b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/RoomDetailFragment.kt index d3f47e3d..49e4ba0e 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/RoomDetailFragment.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/RoomDetailFragment.kt @@ -2,10 +2,11 @@ package im.vector.riotredesign.features.home.room.detail import android.os.Bundle import android.os.Parcelable -import android.support.v7.widget.LinearLayoutManager import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import com.airbnb.mvrx.Success import com.airbnb.mvrx.args import com.airbnb.mvrx.fragmentViewModel @@ -69,7 +70,7 @@ class RoomDetailFragment : RiotFragment(), TimelineEventController.Callback { } private fun setupRecyclerView() { - val layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, true) + val layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, true) scrollOnNewMessageCallback = ScrollOnNewMessageCallback(layoutManager) recyclerView.layoutManager = layoutManager recyclerView.setHasFixedSize(true) diff --git a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/RoomDetailViewModel.kt b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/RoomDetailViewModel.kt index d76b4cf4..3721a9d5 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/RoomDetailViewModel.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/RoomDetailViewModel.kt @@ -1,7 +1,7 @@ package im.vector.riotredesign.features.home.room.detail -import android.support.v4.app.FragmentActivity import com.airbnb.mvrx.MvRxViewModelFactory +import com.airbnb.mvrx.ViewModelContext import im.vector.matrix.android.api.Matrix import im.vector.matrix.android.api.MatrixCallback import im.vector.matrix.android.api.session.Session @@ -20,12 +20,12 @@ class RoomDetailViewModel(initialState: RoomDetailViewState, private val roomId = initialState.roomId private val eventId = initialState.eventId - companion object : MvRxViewModelFactory { + companion object : MvRxViewModelFactory { @JvmStatic - override fun create(activity: FragmentActivity, state: RoomDetailViewState): RoomDetailViewModel { + override fun create(viewModelContext: ViewModelContext, state: RoomDetailViewState): RoomDetailViewModel? { val currentSession = Matrix.getInstance().currentSession - val visibleRoomHolder = activity.get() + val visibleRoomHolder = viewModelContext.activity.get() return RoomDetailViewModel(state, currentSession, visibleRoomHolder) } } diff --git a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/ScrollOnNewMessageCallback.kt b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/ScrollOnNewMessageCallback.kt index 1ffbb501..726d56b6 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/ScrollOnNewMessageCallback.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/ScrollOnNewMessageCallback.kt @@ -1,6 +1,6 @@ package im.vector.riotredesign.features.home.room.detail -import android.support.v7.widget.LinearLayoutManager +import androidx.recyclerview.widget.LinearLayoutManager import im.vector.riotredesign.core.platform.DefaultListUpdateCallback import java.util.concurrent.atomic.AtomicBoolean diff --git a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/paging/PagedListEpoxyController.kt b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/paging/PagedListEpoxyController.kt index b0bdd5a9..4e431c79 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/paging/PagedListEpoxyController.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/paging/PagedListEpoxyController.kt @@ -16,9 +16,9 @@ package im.vector.riotredesign.features.home.room.detail.timeline.paging -import android.arch.paging.PagedList +import androidx.paging.PagedList import android.os.Handler -import android.support.v7.util.DiffUtil +import androidx.recyclerview.widget.DiffUtil import com.airbnb.epoxy.EpoxyController import com.airbnb.epoxy.EpoxyModel import com.airbnb.epoxy.EpoxyViewHolder diff --git a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/paging/PagedListModelCache.kt b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/paging/PagedListModelCache.kt index 1966ecee..6070c552 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/paging/PagedListModelCache.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/paging/PagedListModelCache.kt @@ -17,12 +17,12 @@ package im.vector.riotredesign.features.home.room.detail.timeline.paging import android.annotation.SuppressLint -import android.arch.paging.AsyncPagedListDiffer -import android.arch.paging.PagedList +import androidx.paging.AsyncPagedListDiffer +import androidx.paging.PagedList import android.os.Handler -import android.support.v7.recyclerview.extensions.AsyncDifferConfig -import android.support.v7.util.DiffUtil -import android.support.v7.util.ListUpdateCallback +import androidx.recyclerview.widget.AsyncDifferConfig +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListUpdateCallback import android.util.Log import com.airbnb.epoxy.EpoxyController import com.airbnb.epoxy.EpoxyModel diff --git a/app/src/main/java/im/vector/riotredesign/features/home/room/list/RoomCategoryItem.kt b/app/src/main/java/im/vector/riotredesign/features/home/room/list/RoomCategoryItem.kt index 549c1c52..ec179046 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/room/list/RoomCategoryItem.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/room/list/RoomCategoryItem.kt @@ -1,6 +1,6 @@ package im.vector.riotredesign.features.home.room.list -import android.support.v4.content.ContextCompat +import androidx.core.content.ContextCompat import android.view.ViewGroup import android.widget.TextView import im.vector.riotredesign.R diff --git a/app/src/main/java/im/vector/riotredesign/features/home/room/list/RoomListViewModel.kt b/app/src/main/java/im/vector/riotredesign/features/home/room/list/RoomListViewModel.kt index 40a882f8..c39317aa 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/room/list/RoomListViewModel.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/room/list/RoomListViewModel.kt @@ -1,8 +1,8 @@ package im.vector.riotredesign.features.home.room.list -import android.support.v4.app.FragmentActivity import arrow.core.Option import com.airbnb.mvrx.MvRxViewModelFactory +import com.airbnb.mvrx.ViewModelContext import im.vector.matrix.android.api.Matrix import im.vector.matrix.android.api.session.Session import im.vector.matrix.android.api.session.group.model.GroupSummary @@ -23,14 +23,14 @@ class RoomListViewModel(initialState: RoomListViewState, private val roomSelectionRepository: RoomSelectionRepository) : RiotViewModel(initialState) { - companion object : MvRxViewModelFactory { + companion object : MvRxViewModelFactory { @JvmStatic - override fun create(activity: FragmentActivity, state: RoomListViewState): RoomListViewModel { + override fun create(viewModelContext: ViewModelContext, state: RoomListViewState): RoomListViewModel? { val currentSession = Matrix.getInstance().currentSession - val roomSelectionRepository = activity.get() - val selectedGroupHolder = activity.get() - val visibleRoomHolder = activity.get() + val roomSelectionRepository = viewModelContext.activity.get() + val selectedGroupHolder = viewModelContext.activity.get() + val visibleRoomHolder = viewModelContext.activity.get() return RoomListViewModel(state, currentSession, selectedGroupHolder, visibleRoomHolder, roomSelectionRepository) } } diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index 013166fa..39aa8784 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index c8f0d75e..376c0177 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,4 +1,4 @@ - @@ -67,5 +67,5 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> - + diff --git a/app/src/main/res/layout/fragment_home_drawer.xml b/app/src/main/res/layout/fragment_home_drawer.xml index a889b5d1..0cde98ac 100644 --- a/app/src/main/res/layout/fragment_home_drawer.xml +++ b/app/src/main/res/layout/fragment_home_drawer.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_loading_room_detail.xml b/app/src/main/res/layout/fragment_loading_room_detail.xml index 26dedc74..c7d7d468 100644 --- a/app/src/main/res/layout/fragment_loading_room_detail.xml +++ b/app/src/main/res/layout/fragment_loading_room_detail.xml @@ -1,5 +1,5 @@ - @@ -26,4 +26,4 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/animatedLogoImageView" /> - + diff --git a/app/src/main/res/layout/fragment_room_detail.xml b/app/src/main/res/layout/fragment_room_detail.xml index b34ff8ed..10a4f416 100644 --- a/app/src/main/res/layout/fragment_room_detail.xml +++ b/app/src/main/res/layout/fragment_room_detail.xml @@ -1,11 +1,11 @@ - - - @@ -65,9 +65,9 @@ tools:text="@tools:sample/date/day_of_week" /> - + - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_room_list.xml b/app/src/main/res/layout/fragment_room_list.xml index 0df248b8..96c1eead 100644 --- a/app/src/main/res/layout/fragment_room_list.xml +++ b/app/src/main/res/layout/fragment_room_list.xml @@ -1,7 +1,7 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/item_event_day_separator.xml b/app/src/main/res/layout/item_event_day_separator.xml index 124bee5b..db64ffb4 100644 --- a/app/src/main/res/layout/item_event_day_separator.xml +++ b/app/src/main/res/layout/item_event_day_separator.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/item_event_message.xml b/app/src/main/res/layout/item_event_message.xml index 5b2cde0a..016356f0 100644 --- a/app/src/main/res/layout/item_event_message.xml +++ b/app/src/main/res/layout/item_event_message.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/item_room.xml b/app/src/main/res/layout/item_room.xml index 8de9ae64..93540f7e 100644 --- a/app/src/main/res/layout/item_room.xml +++ b/app/src/main/res/layout/item_room.xml @@ -14,7 +14,7 @@ android:clickable="true" android:focusable="true"> - - + \ No newline at end of file diff --git a/app/src/main/res/layout/item_room_category.xml b/app/src/main/res/layout/item_room_category.xml index 80d01628..f3e1c54a 100644 --- a/app/src/main/res/layout/item_room_category.xml +++ b/app/src/main/res/layout/item_room_category.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/build.gradle b/build.gradle index c93ebe16..7216b263 100644 --- a/build.gradle +++ b/build.gradle @@ -1,14 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.0' + ext.kotlin_version = '1.3.11' ext.koin_version = '1.0.2' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:3.3.0' classpath "com.airbnb.okreplay:gradle-plugin:1.4.0" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" diff --git a/gradle.properties b/gradle.properties index 743d692c..8de50581 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,6 +6,8 @@ # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. +android.enableJetifier=true +android.useAndroidX=true org.gradle.jvmargs=-Xmx1536m # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 99ec5a3d..04a6b14c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Sep 28 19:08:12 CEST 2018 +#Wed Jan 16 18:28:13 CET 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip diff --git a/matrix-sdk-android-rx/build.gradle b/matrix-sdk-android-rx/build.gradle index 1b5ffeed..0d25fb6f 100644 --- a/matrix-sdk-android-rx/build.gradle +++ b/matrix-sdk-android-rx/build.gradle @@ -13,7 +13,7 @@ android { versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -35,15 +35,14 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation project(":matrix-sdk-android") - implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'androidx.appcompat:appcompat:1.1.0-alpha01' implementation 'io.reactivex.rxjava2:rxkotlin:2.3.0' implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' // Paging - implementation "android.arch.paging:runtime:1.0.1" - + implementation 'androidx.paging:paging-runtime:2.1.0-rc01' testImplementation 'junit:junit:4.12' - androidTestImplementation 'com.android.support.test:runner:1.0.2' - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + androidTestImplementation 'androidx.test:runner:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' } diff --git a/matrix-sdk-android-rx/src/androidTest/java/im/vector/matrix/rx/ExampleInstrumentedTest.java b/matrix-sdk-android-rx/src/androidTest/java/im/vector/matrix/rx/ExampleInstrumentedTest.java index c4043274..f1c6180a 100644 --- a/matrix-sdk-android-rx/src/androidTest/java/im/vector/matrix/rx/ExampleInstrumentedTest.java +++ b/matrix-sdk-android-rx/src/androidTest/java/im/vector/matrix/rx/ExampleInstrumentedTest.java @@ -1,8 +1,8 @@ package im.vector.matrix.rx; import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/matrix-sdk-android-rx/src/main/java/im/vector/matrix/rx/LiveDataObservable.kt b/matrix-sdk-android-rx/src/main/java/im/vector/matrix/rx/LiveDataObservable.kt index db180419..e361edbf 100644 --- a/matrix-sdk-android-rx/src/main/java/im/vector/matrix/rx/LiveDataObservable.kt +++ b/matrix-sdk-android-rx/src/main/java/im/vector/matrix/rx/LiveDataObservable.kt @@ -1,7 +1,7 @@ package im.vector.matrix.rx -import android.arch.lifecycle.LiveData -import android.arch.lifecycle.Observer +import androidx.lifecycle.LiveData +import androidx.lifecycle.Observer import io.reactivex.Observable import io.reactivex.android.MainThreadDisposable diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index 78630fce..255a8288 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -10,7 +10,7 @@ buildscript { jcenter() } dependencies { - classpath "io.realm:realm-gradle-plugin:5.7.0" + classpath "io.realm:realm-gradle-plugin:5.8.0" } } @@ -28,7 +28,7 @@ android { targetSdkVersion 28 versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -47,9 +47,9 @@ android { dependencies { def arrow_version = "0.8.0" - def support_version = '28.0.0' + def support_version = '1.1.0-alpha01' def moshi_version = '1.8.0' - def lifecycle_version = "1.1.1" + def lifecycle_version = '2.0.0-beta01' def coroutines_version = "1.0.1" implementation fileTree(dir: 'libs', include: ['*.aar']) @@ -57,11 +57,11 @@ dependencies { implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version" - implementation "com.android.support:appcompat-v7:$support_version" - implementation "com.android.support:recyclerview-v7:$support_version" + implementation "androidx.appcompat:appcompat:$support_version" + implementation "androidx.recyclerview:recyclerview:$support_version" - implementation "android.arch.lifecycle:extensions:$lifecycle_version" - kapt "android.arch.lifecycle:compiler:$lifecycle_version" + implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version" + kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" // Network implementation 'com.squareup.retrofit2:retrofit:2.4.0' @@ -77,10 +77,10 @@ dependencies { kapt 'dk.ilios:realmfieldnameshelper:1.1.1' // Paging - implementation "android.arch.paging:runtime:1.0.1" + implementation 'androidx.paging:paging-runtime:2.1.0-rc01' // Work - implementation "android.arch.work:work-runtime-ktx:1.0.0-alpha13" + implementation "android.arch.work:work-runtime-ktx:1.0.0-beta02" // FP implementation "io.arrow-kt:arrow-core:$arrow_version" @@ -106,16 +106,16 @@ dependencies { testImplementation 'org.robolectric:shadows-support-v4:3.0' testImplementation "io.mockk:mockk:1.8.13.kotlin13" testImplementation 'org.amshove.kluent:kluent-android:1.44' - testImplementation "android.arch.core:core-testing:$lifecycle_version" + testImplementation "androidx.arch.core:core-testing:$lifecycle_version" testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version" androidTestImplementation "org.koin:koin-test:$koin_version" - androidTestImplementation 'com.android.support.test:runner:1.0.2' - androidTestImplementation "com.android.support.test:rules:1.0.2" - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + androidTestImplementation 'androidx.test:runner:1.1.1' + androidTestImplementation 'androidx.test:rules:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' androidTestImplementation 'org.amshove.kluent:kluent-android:1.44' androidTestImplementation "io.mockk:mockk-android:1.8.13.kotlin13" - androidTestImplementation "android.arch.core:core-testing:$lifecycle_version" + androidTestImplementation "androidx.arch.core:core-testing:$lifecycle_version" androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version" diff --git a/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/InstrumentedTest.kt b/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/InstrumentedTest.kt index b40f8a8a..59e3e086 100644 --- a/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/InstrumentedTest.kt +++ b/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/InstrumentedTest.kt @@ -1,7 +1,7 @@ package im.vector.matrix.android import android.content.Context -import android.support.test.InstrumentationRegistry +import androidx.test.InstrumentationRegistry import java.io.File interface InstrumentedTest { diff --git a/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/LiveDataTestObserver.java b/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/LiveDataTestObserver.java index 6cbd7799..5ad10727 100644 --- a/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/LiveDataTestObserver.java +++ b/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/LiveDataTestObserver.java @@ -1,9 +1,9 @@ package im.vector.matrix.android; -import android.arch.lifecycle.LiveData; -import android.arch.lifecycle.MutableLiveData; -import android.arch.lifecycle.Observer; -import android.support.annotation.Nullable; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.Observer; +import androidx.annotation.Nullable; import java.util.ArrayList; import java.util.Collections; diff --git a/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/auth/AuthenticatorTest.kt b/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/auth/AuthenticatorTest.kt index fb0c6853..cff252af 100644 --- a/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/auth/AuthenticatorTest.kt +++ b/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/auth/AuthenticatorTest.kt @@ -1,8 +1,8 @@ package im.vector.matrix.android.auth -import android.support.test.annotation.UiThreadTest -import android.support.test.rule.GrantPermissionRule -import android.support.test.runner.AndroidJUnit4 +import androidx.test.annotation.UiThreadTest +import androidx.test.rule.GrantPermissionRule +import androidx.test.runner.AndroidJUnit4 import com.zhuinden.monarchy.Monarchy import im.vector.matrix.android.InstrumentedTest import im.vector.matrix.android.OkReplayRuleChainNoActivity diff --git a/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/session/room/timeline/TimelineHolderTest.kt b/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/session/room/timeline/TimelineHolderTest.kt index 11555dd2..75ef735e 100644 --- a/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/session/room/timeline/TimelineHolderTest.kt +++ b/matrix-sdk-android/src/androidTest/java/im/vector/matrix/android/session/room/timeline/TimelineHolderTest.kt @@ -1,7 +1,7 @@ package im.vector.matrix.android.session.room.timeline -import android.arch.core.executor.testing.InstantTaskExecutorRule -import android.support.test.annotation.UiThreadTest +import androidx.arch.core.executor.testing.InstantTaskExecutorRule +import androidx.test.annotation.UiThreadTest import com.zhuinden.monarchy.Monarchy import im.vector.matrix.android.InstrumentedTest import im.vector.matrix.android.LiveDataTestObserver diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/Matrix.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/Matrix.kt index 467329c8..5326a796 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/Matrix.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/Matrix.kt @@ -1,6 +1,6 @@ package im.vector.matrix.android.api -import android.arch.lifecycle.ProcessLifecycleOwner +import androidx.lifecycle.ProcessLifecycleOwner import android.content.Context import com.zhuinden.monarchy.Monarchy import im.vector.matrix.android.api.auth.Authenticator diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/Session.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/Session.kt index d5652ef1..7157e764 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/Session.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/Session.kt @@ -1,6 +1,6 @@ package im.vector.matrix.android.api.session -import android.support.annotation.MainThread +import androidx.annotation.MainThread import im.vector.matrix.android.api.auth.data.SessionParams import im.vector.matrix.android.api.session.group.GroupService import im.vector.matrix.android.api.session.room.RoomService diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/group/GroupService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/group/GroupService.kt index 769d354e..d1d3aba2 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/group/GroupService.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/group/GroupService.kt @@ -1,6 +1,6 @@ package im.vector.matrix.android.api.session.group -import android.arch.lifecycle.LiveData +import androidx.lifecycle.LiveData import im.vector.matrix.android.api.session.group.model.GroupSummary interface GroupService { diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/Room.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/Room.kt index 8e17a0a1..8bcda213 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/Room.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/Room.kt @@ -1,6 +1,6 @@ package im.vector.matrix.android.api.session.room -import android.arch.lifecycle.LiveData +import androidx.lifecycle.LiveData import im.vector.matrix.android.api.session.room.model.MyMembership import im.vector.matrix.android.api.session.room.model.RoomSummary import im.vector.matrix.android.api.session.room.timeline.TimelineService diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/RoomService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/RoomService.kt index 3f02d203..b9c1b15a 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/RoomService.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/RoomService.kt @@ -1,6 +1,6 @@ package im.vector.matrix.android.api.session.room -import android.arch.lifecycle.LiveData +import androidx.lifecycle.LiveData import im.vector.matrix.android.api.session.room.model.RoomSummary interface RoomService { diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/timeline/TimelineData.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/timeline/TimelineData.kt index 01727cd2..f59e5c12 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/timeline/TimelineData.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/timeline/TimelineData.kt @@ -1,6 +1,6 @@ package im.vector.matrix.android.api.session.room.timeline -import android.arch.paging.PagedList +import androidx.paging.PagedList import im.vector.matrix.android.api.session.events.model.TimelineEvent data class TimelineData( diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/timeline/TimelineService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/timeline/TimelineService.kt index d1069dad..f45f293c 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/timeline/TimelineService.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/timeline/TimelineService.kt @@ -1,6 +1,6 @@ package im.vector.matrix.android.api.session.room.timeline -import android.arch.lifecycle.LiveData +import androidx.lifecycle.LiveData interface TimelineService { diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/database/RealmLiveEntityObserver.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/database/RealmLiveEntityObserver.kt index 5f01f433..bf33a215 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/database/RealmLiveEntityObserver.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/database/RealmLiveEntityObserver.kt @@ -1,7 +1,7 @@ package im.vector.matrix.android.internal.database -import android.arch.lifecycle.LiveData -import android.arch.lifecycle.Observer +import androidx.lifecycle.LiveData +import androidx.lifecycle.Observer import com.zhuinden.monarchy.Monarchy import io.realm.RealmObject import java.util.concurrent.atomic.AtomicBoolean diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultSession.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultSession.kt index 0c9356ed..5ba6e91f 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultSession.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultSession.kt @@ -1,8 +1,8 @@ package im.vector.matrix.android.internal.session -import android.arch.lifecycle.LiveData +import androidx.lifecycle.LiveData import android.os.Looper -import android.support.annotation.MainThread +import androidx.annotation.MainThread import im.vector.matrix.android.api.auth.data.SessionParams import im.vector.matrix.android.api.session.Session import im.vector.matrix.android.api.session.group.Group diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/group/DefaultGroupService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/group/DefaultGroupService.kt index 3963726c..3c0905a3 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/group/DefaultGroupService.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/group/DefaultGroupService.kt @@ -1,6 +1,6 @@ package im.vector.matrix.android.internal.session.group -import android.arch.lifecycle.LiveData +import androidx.lifecycle.LiveData import com.zhuinden.monarchy.Monarchy import im.vector.matrix.android.api.session.group.Group import im.vector.matrix.android.api.session.group.GroupService diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/DefaultRoom.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/DefaultRoom.kt index 2359c301..9cc7e9d9 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/DefaultRoom.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/DefaultRoom.kt @@ -1,7 +1,7 @@ package im.vector.matrix.android.internal.session.room -import android.arch.lifecycle.LiveData -import android.arch.lifecycle.Transformations +import androidx.lifecycle.LiveData +import androidx.lifecycle.Transformations import com.zhuinden.monarchy.Monarchy import im.vector.matrix.android.api.MatrixCallback import im.vector.matrix.android.api.session.events.model.Event diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/DefaultRoomService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/DefaultRoomService.kt index e9b0aac4..42181f80 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/DefaultRoomService.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/DefaultRoomService.kt @@ -1,6 +1,6 @@ package im.vector.matrix.android.internal.session.room -import android.arch.lifecycle.LiveData +import androidx.lifecycle.LiveData import com.zhuinden.monarchy.Monarchy import im.vector.matrix.android.api.session.room.Room import im.vector.matrix.android.api.session.room.RoomService diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/timeline/DefaultTimelineService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/timeline/DefaultTimelineService.kt index 2a06dbb4..28f00131 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/timeline/DefaultTimelineService.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/timeline/DefaultTimelineService.kt @@ -1,8 +1,8 @@ package im.vector.matrix.android.internal.session.room.timeline -import android.arch.lifecycle.LiveData -import android.arch.paging.LivePagedListBuilder -import android.arch.paging.PagedList +import androidx.lifecycle.LiveData +import androidx.paging.LivePagedListBuilder +import androidx.paging.PagedList import com.zhuinden.monarchy.Monarchy import im.vector.matrix.android.api.session.events.interceptor.TimelineEventInterceptor import im.vector.matrix.android.api.session.events.model.TimelineEvent diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/timeline/TimelineBoundaryCallback.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/timeline/TimelineBoundaryCallback.kt index 88282e85..08093f4b 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/timeline/TimelineBoundaryCallback.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/timeline/TimelineBoundaryCallback.kt @@ -1,7 +1,7 @@ package im.vector.matrix.android.internal.session.room.timeline -import android.arch.lifecycle.LiveData -import android.arch.paging.PagedList +import androidx.lifecycle.LiveData +import androidx.paging.PagedList import com.zhuinden.monarchy.Monarchy import im.vector.matrix.android.api.MatrixCallback import im.vector.matrix.android.api.session.events.model.TimelineEvent diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/BackgroundDetectionObserver.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/BackgroundDetectionObserver.kt index 4769ded2..88b78f00 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/BackgroundDetectionObserver.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/BackgroundDetectionObserver.kt @@ -1,8 +1,8 @@ package im.vector.matrix.android.internal.util -import android.arch.lifecycle.Lifecycle -import android.arch.lifecycle.LifecycleObserver -import android.arch.lifecycle.OnLifecycleEvent +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleObserver +import androidx.lifecycle.OnLifecycleEvent import timber.log.Timber /** diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/LiveDataUtils.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/LiveDataUtils.kt index 55de4d34..9122f020 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/LiveDataUtils.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/LiveDataUtils.kt @@ -1,7 +1,7 @@ package im.vector.matrix.android.internal.util -import android.arch.lifecycle.LiveData -import android.arch.lifecycle.MediatorLiveData +import androidx.lifecycle.LiveData +import androidx.lifecycle.MediatorLiveData object LiveDataUtils { diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/PagingRequestHelper.java b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/PagingRequestHelper.java index fa1ad086..216c6fc1 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/PagingRequestHelper.java +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/PagingRequestHelper.java @@ -16,11 +16,11 @@ */ package im.vector.matrix.android.internal.util; -import android.support.annotation.AnyThread; -import android.support.annotation.GuardedBy; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.AnyThread; +import androidx.annotation.GuardedBy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; import java.util.Arrays; import java.util.concurrent.CopyOnWriteArrayList; @@ -28,8 +28,8 @@ import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicBoolean; /** - * A helper class for {@link android.arch.paging.PagedList.BoundaryCallback BoundaryCallback}s and - * {@link android.arch.paging.DataSource}s to help with tracking network requests. + * A helper class for {@link androidx.paging.PagedList.BoundaryCallback BoundaryCallback}s and + * {@link androidx.paging.DataSource}s to help with tracking network requests. *

* It is designed to support 3 types of requests, {@link RequestType#INITIAL INITIAL}, * {@link RequestType#BEFORE BEFORE} and {@link RequestType#AFTER AFTER} and runs only 1 request @@ -493,20 +493,20 @@ public class PagingRequestHelper { */ public enum RequestType { /** - * Corresponds to an initial request made to a {@link android.arch.paging.DataSource} or the empty state for - * a {@link android.arch.paging.PagedList.BoundaryCallback BoundaryCallback}. + * Corresponds to an initial request made to a {@link androidx.paging.DataSource} or the empty state for + * a {@link androidx.paging.PagedList.BoundaryCallback BoundaryCallback}. */ INITIAL, /** - * Corresponds to the {@code loadBefore} calls in {@link android.arch.paging.DataSource} or + * Corresponds to the {@code loadBefore} calls in {@link androidx.paging.DataSource} or * {@code onItemAtFrontLoaded} in - * {@link android.arch.paging.PagedList.BoundaryCallback BoundaryCallback}. + * {@link androidx.paging.PagedList.BoundaryCallback BoundaryCallback}. */ BEFORE, /** - * Corresponds to the {@code loadAfter} calls in {@link android.arch.paging.DataSource} or + * Corresponds to the {@code loadAfter} calls in {@link androidx.paging.DataSource} or * {@code onItemAtEndLoaded} in - * {@link android.arch.paging.PagedList.BoundaryCallback BoundaryCallback}. + * {@link androidx.paging.PagedList.BoundaryCallback BoundaryCallback}. */ AFTER } From c20cbf7110269bce8b97b2938d32fb7141292f8f Mon Sep 17 00:00:00 2001 From: ganfra Date: Thu, 17 Jan 2019 15:04:57 +0100 Subject: [PATCH 2/2] Androidx : set paging to 2.0.0 as it seems better at the moment --- app/build.gradle | 4 +-- .../timeline/paging/PagedListModelCache.kt | 30 +++---------------- matrix-sdk-android-rx/build.gradle | 2 +- matrix-sdk-android/build.gradle | 4 +-- 4 files changed, 9 insertions(+), 31 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ec9cc85c..a21d6788 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -49,15 +49,15 @@ dependencies { def epoxy_version = "3.0.0" def arrow_version = "0.8.2" - implementation fileTree(dir: 'libs', include: ['*.jar']) implementation project(":matrix-sdk-android") implementation project(":matrix-sdk-android-rx") implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation 'androidx.appcompat:appcompat:1.1.0-alpha01' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' // Paging - implementation 'androidx.paging:paging-runtime:2.1.0-rc01' + implementation 'androidx.paging:paging-runtime:2.0.0' implementation 'com.jakewharton.threetenabp:threetenabp:1.1.1' implementation 'com.jakewharton.timber:timber:4.7.1' diff --git a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/paging/PagedListModelCache.kt b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/paging/PagedListModelCache.kt index 6070c552..9072a4b5 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/paging/PagedListModelCache.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/paging/PagedListModelCache.kt @@ -17,14 +17,12 @@ package im.vector.riotredesign.features.home.room.detail.timeline.paging import android.annotation.SuppressLint +import android.os.Handler import androidx.paging.AsyncPagedListDiffer import androidx.paging.PagedList -import android.os.Handler import androidx.recyclerview.widget.AsyncDifferConfig import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListUpdateCallback -import android.util.Log -import com.airbnb.epoxy.EpoxyController import com.airbnb.epoxy.EpoxyModel import java.util.concurrent.Executor import java.util.concurrent.atomic.AtomicBoolean @@ -79,8 +77,8 @@ class PagedListModelCache( } } - private val asyncDiffer = @SuppressLint("RestrictedApi") - object : AsyncPagedListDiffer( + @SuppressLint("RestrictedApi") + private val asyncDiffer = AsyncPagedListDiffer( updateCallback, AsyncDifferConfig.Builder( itemDiffCallback @@ -94,27 +92,7 @@ class PagedListModelCache( modelBuildingHandler.post(runnable) } }.build() - ) { - init { - if (modelBuildingHandler != EpoxyController.defaultModelBuildingHandler) { - try { - // looks like AsyncPagedListDiffer in 1.x ignores the config. - // Reflection to the rescue. - val mainThreadExecutorField = - AsyncPagedListDiffer::class.java.getDeclaredField("mMainThreadExecutor") - mainThreadExecutorField.isAccessible = true - mainThreadExecutorField.set(this, Executor { - modelBuildingHandler.post(it) - }) - } catch (t: Throwable) { - val msg = "Failed to hijack update handler in AsyncPagedListDiffer." + - "You can only build models on the main thread" - Log.e("PagedListModelCache", msg, t) - throw IllegalStateException(msg, t) - } - } - } - } + ) fun submitList(pagedList: PagedList?) { asyncDiffer.submitList(pagedList) diff --git a/matrix-sdk-android-rx/build.gradle b/matrix-sdk-android-rx/build.gradle index 0d25fb6f..26d141c3 100644 --- a/matrix-sdk-android-rx/build.gradle +++ b/matrix-sdk-android-rx/build.gradle @@ -40,7 +40,7 @@ dependencies { implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' // Paging - implementation 'androidx.paging:paging-runtime:2.1.0-rc01' + implementation 'androidx.paging:paging-runtime:2.0.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.1' diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index 255a8288..c7ca4b5d 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -49,7 +49,7 @@ dependencies { def arrow_version = "0.8.0" def support_version = '1.1.0-alpha01' def moshi_version = '1.8.0' - def lifecycle_version = '2.0.0-beta01' + def lifecycle_version = '2.0.0' def coroutines_version = "1.0.1" implementation fileTree(dir: 'libs', include: ['*.aar']) @@ -77,7 +77,7 @@ dependencies { kapt 'dk.ilios:realmfieldnameshelper:1.1.1' // Paging - implementation 'androidx.paging:paging-runtime:2.1.0-rc01' + implementation 'androidx.paging:paging-runtime:2.0.0' // Work implementation "android.arch.work:work-runtime-ktx:1.0.0-beta02"