diff --git a/app/build.gradle b/app/build.gradle
index 6496c2699..1ca65ee45 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -81,7 +81,7 @@ dependencies {
exclude group: 'org.json', module: 'json'
}
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.2'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.3'
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.activity:activity-ktx:1.5.0-rc01'
@@ -107,7 +107,7 @@ dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.10.0'
implementation 'com.squareup.okhttp3:okhttp-dnsoverhttps:4.9.3'
- implementation 'com.squareup.okio:okio:3.1.0'
+ implementation 'com.squareup.okio:okio:3.2.0'
implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl:4.3.2'
implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:4.3.2'
@@ -124,14 +124,14 @@ dependencies {
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.9.1'
testImplementation 'junit:junit:4.13.2'
- testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.2'
+ testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.3'
androidTestImplementation 'androidx.test:runner:1.4.0'
androidTestImplementation 'androidx.test:rules:1.4.0'
androidTestImplementation 'androidx.test:core-ktx:1.4.0'
androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.3'
- androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.2'
+ androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.3'
androidTestImplementation 'io.insert-koin:koin-test:3.2.0'
androidTestImplementation 'io.insert-koin:koin-test-junit4:3.2.0'
diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/list/FavouritesListViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/list/FavouritesListViewModel.kt
index c2e8c00a1..23ff17a2e 100644
--- a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/list/FavouritesListViewModel.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/list/FavouritesListViewModel.kt
@@ -47,7 +47,7 @@ class FavouritesListViewModel(
when {
list.isEmpty() -> listOf(
EmptyState(
- icon = R.drawable.ic_heart_outline,
+ icon = R.drawable.ic_empty_favourites,
textPrimary = R.string.text_empty_holder_primary,
textSecondary = if (categoryId == NO_ID) {
R.string.you_have_not_favourites_yet
diff --git a/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt
index 1768c2a5f..c5c6ef75e 100644
--- a/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt
@@ -48,7 +48,7 @@ class HistoryListViewModel(
when {
list.isEmpty() -> listOf(
EmptyState(
- icon = R.drawable.ic_history,
+ icon = R.drawable.ic_empty_history,
textPrimary = R.string.text_history_holder_primary,
textSecondary = R.string.text_history_holder_secondary,
actionStringRes = 0,
diff --git a/app/src/main/java/org/koitharu/kotatsu/local/ui/LocalListViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/local/ui/LocalListViewModel.kt
index 375e03997..e8490f9d9 100644
--- a/app/src/main/java/org/koitharu/kotatsu/local/ui/LocalListViewModel.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/local/ui/LocalListViewModel.kt
@@ -49,7 +49,7 @@ class LocalListViewModel(
list == null -> listOf(LoadingState)
list.isEmpty() -> listOf(
EmptyState(
- icon = R.drawable.ic_storage,
+ icon = R.drawable.ic_empty_local,
textPrimary = R.string.text_local_holder_primary,
textSecondary = R.string.text_local_holder_secondary,
actionStringRes = R.string._import,
diff --git a/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListViewModel.kt
index b57f0b30b..092194b96 100644
--- a/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListViewModel.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListViewModel.kt
@@ -151,7 +151,7 @@ class RemoteListViewModel(
}
private fun createEmptyState(filterState: FilterState) = EmptyState(
- icon = R.drawable.ic_book_cross,
+ icon = R.drawable.ic_empty_search,
textPrimary = R.string.nothing_found,
textSecondary = 0,
actionStringRes = if (filterState.tags.isEmpty()) 0 else R.string.reset_filter,
diff --git a/app/src/main/java/org/koitharu/kotatsu/search/ui/SearchViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/search/ui/SearchViewModel.kt
index e20c3bb12..9615e84a6 100644
--- a/app/src/main/java/org/koitharu/kotatsu/search/ui/SearchViewModel.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/search/ui/SearchViewModel.kt
@@ -35,7 +35,7 @@ class SearchViewModel(
list == null -> listOf(LoadingState)
list.isEmpty() -> listOf(
EmptyState(
- icon = R.drawable.ic_book_search,
+ icon = R.drawable.ic_empty_search,
textPrimary = R.string.nothing_found,
textSecondary = R.string.text_search_holder_secondary,
actionStringRes = 0,
diff --git a/app/src/main/java/org/koitharu/kotatsu/search/ui/multi/MultiSearchViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/search/ui/multi/MultiSearchViewModel.kt
index adea07898..1a07e3dec 100644
--- a/app/src/main/java/org/koitharu/kotatsu/search/ui/multi/MultiSearchViewModel.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/search/ui/multi/MultiSearchViewModel.kt
@@ -42,7 +42,7 @@ class MultiSearchViewModel(
loading -> LoadingState
error != null -> error.toErrorState(canRetry = true)
else -> EmptyState(
- icon = R.drawable.ic_book_search,
+ icon = R.drawable.ic_empty_search,
textPrimary = R.string.nothing_found,
textSecondary = R.string.text_search_holder_secondary,
actionStringRes = 0,
diff --git a/app/src/main/java/org/koitharu/kotatsu/suggestions/ui/SuggestionsViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/suggestions/ui/SuggestionsViewModel.kt
index 832922ea3..42f0c093a 100644
--- a/app/src/main/java/org/koitharu/kotatsu/suggestions/ui/SuggestionsViewModel.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/suggestions/ui/SuggestionsViewModel.kt
@@ -27,7 +27,7 @@ class SuggestionsViewModel(
when {
list.isEmpty() -> listOf(
EmptyState(
- icon = R.drawable.ic_book_cross,
+ icon = R.drawable.ic_empty_suggestions,
textPrimary = R.string.nothing_found,
textSecondary = R.string.text_suggestion_holder,
actionStringRes = 0,
diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedViewModel.kt
index 3cb415143..11ae7f6fa 100644
--- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedViewModel.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedViewModel.kt
@@ -39,7 +39,7 @@ class FeedViewModel(
add(header)
add(
EmptyState(
- icon = R.drawable.ic_feed,
+ icon = R.drawable.ic_empty_feed,
textPrimary = R.string.text_empty_holder_primary,
textSecondary = R.string.text_feed_holder,
actionStringRes = 0,
diff --git a/app/src/main/res/drawable/ic_empty_favourites.xml b/app/src/main/res/drawable/ic_empty_favourites.xml
new file mode 100644
index 000000000..ccfc51361
--- /dev/null
+++ b/app/src/main/res/drawable/ic_empty_favourites.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_empty_feed.xml b/app/src/main/res/drawable/ic_empty_feed.xml
new file mode 100644
index 000000000..1df74d5ed
--- /dev/null
+++ b/app/src/main/res/drawable/ic_empty_feed.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_empty_history.xml b/app/src/main/res/drawable/ic_empty_history.xml
new file mode 100644
index 000000000..f0c6fdee1
--- /dev/null
+++ b/app/src/main/res/drawable/ic_empty_history.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_empty_local.xml b/app/src/main/res/drawable/ic_empty_local.xml
new file mode 100644
index 000000000..f578a6ce8
--- /dev/null
+++ b/app/src/main/res/drawable/ic_empty_local.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_empty_search.xml b/app/src/main/res/drawable/ic_empty_search.xml
new file mode 100644
index 000000000..37fa1c487
--- /dev/null
+++ b/app/src/main/res/drawable/ic_empty_search.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_empty_suggestions.xml b/app/src/main/res/drawable/ic_empty_suggestions.xml
new file mode 100644
index 000000000..84025ea16
--- /dev/null
+++ b/app/src/main/res/drawable/ic_empty_suggestions.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_empty_state.xml b/app/src/main/res/layout/item_empty_state.xml
index 880e8902d..d89b79276 100644
--- a/app/src/main/res/layout/item_empty_state.xml
+++ b/app/src/main/res/layout/item_empty_state.xml
@@ -12,10 +12,11 @@
+ android:layout_width="192dp"
+ android:layout_height="192dp"
+ android:contentDescription="@null"
+ android:scaleType="fitCenter"
+ tools:src="@drawable/ic_empty_favourites" />