Skip to content

Commit 802816e

Browse files
Jim ClermontsJim Clermonts
authored andcommitted
added debugging stuff.
1 parent 2bcfd5c commit 802816e

18 files changed

Lines changed: 161 additions & 43 deletions

app/src/main/java/eu/theappfactory/dailyrecipes/data/BootstrapItemDataSource.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import javax.inject.Inject
1313
class BootstrapItemDataSource @Inject constructor(val context: Context) :
1414
ItemDataSource {
1515

16-
override fun getRemoteItemData(): ItemData? {
16+
override fun getRemoteItemData(showHidden: Boolean): ItemData? {
1717
throw Exception("Bootstrap data source doesn't have remote data")
1818
}
1919

app/src/main/java/eu/theappfactory/dailyrecipes/data/ItemDataDownloader.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class ItemDataDownloader(private val firestore: FirebaseFirestore) {
3636
}
3737

3838
@Throws(ExecutionException::class)
39-
fun fetch(): ItemData {
39+
fun fetch(showHidden: Boolean = false): ItemData {
4040
val items = ArrayList<ItemResponse>()
4141
val itemSnapshot = firestore.collection(ITEMS_COLLECTION).get()
4242
var currentId = ""
@@ -82,7 +82,9 @@ class ItemDataDownloader(private val firestore: FirebaseFirestore) {
8282
showThumbnail = currentItem.data?.get(SHOW_THUMBNAIL) as Boolean? ?: false,
8383
)
8484

85-
if (item.isHidden == "false" || item.isHidden == "") {
85+
if (showHidden) {
86+
items.add(item)
87+
} else if (showHidden.not() && (item.isHidden == "false" || item.isHidden == "")) {
8688
items.add(item)
8789
}
8890
}

app/src/main/java/eu/theappfactory/dailyrecipes/data/ItemDataSource.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import eu.theappfactory.dailyrecipes.model.ItemResponse
55
import eu.theappfactory.dailyrecipes.networking.Result
66

77
interface ItemDataSource {
8-
fun getRemoteItemData(): ItemData?
8+
fun getRemoteItemData(showHidden: Boolean = false): ItemData?
99
fun getOfflineItemData(): ItemData?
1010
suspend fun updateLikeCount(id: String, likeCount: Long) : Result<Any>
1111
suspend fun getItem(uri: String): Result<ItemResponse>

app/src/main/java/eu/theappfactory/dailyrecipes/data/ItemRepository.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ interface ItemRepository {
2121
/**
2222
* Refresh the cache with data from a remote data source.
2323
*/
24-
fun retrieveRemoteItemData(): ItemData
24+
fun retrieveRemoteItemData(showHidden: Boolean = false): ItemData
2525
/**
2626
* Get offline data for when no internet or first time use.
2727
*/
@@ -55,13 +55,13 @@ open class DefaultItemRepository @Inject constructor(
5555
// Prevents multiple consumers requesting data at the same time
5656
private val loadConfDataLock = Any()
5757

58-
override fun retrieveRemoteItemData(): ItemData {
58+
override fun retrieveRemoteItemData(showHidden: Boolean): ItemData {
5959
if (latestUpdateSource == UpdateSource.NETWORK && itemDataCache != null && itemDataCache?.items?.isNotEmpty() == true) {
6060
return itemDataCache as ItemData
6161
}
6262

6363
val itemData = try {
64-
remoteDataSource.getRemoteItemData()
64+
remoteDataSource.getRemoteItemData(showHidden)
6565
} catch (e: IOException) {
6666
latestException = e
6767
throw e
@@ -231,7 +231,7 @@ open class DefaultItemRepository @Inject constructor(
231231
override suspend fun getItemForImageUri(uri: String): Result<ItemResponse> = remoteDataSource.getItem(uri)
232232

233233
companion object {
234-
// In-memory cache of the conference data
235-
private var itemDataCache: ItemData? = null
234+
// In-memory cache of the item data
235+
var itemDataCache: ItemData? = null
236236
}
237237
}

app/src/main/java/eu/theappfactory/dailyrecipes/data/NetworkItemDataSource.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@ class NetworkItemDataSource @Inject constructor(
2222
private val firestore: FirebaseFirestore
2323
) : ItemDataSource {
2424

25-
var responseSource: ItemData? = null
26-
27-
override fun getRemoteItemData(): ItemData? {
25+
override fun getRemoteItemData(showHidden: Boolean): ItemData? {
2826
if (responseSource != null && responseSource?.items?.size ?: 0 > 0) {
2927
return responseSource
3028
}
@@ -38,7 +36,7 @@ class NetworkItemDataSource @Inject constructor(
3836

3937
Timber.d("Trying to download data from network")
4038
responseSource = try {
41-
ItemDataDownloader(firestore).fetch()
39+
ItemDataDownloader(firestore).fetch(showHidden)
4240
} catch (e: Exception) {
4341
Timber.e(e)
4442
throw e
@@ -90,4 +88,8 @@ class NetworkItemDataSource @Inject constructor(
9088

9189
return Result.Error(Exception("Couldn't find item"))
9290
}
91+
92+
companion object {
93+
var responseSource: ItemData? = null
94+
}
9395
}

app/src/main/java/eu/theappfactory/dailyrecipes/domain/home/GetItemsUseCase.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ import javax.inject.Inject
1515
open class GetItemsUseCase @Inject constructor(
1616
private val repository: ItemRepository,
1717
@IoDispatcher ioDispatcher: CoroutineDispatcher
18-
) : UseCase<Unit, ItemData>(ioDispatcher) {
18+
) : UseCase<Boolean, ItemData>(ioDispatcher) {
1919

20-
override fun execute(parameters: Unit): ItemData {
21-
return repository.retrieveRemoteItemData()
20+
override fun execute(parameters: Boolean): ItemData {
21+
return repository.retrieveRemoteItemData(parameters)
2222
}
2323
}

app/src/main/java/eu/theappfactory/dailyrecipes/persistence/PreferenceStorage.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import eu.theappfactory.dailyrecipes.persistence.PreferenceStorage.Companion.PRE
1414
import eu.theappfactory.dailyrecipes.persistence.PreferenceStorage.Companion.PREF_FIRST_TIME_USE
1515
import eu.theappfactory.dailyrecipes.persistence.PreferenceStorage.Companion.PREF_FOOD_CATEGORIES
1616
import eu.theappfactory.dailyrecipes.persistence.PreferenceStorage.Companion.PREF_ONBOARDING
17+
import eu.theappfactory.dailyrecipes.persistence.PreferenceStorage.Companion.PREF_SHUFFLE_VIDEOS
1718
import eu.theappfactory.dailyrecipes.persistence.PreferenceStorage.Companion.PREF_SKIP_REGISTER_FLOW
1819
import eu.theappfactory.dailyrecipes.persistence.PreferenceStorage.Companion.PREF_SNACKBAR_IS_STOPPED
1920
import eu.theappfactory.dailyrecipes.persistence.PreferenceStorage.Companion.USER_HAS_ADDED_FRIENDS
@@ -44,6 +45,7 @@ interface PreferenceStorage {
4445
var codeHasBeenSuccesfullyUsed: Boolean
4546
var userHasAddedFriends: Boolean
4647
var firstTimeSavingItem: Boolean
48+
var shuffleVideos: Boolean
4749
fun clearLoggedInSession()
4850

4951
companion object {
@@ -55,6 +57,7 @@ interface PreferenceStorage {
5557
const val PREF_DARK_MODE_ENABLED = "pref_dark_mode"
5658
const val PREF_SNACKBAR_IS_STOPPED = "pref_snackbar_is_stopped"
5759
const val PREF_FIRST_TIME_SAVE = "pref_first_time_save"
60+
const val PREF_SHUFFLE_VIDEOS = "pref_shuffle_videos"
5861

5962
const val FIRST_TIME_VIDEOS_ARE_SHOWN = "first_time_videos_are_shown"
6063
const val LAST_KNOWN_COOKIE = "last_known_cookie"
@@ -123,6 +126,7 @@ class SharedPreferenceStorage @Inject constructor(context: Context) : Preference
123126

124127
override var firstTimeSavingItem by BooleanPreference(prefs, PREF_FIRST_TIME_SAVE, true)
125128

129+
override var shuffleVideos by BooleanPreference(prefs, PREF_SHUFFLE_VIDEOS, true)
126130

127131
override var observableSelectedTheme: Flow<String?>
128132
get() = selectedThemeChannel.asFlow()

app/src/main/java/eu/theappfactory/dailyrecipes/ui/categories/CategoriesFragment.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,8 @@ class CategoriesFragment : DaggerFragment() {
7979
}
8080

8181
viewModel.typesUpdate.observe(viewLifecycleOwner) {
82-
if (viewModel.openedActivityFromSettings) {
83-
requireActivity().finish()
84-
} else {
85-
PhoneNumberRegistrationActivity.start(requireActivity())
86-
}
82+
PhoneNumberRegistrationActivity.start(requireActivity())
83+
requireActivity().finish()
8784
}
8885

8986
viewModel.items.observe(viewLifecycleOwner) {

app/src/main/java/eu/theappfactory/dailyrecipes/ui/categories/CategoriesViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class CategoriesViewModel @Inject constructor(
5959
viewModelScope.launch {
6060
currentFirebaseUser.collect {
6161
getUserId().let {
62-
viewModelScope.launch { getItemsUseCase.invoke(Unit) }
62+
viewModelScope.launch { getItemsUseCase.invoke(false) }
6363
}
6464
}
6565
}

app/src/main/java/eu/theappfactory/dailyrecipes/ui/debug/DebugActivity.kt

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class DebugActivity : BaseActivity() {
5656
binding.dateCurrentVideoText.text =
5757
getString(R.string.settings_title_date_textview) + getDateString(timestamp.seconds)
5858

59-
viewModel = ViewModelProvider(this, viewModelFactory).get(DebugViewModel::class.java)
59+
viewModel = ViewModelProvider(this, viewModelFactory)[DebugViewModel::class.java]
6060

6161
viewModel.result.observe(this, EventObserver {
6262
runOnUiThread {
@@ -66,10 +66,14 @@ class DebugActivity : BaseActivity() {
6666
Toast.LENGTH_LONG
6767
).show()
6868
}
69+
70+
finish()
6971
})
7072

7173
viewModel.doneLoading.observe(this) {
72-
binding.videoResetButton.setOnClickListener { viewModel.eraseAlreadySeen() }
74+
binding.videoResetButton.setOnClickListener {
75+
viewModel.eraseAlreadySeen()
76+
}
7377
binding.userIdText.text = getString(R.string.settings_title_user_id_textview) + it
7478
}
7579

@@ -81,11 +85,44 @@ class DebugActivity : BaseActivity() {
8185
binding.recycler.adapter = adapter
8286
}
8387

88+
viewModel.doneGettingItems.observe(this) {
89+
finish()
90+
}
91+
8492
binding.checkIngredientsButton.setOnClickListener {
8593
showLoading(loading = true)
8694
viewModel.checkForMissingIngredients()
8795
}
8896

97+
binding.hideItemsButtons.setOnClickListener {
98+
viewModel.showHiddenItems(false)
99+
}
100+
101+
binding.showItemsButton.setOnClickListener {
102+
viewModel.showHiddenItems(true)
103+
}
104+
105+
binding.shuffleSwitch.isChecked = viewModel.getShufflePreference()
106+
binding.shuffleSwitch.setOnCheckedChangeListener { _, isChecked ->
107+
viewModel.setShufflePreference(isChecked)
108+
109+
val shuffleText = if (isChecked) {
110+
"Videos worden geshuffled."
111+
} else {
112+
"Geen Shuffle"
113+
}
114+
115+
runOnUiThread {
116+
Toast.makeText(
117+
applicationContext,
118+
shuffleText,
119+
Toast.LENGTH_LONG
120+
).show()
121+
}
122+
123+
finish()
124+
}
125+
89126
viewModel.load()
90127
}
91128

0 commit comments

Comments
 (0)