From 71351ad701564fb7733e185560987f9dfb497490 Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Fri, 15 Jul 2022 00:10:11 +0300 Subject: [PATCH] [wip] Initial add incognito mode --- .../org/koitharu/kotatsu/core/prefs/AppSettings.kt | 5 +++++ .../kotatsu/history/domain/HistoryRepository.kt | 2 +- .../org/koitharu/kotatsu/main/ui/MainActivity.kt | 4 ---- .../koitharu/kotatsu/settings/tools/ToolsFragment.kt | 9 ++++++++- app/src/main/res/drawable/ic_incognito.xml | 11 +++++++++++ app/src/main/res/layout/activity_main.xml | 3 +-- app/src/main/res/layout/fragment_tools.xml | 12 ++++++++++++ 7 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 app/src/main/res/drawable/ic_incognito.xml diff --git a/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt b/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt index 69756fae8..826573312 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt @@ -112,6 +112,10 @@ class AppSettings(context: Context) { val isHistoryExcludeNsfw: Boolean get() = prefs.getBoolean(KEY_HISTORY_EXCLUDE_NSFW, false) + var isIncognitoModeEnabled: Boolean + get() = prefs.getBoolean(KEY_INCOGNITO_MODE, false) + set(value) = prefs.edit { putBoolean(KEY_INCOGNITO_MODE, value) } + var chaptersReverse: Boolean get() = prefs.getBoolean(KEY_REVERSE_CHAPTERS, false) set(value) = prefs.edit { putBoolean(KEY_REVERSE_CHAPTERS, value) } @@ -310,6 +314,7 @@ class AppSettings(context: Context) { const val KEY_ALL_FAVOURITES_VISIBLE = "all_favourites_visible" const val KEY_DOH = "doh" const val KEY_EXIT_CONFIRM = "exit_confirm" + const val KEY_INCOGNITO_MODE = "incognito" // About const val KEY_APP_UPDATE = "app_update" diff --git a/app/src/main/java/org/koitharu/kotatsu/history/domain/HistoryRepository.kt b/app/src/main/java/org/koitharu/kotatsu/history/domain/HistoryRepository.kt index 8f574d37d..510cf16d0 100644 --- a/app/src/main/java/org/koitharu/kotatsu/history/domain/HistoryRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/history/domain/HistoryRepository.kt @@ -65,7 +65,7 @@ class HistoryRepository( } suspend fun addOrUpdate(manga: Manga, chapterId: Long, page: Int, scroll: Int, percent: Float) { - if (manga.isNsfw && settings.isHistoryExcludeNsfw) { + if (manga.isNsfw && settings.isHistoryExcludeNsfw || settings.isIncognitoModeEnabled) { return } val tags = manga.tags.toEntities() diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt index 5e3097eb3..721ebc28e 100644 --- a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt @@ -239,19 +239,15 @@ class MainActivity : when (itemId) { R.id.nav_library -> { setPrimaryFragment(LibraryFragment.newInstance()) - binding.root.isLiftAppBarOnScroll = true // придумать лучше } R.id.nav_explore -> { setPrimaryFragment(ExploreFragment.newInstance()) - binding.root.isLiftAppBarOnScroll = true // --//-- } R.id.nav_feed -> { setPrimaryFragment(FeedFragment.newInstance()) - binding.root.isLiftAppBarOnScroll = true // --//-- } R.id.nav_tools -> { setPrimaryFragment(ToolsFragment.newInstance()) - binding.root.isLiftAppBarOnScroll = true // --//-- } else -> return false } diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/tools/ToolsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/settings/tools/ToolsFragment.kt index 7425af696..6f4ec3ca9 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/tools/ToolsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/tools/ToolsFragment.kt @@ -6,6 +6,7 @@ import android.transition.TransitionManager import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.CompoundButton import androidx.annotation.ColorInt import androidx.core.graphics.ColorUtils import androidx.core.graphics.Insets @@ -26,7 +27,8 @@ import org.koitharu.kotatsu.utils.FileSize import org.koitharu.kotatsu.utils.ext.getThemeColor import com.google.android.material.R as materialR -class ToolsFragment : BaseFragment(), View.OnClickListener { + +class ToolsFragment : BaseFragment(), CompoundButton.OnCheckedChangeListener, View.OnClickListener { private var updateChecker: AppUpdateChecker? = null private val viewModel by viewModel() @@ -41,6 +43,7 @@ class ToolsFragment : BaseFragment(), View.OnClickListener binding.buttonDownloads.setOnClickListener(this) binding.cardUpdate.root.setOnClickListener(this) binding.cardUpdate.buttonDownload.setOnClickListener(this) + binding.incognito.setOnCheckedChangeListener(this) viewModel.storageUsage.observe(viewLifecycleOwner, ::onStorageUsageChanged) } @@ -52,6 +55,10 @@ class ToolsFragment : BaseFragment(), View.OnClickListener } } + override fun onCheckedChanged(button: CompoundButton?, isChecked: Boolean) { + // TODO Incognito enabling logic + } + override fun onWindowInsetsChanged(insets: Insets) { binding.root.updatePadding( left = insets.left, diff --git a/app/src/main/res/drawable/ic_incognito.xml b/app/src/main/res/drawable/ic_incognito.xml new file mode 100644 index 000000000..5c98eb428 --- /dev/null +++ b/app/src/main/res/drawable/ic_incognito.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 321f2d767..cba54b5f6 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -20,8 +20,7 @@ android:layout_height="wrap_content" android:clipToPadding="false" android:fitsSystemWindows="true" - android:paddingLeft="16dp" - android:paddingRight="16dp" + android:paddingHorizontal="16dp" android:stateListAnimator="@null"> + +