|
|
|
@ -10,16 +10,19 @@ import android.view.Menu
|
|
|
|
|
import android.view.MenuItem
|
|
|
|
|
import android.view.View
|
|
|
|
|
import android.view.ViewGroup
|
|
|
|
|
import android.widget.EditText
|
|
|
|
|
import android.widget.TextView
|
|
|
|
|
import androidx.annotation.MenuRes
|
|
|
|
|
import androidx.annotation.StringRes
|
|
|
|
|
import androidx.appcompat.content.res.AppCompatResources
|
|
|
|
|
import androidx.appcompat.view.menu.MenuBuilder
|
|
|
|
|
import androidx.appcompat.widget.PopupMenu
|
|
|
|
|
import androidx.appcompat.widget.SearchView
|
|
|
|
|
import androidx.appcompat.widget.TooltipCompat
|
|
|
|
|
import androidx.core.view.children
|
|
|
|
|
import androidx.core.view.descendants
|
|
|
|
|
import androidx.core.view.forEach
|
|
|
|
|
import androidx.core.view.inputmethod.EditorInfoCompat
|
|
|
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
|
|
|
import androidx.viewpager.widget.ViewPager
|
|
|
|
|
import com.google.android.material.card.MaterialCardView
|
|
|
|
@ -29,8 +32,14 @@ import com.google.android.material.elevation.ElevationOverlayProvider
|
|
|
|
|
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
|
|
|
|
|
import com.google.android.material.snackbar.Snackbar
|
|
|
|
|
import eu.kanade.tachiyomi.R
|
|
|
|
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
|
|
|
|
import eu.kanade.tachiyomi.data.preference.asImmediateFlow
|
|
|
|
|
import eu.kanade.tachiyomi.util.system.getResourceColor
|
|
|
|
|
import eu.kanade.tachiyomi.util.system.isNightMode
|
|
|
|
|
import kotlinx.coroutines.CoroutineScope
|
|
|
|
|
import kotlinx.coroutines.flow.launchIn
|
|
|
|
|
import uy.kohesive.injekt.Injekt
|
|
|
|
|
import uy.kohesive.injekt.api.get
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns coordinates of view.
|
|
|
|
@ -255,3 +264,35 @@ fun ViewPager.getActivePageView(): View? {
|
|
|
|
|
false
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Sets Flow to this [SearchView] that sets [EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING] to imeOptions
|
|
|
|
|
* if [PreferencesHelper.incognitoMode] is true.
|
|
|
|
|
*
|
|
|
|
|
* Some IMEs may not respect this flag.
|
|
|
|
|
*/
|
|
|
|
|
fun SearchView.setIncognitoFlow(viewScope: CoroutineScope) {
|
|
|
|
|
Injekt.get<PreferencesHelper>().incognitoMode().asImmediateFlow {
|
|
|
|
|
imeOptions = if (it) {
|
|
|
|
|
imeOptions or EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING
|
|
|
|
|
} else {
|
|
|
|
|
imeOptions and EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING.inv()
|
|
|
|
|
}
|
|
|
|
|
}.launchIn(viewScope)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Sets Flow to this [EditText] that sets [EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING] to imeOptions
|
|
|
|
|
* if [PreferencesHelper.incognitoMode] is true.
|
|
|
|
|
*
|
|
|
|
|
* Some IMEs may not respect this flag.
|
|
|
|
|
*/
|
|
|
|
|
fun EditText.setIncognitoFlow(viewScope: CoroutineScope) {
|
|
|
|
|
Injekt.get<PreferencesHelper>().incognitoMode().asImmediateFlow {
|
|
|
|
|
imeOptions = if (it) {
|
|
|
|
|
imeOptions or EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING
|
|
|
|
|
} else {
|
|
|
|
|
imeOptions and EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING.inv()
|
|
|
|
|
}
|
|
|
|
|
}.launchIn(viewScope)
|
|
|
|
|
}
|
|
|
|
|