From fe39d81d17330d7e4af7b45a016414b531c6efb2 Mon Sep 17 00:00:00 2001 From: Simon Dankelmann Date: Wed, 20 Nov 2024 15:21:20 +0100 Subject: [PATCH 1/2] Added new Info Label for patched/fixed hints in UI --- .../Models/AdvertisementSetCollection.kt | 1 + .../ui/advertisement/AdvertisementFragment.kt | 29 +++++++++++++++++++ .../advertisement/AdvertisementViewModel.kt | 4 +++ .../bluetoothlespam/ui/start/StartFragment.kt | 13 ++++++++- .../res/layout/fragment_advertisement.xml | 9 ++++++ 5 files changed, 55 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/de/simon/dankelmann/bluetoothlespam/Models/AdvertisementSetCollection.kt b/app/src/main/java/de/simon/dankelmann/bluetoothlespam/Models/AdvertisementSetCollection.kt index 60d2c576..a0e838be 100644 --- a/app/src/main/java/de/simon/dankelmann/bluetoothlespam/Models/AdvertisementSetCollection.kt +++ b/app/src/main/java/de/simon/dankelmann/bluetoothlespam/Models/AdvertisementSetCollection.kt @@ -4,6 +4,7 @@ import java.io.Serializable class AdvertisementSetCollection : Serializable { var title = "" + var hints:MutableList = mutableListOf() var advertisementSetLists:MutableList = mutableListOf() fun getNumberOfLists():Int{ diff --git a/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/advertisement/AdvertisementFragment.kt b/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/advertisement/AdvertisementFragment.kt index 042df1aa..45b26356 100644 --- a/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/advertisement/AdvertisementFragment.kt +++ b/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/advertisement/AdvertisementFragment.kt @@ -103,6 +103,7 @@ class AdvertisementFragment : Fragment(), IAdvertisementServiceCallback, IAdvert fun setAdvertisementSetCollection(advertisementSetCollection: AdvertisementSetCollection){ _viewModel!!.advertisementSetCollectionTitle.postValue(advertisementSetCollection.title) _viewModel!!.advertisementSetCollectionSubTitle.postValue(getAdvertisementSetCollectionSubTitle(advertisementSetCollection)) + _viewModel!!.advertisementSetCollectionHint.postValue(getAdvertisementSetCollectionHint(advertisementSetCollection)) // Update UI setupExpandableListView(advertisementSetCollection) @@ -111,6 +112,29 @@ class AdvertisementFragment : Fragment(), IAdvertisementServiceCallback, IAdvert //AppContext.getAdvertisementSetQueueHandler().setAdvertisementSetCollection(advertisementSetCollection) } + fun getAdvertisementSetCollectionHint(advertisementSetCollection: AdvertisementSetCollection):String{ + var hint = "" + var sep = "" + Log.d(_logTag, "Collection: " + advertisementSetCollection.advertisementSetLists.count()) + + + if(advertisementSetCollection.hints.isNotEmpty()){ + + advertisementSetCollection.hints.forEach { it -> + Log.d(_logTag, "CURRENT HINT: " +it) + hint = hint + sep + it + //hint += sep + it + sep = ", " + Log.d(_logTag, "HINT IS NOW: " + hint) + } + } else { + hint = "-" + } + + Log.d(_logTag, "Returning: " + hint) + return hint + } + private fun setupExpandableListView(advertisementSetCollection: AdvertisementSetCollection) { Log.d(_logTag, "Collection: " + advertisementSetCollection.advertisementSetLists.count()) @@ -204,6 +228,7 @@ class AdvertisementFragment : Fragment(), IAdvertisementServiceCallback, IAdvert var advertisementSetCollectionSubTitle = _binding!!.advertisementFragmentCollectionSubtitle var advertisementSetTitle = _binding!!.advertisementFragmentCurrentSetTitle var advertisementSetSubTitle = _binding!!.advertisementFragmentCurrentSetSubTitle + var advertisementSetCollectionHint = _binding!!.advertisementFragmentCollectionHint var queueModeButtonSingle = _binding!!.advertisementFragmentQueueModeSingleButton var queueModeButtonLinear = _binding!!.advertisementFragmentQueueModeLinearButton var queueModeButtonRandom = _binding!!.advertisementFragmentQueueModeRandomButton @@ -263,6 +288,10 @@ class AdvertisementFragment : Fragment(), IAdvertisementServiceCallback, IAdvert advertisementSetCollectionSubTitle.text = value } + _viewModel!!.advertisementSetCollectionHint.observe(viewLifecycleOwner) { value -> + advertisementSetCollectionHint.text = value + } + _viewModel!!.advertisementSetTitle.observe(viewLifecycleOwner) { value -> advertisementSetTitle.text = value } diff --git a/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/advertisement/AdvertisementViewModel.kt b/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/advertisement/AdvertisementViewModel.kt index b17bec3d..0fd315b0 100644 --- a/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/advertisement/AdvertisementViewModel.kt +++ b/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/advertisement/AdvertisementViewModel.kt @@ -22,6 +22,10 @@ class AdvertisementViewModel : ViewModel() { value = "-" } + var advertisementSetCollectionHint = MutableLiveData().apply { + value = "-" + } + var advertisementSetTitle = MutableLiveData().apply { value = "-" } diff --git a/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/start/StartFragment.kt b/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/start/StartFragment.kt index 1474e2b8..929032bd 100644 --- a/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/start/StartFragment.kt +++ b/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/start/StartFragment.kt @@ -366,7 +366,6 @@ class StartFragment : Fragment() { startFragmentDatabaseCardViewContentWrapper.background = resources.getDrawable(R.drawable.gradient_error, AppContext.getContext().theme) } } - } fun navigateToAdvertisementFragmentWithType(advertisementSetTypes: List, advertisementSetCollectionTitle:String){ @@ -376,6 +375,17 @@ class StartFragment : Fragment() { var advertisementSetCollection = AdvertisementSetCollection() advertisementSetCollection.title = advertisementSetCollectionTitle + if(advertisementSetTypes.contains(AdvertisementSetType.ADVERTISEMENT_TYPE_FAST_PAIRING_DEVICE) || + advertisementSetTypes.contains(AdvertisementSetType.ADVERTISEMENT_TYPE_FAST_PAIRING_PHONE_SETUP) || + advertisementSetTypes.contains(AdvertisementSetType.ADVERTISEMENT_TYPE_FAST_PAIRING_NON_PRODUCTION) || + advertisementSetTypes.contains(AdvertisementSetType.ADVERTISEMENT_TYPE_FAST_PAIRING_DEBUG)){ + advertisementSetCollection.hints.add("Fast Pairing is mostly fixed in Android") + } + + if(advertisementSetTypes.contains(AdvertisementSetType.ADVERTISEMENT_TYPE_CONTINUITY_IOS_17_CRASH)){ + advertisementSetCollection.hints.add("Crash was fixed in iOS 18") + } + advertisementSetTypes.forEach { advertisementSetType -> var titlePrefix = when(advertisementSetType){ AdvertisementSetType.ADVERTISEMENT_TYPE_UNDEFINED -> "Undefined" @@ -411,6 +421,7 @@ class StartFragment : Fragment() { // Add List to the Collection advertisementSetCollection.advertisementSetLists.add(advertisementSetList) + hideLoadingSpinner() } diff --git a/app/src/main/res/layout/fragment_advertisement.xml b/app/src/main/res/layout/fragment_advertisement.xml index 4a0e2478..cfd6f9bc 100644 --- a/app/src/main/res/layout/fragment_advertisement.xml +++ b/app/src/main/res/layout/fragment_advertisement.xml @@ -44,6 +44,15 @@ android:text="test" android:textColor="@color/text_color" android:textStyle="italic" + app:layout_constraintBottom_toTopOf="@id/advertisementFragmentCollectionHint" /> + + From 5bbd4a90b7468b52f9de860afc60df15519ed68b Mon Sep 17 00:00:00 2001 From: Simon Dankelmann Date: Wed, 27 Nov 2024 14:19:05 +0100 Subject: [PATCH 2/2] Added new hint text from @de4uth --- .../dankelmann/bluetoothlespam/ui/start/StartFragment.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/start/StartFragment.kt b/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/start/StartFragment.kt index 929032bd..ba446502 100644 --- a/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/start/StartFragment.kt +++ b/app/src/main/java/de/simon/dankelmann/bluetoothlespam/ui/start/StartFragment.kt @@ -379,11 +379,11 @@ class StartFragment : Fragment() { advertisementSetTypes.contains(AdvertisementSetType.ADVERTISEMENT_TYPE_FAST_PAIRING_PHONE_SETUP) || advertisementSetTypes.contains(AdvertisementSetType.ADVERTISEMENT_TYPE_FAST_PAIRING_NON_PRODUCTION) || advertisementSetTypes.contains(AdvertisementSetType.ADVERTISEMENT_TYPE_FAST_PAIRING_DEBUG)){ - advertisementSetCollection.hints.add("Fast Pairing is mostly fixed in Android") + advertisementSetCollection.hints.add("Fast Pairing is patched on all modern devices due to this we no longer offer support for this feature") } if(advertisementSetTypes.contains(AdvertisementSetType.ADVERTISEMENT_TYPE_CONTINUITY_IOS_17_CRASH)){ - advertisementSetCollection.hints.add("Crash was fixed in iOS 18") + advertisementSetCollection.hints.add("Devices on iOS 18 or above will not crash but still get pop-ups") } advertisementSetTypes.forEach { advertisementSetType ->