Status Update
Comments
jg...@google.com <jg...@google.com> #2
Branch: androidx-main
commit f5617bbd7d5b37de7e0eb04ed7d867136d9f304c
Author: rohitsat13 <rohitsat@google.com>
Date: Tue Feb 16 09:22:50 2021
Create dataStore property delegate.
Bug: 173726702
Relnote: The Context.createDataStore extension function has been removed and replaced with globalDataStore property delegate. Call globalDataStore once at the top level in your kotlin file.
Test: GlobalDataStoreTest
Change-Id: I5721591268086f2111719fcc48c4144c20b4e129
M datastore/datastore-preferences-rxjava2/src/main/java/androidx/datastore/preferences/rxjava2/RxPreferenceDataStoreBuilder.kt
M datastore/datastore-preferences-rxjava3/src/main/java/androidx/datastore/preferences/rxjava3/RxPreferenceDataStoreBuilder.kt
M datastore/datastore-preferences/api/current.txt
M datastore/datastore-preferences/api/public_plus_experimental_current.txt
M datastore/datastore-preferences/api/restricted_current.txt
A datastore/datastore-preferences/src/androidTest/java/androidx/datastore/preferences/PreferenceDataStoreDelegateTest.kt
D datastore/datastore-preferences/src/androidTest/java/androidx/datastore/preferences/PreferenceDataStoreFactoryTest.kt
A datastore/datastore-preferences/src/main/java/androidx/datastore/preferences/PreferenceDataStoreDelegate.kt
D datastore/datastore-preferences/src/main/java/androidx/datastore/preferences/PreferenceDataStoreFactory.kt
M datastore/datastore-rxjava2/src/main/java/androidx/datastore/rxjava2/RxDataStoreBuilder.kt
M datastore/datastore-rxjava3/src/main/java/androidx/datastore/rxjava3/RxDataStoreBuilder.kt
M datastore/datastore-sampleapp/src/main/java/com/example/datastoresampleapp/PreferencesDataStoreActivity.kt
M datastore/datastore/api/current.txt
M datastore/datastore/api/public_plus_experimental_current.txt
M datastore/datastore/api/restricted_current.txt
A datastore/datastore/src/androidTest/java/androidx/datastore/DataStoreDelegateTest.kt
D datastore/datastore/src/androidTest/java/androidx/datastore/DataStoreFactoryTest.kt
A datastore/datastore/src/main/java/androidx/datastore/DataStoreDelegate.kt
D datastore/datastore/src/main/java/androidx/datastore/DataStoreFactory.kt
ja...@skrasek.com <ja...@skrasek.com> #3
Branch: androidx-main
commit 5fe0a262ac6af55f68777fd2e2ef58cbc0939536
Author: rohitsat13 <rohitsat@google.com>
Date: Fri Feb 19 09:28:47 2021
RxDataStore property delegates
Test: See new Delegate Tests
Bug: 173726702
Relnote: Added property delegates for RxDataStore users.
Change-Id: Ied7680e698bc98b385b4bb4f33b6481963e7589a
M datastore/datastore-preferences-rxjava2/api/current.txt
M datastore/datastore-preferences-rxjava2/api/public_plus_experimental_current.txt
M datastore/datastore-preferences-rxjava2/api/restricted_current.txt
A datastore/datastore-preferences-rxjava2/src/androidTest/java/androidx/datastore/preferences/rxjava2/RxPreferenceDataStoreDelegateTest.kt
A datastore/datastore-preferences-rxjava2/src/main/java/androidx/datastore/preferences/rxjava2/RxPreferenceDataStoreDelegate.kt
M datastore/datastore-preferences-rxjava3/api/current.txt
M datastore/datastore-preferences-rxjava3/api/public_plus_experimental_current.txt
M datastore/datastore-preferences-rxjava3/api/restricted_current.txt
A datastore/datastore-preferences-rxjava3/src/androidTest/java/androidx/datastore/preferences/rxjava3/RxPreferenceDataStoreDelegateTest.kt
A datastore/datastore-preferences-rxjava3/src/main/java/androidx/datastore/preferences/rxjava3/RxPreferenceDataStoreDelegate.kt
M datastore/datastore-rxjava2/api/current.txt
M datastore/datastore-rxjava2/api/public_plus_experimental_current.txt
M datastore/datastore-rxjava2/api/restricted_current.txt
A datastore/datastore-rxjava2/src/androidTest/java/androidx/datastore/rxjava2/RxDataStoreDelegateTest.kt
A datastore/datastore-rxjava2/src/main/java/androidx/datastore/rxjava2/RxDataStoreDelegate.kt
M datastore/datastore-rxjava3/api/current.txt
M datastore/datastore-rxjava3/api/public_plus_experimental_current.txt
M datastore/datastore-rxjava3/api/restricted_current.txt
A datastore/datastore-rxjava3/src/androidTest/java/androidx/datastore/rxjava3/RxDataStoreDelegateTest.kt
A datastore/datastore-rxjava3/src/main/java/androidx/datastore/rxjava3/RxDataStoreDelegate.kt
jg...@google.com <jg...@google.com> #4
Thanks, but I don't understand why this was implemented in datastore
rather than datastore-core
(and related modules). I was hoping to be able to use it without needing a Context
reference.
ja...@skrasek.com <ja...@skrasek.com> #5
A few things led to the approach that we ended up with:
- Since we need the result of context.filesDir, and context.filesDir can do file IO, we need to accept a callback for generating the file. Deduping on just the relative path (String) is easier than deduping on the callback () -> File.
- You can't really depend on context at the top level of a kotlin file or in a static/companion object.
- We wanted something that people could easily copy&paste into their code and get going without having to worry to much about it.
- (Unrelated to your question but..) Different calls to createDataStore for the same file names could have different construction params. The various params probably don't implement value equality so you can't really throw errors in these cases (we'd probably just have to take the first set of params then silently ignore future ones).
That said, if you can just inject the DataStore using hilt with @Singleton you don't have to worry about any of this.
je...@google.com <je...@google.com> #6
Release notes for that features are broken.
Not only they suggest to use =
instead of by
(which make the code snippet invalid), but they forget to mention how we are supposed to deal with the new Serializer argument.
je...@google.com <je...@google.com>
je...@google.com <je...@google.com> #7
How are we suppose to migrate code like this:
private val _store = context.createDataStore("store", migrations = listOf(
SharedPreferencesMigration(context, "store")
))
There is not way to create SharedPreferencesMigration without context reference.
private val Context.store by preferencesDataStore("store", migrations = listOf(
SharedPreferencesMigration(context, "store") // error context do not exists
))
je...@google.com <je...@google.com> #8
Thanks for reporting - we are working on a fix for the migrations for next release.
th...@gmail.com <th...@gmail.com> #9
Branch: androidx-main
commit b64da89bd9caa4492b296a701e08d3d6fb7f2e52
Author: rohitsat13 <rohitsat@google.com>
Date: Fri Feb 26 09:51:28 2021
Change migrations param to migrationProducers param for datastore property delegate since you may need context to create a sp migration for example.
Test: See new tests
Relnote: You can now add a migration that depends on context to your `dataStore` and `preferencesDataStore` property delegate.
Bug: 173726702
Change-Id: I4ef69b0eed544cde4f05cdee9e885d36af0f4abb
M datastore/datastore-preferences-rxjava2/api/current.txt
M datastore/datastore-preferences-rxjava2/api/public_plus_experimental_current.txt
M datastore/datastore-preferences-rxjava2/api/restricted_current.txt
M datastore/datastore-preferences-rxjava2/src/androidTest/java/androidx/datastore/preferences/rxjava2/RxPreferenceDataStoreDelegateTest.kt
M datastore/datastore-preferences-rxjava2/src/main/java/androidx/datastore/preferences/rxjava2/RxPreferenceDataStoreDelegate.kt
M datastore/datastore-preferences-rxjava3/api/current.txt
M datastore/datastore-preferences-rxjava3/api/public_plus_experimental_current.txt
M datastore/datastore-preferences-rxjava3/api/restricted_current.txt
M datastore/datastore-preferences-rxjava3/src/androidTest/java/androidx/datastore/preferences/rxjava3/RxPreferenceDataStoreDelegateTest.kt
M datastore/datastore-preferences-rxjava3/src/main/java/androidx/datastore/preferences/rxjava3/RxPreferenceDataStoreDelegate.kt
M datastore/datastore-preferences/api/current.txt
M datastore/datastore-preferences/api/public_plus_experimental_current.txt
M datastore/datastore-preferences/api/restricted_current.txt
M datastore/datastore-preferences/src/androidTest/java/androidx/datastore/preferences/PreferenceDataStoreDelegateTest.kt
M datastore/datastore-preferences/src/androidTest/java/androidx/datastore/preferences/SharedPreferencesToPreferencesTest.kt
M datastore/datastore-preferences/src/main/java/androidx/datastore/preferences/PreferenceDataStoreDelegate.kt
M datastore/datastore-rxjava2/api/current.txt
M datastore/datastore-rxjava2/api/public_plus_experimental_current.txt
M datastore/datastore-rxjava2/api/restricted_current.txt
M datastore/datastore-rxjava2/src/androidTest/java/androidx/datastore/rxjava2/RxDataStoreDelegateTest.kt
M datastore/datastore-rxjava2/src/main/java/androidx/datastore/rxjava2/RxDataStoreDelegate.kt
M datastore/datastore-rxjava3/api/current.txt
M datastore/datastore-rxjava3/api/public_plus_experimental_current.txt
M datastore/datastore-rxjava3/api/restricted_current.txt
M datastore/datastore-rxjava3/src/androidTest/java/androidx/datastore/rxjava3/RxDataStoreDelegateTest.kt
M datastore/datastore-rxjava3/src/main/java/androidx/datastore/rxjava3/RxDataStoreDelegate.kt
M datastore/datastore/api/current.txt
M datastore/datastore/api/public_plus_experimental_current.txt
M datastore/datastore/api/restricted_current.txt
M datastore/datastore/src/androidTest/java/androidx/datastore/DataStoreDelegateTest.kt
M datastore/datastore/src/androidTest/java/androidx/datastore/migrations/SharedPreferencesMigrationTest.kt
M datastore/datastore/src/main/java/androidx/datastore/DataStoreDelegate.kt
je...@google.com <je...@google.com> #10
private val Context._dataStore: DataStore<Preferences> by preferencesDataStore(
name = "sampingan_data_store",
migrations = listOf(
SharedPreferencesMigration(context, context.packageName + DEFAULT_PREF)
)
)
val dataStore: DataStore<Preferences> = context._dataStore
ja...@skrasek.com <ja...@skrasek.com> #11
It is now possible do also "page-swipe" during the "swipe-refresh gesture" simultaneously.
(E.g. start refresh first, then swipe to side. Otherwise it is ok - cannot do refresh swipe during page-swipe.)
th...@gmail.com <th...@gmail.com> #12
je...@google.com <je...@google.com>
ja...@skrasek.com <ja...@skrasek.com> #13
implementation "androidx.recyclerview:recyclerview:1.1.0-beta01"
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02"
implementation "androidx.viewpager2:viewpager2:1.0.0-alpha06"
and it is not fixed for me, as stated earlier. Is it fixed in some unreleased version? (AFAIK it is not)
at...@onedaycat.com <at...@onedaycat.com> #14
this is my layout hierarchy
RecyclerView --- inside ---> SwipeRefreshLayout --- fragment inside- --> ViewPager2 --- inside ---> TabBarLayot
je...@google.com <je...@google.com> #15
We will have to look into the issue to see what is going on, if it is intended behavior or a bug, and how to work around and fix it.
je...@google.com <je...@google.com>
je...@google.com <je...@google.com> #16
What happens is that when RV dispatches a nested scroll, the SwipeRefreshLayout (SRL) consumes it and RV doesn't scroll. Because RV doesn't scroll, it doesn't call "getParent().requestDisallowInterceptTouchEvent(true)" (that is the bug), and because of that the parent ViewPager2 (VP2) is still allowed to start moving horizontally when the horizontal touch slop is overcome.
This will be fixed in recyclerview, stay tuned.
ap...@google.com <ap...@google.com> #17
Branch: androidx-master-dev
commit ae0d62aa0196beac0d56acfa5e752f6614a4f839
Author: Jelle Fresen <jellefresen@google.com>
Date: Mon Jul 15 21:00:52 2019
Disallow intercept touch after nested scroll consumed
RecyclerView now calls requestDisallowInterceptTouchEvent(true) on its
parent when a nested scrolling parent consumed (part of) the scroll,
even when RecyclerView itself doesn't move.
Moved SwipeInjector and TranslatedCoordinatesProvider from
:swiperefreshlayout to :internal-testutils for reuse.
Bug: 131115697
Test: ./gradlew recyclerview:recyclerview:cC
Change-Id: I5b13eae54861263648c047a2b3cd68f7f3634846
A recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewNestedScrolling3RequestDisallowInterceptTouchTest.java
M recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/RecyclerView.java
D swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeInjector.java
M swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutInHorizontallyScrollingParentTest.java
A testutils/src/main/java/androidx/testutils/SwipeInjector.java
M testutils/src/main/java/androidx/testutils/TranslatedCoordinatesProvider.java
Description
(Tabs are horizontally laid out, swipe-refresh is vertical)
This worked in ViewPager.
Used version: androidx.viewpager2:viewpager2:1.0.0-alpha03
Not sure if its related to