Skip to content

Commit 87c5ee6

Browse files
committed
Fix bookmark bug + add reset bookmarks setting
1 parent 110833b commit 87c5ee6

File tree

7 files changed

+31
-29
lines changed

7 files changed

+31
-29
lines changed

app/.idea/deploymentTargetDropDown.xml

Lines changed: 0 additions & 17 deletions
This file was deleted.

app/.idea/misc.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
package nl.gardensnakes.ukrainefield
22

3-
import android.content.SharedPreferences
43
import android.os.Bundle
54
import android.preference.*
6-
import androidx.fragment.app.Fragment
7-
import android.view.LayoutInflater
8-
import android.view.View
9-
import android.view.ViewGroup
5+
import androidx.preference.Preference
106
import androidx.preference.PreferenceFragmentCompat
7+
import nl.gardensnakes.ukrainefield.helper.BookmarkHelper
118

129
class SettingsFragment : PreferenceFragmentCompat() {
1310

@@ -17,5 +14,9 @@ class SettingsFragment : PreferenceFragmentCompat() {
1714

1815
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
1916
setPreferencesFromResource(R.xml.settings, rootKey)
17+
findPreference<Preference>("reset_bookmarks")?.setOnPreferenceClickListener {
18+
context?.let { context -> BookmarkHelper().resetBookmarks(context) }
19+
true
20+
}
2021
}
2122
}

app/app/src/main/java/nl/gardensnakes/ukrainefield/helper/BookmarkHelper.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ class BookmarkHelper {
2828
if(json != null) saveToJsonFile(json, context)
2929
}
3030

31+
fun resetBookmarks(context: Context){
32+
saveToJsonFile("", context)
33+
}
34+
3135

3236
fun isFavorite(messageUrl: String, context: Context): Boolean {
3337
return getAll(context)?.any {

app/app/src/main/java/nl/gardensnakes/ukrainefield/view/adapter/FeedCardAdapter.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package nl.gardensnakes.ukrainefield.view.adapter
33
import android.content.Context
44
import android.content.Intent
55
import android.net.Uri
6-
import android.provider.Settings.Global.getString
76
import android.view.LayoutInflater
87
import android.view.View
98
import android.view.ViewGroup
@@ -13,7 +12,6 @@ import androidx.recyclerview.widget.RecyclerView
1312
import com.afdhal_fa.imageslider.ImageSlider
1413
import com.afdhal_fa.imageslider.`interface`.ItemClickListener
1514
import com.afdhal_fa.imageslider.model.SlideUIModel
16-
import com.bumptech.glide.Glide
1715
import nl.gardensnakes.ukrainefield.MediaDetailActivity
1816
import nl.gardensnakes.ukrainefield.R
1917
import nl.gardensnakes.ukrainefield.data.remote.HttpRoutes
@@ -72,7 +70,7 @@ class FeedCardAdapter(private var mList: List<FeedMessageResponse>, private val
7270
holder.postedAtText.text =
7371
"${context.getString(R.string.posted_at)} ${TimeHelper.epochToTimeString(feedData.epochTime.toLong())}"
7472

75-
updateBookmarkText(bookmarkHelper, feedData.messageURL ?: "", holder, position)
73+
updateBookmarkText(feedData.messageURL ?: "", holder, position)
7674

7775
if (feedData.videos.isEmpty() && feedData.images.isEmpty()) {
7876
holder.imageSlide.visibility = View.GONE
@@ -121,8 +119,8 @@ class FeedCardAdapter(private var mList: List<FeedMessageResponse>, private val
121119
}
122120

123121
holder.bookmarkButton.setOnClickListener {
124-
bookmarkHelper.bookmark(feedData, context)
125-
updateBookmarkText(bookmarkHelper, feedData.messageURL ?: "", holder, position)
122+
BookmarkHelper().bookmark(feedData, context)
123+
updateBookmarkText(feedData.messageURL ?: "", holder, position)
126124
}
127125

128126
}
@@ -132,8 +130,8 @@ class FeedCardAdapter(private var mList: List<FeedMessageResponse>, private val
132130
return mList.size
133131
}
134132

135-
private fun updateBookmarkText(bookmarkHelper: BookmarkHelper, messageUrl: String, holder: ViewHolder, position: Int){
136-
var isBookmarked = bookmarkHelper.isFavorite(messageUrl, context)
133+
private fun updateBookmarkText(messageUrl: String, holder: ViewHolder, position: Int){
134+
var isBookmarked = BookmarkHelper().isFavorite(messageUrl, context)
137135
if(isBookmarked){
138136
holder.bookmarkButton.text = context.getString(R.string.remove_bookmark)
139137
}

app/app/src/main/res/values/strings.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,7 @@
1616
<string name="ukraine_map">Ukraine Map</string>
1717
<string name="bookmarks">Bookmarks</string>
1818
<string name="settings">Settings</string>
19+
<string name="other">Other</string>
20+
<string name="reset_bookmarks_summary">Removes all bookmarked items</string>
21+
<string name="reset_bookmarks">Reset bookmarks</string>
1922
</resources>

app/app/src/main/res/xml/settings.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,16 @@
1111
app:defaultValue="true"/>
1212
</PreferenceCategory>
1313

14+
<PreferenceCategory
15+
app:key="other_category"
16+
app:title="@string/other">
17+
18+
<Preference
19+
app:key="reset_bookmarks"
20+
app:summary="@string/reset_bookmarks_summary"
21+
app:title="@string/reset_bookmarks"/>
22+
23+
</PreferenceCategory>
24+
25+
1426
</PreferenceScreen>

0 commit comments

Comments
 (0)