Commit 9dcb2aa3 authored by wanglei's avatar wanglei

...

parent c0d93bad
...@@ -100,6 +100,7 @@ dependencies { ...@@ -100,6 +100,7 @@ dependencies {
implementation("com.github.pokercc:ExpandableRecyclerView:0.9.3") implementation("com.github.pokercc:ExpandableRecyclerView:0.9.3")
implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.4") implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.4")
implementation("com.mikhaellopez:circularprogressbar:3.1.0") implementation("com.mikhaellopez:circularprogressbar:3.1.0")
implementation("com.github.zhpanvip:viewpagerindicator:1.2.3")
//相机 //相机
val cameraxVersion = "1.2.2" val cameraxVersion = "1.2.2"
......
...@@ -19,11 +19,12 @@ object ConstObject { ...@@ -19,11 +19,12 @@ object ConstObject {
const val JUNK_CLEANER = "Junk Cleaner" const val JUNK_CLEANER = "Junk Cleaner"
const val NEWS = "News" const val NEWS = "News"
const val APP_PROCESS = "App Process"
// const val REPEAT_PHOTOS = "Repeat Photos" // const val REPEAT_PHOTOS = "Repeat Photos"
// const val SCREENSHOT_CLEANER = "Screenshot Cleaner" // const val SCREENSHOT_CLEANER = "Screenshot Cleaner"
// const val PRIVACY_SPACE = "Privacy Space" // const val PRIVACY_SPACE = "Privacy Space"
// const val WHATSAPP_CLEANER = "WhatsApp Cleaner" // const val WHATSAPP_CLEANER = "WhatsApp Cleaner"
// const val APP_PROCESS = "App Process"
// const val APP_MANAGER = "App Manager" // const val APP_MANAGER = "App Manager"
// const val LARGE_FILE = "Large File" // const val LARGE_FILE = "Large File"
// const val BATTERY_INFO = "Battery Info" // const val BATTERY_INFO = "Battery Info"
......
...@@ -4,17 +4,28 @@ import android.content.Context ...@@ -4,17 +4,28 @@ import android.content.Context
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.base.browserwhite.R
import com.base.browserwhite.bean.AppBean import com.base.browserwhite.bean.AppBean
import com.base.browserwhite.databinding.ItemAppProcessBinding
import com.base.browserwhite.utils.XmlEx.inflate
import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.BaseQuickAdapter
class AppBeanAdapter : BaseQuickAdapter<AppBean, AppBeanAdapter.AppHolder>() { class AppBeanAdapter : BaseQuickAdapter<AppBean, AppBeanAdapter.AppHolder>() {
inner class AppHolder(view: View) : RecyclerView.ViewHolder(view) inner class AppHolder(view: View) : RecyclerView.ViewHolder(view)
var stopAction: ((pkg: String) -> Unit)? = null
override fun onBindViewHolder(holder: AppHolder, position: Int, item: AppBean?) { override fun onBindViewHolder(holder: AppHolder, position: Int, item: AppBean?) {
if (item == null) return
val binding = ItemAppProcessBinding.bind(holder.itemView)
binding.iv.setImageDrawable(item.icon)
binding.tvName.text = item.name
binding.tvStop.setOnClickListener {
stopAction?.invoke(item.packageName)
}
} }
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): AppHolder { override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): AppHolder {
TODO("Not yet implemented") return AppHolder(R.layout.item_app_process.inflate(parent))
} }
} }
\ No newline at end of file
...@@ -4,11 +4,15 @@ import android.annotation.SuppressLint ...@@ -4,11 +4,15 @@ import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.pm.ApplicationInfo import android.content.pm.ApplicationInfo
import android.content.pm.PackageInfo import android.content.pm.PackageInfo
import android.graphics.Color
import android.view.View import android.view.View
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.browserwhite.bean.AppBean import com.base.browserwhite.bean.AppBean
import com.base.browserwhite.databinding.ActivityAppProcessBinding import com.base.browserwhite.databinding.ActivityAppProcessBinding
import com.base.browserwhite.ui.activity.BaseActivity import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.utils.BarUtils
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
...@@ -21,7 +25,25 @@ class AppProcessActivity : BaseActivity<ActivityAppProcessBinding>() { ...@@ -21,7 +25,25 @@ class AppProcessActivity : BaseActivity<ActivityAppProcessBinding>() {
override fun initView() { override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
adapter = AppBeanAdapter() adapter = AppBeanAdapter()
binding.rv.adapter = adapter
initData()
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
finishToMain()
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
} }
...@@ -32,7 +54,6 @@ class AppProcessActivity : BaseActivity<ActivityAppProcessBinding>() { ...@@ -32,7 +54,6 @@ class AppProcessActivity : BaseActivity<ActivityAppProcessBinding>() {
val list = arrayListOf<AppBean>() val list = arrayListOf<AppBean>()
packages.forEach { app -> packages.forEach { app ->
if (isLaunchApp(this@AppProcessActivity, app)) { if (isLaunchApp(this@AppProcessActivity, app)) {
val appBean = AppBean( val appBean = AppBean(
...@@ -45,6 +66,7 @@ class AppProcessActivity : BaseActivity<ActivityAppProcessBinding>() { ...@@ -45,6 +66,7 @@ class AppProcessActivity : BaseActivity<ActivityAppProcessBinding>() {
} }
launch(Dispatchers.Main) { launch(Dispatchers.Main) {
binding.progressBarLoading.visibility = View.GONE binding.progressBarLoading.visibility = View.GONE
adapter.submitList(list)
} }
} }
......
...@@ -8,10 +8,13 @@ import androidx.core.view.updatePadding ...@@ -8,10 +8,13 @@ import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2 import androidx.viewpager2.widget.ViewPager2
import com.base.browserwhite.R
import com.base.browserwhite.databinding.ActivityWebDownloadGuideBinding import com.base.browserwhite.databinding.ActivityWebDownloadGuideBinding
import com.base.browserwhite.ui.activity.BaseActivity import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity import com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
import com.base.browserwhite.utils.BarUtils import com.base.browserwhite.utils.BarUtils
import com.zhpan.indicator.enums.IndicatorSlideMode
import com.zhpan.indicator.enums.IndicatorStyle
class WebDownloadGuideActivity : BaseActivity<ActivityWebDownloadGuideBinding>() { class WebDownloadGuideActivity : BaseActivity<ActivityWebDownloadGuideBinding>() {
...@@ -57,8 +60,16 @@ class WebDownloadGuideActivity : BaseActivity<ActivityWebDownloadGuideBinding>() ...@@ -57,8 +60,16 @@ class WebDownloadGuideActivity : BaseActivity<ActivityWebDownloadGuideBinding>()
} }
binding.viewPager2.registerOnPageChangeCallback(object : binding.viewPager2.registerOnPageChangeCallback(object :
ViewPager2.OnPageChangeCallback() { ViewPager2.OnPageChangeCallback() {
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
super.onPageScrolled(position, positionOffset, positionOffsetPixels)
binding.indicatorView.onPageScrolled(position, positionOffset, positionOffsetPixels)
}
override fun onPageSelected(position: Int) { override fun onPageSelected(position: Int) {
currentPosition = position currentPosition = position
binding.indicatorView.onPageSelected(position)
if (currentPosition > 0) { if (currentPosition > 0) {
binding.ivBefore.visibility = View.VISIBLE binding.ivBefore.visibility = View.VISIBLE
} else { } else {
...@@ -67,12 +78,25 @@ class WebDownloadGuideActivity : BaseActivity<ActivityWebDownloadGuideBinding>() ...@@ -67,12 +78,25 @@ class WebDownloadGuideActivity : BaseActivity<ActivityWebDownloadGuideBinding>()
if (currentPosition < 3) { if (currentPosition < 3) {
binding.ivNext.visibility = View.VISIBLE binding.ivNext.visibility = View.VISIBLE
binding.flTry.visibility = View.INVISIBLE binding.flTry.visibility = View.INVISIBLE
binding.indicatorView.visibility = View.VISIBLE
} else { } else {
binding.indicatorView.visibility = View.INVISIBLE
binding.ivNext.visibility = View.INVISIBLE binding.ivNext.visibility = View.INVISIBLE
binding.flTry.visibility = View.VISIBLE binding.flTry.visibility = View.VISIBLE
} }
} }
}) })
binding.indicatorView.apply {
val normalColor = Color.parseColor("#1E5385")
val checkedColor = Color.parseColor("#FFFFFF")
setSliderColor(normalColor, checkedColor)
setSliderWidth(resources.getDimension(R.dimen.dp_18))
setSliderHeight(resources.getDimension(R.dimen.dp_7))
setSlideMode(IndicatorSlideMode.WORM)
setIndicatorStyle(IndicatorStyle.ROUND_RECT)
setPageSize(4)
notifyDataChanged()
}
} }
override fun initListener() { override fun initListener() {
......
...@@ -5,6 +5,7 @@ import android.view.View ...@@ -5,6 +5,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.base.browserwhite.R import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject.APP_PROCESS
import com.base.browserwhite.bean.ConstObject.JUNK_CLEANER import com.base.browserwhite.bean.ConstObject.JUNK_CLEANER
import com.base.browserwhite.bean.ConstObject.NEWS import com.base.browserwhite.bean.ConstObject.NEWS
import com.base.browserwhite.databinding.ItemHead1Binding import com.base.browserwhite.databinding.ItemHead1Binding
...@@ -23,6 +24,9 @@ class HeaderAdapter(val click: (key: String) -> Unit) : BaseSingleItemAdapter<An ...@@ -23,6 +24,9 @@ class HeaderAdapter(val click: (key: String) -> Unit) : BaseSingleItemAdapter<An
binding.llNews.setOnClickListener { binding.llNews.setOnClickListener {
click.invoke(NEWS) click.invoke(NEWS)
} }
binding.llProcess.setOnClickListener {
click.invoke(APP_PROCESS)
}
} }
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH {
......
...@@ -4,7 +4,6 @@ import android.annotation.SuppressLint ...@@ -4,7 +4,6 @@ import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.view.View import android.view.View
import android.widget.Toast
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.browserwhite.BuildConfig import com.base.browserwhite.BuildConfig
import com.base.browserwhite.bean.MediaBean import com.base.browserwhite.bean.MediaBean
......
...@@ -12,6 +12,7 @@ import androidx.core.view.isVisible ...@@ -12,6 +12,7 @@ import androidx.core.view.isVisible
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.base.browserwhite.R import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject import com.base.browserwhite.bean.ConstObject
import com.base.browserwhite.bean.ConstObject.APP_PROCESS
import com.base.browserwhite.bean.ConstObject.BAIDU import com.base.browserwhite.bean.ConstObject.BAIDU
import com.base.browserwhite.bean.ConstObject.BING import com.base.browserwhite.bean.ConstObject.BING
import com.base.browserwhite.bean.ConstObject.DUCKDUCKGO import com.base.browserwhite.bean.ConstObject.DUCKDUCKGO
...@@ -27,6 +28,7 @@ import com.base.browserwhite.databinding.FragmentHomeBinding ...@@ -27,6 +28,7 @@ import com.base.browserwhite.databinding.FragmentHomeBinding
import com.base.browserwhite.fcm.NotificationUtil import com.base.browserwhite.fcm.NotificationUtil
import com.base.browserwhite.help.NewsUtils.requestNews import com.base.browserwhite.help.NewsUtils.requestNews
import com.base.browserwhite.service.StayNotificationService.Companion.restartStartStayNotification import com.base.browserwhite.service.StayNotificationService.Companion.restartStartStayNotification
import com.base.browserwhite.ui.activity.appprocess.AppProcessActivity
import com.base.browserwhite.ui.activity.cleanjunk.ScanJunkActivity import com.base.browserwhite.ui.activity.cleanjunk.ScanJunkActivity
import com.base.browserwhite.ui.activity.news.NewsActivity import com.base.browserwhite.ui.activity.news.NewsActivity
import com.base.browserwhite.ui.activity.news.NewsDetailActivity import com.base.browserwhite.ui.activity.news.NewsDetailActivity
...@@ -46,7 +48,6 @@ import java.net.MalformedURLException ...@@ -46,7 +48,6 @@ import java.net.MalformedURLException
import java.net.URL import java.net.URL
import java.net.URLEncoder import java.net.URLEncoder
import java.nio.charset.StandardCharsets import java.nio.charset.StandardCharsets
import kotlin.math.abs
class HomeFragment : BaseFragment<FragmentHomeBinding>() { class HomeFragment : BaseFragment<FragmentHomeBinding>() {
...@@ -106,6 +107,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() { ...@@ -106,6 +107,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
NEWS -> { NEWS -> {
requireContext().startActivity(Intent(requireContext(), NewsActivity::class.java)) requireContext().startActivity(Intent(requireContext(), NewsActivity::class.java))
} }
APP_PROCESS -> {
requireContext().startActivity(Intent(requireContext(), AppProcessActivity::class.java))
}
} }
}) })
......
...@@ -146,10 +146,11 @@ ...@@ -146,10 +146,11 @@
android:layout_weight="1"> android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:listitem="@layout/item_app_process" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> tools:listitem="@layout/item_app_process" />
<ProgressBar <ProgressBar
android:id="@+id/progress_bar_loading" android:id="@+id/progress_bar_loading"
...@@ -160,11 +161,18 @@ ...@@ -160,11 +161,18 @@
</FrameLayout> </FrameLayout>
<TextView <TextView
android:id="@+id/tv_btn"
android:layout_width="338dp" android:layout_width="338dp"
android:layout_height="50dp" android:layout_height="50dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="25dp" /> android:layout_marginBottom="25dp"
android:background="@drawable/bg_0571ed_25"
android:gravity="center"
android:text="Complete"
android:textColor="@color/white"
android:textSize="18sp"
tools:ignore="HardcodedText" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -70,6 +70,23 @@ ...@@ -70,6 +70,23 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="@id/iv_next"
app:layout_constraintEnd_toStartOf="@id/iv_next"
app:layout_constraintStart_toEndOf="@id/iv_before"
app:layout_constraintTop_toTopOf="@id/iv_before">
<com.zhpan.indicator.IndicatorView
android:id="@+id/indicator_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="7dp" />
</FrameLayout>
<ImageView <ImageView
android:id="@+id/iv_next" android:id="@+id/iv_next"
android:layout_width="wrap_content" android:layout_width="wrap_content"
......
...@@ -45,13 +45,13 @@ ...@@ -45,13 +45,13 @@
</LinearLayout> </LinearLayout>
<ImageView <ImageView
android:visibility="gone"
android:id="@+id/iv_delete" android:id="@+id/iv_delete"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end" android:layout_gravity="center_vertical|end"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:src="@mipmap/d_del" android:src="@mipmap/d_del"
android:visibility="gone"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
</FrameLayout> </FrameLayout>
...@@ -74,6 +74,7 @@ ...@@ -74,6 +74,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginBottom="30dp"
android:orientation="vertical" android:orientation="vertical"
android:visibility="gone"> android:visibility="gone">
......
...@@ -46,6 +46,13 @@ ...@@ -46,6 +46,13 @@
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
</LinearLayout> </LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginHorizontal="20dp"
android:background="#E5E6EB" />
<LinearLayout <LinearLayout
android:id="@+id/ll_share" android:id="@+id/ll_share"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -75,6 +82,7 @@ ...@@ -75,6 +82,7 @@
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
......
...@@ -301,7 +301,7 @@ ...@@ -301,7 +301,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="165dp" android:layout_height="180dp"
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="16dp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:background="@drawable/bg_storke_dee9f4" android:background="@drawable/bg_storke_dee9f4"
......
...@@ -82,7 +82,6 @@ ...@@ -82,7 +82,6 @@
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true"
android:orientation="vertical" android:orientation="vertical"
android:visibility="invisible"
tools:ignore="UseCompoundDrawables"> tools:ignore="UseCompoundDrawables">
<ImageView <ImageView
......
...@@ -13,4 +13,6 @@ ...@@ -13,4 +13,6 @@
<dimen name="dp_9">9dp</dimen> <dimen name="dp_9">9dp</dimen>
<dimen name="dp_5">5dp</dimen> <dimen name="dp_5">5dp</dimen>
<dimen name="dp_97">97dp</dimen> <dimen name="dp_97">97dp</dimen>
<dimen name="dp_18">18dp</dimen>
<dimen name="dp_7">7dp</dimen>
</resources> </resources>
\ No newline at end of file
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