From 658ee56f25aa1684da9be5ec03f4bbce75222337 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 6 Jul 2021 14:43:12 +0200 Subject: [PATCH] Improve all kind of list handling. Fixes #1578 --- Habitica/build.gradle | 2 +- .../baseline_error_outline_black_36dp.png | Bin 0 -> 746 bytes .../baseline_error_outline_black_36dp.png | Bin 0 -> 499 bytes .../baseline_error_outline_black_36dp.png | Bin 0 -> 954 bytes .../baseline_error_outline_black_36dp.png | Bin 0 -> 1790 bytes .../baseline_error_outline_black_36dp.png | Bin 0 -> 2631 bytes Habitica/res/layout/empty_item.xml | 43 +++++ Habitica/res/layout/failed_item.xml | 25 +++ .../res/layout/fragment_challengeslist.xml | 55 ------ Habitica/res/layout/fragment_items.xml | 19 --- Habitica/res/layout/fragment_recyclerview.xml | 27 +-- .../layout/fragment_recyclerview_stable.xml | 23 --- .../layout/fragment_refresh_recyclerview.xml | 37 ----- Habitica/res/layout/loading_item.xml | 11 ++ Habitica/res/values/strings.xml | 4 + .../RealmInventoryLocalRepository.kt | 1 + .../adapter/inventory/ShopRecyclerAdapter.kt | 18 +- .../inventory/StableRecyclerAdapter.kt | 1 + .../tasks/RewardsRecyclerViewAdapter.kt | 3 + .../equipment/EquipmentDetailFragment.kt | 13 ++ .../inventory/items/ItemDialogFragment.kt | 12 +- .../inventory/items/ItemRecyclerFragment.kt | 44 ++--- .../fragments/inventory/shops/ShopFragment.kt | 24 ++- .../stable/StableRecyclerFragment.kt | 5 +- .../challenges/ChallengeListFragment.kt | 11 +- .../tasks/TaskRecyclerViewFragment.kt | 61 ++++--- .../ui/helpers/RecyclerViewEmptySupport.kt | 156 ++++++++++++++++-- .../ui/views/dialogs/HabiticaAlertDialog.kt | 9 +- 28 files changed, 359 insertions(+), 245 deletions(-) create mode 100644 Habitica/res/drawable-hdpi/baseline_error_outline_black_36dp.png create mode 100644 Habitica/res/drawable-mdpi/baseline_error_outline_black_36dp.png create mode 100644 Habitica/res/drawable-xhdpi/baseline_error_outline_black_36dp.png create mode 100644 Habitica/res/drawable-xxhdpi/baseline_error_outline_black_36dp.png create mode 100644 Habitica/res/drawable-xxxhdpi/baseline_error_outline_black_36dp.png create mode 100644 Habitica/res/layout/empty_item.xml create mode 100644 Habitica/res/layout/failed_item.xml delete mode 100644 Habitica/res/layout/fragment_challengeslist.xml delete mode 100644 Habitica/res/layout/fragment_recyclerview_stable.xml create mode 100644 Habitica/res/layout/loading_item.xml diff --git a/Habitica/build.gradle b/Habitica/build.gradle index 8ddd9ea96..c17635d69 100644 --- a/Habitica/build.gradle +++ b/Habitica/build.gradle @@ -146,7 +146,7 @@ android { buildConfigField "String", "TESTING_LEVEL", "\"production\"" resConfigs "en", "bg", "de", "en-rGB", "es", "fr", "hr-rHR", "in", "it", "iw", "ja", "ko", "lt", "nl", "pl", "pt-rBR", "pt-rPT", "ru", "tr", "zh", "zh-rTW" - versionCode 2991 + versionCode 2994 versionName "3.3" } diff --git a/Habitica/res/drawable-hdpi/baseline_error_outline_black_36dp.png b/Habitica/res/drawable-hdpi/baseline_error_outline_black_36dp.png new file mode 100644 index 0000000000000000000000000000000000000000..ec4860d026be38f31181fb3ea2a482f16834ed85 GIT binary patch literal 746 zcmVG0rXAX3E}1^c2RK*nOy{);>^D7? z52&`DnD**FankfzK8RTBriWVGqQP`Pi$sC=n>PN34Yq0jSf5NMv}DeizR3^X>9OgQ z^418p^r3I+uhUo4*{(xvnA8vXLD4fUuH;l;4FxJp*c_B8+fr{dTyu;iz736);mIGs^KHe)Y`);r%?~II%sjvGzixFO^-zGq{n1tmv84Wpd6YZy z9XW9-CCK}utrTKO{Sosh%}%V@Td{WXm|NYa1o`+TC6C(azBa|_zV-vUHpCLgHu(V! zHA||R%qpp%W)WO-jm<8Co87iRlN(J~lMkqgqk(1*bD+uNw~i(cOrhB$ZfNqQL`Rda zkvf>%(3R`N19aQH`0LV)k zSs62%s(Tq8FjjY}br}Pc=TL?RAh|Qunrcxs--tH9(dSR#U3DNoC?m;SNH^%CYD+ca z*oD9bTYTIY=aQL}zcQCnuR<#L;OoX>rIOf?dWkK-iPS5W3%h$*6BgD(Cr?AM9iLcAH*W2*>ffI!YrPpb=dB9e@jY2Kuoje zp6XluuN&BmDO=2GN==BE?v~(255nWX3{Snj5UB|PvCW4ugAAlKT=n`wJm{`@n@ prI-&zm!dwUT_|G_e>O}gf=~SVAB2U+kQ4v_002ovPDHLkV1jk2=;Z(a literal 0 HcmV?d00001 diff --git a/Habitica/res/drawable-xhdpi/baseline_error_outline_black_36dp.png b/Habitica/res/drawable-xhdpi/baseline_error_outline_black_36dp.png new file mode 100644 index 0000000000000000000000000000000000000000..356880514a609db407c37d792989adeb8cacbcde GIT binary patch literal 954 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 literal 0 HcmV?d00001 diff --git a/Habitica/res/layout/empty_item.xml b/Habitica/res/layout/empty_item.xml new file mode 100644 index 000000000..313983fb2 --- /dev/null +++ b/Habitica/res/layout/empty_item.xml @@ -0,0 +1,43 @@ + + + + + + + + + +