@@ -49,11 +49,10 @@ class Frecents : Plugin() {
4949
5050 private fun toggleFavoriteGif (model : ModelGif ) {
5151 val tenorGifUrl = URLDecoder .decode(model.tenorGifUrl, Charset .defaultCharset().name())
52- val isFavorited = frecencySettings.settings.favorite_gifs!! .gifs.containsKey(tenorGifUrl)
52+ val gifs = frecencySettings.settings.favorite_gifs?.gifs.orEmpty().toMutableMap()
53+ val isFavorited = tenorGifUrl in gifs
5354
5455 frecencySettings.updateSettings {
55- val gifs = it.favorite_gifs!! .gifs.toMutableMap()
56-
5756 if (isFavorited) {
5857 gifs.remove(tenorGifUrl)
5958 } else {
@@ -66,7 +65,7 @@ class Frecents : Plugin() {
6665 )
6766 }
6867
69- it. copy(favorite_gifs = it. favorite_gifs.copy(gifs = gifs))
68+ copy(favorite_gifs = favorite_gifs? .copy(gifs = gifs))
7069 }
7170
7271 frecencySettings.patchSettingsAsync(
@@ -97,7 +96,7 @@ class Frecents : Plugin() {
9796
9897 frecencySettings.observeSettings().switchMap { frecents ->
9998 ScalarSynchronousObservable (
100- frecents.favorite_emojis!! .emojis.mapNotNull {
99+ frecents.favorite_emojis? .emojis.orEmpty() .mapNotNull {
101100 if (pattern.matcher(it).matches()) {
102101 Favorite .FavCustomEmoji (it)
103102 } else {
@@ -144,7 +143,7 @@ class Frecents : Plugin() {
144143 val emojiIdsMap = param.args[0 ] as Map <String , Emoji >
145144
146145 FrecencyCalculator .sortEmojis(
147- frecencyMap = frecencySettings.settings.emoji_frecency!! .emojis,
146+ frecencyMap = frecencySettings.settings.emoji_frecency? .emojis.orEmpty() ,
148147 emojiIdsMap = emojiIdsMap,
149148 unicodeEmojisMap = unicodeEmojisNamesMap
150149 )
@@ -162,16 +161,17 @@ class Frecents : Plugin() {
162161 }
163162
164163 frecencySettings.updateSettings {
165- val updatedEmojis = if (favorite) {
166- it. favorite_emojis!! .emojis + data
167- } else {
168- it.favorite_emojis !! .emojis.filter { emoji -> emoji != data }
169- }
170-
171- it.copy(
172- favorite_emojis = it.favorite_emojis !! .copy(emojis = updatedEmojis )
164+ copy(
165+ favorite_emojis = favorite_emojis?.copy(
166+ emojis = if (favorite) {
167+ favorite_emojis.emojis + data
168+ } else {
169+ favorite_emojis.emojis.filter { it != data }
170+ }
171+ )
173172 )
174173 }
174+
175175 frecencySettings.patchSettingsAsync(
176176 onError = { _, e ->
177177 Utils .showToast(" Failed to update favorite emoji: ${e.message} " )
@@ -192,7 +192,7 @@ class Frecents : Plugin() {
192192 // Patch to use the frequently used stickers from the frecency user settings
193193 patcher.instead<StoreStickers >(" observeFrequentlyUsedStickerIds" ) {
194194 frecencySettings.observeSettings().map { settings ->
195- FrecencyCalculator .sortStickers(settings.sticker_frecency!! .stickers)
195+ FrecencyCalculator .sortStickers(settings.sticker_frecency? .stickers.orEmpty() )
196196 }
197197 }
198198
@@ -302,8 +302,9 @@ class Frecents : Plugin() {
302302 ) { (_, gifCategoryItem: GifCategoryItem ? ) ->
303303 if (gifCategoryItem !is GifCategoryItemFavorites ) return @after
304304
305- if (frecencySettings.settings.favorite_gifs!! .gifs.isNotEmpty()) {
306- setPreviewImage(GifUtil .mqGifUrl(frecencySettings.settings.favorite_gifs!! .gifs.values.random().src))
305+ val favoriteGifs = frecencySettings.settings.favorite_gifs?.gifs.orEmpty()
306+ if (favoriteGifs.isNotEmpty()) {
307+ setPreviewImage(GifUtil .mqGifUrl(favoriteGifs.values.random().src))
307308 } else {
308309 // Clear it out, so it doesn't show the last preview
309310 setPreviewImage(" " )
@@ -342,7 +343,8 @@ class Frecents : Plugin() {
342343 is GifCategoryItem .Standard -> store.observeGifsForSearchQuery(item.gifCategory.categoryName)
343344 is GifCategoryItem .Trending -> store.observeTrendingCategoryGifs()
344345 is GifCategoryItemFavorites -> frecencySettings.observeSettings().map {
345- it.favorite_gifs!! .gifs
346+ it.favorite_gifs?.gifs
347+ .orEmpty()
346348 .asSequence()
347349 .sortedByDescending { it.value.order }
348350 .map { (tenorUrl, v) ->
0 commit comments