Migration of Item management to SharedItems (#345)
* Refactor Item addition and deletion * Metods to filter the items according to read and starred status * Remove displayed items only if displaying unread items * Remove unnecessary api calls on tab change and delegate item storage to SharedItems * Store articles in SharedItems when they get fetched * Add tag filtering * Mark items as read * Disable sorting function * Add function to get the unread status of an element. * Fetch items on pull gesture * Move marking as read logic in SharedItems. * Delegate item status to SharedItems * Allow changing unread status of items * Use full article position reference and not the relative one * Delegate marking items as unread to SharedItems * Delegate database addition of Items to SharedItems. * Function to only provide connectivity information * Better database management * Sort items by date * Provide information about item caching to SharedItems * Add missing imports * Update database after fetching articles * Add missing variable * Remove unused import * Use coroutines to access database * Use coroutines to simultaneously fetch articles. * Update database after fetching articles. * Don't block thread when accessing the database * Prevent crash if connectivity is lost while fetching articles * Show "Not connected" snackbar if there is no connection or connection is lost during download * Use coroutines in the background sync * Added function to get only new items * Introduced function to filter articles * Don't execute background sync if the option is disabled * Improve item filtering * Apply filters when they are selected on the UI * Handle infinite scroll * Incorrect parameters were passed * Simplify tab selection logic * Upgrade kotlin jvm to version 1.8 * On tab change fetch new items if the item list is not completely populated * Remove redundant assignations. * Fetch articles when changing tag, source or search if the list is not fully populated * Fetch only the article in the tab selected * Correct inconsistent position address * Disable swiping articles only if favorites are selected * Delegate badge count to SharedItems * Clear the database when the app starts in order to avoid accumulation and inconsistencies * Remove unused functions and variables * Do not overwrite fetched items with old copies from the database * Display "There's nothing here" only if there are no articles * Adapt function to read all articles to the new changes * Use IO Dispatcher for Database and Network computations * Adapt Background sync to the usage of SharedItems * Handle refresh gesture appropriately by refreshing the whole items list * Remove unused imports
This commit is contained in:
@@ -82,6 +82,9 @@ android {
|
||||
dimension "build"
|
||||
}
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -113,10 +116,13 @@ dependencies {
|
||||
transitive = true
|
||||
}
|
||||
|
||||
// Async
|
||||
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9'
|
||||
|
||||
// Retrofit + http logging + okhttp
|
||||
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
|
||||
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
|
||||
implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0'
|
||||
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
|
||||
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
|
||||
implementation 'com.burgstaller:okhttp-digest:1.12'
|
||||
|
||||
// Material-ish things
|
||||
@@ -148,6 +154,7 @@ dependencies {
|
||||
implementation "androidx.lifecycle:lifecycle-common-java8:2.3.0-rc01"
|
||||
|
||||
implementation "androidx.room:room-runtime:2.3.0-alpha04"
|
||||
implementation "androidx.room:room-ktx:2.3.0-alpha04"
|
||||
kapt "androidx.room:room-compiler:2.3.0-alpha04"
|
||||
|
||||
implementation "android.arch.work:work-runtime-ktx:$work_version"
|
||||
|
Reference in New Issue
Block a user