incognito does not require app restart
This commit is contained in:
parent
a8711241a7
commit
42c3b42c05
9 changed files with 121 additions and 60 deletions
|
@ -2,6 +2,7 @@ package ani.dantotsu.home
|
||||||
|
|
||||||
import android.animation.ObjectAnimator
|
import android.animation.ObjectAnimator
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
@ -26,6 +27,7 @@ import ani.dantotsu.connections.anilist.Anilist
|
||||||
import ani.dantotsu.connections.anilist.AnilistAnimeViewModel
|
import ani.dantotsu.connections.anilist.AnilistAnimeViewModel
|
||||||
import ani.dantotsu.connections.anilist.SearchResults
|
import ani.dantotsu.connections.anilist.SearchResults
|
||||||
import ani.dantotsu.connections.anilist.getUserId
|
import ani.dantotsu.connections.anilist.getUserId
|
||||||
|
import ani.dantotsu.currContext
|
||||||
import ani.dantotsu.databinding.FragmentAnimeBinding
|
import ani.dantotsu.databinding.FragmentAnimeBinding
|
||||||
import ani.dantotsu.loadData
|
import ani.dantotsu.loadData
|
||||||
import ani.dantotsu.media.MediaAdaptor
|
import ani.dantotsu.media.MediaAdaptor
|
||||||
|
@ -47,16 +49,17 @@ import kotlin.math.min
|
||||||
class AnimeFragment : Fragment() {
|
class AnimeFragment : Fragment() {
|
||||||
private var _binding: FragmentAnimeBinding? = null
|
private var _binding: FragmentAnimeBinding? = null
|
||||||
private val binding get() = _binding!!
|
private val binding get() = _binding!!
|
||||||
|
private lateinit var animePageAdapter: AnimePageAdapter
|
||||||
|
|
||||||
private var uiSettings: UserInterfaceSettings =
|
private var uiSettings: UserInterfaceSettings =
|
||||||
loadData("ui_settings") ?: UserInterfaceSettings()
|
loadData("ui_settings") ?: UserInterfaceSettings()
|
||||||
|
|
||||||
val model: AnilistAnimeViewModel by activityViewModels()
|
val model: AnilistAnimeViewModel by activityViewModels()
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
container: ViewGroup?,
|
container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View {
|
): View {
|
||||||
_binding = FragmentAnimeBinding.inflate(inflater, container, false)
|
_binding = FragmentAnimeBinding.inflate(inflater, container, false)
|
||||||
return binding.root
|
return binding.root
|
||||||
|
@ -78,11 +81,11 @@ class AnimeFragment : Fragment() {
|
||||||
if (displayCutout != null) {
|
if (displayCutout != null) {
|
||||||
if (displayCutout.boundingRects.size > 0) {
|
if (displayCutout.boundingRects.size > 0) {
|
||||||
height = max(
|
height = max(
|
||||||
statusBarHeight,
|
statusBarHeight,
|
||||||
min(
|
min(
|
||||||
displayCutout.boundingRects[0].width(),
|
displayCutout.boundingRects[0].width(),
|
||||||
displayCutout.boundingRects[0].height()
|
displayCutout.boundingRects[0].height()
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -95,18 +98,18 @@ class AnimeFragment : Fragment() {
|
||||||
|
|
||||||
binding.animePageRecyclerView.updatePaddingRelative(bottom = navBarHeight + 160f.px)
|
binding.animePageRecyclerView.updatePaddingRelative(bottom = navBarHeight + 160f.px)
|
||||||
|
|
||||||
val animePageAdapter = AnimePageAdapter()
|
animePageAdapter = AnimePageAdapter()
|
||||||
|
|
||||||
var loading = true
|
var loading = true
|
||||||
if (model.notSet) {
|
if (model.notSet) {
|
||||||
model.notSet = false
|
model.notSet = false
|
||||||
model.searchResults = SearchResults(
|
model.searchResults = SearchResults(
|
||||||
"ANIME",
|
"ANIME",
|
||||||
isAdult = false,
|
isAdult = false,
|
||||||
onList = false,
|
onList = false,
|
||||||
results = mutableListOf(),
|
results = mutableListOf(),
|
||||||
hasNextPage = true,
|
hasNextPage = true,
|
||||||
sort = Anilist.sortBy[1]
|
sort = Anilist.sortBy[1]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val popularAdaptor = MediaAdaptor(1, model.searchResults.results, requireActivity())
|
val popularAdaptor = MediaAdaptor(1, model.searchResults.results, requireActivity())
|
||||||
|
@ -174,7 +177,7 @@ class AnimeFragment : Fragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.animePageRecyclerView.addOnScrollListener(object :
|
binding.animePageRecyclerView.addOnScrollListener(object :
|
||||||
RecyclerView.OnScrollListener() {
|
RecyclerView.OnScrollListener() {
|
||||||
override fun onScrolled(v: RecyclerView, dx: Int, dy: Int) {
|
override fun onScrolled(v: RecyclerView, dx: Int, dy: Int) {
|
||||||
if (!v.canScrollVertically(1)) {
|
if (!v.canScrollVertically(1)) {
|
||||||
if (model.searchResults.hasNextPage && model.searchResults.results.isNotEmpty() && !loading) {
|
if (model.searchResults.hasNextPage && model.searchResults.results.isNotEmpty() && !loading) {
|
||||||
|
@ -214,19 +217,19 @@ class AnimeFragment : Fragment() {
|
||||||
model.getTrending().observe(viewLifecycleOwner) {
|
model.getTrending().observe(viewLifecycleOwner) {
|
||||||
if (it != null) {
|
if (it != null) {
|
||||||
animePageAdapter.updateTrending(
|
animePageAdapter.updateTrending(
|
||||||
MediaAdaptor(
|
MediaAdaptor(
|
||||||
if (uiSettings.smallView) 3 else 2,
|
if (uiSettings.smallView) 3 else 2,
|
||||||
it,
|
it,
|
||||||
requireActivity(),
|
requireActivity(),
|
||||||
viewPager = animePageAdapter.trendingViewPager
|
viewPager = animePageAdapter.trendingViewPager
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
animePageAdapter.updateAvatar()
|
animePageAdapter.updateAvatar()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
binding.animePageScrollTop.translationY =
|
binding.animePageScrollTop.translationY =
|
||||||
-(navBarHeight + bottomBar.height + bottomBar.marginBottom).toFloat()
|
-(navBarHeight + bottomBar.height + bottomBar.marginBottom).toFloat()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -244,13 +247,13 @@ class AnimeFragment : Fragment() {
|
||||||
animePageAdapter.onSeasonLongClick = { i ->
|
animePageAdapter.onSeasonLongClick = { i ->
|
||||||
val (season, year) = Anilist.currentSeasons[i]
|
val (season, year) = Anilist.currentSeasons[i]
|
||||||
ContextCompat.startActivity(
|
ContextCompat.startActivity(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
Intent(requireContext(), SearchActivity::class.java)
|
Intent(requireContext(), SearchActivity::class.java)
|
||||||
.putExtra("type", "ANIME")
|
.putExtra("type", "ANIME")
|
||||||
.putExtra("season", season)
|
.putExtra("season", season)
|
||||||
.putExtra("seasonYear", year.toString())
|
.putExtra("seasonYear", year.toString())
|
||||||
.putExtra("search", true),
|
.putExtra("search", true),
|
||||||
null
|
null
|
||||||
)
|
)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
@ -277,6 +280,12 @@ class AnimeFragment : Fragment() {
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
if (!model.loaded) Refresh.activity[this.hashCode()]!!.postValue(true)
|
if (!model.loaded) Refresh.activity[this.hashCode()]!!.postValue(true)
|
||||||
|
if (animePageAdapter.trendingViewPager != null) {
|
||||||
|
animePageAdapter.setIncognito()
|
||||||
|
binding.root.requestApplyInsets()
|
||||||
|
binding.root.requestLayout()
|
||||||
|
}
|
||||||
|
|
||||||
super.onResume()
|
super.onResume()
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -157,6 +157,19 @@ class AnimePageAdapter : RecyclerView.Adapter<AnimePageAdapter.AnimePageViewHold
|
||||||
trendingViewPager!!.updateLayoutParams { height += statusBarHeight }
|
trendingViewPager!!.updateLayoutParams { height += statusBarHeight }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setIncognito() {
|
||||||
|
val incognito = currContext()?.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)
|
||||||
|
?.getBoolean("incognito", false) ?: false
|
||||||
|
if(incognito) {
|
||||||
|
binding.incognitoTextView.visibility = View.VISIBLE
|
||||||
|
if (!uiSettings.immersiveMode) {
|
||||||
|
binding.root.fitsSystemWindows = true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
binding.incognitoTextView.visibility = View.GONE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun updateTrending(adaptor: MediaAdaptor) {
|
fun updateTrending(adaptor: MediaAdaptor) {
|
||||||
binding.animeTrendingProgressBar.visibility = View.GONE
|
binding.animeTrendingProgressBar.visibility = View.GONE
|
||||||
binding.animeTrendingViewPager.adapter = adaptor
|
binding.animeTrendingViewPager.adapter = adaptor
|
||||||
|
|
|
@ -10,6 +10,7 @@ import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import android.view.WindowManager
|
||||||
import android.view.animation.LayoutAnimationController
|
import android.view.animation.LayoutAnimationController
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.view.updateLayoutParams
|
import androidx.core.view.updateLayoutParams
|
||||||
|
@ -371,6 +372,23 @@ class HomeFragment : Fragment() {
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
if (!model.loaded) Refresh.activity[1]!!.postValue(true)
|
if (!model.loaded) Refresh.activity[1]!!.postValue(true)
|
||||||
|
val incognito = currContext()?.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)
|
||||||
|
?.getBoolean("incognito", false) ?: false
|
||||||
|
if(incognito) {
|
||||||
|
val uiSettings = loadData<UserInterfaceSettings>("ui_settings") ?: UserInterfaceSettings()
|
||||||
|
binding.incognitoTextView.visibility = View.VISIBLE
|
||||||
|
if (!uiSettings.immersiveMode) {
|
||||||
|
binding.root.fitsSystemWindows = true
|
||||||
|
//holy deprecation
|
||||||
|
binding.root.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||||
|
binding.root.requestApplyInsets()
|
||||||
|
binding.root.requestLayout()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
binding.incognitoTextView.visibility = View.GONE
|
||||||
|
}
|
||||||
super.onResume()
|
super.onResume()
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -2,6 +2,7 @@ package ani.dantotsu.home
|
||||||
|
|
||||||
import android.animation.ObjectAnimator
|
import android.animation.ObjectAnimator
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.Context
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
|
@ -24,6 +25,7 @@ import ani.dantotsu.connections.anilist.Anilist
|
||||||
import ani.dantotsu.connections.anilist.AnilistMangaViewModel
|
import ani.dantotsu.connections.anilist.AnilistMangaViewModel
|
||||||
import ani.dantotsu.connections.anilist.SearchResults
|
import ani.dantotsu.connections.anilist.SearchResults
|
||||||
import ani.dantotsu.connections.anilist.getUserId
|
import ani.dantotsu.connections.anilist.getUserId
|
||||||
|
import ani.dantotsu.currContext
|
||||||
import ani.dantotsu.databinding.FragmentMangaBinding
|
import ani.dantotsu.databinding.FragmentMangaBinding
|
||||||
import ani.dantotsu.loadData
|
import ani.dantotsu.loadData
|
||||||
import ani.dantotsu.media.MediaAdaptor
|
import ani.dantotsu.media.MediaAdaptor
|
||||||
|
@ -43,16 +45,17 @@ import kotlin.math.min
|
||||||
class MangaFragment : Fragment() {
|
class MangaFragment : Fragment() {
|
||||||
private var _binding: FragmentMangaBinding? = null
|
private var _binding: FragmentMangaBinding? = null
|
||||||
private val binding get() = _binding!!
|
private val binding get() = _binding!!
|
||||||
|
private lateinit var mangaPageAdapter: MangaPageAdapter
|
||||||
|
|
||||||
private var uiSettings: UserInterfaceSettings =
|
private var uiSettings: UserInterfaceSettings =
|
||||||
loadData("ui_settings") ?: UserInterfaceSettings()
|
loadData("ui_settings") ?: UserInterfaceSettings()
|
||||||
|
|
||||||
val model: AnilistMangaViewModel by activityViewModels()
|
val model: AnilistMangaViewModel by activityViewModels()
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
container: ViewGroup?,
|
container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View {
|
): View {
|
||||||
_binding = FragmentMangaBinding.inflate(inflater, container, false)
|
_binding = FragmentMangaBinding.inflate(inflater, container, false)
|
||||||
return binding.root
|
return binding.root
|
||||||
|
@ -73,11 +76,11 @@ class MangaFragment : Fragment() {
|
||||||
if (displayCutout != null) {
|
if (displayCutout != null) {
|
||||||
if (displayCutout.boundingRects.size > 0) {
|
if (displayCutout.boundingRects.size > 0) {
|
||||||
height = max(
|
height = max(
|
||||||
statusBarHeight,
|
statusBarHeight,
|
||||||
min(
|
min(
|
||||||
displayCutout.boundingRects[0].width(),
|
displayCutout.boundingRects[0].width(),
|
||||||
displayCutout.boundingRects[0].height()
|
displayCutout.boundingRects[0].height()
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,23 +93,23 @@ class MangaFragment : Fragment() {
|
||||||
|
|
||||||
binding.mangaPageRecyclerView.updatePaddingRelative(bottom = navBarHeight + 160f.px)
|
binding.mangaPageRecyclerView.updatePaddingRelative(bottom = navBarHeight + 160f.px)
|
||||||
|
|
||||||
val mangaPageAdapter = MangaPageAdapter()
|
mangaPageAdapter = MangaPageAdapter()
|
||||||
var loading = true
|
var loading = true
|
||||||
if (model.notSet) {
|
if (model.notSet) {
|
||||||
model.notSet = false
|
model.notSet = false
|
||||||
model.searchResults = SearchResults(
|
model.searchResults = SearchResults(
|
||||||
"MANGA",
|
"MANGA",
|
||||||
isAdult = false,
|
isAdult = false,
|
||||||
onList = false,
|
onList = false,
|
||||||
results = arrayListOf(),
|
results = arrayListOf(),
|
||||||
hasNextPage = true,
|
hasNextPage = true,
|
||||||
sort = Anilist.sortBy[1]
|
sort = Anilist.sortBy[1]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val popularAdaptor = MediaAdaptor(1, model.searchResults.results, requireActivity())
|
val popularAdaptor = MediaAdaptor(1, model.searchResults.results, requireActivity())
|
||||||
val progressAdaptor = ProgressAdapter(searched = model.searched)
|
val progressAdaptor = ProgressAdapter(searched = model.searched)
|
||||||
binding.mangaPageRecyclerView.adapter =
|
binding.mangaPageRecyclerView.adapter =
|
||||||
ConcatAdapter(mangaPageAdapter, popularAdaptor, progressAdaptor)
|
ConcatAdapter(mangaPageAdapter, popularAdaptor, progressAdaptor)
|
||||||
val layout = LinearLayoutManager(requireContext())
|
val layout = LinearLayoutManager(requireContext())
|
||||||
binding.mangaPageRecyclerView.layoutManager = layout
|
binding.mangaPageRecyclerView.layoutManager = layout
|
||||||
|
|
||||||
|
@ -132,7 +135,7 @@ class MangaFragment : Fragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.mangaPageRecyclerView.addOnScrollListener(object :
|
binding.mangaPageRecyclerView.addOnScrollListener(object :
|
||||||
RecyclerView.OnScrollListener() {
|
RecyclerView.OnScrollListener() {
|
||||||
override fun onScrolled(v: RecyclerView, dx: Int, dy: Int) {
|
override fun onScrolled(v: RecyclerView, dx: Int, dy: Int) {
|
||||||
if (!v.canScrollVertically(1)) {
|
if (!v.canScrollVertically(1)) {
|
||||||
if (model.searchResults.hasNextPage && model.searchResults.results.isNotEmpty() && !loading) {
|
if (model.searchResults.hasNextPage && model.searchResults.results.isNotEmpty() && !loading) {
|
||||||
|
@ -172,19 +175,19 @@ class MangaFragment : Fragment() {
|
||||||
model.getTrending().observe(viewLifecycleOwner) {
|
model.getTrending().observe(viewLifecycleOwner) {
|
||||||
if (it != null) {
|
if (it != null) {
|
||||||
mangaPageAdapter.updateTrending(
|
mangaPageAdapter.updateTrending(
|
||||||
MediaAdaptor(
|
MediaAdaptor(
|
||||||
if (uiSettings.smallView) 3 else 2,
|
if (uiSettings.smallView) 3 else 2,
|
||||||
it,
|
it,
|
||||||
requireActivity(),
|
requireActivity(),
|
||||||
viewPager = mangaPageAdapter.trendingViewPager
|
viewPager = mangaPageAdapter.trendingViewPager
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
mangaPageAdapter.updateAvatar()
|
mangaPageAdapter.updateAvatar()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
binding.mangaPageScrollTop.translationY =
|
binding.mangaPageScrollTop.translationY =
|
||||||
-(navBarHeight + bottomBar.height + bottomBar.marginBottom).toFloat()
|
-(navBarHeight + bottomBar.height + bottomBar.marginBottom).toFloat()
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -251,6 +254,12 @@ class MangaFragment : Fragment() {
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
if (!model.loaded) Refresh.activity[this.hashCode()]!!.postValue(true)
|
if (!model.loaded) Refresh.activity[this.hashCode()]!!.postValue(true)
|
||||||
|
//make sure mangaPageAdapter is initialized
|
||||||
|
if (mangaPageAdapter.trendingViewPager != null) {
|
||||||
|
mangaPageAdapter.setIncognito()
|
||||||
|
binding.root.requestApplyInsets()
|
||||||
|
binding.root.requestLayout()
|
||||||
|
}
|
||||||
super.onResume()
|
super.onResume()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -150,6 +150,19 @@ class MangaPageAdapter : RecyclerView.Adapter<MangaPageAdapter.MangaPageViewHold
|
||||||
trendingViewPager!!.updateLayoutParams { height += statusBarHeight }
|
trendingViewPager!!.updateLayoutParams { height += statusBarHeight }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setIncognito() {
|
||||||
|
val incognito = currContext()?.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)
|
||||||
|
?.getBoolean("incognito", false) ?: false
|
||||||
|
if(incognito) {
|
||||||
|
binding.incognitoTextView.visibility = View.VISIBLE
|
||||||
|
if (!uiSettings.immersiveMode) {
|
||||||
|
binding.root.fitsSystemWindows = true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
binding.incognitoTextView.visibility = View.GONE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun updateTrending(adaptor: MediaAdaptor) {
|
fun updateTrending(adaptor: MediaAdaptor) {
|
||||||
binding.mangaTrendingProgressBar.visibility = View.GONE
|
binding.mangaTrendingProgressBar.visibility = View.GONE
|
||||||
binding.mangaTrendingViewPager.adapter = adaptor
|
binding.mangaTrendingViewPager.adapter = adaptor
|
||||||
|
|
|
@ -413,7 +413,6 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListen
|
||||||
binding.settingsIncognito.setOnCheckedChangeListener { _, isChecked ->
|
binding.settingsIncognito.setOnCheckedChangeListener { _, isChecked ->
|
||||||
getSharedPreferences("Dantotsu", Context.MODE_PRIVATE).edit()
|
getSharedPreferences("Dantotsu", Context.MODE_PRIVATE).edit()
|
||||||
.putBoolean("incognito", isChecked).apply()
|
.putBoolean("incognito", isChecked).apply()
|
||||||
restartApp()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var previousStart: View = when (uiSettings.defaultStartUpTab) {
|
var previousStart: View = when (uiSettings.defaultStartUpTab) {
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
android:text="Incognito Mode"
|
android:text="Incognito Mode"
|
||||||
android:fontFamily="@font/poppins_bold"
|
android:fontFamily="@font/poppins_bold"
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
android:textColor="#4f2dbd"
|
android:textColor="?attr/colorPrimary"
|
||||||
android:layout_gravity="bottom|center_horizontal"
|
android:layout_gravity="bottom|center_horizontal"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
android:text="Incognito Mode"
|
android:text="Incognito Mode"
|
||||||
android:fontFamily="@font/poppins_bold"
|
android:fontFamily="@font/poppins_bold"
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
android:textColor="#4f2dbd"
|
android:textColor="?attr/colorPrimary"
|
||||||
android:layout_gravity="bottom|center_horizontal"
|
android:layout_gravity="bottom|center_horizontal"
|
||||||
android:background="#00FFFFFF"
|
android:background="#00FFFFFF"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
android:text="Incognito Mode"
|
android:text="Incognito Mode"
|
||||||
android:fontFamily="@font/poppins_bold"
|
android:fontFamily="@font/poppins_bold"
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
android:textColor="#4f2dbd"
|
android:textColor="?attr/colorPrimary"
|
||||||
android:layout_gravity="bottom|center_horizontal"
|
android:layout_gravity="bottom|center_horizontal"
|
||||||
android:background="#00FFFFFF"
|
android:background="#00FFFFFF"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue