Commit b688d501 authored by wanglei's avatar wanglei

[拆包]修改设置页面

parent 6b92f136
......@@ -91,7 +91,6 @@ abstract class BaseActivity<VB : ViewBinding>(
lateinit var launcher: ActivityLauncher
private var currentLocale: Locale? = null
lateinit var vpnStatusListener: VpnStatusListener
var insetsCallBack: ((insets: Insets) -> Unit)? = null
var onCreateI = 0
override fun onCreate(savedInstanceState: Bundle?) {
......@@ -276,7 +275,6 @@ abstract class BaseActivity<VB : ViewBinding>(
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insetsCallBack?.invoke(systemBars)
insets
}
}
......
......@@ -46,7 +46,6 @@ class BatteryInfoActivity : BaseActivity<ActivityBatteryInfo2Binding>(ActivityBa
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, 0, systemBars.right, systemBars.bottom)
binding.clTop.setPadding(0, systemBars.top, 0, 0)
insetsCallBack?.invoke(systemBars)
insets
}
}
......
......@@ -46,7 +46,6 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>(ActivityLanguageB
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, 0, systemBars.right, systemBars.bottom)
binding.flTop.setPadding(0, systemBars.top, 0, 0)
insetsCallBack?.invoke(systemBars)
insets
}
}
......
......@@ -2,7 +2,11 @@ package com.base.appzxhy.ui.main
import android.annotation.SuppressLint
import android.app.ActivityManager
import android.view.ViewTreeObserver
import androidx.core.content.ContextCompat.getSystemService
import androidx.core.graphics.Insets
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.GridLayoutManager
import com.base.appzxhy.R
......@@ -22,6 +26,7 @@ import com.base.appzxhy.databinding.FragmentHome3Binding
import com.base.appzxhy.ui.dialog.permissionStorageJump
import com.base.appzxhy.ui.malware.MalwareDialog
import com.base.appzxhy.ui.set.SettingActivity
import com.base.appzxhy.utils.BarUtils
import com.base.appzxhy.utils.KotlinExt.toFormatSize
import com.base.appzxhy.utils.Utils
import kotlinx.coroutines.Dispatchers
......@@ -80,11 +85,16 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>(FragmentHome3Binding::in
)
}
override fun initView() {
super.initView()
(requireActivity() as MainActivity).insetsCallBack = { insets ->
binding.flTop.setPadding(0, insets.top, 0, 0)
binding.flTop.setPadding(0, BarUtils.getStatusBarHeight(), 0, 0)
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
val systemBars: Insets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
binding.flTop.setPadding(0, systemBars.top, 0, 0)
insets
}
val layoutManager = GridLayoutManager(requireContext(), 2)
layoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
override fun getSpanSize(position: Int): Int {
......@@ -168,6 +178,7 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>(FragmentHome3Binding::in
override fun onResumeOneShoot() {
super.onResumeOneShoot()
initData()
}
......
package com.base.appzxhy.ui.main
import android.view.LayoutInflater
import android.view.View
import android.widget.TextView
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import com.base.appzxhy.R
import com.base.appzxhy.SpConstObject.mainPageCount
import com.base.appzxhy.base.BaseActivity
import com.base.appzxhy.bean.FeatureBean.Companion.JUNK_CLEAN
import com.base.appzxhy.bean.HomeTabUIBean
import com.base.appzxhy.bean.config.AdConfigBean
import com.base.appzxhy.business.ads.AdsMgr
import com.base.appzxhy.databinding.ActivityMainBinding
import com.base.appzxhy.databinding.ItemHomeTabBinding
import com.base.appzxhy.ui.dialog.AppExitDialog
import com.base.appzxhy.ui.dialog.NotificationTurnOnDialog
import com.base.appzxhy.ui.dialog.RateDialog
import com.base.appzxhy.ui.dialog.StoragePermissionDialog
import com.base.appzxhy.ui.dialog.permissionStorageJump
import com.base.appzxhy.ui.set.SettingsFragment
import com.base.appzxhy.utils.PermissionUtils.requestNotificationPermission
import com.base.appzxhy.utils.PermissionUtils.requestStoragePermission
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayout.OnTabSelectedListener
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import androidx.core.graphics.toColorInt
class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::inflate) {
val viewModel by lazy { ViewModelProvider(this)[MainViewModel::class.java] }
private val fragmentList = listOf(
HomeFragment(),
SettingsFragment()
)
private val viewPagerAdapter by lazy {
object : FragmentStateAdapter(this) {
override fun getItemCount(): Int = fragmentList.size
override fun createFragment(position: Int): Fragment = fragmentList[position]
}
}
override fun useDefaultImmersive() {
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, 0, systemBars.right, systemBars.bottom)
insetsCallBack?.invoke(systemBars)
insets
}
......@@ -72,6 +97,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
override fun initView() {
super.initView()
initViewPager2()
initTab()
initDialogFlow()
AdsMgr.showBanner(binding.flBanner, false)
......@@ -84,6 +114,69 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
binding.fragment.layoutParams = lp
}
private fun initTab() {
arrayOf(
HomeTabUIBean(R.drawable.tab_home_selector, getString(R.string.home)),
HomeTabUIBean(R.drawable.tab_settings_selector, getString(R.string.settings)),
).forEachIndexed { index, homeTab ->
val tab = binding.tabLayout.newTab()
val view = LayoutInflater.from(this).inflate(R.layout.item_home_tab, null)
val tabBinding = ItemHomeTabBinding.bind(view)
tabBinding.ivIcon.setImageResource(homeTab.icon)
tabBinding.tvTab.text = homeTab.tab
// tabBinding.tvTab.setTextColor(ContextCompat.getColor(this, R.color.color_tab_home))
tab.customView = tabBinding.root
tab.id = index
if (index == 1) {
tabBinding.vDian.visibility = View.VISIBLE
} else {
tabBinding.vDian.visibility = View.GONE
}
binding.tabLayout.addTab(tab)
}
binding.tabLayout.addOnTabSelectedListener(object : OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab?) {
tab?.let {
if (binding.viewPager2.currentItem == tab.id) return
binding.viewPager2.setCurrentItem(tab.id, false)
}
}
override fun onTabUnselected(tab: TabLayout.Tab?) {
tab?.setUnselected()
}
override fun onTabReselected(tab: TabLayout.Tab?) {
}
})
}
fun TabLayout.Tab.setSelected() {
val textView = customView?.findViewById<TextView>(R.id.tv_tab)
textView?.setTextColor(
ContextCompat.getColor(this@MainActivity, R.color.colorPrimary)
)
}
fun TabLayout.Tab.setUnselected() {
val textView = customView?.findViewById<TextView>(R.id.tv_tab)
textView?.setTextColor("#A6A6A6".toColorInt())
}
private fun initViewPager2() {
binding.viewPager2.adapter = viewPagerAdapter
binding.viewPager2.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) {
val defaultTab = binding.tabLayout.getTabAt(position)
defaultTab?.select()
defaultTab?.setSelected()
}
})
}
override fun initListener() {
super.initListener()
}
......
......@@ -13,10 +13,6 @@ class SettingActivity : BaseActivity<ActivitySettingBinding>(ActivitySettingBind
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
val systemBars: Insets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, 0, systemBars.right, systemBars.bottom)
insetsCallBack?.invoke(systemBars)
insetsCallBack = null
insets
}
}
......
......@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.core.graphics.Insets
import com.base.appzxhy.BuildConfig
import com.base.appzxhy.GlobalConfig.URL_PRIVACY
import com.base.appzxhy.SpConstObject.cleanedSize
......@@ -11,12 +12,15 @@ import com.base.appzxhy.base.BaseFragment
import com.base.appzxhy.databinding.FragmentSettingsBinding
import com.base.appzxhy.utils.KotlinExt.toFormatSize
import androidx.core.net.toUri
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updatePadding
import com.base.appzxhy.R
import com.base.appzxhy.SpConstObject.fcmToken
import com.base.appzxhy.bean.config.ConfigBean
import com.base.appzxhy.business.ads.AdsMgr
import com.base.appzxhy.ui.dialog.RateDialog
import com.base.appzxhy.utils.BarUtils
import com.base.appzxhy.utils.ClipboardUtils.copyText
import com.base.appzxhy.utils.ToastUtils.toast
import com.google.gson.GsonBuilder
......@@ -24,20 +28,16 @@ import com.google.gson.GsonBuilder
class SettingsFragment : BaseFragment<FragmentSettingsBinding>(FragmentSettingsBinding::inflate) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (requireActivity() is SettingActivity) {
(requireActivity() as SettingActivity).insetsCallBack = {
binding.clTop.updatePadding(0, it.top, 0, 0)
}
}
}
@SuppressLint("SetTextI18n")
override fun initView() {
super.initView()
binding.clTop.setPadding(0, BarUtils.getStatusBarHeight(), 0, 0)
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
val systemBars: Insets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
binding.clTop.setPadding(0, systemBars.top, 0, 0)
insets
}
binding.tvCleanedUp.text = cleanedSize.toFormatSize()
binding.tvVersion.text = "v${BuildConfig.VERSION_NAME}"
// MyAnimationUtils.rotation(binding.ivBlade)
......
......@@ -5,19 +5,47 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
<LinearLayout
android:id="@+id/fragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="@dimen/dp_60"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent">
<fragment
android:name="com.base.appzxhy.ui.main.HomeFragment"
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/flBottom"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
android:layout_height="wrap_content">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
app:tabIndicatorHeight="0dp"
app:tabMinWidth="100dp"
app:tabMode="fixed"
app:tabRippleColor="@android:color/transparent"
tools:ignore="SpeakableTextPresentCheck" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="bottom"
android:background="#F5F5F5" />
</FrameLayout>
</LinearLayout>
<FrameLayout
android:id="@+id/flBanner"
......
......@@ -16,6 +16,7 @@
android:id="@+id/flTop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/dp_24"
app:layout_constraintTop_toTopOf="parent">
......@@ -99,7 +100,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" / 0.0GB"
android:textColor="#999999"
android:textColor="@color/white"
android:textSize="@dimen/sp_18"
tools:ignore="HardcodedText" />
......
......@@ -9,7 +9,7 @@
android:id="@+id/cl_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_60ff95_2dd29e"
android:background="#0456ED"
android:orientation="horizontal"
app:layout_constraintTop_toTopOf="parent">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment