Stats settings

master
Koitharu 2 years ago
parent 6cb6c891dd
commit f39ccb6223
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -609,6 +609,7 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
const val KEY_READING_TIME = "reading_time" const val KEY_READING_TIME = "reading_time"
const val KEY_PAGES_SAVE_DIR = "pages_dir" const val KEY_PAGES_SAVE_DIR = "pages_dir"
const val KEY_PAGES_SAVE_ASK = "pages_dir_ask" const val KEY_PAGES_SAVE_ASK = "pages_dir_ask"
const val KEY_STATS = "stats"
const val KEY_STATS_ENABLED = "stats_on" const val KEY_STATS_ENABLED = "stats_on"
const val KEY_APP_UPDATE = "app_update" const val KEY_APP_UPDATE = "app_update"
const val KEY_APP_TRANSLATION = "about_app_translation" const val KEY_APP_TRANSLATION = "about_app_translation"

@ -1,7 +1,6 @@
package org.koitharu.kotatsu.settings package org.koitharu.kotatsu.settings
import android.accounts.AccountManager import android.accounts.AccountManager
import android.content.ActivityNotFoundException
import android.content.Intent import android.content.Intent
import android.content.SharedPreferences import android.content.SharedPreferences
import android.net.Uri import android.net.Uri
@ -17,6 +16,7 @@ import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.ui.BasePreferenceFragment import org.koitharu.kotatsu.core.ui.BasePreferenceFragment
import org.koitharu.kotatsu.core.util.ext.getDisplayMessage import org.koitharu.kotatsu.core.util.ext.getDisplayMessage
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.core.util.ext.viewLifecycleScope import org.koitharu.kotatsu.core.util.ext.viewLifecycleScope
import org.koitharu.kotatsu.scrobbling.anilist.data.AniListRepository import org.koitharu.kotatsu.scrobbling.anilist.data.AniListRepository
import org.koitharu.kotatsu.scrobbling.common.data.ScrobblerRepository import org.koitharu.kotatsu.scrobbling.common.data.ScrobblerRepository
@ -27,7 +27,6 @@ import org.koitharu.kotatsu.scrobbling.mal.data.MALRepository
import org.koitharu.kotatsu.scrobbling.shikimori.data.ShikimoriRepository import org.koitharu.kotatsu.scrobbling.shikimori.data.ShikimoriRepository
import org.koitharu.kotatsu.sync.domain.SyncController import org.koitharu.kotatsu.sync.domain.SyncController
import org.koitharu.kotatsu.sync.ui.SyncSettingsIntent import org.koitharu.kotatsu.sync.ui.SyncSettingsIntent
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
@ -51,11 +50,12 @@ class ServicesSettingsFragment : BasePreferenceFragment(R.string.services),
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.pref_services) addPreferencesFromResource(R.xml.pref_services)
bindSuggestionsSummary()
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
bindSuggestionsSummary()
bindStatsSummary()
settings.subscribe(this) settings.subscribe(this)
} }
@ -76,6 +76,7 @@ class ServicesSettingsFragment : BasePreferenceFragment(R.string.services),
override fun onSharedPreferenceChanged(prefs: SharedPreferences?, key: String?) { override fun onSharedPreferenceChanged(prefs: SharedPreferences?, key: String?) {
when (key) { when (key) {
AppSettings.KEY_SUGGESTIONS -> bindSuggestionsSummary() AppSettings.KEY_SUGGESTIONS -> bindSuggestionsSummary()
AppSettings.KEY_STATS_ENABLED -> bindStatsSummary()
} }
} }
@ -194,4 +195,10 @@ class ServicesSettingsFragment : BasePreferenceFragment(R.string.services),
if (settings.isSuggestionsEnabled) R.string.enabled else R.string.disabled, if (settings.isSuggestionsEnabled) R.string.enabled else R.string.disabled,
) )
} }
private fun bindStatsSummary() {
findPreference<Preference>(AppSettings.KEY_STATS)?.setSummary(
if (settings.isStatsEnabled) R.string.enabled else R.string.disabled,
)
}
} }

@ -0,0 +1,14 @@
package org.koitharu.kotatsu.settings
import android.os.Bundle
import dagger.hilt.android.AndroidEntryPoint
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.ui.BasePreferenceFragment
@AndroidEntryPoint
class StatsSettingsFragment : BasePreferenceFragment(R.string.reading_stats) {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.pref_stats)
}
}

@ -598,4 +598,6 @@
<string name="ask_for_dest_dir_every_time">Ask for the destination dir every time</string> <string name="ask_for_dest_dir_every_time">Ask for the destination dir every time</string>
<string name="default_page_save_dir">Default page save directory</string> <string name="default_page_save_dir">Default page save directory</string>
<string name="remove_from_history">Remove from history</string> <string name="remove_from_history">Remove from history</string>
<string name="stats_enabled">Enable statistics</string>
<string name="reading_stats">Reading statistics</string>
</resources> </resources>

@ -28,6 +28,12 @@
android:summary="@string/related_manga_summary" android:summary="@string/related_manga_summary"
android:title="@string/related_manga" /> android:title="@string/related_manga" />
<Preference
android:fragment="org.koitharu.kotatsu.settings.StatsSettingsFragment"
android:key="stats"
android:title="@string/reading_stats"
app:allowDividerAbove="true" />
<PreferenceCategory android:title="@string/tracking"> <PreferenceCategory android:title="@string/tracking">
<Preference <Preference

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="stats_on"
android:layout="@layout/preference_toggle_header"
android:title="@string/stats_enabled" />
</androidx.preference.PreferenceScreen>
Loading…
Cancel
Save