[wip] Initial add incognito mode

This commit is contained in:
Zakhar Timoshenko
2022-07-15 00:10:11 +03:00
parent abf5c8fb3c
commit 71351ad701
7 changed files with 38 additions and 8 deletions

View File

@@ -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"

View File

@@ -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()

View File

@@ -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
}

View File

@@ -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<FragmentToolsBinding>(), View.OnClickListener {
class ToolsFragment : BaseFragment<FragmentToolsBinding>(), CompoundButton.OnCheckedChangeListener, View.OnClickListener {
private var updateChecker: AppUpdateChecker? = null
private val viewModel by viewModel<ToolsViewModel>()
@@ -41,6 +43,7 @@ class ToolsFragment : BaseFragment<FragmentToolsBinding>(), 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<FragmentToolsBinding>(), View.OnClickListener
}
}
override fun onCheckedChanged(button: CompoundButton?, isChecked: Boolean) {
// TODO Incognito enabling logic
}
override fun onWindowInsetsChanged(insets: Insets) {
binding.root.updatePadding(
left = insets.left,

View File

@@ -0,0 +1,11 @@
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M17.06 13C15.2 13 13.64 14.33 13.24 16.1C12.29 15.69 11.42 15.8 10.76 16.09C10.35 14.31 8.79 13 6.94 13C4.77 13 3 14.79 3 17C3 19.21 4.77 21 6.94 21C9 21 10.68 19.38 10.84 17.32C11.18 17.08 12.07 16.63 13.16 17.34C13.34 19.39 15 21 17.06 21C19.23 21 21 19.21 21 17C21 14.79 19.23 13 17.06 13M6.94 19.86C5.38 19.86 4.13 18.58 4.13 17S5.39 14.14 6.94 14.14C8.5 14.14 9.75 15.42 9.75 17S8.5 19.86 6.94 19.86M17.06 19.86C15.5 19.86 14.25 18.58 14.25 17S15.5 14.14 17.06 14.14C18.62 14.14 19.88 15.42 19.88 17S18.61 19.86 17.06 19.86M22 10.5H2V12H22V10.5M15.53 2.63C15.31 2.14 14.75 1.88 14.22 2.05L12 2.79L9.77 2.05L9.72 2.04C9.19 1.89 8.63 2.17 8.43 2.68L6 9H18L15.56 2.68L15.53 2.63Z" />
</vector>

View File

@@ -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">
<FrameLayout

View File

@@ -27,6 +27,18 @@
android:layout_height="wrap_content"
android:layout_marginVertical="@dimen/margin_small" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/incognito"
android:layout_width="match_parent"
android:layout_height="?android:listPreferredItemHeightSmall"
android:drawableStart="@drawable/ic_incognito"
android:drawablePadding="?android:listPreferredItemPaddingStart"
android:paddingStart="?android:listPreferredItemPaddingStart"
android:paddingEnd="?android:listPreferredItemPaddingEnd"
android:text="Incognito mode"
android:textAppearance="?attr/textAppearanceButton"
android:textColor="?attr/colorControlNormal"/>
<org.koitharu.kotatsu.base.ui.widgets.ListItemTextView
android:id="@+id/button_downloads"
android:layout_width="match_parent"