From b5a3e0163607968a4817ea7c7d9a79c598bc8cea Mon Sep 17 00:00:00 2001 From: Arcao Date: Tue, 15 Nov 2022 06:09:08 +0100 Subject: [PATCH 1/3] Import list no longer works (endless waiting circle) [#136] --- .../fragment/BookmarkFragment.kt | 29 ++++++++++++------- .../fragment/BookmarkListFragment.kt | 23 ++++++++++----- versions.gradle | 4 +-- 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/arcao/geocaching4locus/import_bookmarks/fragment/BookmarkFragment.kt b/app/src/main/java/com/arcao/geocaching4locus/import_bookmarks/fragment/BookmarkFragment.kt index 6da9d958..2b43704d 100644 --- a/app/src/main/java/com/arcao/geocaching4locus/import_bookmarks/fragment/BookmarkFragment.kt +++ b/app/src/main/java/com/arcao/geocaching4locus/import_bookmarks/fragment/BookmarkFragment.kt @@ -11,7 +11,9 @@ import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.core.os.bundleOf import androidx.core.view.MenuProvider +import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope +import androidx.lifecycle.repeatOnLifecycle import androidx.paging.LoadState import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager @@ -89,19 +91,26 @@ class BookmarkFragment : BaseBookmarkFragment() { var savedState = savedInstanceState viewLifecycleOwner.lifecycleScope.launch { - viewModel.pagerFlow.collectLatest { data -> - adapter.submitData(data) + repeatOnLifecycle(Lifecycle.State.RESUMED) { + viewModel.pagerFlow.collectLatest { data -> + adapter.submitData(data) - if (savedState != null) { - adapter.tracker.onRestoreInstanceState(savedState) - savedState = null + if (savedState != null) { + adapter.tracker.onRestoreInstanceState(savedState) + savedState = null + } } } - adapter.loadStateFlow.collect { state -> - val isListEmpty = state.refresh is LoadState.NotLoading && adapter.itemCount == 0 - binding.isEmpty = isListEmpty - binding.isLoading = state.source.refresh is LoadState.Loading - state.handleErrors(viewModel::handleLoadError) + } + viewLifecycleOwner.lifecycleScope.launch { + repeatOnLifecycle(Lifecycle.State.RESUMED) { + adapter.loadStateFlow.collect { state -> + val isListEmpty = + state.refresh is LoadState.NotLoading && adapter.itemCount == 0 + binding.isEmpty = isListEmpty + binding.isLoading = state.source.refresh is LoadState.Loading + state.handleErrors(viewModel::handleLoadError) + } } } diff --git a/app/src/main/java/com/arcao/geocaching4locus/import_bookmarks/fragment/BookmarkListFragment.kt b/app/src/main/java/com/arcao/geocaching4locus/import_bookmarks/fragment/BookmarkListFragment.kt index 36fb7d6c..4edb3e77 100644 --- a/app/src/main/java/com/arcao/geocaching4locus/import_bookmarks/fragment/BookmarkListFragment.kt +++ b/app/src/main/java/com/arcao/geocaching4locus/import_bookmarks/fragment/BookmarkListFragment.kt @@ -8,7 +8,9 @@ import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.core.os.bundleOf import androidx.databinding.DataBindingUtil +import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope +import androidx.lifecycle.repeatOnLifecycle import androidx.paging.LoadState import androidx.recyclerview.widget.LinearLayoutManager import com.arcao.geocaching4locus.R @@ -63,14 +65,21 @@ class BookmarkListFragment : BaseBookmarkFragment() { } viewLifecycleOwner.lifecycleScope.launch { - viewModel.pagerFlow.collectLatest { data -> - adapter.submitData(data) + repeatOnLifecycle(Lifecycle.State.RESUMED) { + viewModel.pagerFlow.collectLatest { data -> + adapter.submitData(data) + } } - adapter.loadStateFlow.collect { state -> - val isListEmpty = state.refresh is LoadState.NotLoading && adapter.itemCount == 0 - binding.isEmpty = isListEmpty - binding.isLoading = state.source.refresh is LoadState.Loading - state.handleErrors(viewModel::handleLoadError) + } + viewLifecycleOwner.lifecycleScope.launch { + repeatOnLifecycle(Lifecycle.State.RESUMED) { + adapter.loadStateFlow.collect { state -> + val isListEmpty = + state.refresh is LoadState.NotLoading && adapter.itemCount == 0 + binding.isEmpty = isListEmpty + binding.isLoading = state.source.refresh is LoadState.Loading + state.handleErrors(viewModel::handleLoadError) + } } } diff --git a/versions.gradle b/versions.gradle index 5d94a289..d111c15e 100644 --- a/versions.gradle +++ b/versions.gradle @@ -1,5 +1,5 @@ ext { - version_name = '3.0.8' + version_name = '3.0.9' min_sdk_version = 21 compile_sdk_version = 32 @@ -27,7 +27,7 @@ ext { paging_version = '3.1.1' preference_version = '1.2.0' recycler_view_version = '1.2.1' - desugar_jdk_libs_version = '1.1.0' + desugar_jdk_libs_version = '1.1.8' // google crashlytics_version = '2.10.1' From bc400c0d6eed29d8d9ce449f41aeddbc8602d3d3 Mon Sep 17 00:00:00 2001 From: Arcao Date: Tue, 15 Nov 2022 07:13:34 +0100 Subject: [PATCH 2/3] Remove AD_ID permission in merged AndroidManifest.xml --- app/src/main/AndroidManifest.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2e7a1b2b..17b9fa0b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,6 +10,11 @@ + + + Date: Tue, 15 Nov 2022 07:16:26 +0100 Subject: [PATCH 3/3] Fix querying for web browser and custom tabs --- app/src/main/AndroidManifest.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 17b9fa0b..2580c5ac 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -376,5 +376,14 @@ + + + + + + + + +