Commit 9dcb2aa3 authored by wanglei's avatar wanglei

...

parent c0d93bad
......@@ -100,6 +100,7 @@ dependencies {
implementation("com.github.pokercc:ExpandableRecyclerView:0.9.3")
implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.4")
implementation("com.mikhaellopez:circularprogressbar:3.1.0")
implementation("com.github.zhpanvip:viewpagerindicator:1.2.3")
//相机
val cameraxVersion = "1.2.2"
......
......@@ -19,11 +19,12 @@ object ConstObject {
const val JUNK_CLEANER = "Junk Cleaner"
const val NEWS = "News"
const val APP_PROCESS = "App Process"
// const val REPEAT_PHOTOS = "Repeat Photos"
// const val SCREENSHOT_CLEANER = "Screenshot Cleaner"
// const val PRIVACY_SPACE = "Privacy Space"
// const val WHATSAPP_CLEANER = "WhatsApp Cleaner"
// const val APP_PROCESS = "App Process"
// const val APP_MANAGER = "App Manager"
// const val LARGE_FILE = "Large File"
// const val BATTERY_INFO = "Battery Info"
......
......@@ -4,17 +4,28 @@ import android.content.Context
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.base.browserwhite.R
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
class AppBeanAdapter : BaseQuickAdapter<AppBean, AppBeanAdapter.AppHolder>() {
inner class AppHolder(view: View) : RecyclerView.ViewHolder(view)
var stopAction: ((pkg: String) -> Unit)? = null
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 {
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
import android.content.Context
import android.content.pm.ApplicationInfo
import android.content.pm.PackageInfo
import android.graphics.Color
import android.view.View
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import com.base.browserwhite.bean.AppBean
import com.base.browserwhite.databinding.ActivityAppProcessBinding
import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.utils.BarUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
......@@ -21,7 +25,25 @@ class AppProcessActivity : BaseActivity<ActivityAppProcessBinding>() {
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
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>() {
val list = arrayListOf<AppBean>()
packages.forEach { app ->
if (isLaunchApp(this@AppProcessActivity, app)) {
val appBean = AppBean(
......@@ -45,6 +66,7 @@ class AppProcessActivity : BaseActivity<ActivityAppProcessBinding>() {
}
launch(Dispatchers.Main) {
binding.progressBarLoading.visibility = View.GONE
adapter.submitList(list)
}
}
......
......@@ -8,10 +8,13 @@ import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import com.base.browserwhite.R
import com.base.browserwhite.databinding.ActivityWebDownloadGuideBinding
import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
import com.base.browserwhite.utils.BarUtils
import com.zhpan.indicator.enums.IndicatorSlideMode
import com.zhpan.indicator.enums.IndicatorStyle
class WebDownloadGuideActivity : BaseActivity<ActivityWebDownloadGuideBinding>() {
......@@ -57,8 +60,16 @@ class WebDownloadGuideActivity : BaseActivity<ActivityWebDownloadGuideBinding>()
}
binding.viewPager2.registerOnPageChangeCallback(object :
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) {
currentPosition = position
binding.indicatorView.onPageSelected(position)
if (currentPosition > 0) {
binding.ivBefore.visibility = View.VISIBLE
} else {
......@@ -67,12 +78,25 @@ class WebDownloadGuideActivity : BaseActivity<ActivityWebDownloadGuideBinding>()
if (currentPosition < 3) {
binding.ivNext.visibility = View.VISIBLE
binding.flTry.visibility = View.INVISIBLE
binding.indicatorView.visibility = View.VISIBLE
} else {
binding.indicatorView.visibility = View.INVISIBLE
binding.ivNext.visibility = View.INVISIBLE
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() {
......
......@@ -5,6 +5,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
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.NEWS
import com.base.browserwhite.databinding.ItemHead1Binding
......@@ -23,6 +24,9 @@ class HeaderAdapter(val click: (key: String) -> Unit) : BaseSingleItemAdapter<An
binding.llNews.setOnClickListener {
click.invoke(NEWS)
}
binding.llProcess.setOnClickListener {
click.invoke(APP_PROCESS)
}
}
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH {
......
......@@ -4,7 +4,6 @@ import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.view.View
import android.widget.Toast
import androidx.lifecycle.lifecycleScope
import com.base.browserwhite.BuildConfig
import com.base.browserwhite.bean.MediaBean
......
......@@ -12,6 +12,7 @@ import androidx.core.view.isVisible
import androidx.recyclerview.widget.LinearLayoutManager
import com.base.browserwhite.R
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.BING
import com.base.browserwhite.bean.ConstObject.DUCKDUCKGO
......@@ -27,6 +28,7 @@ import com.base.browserwhite.databinding.FragmentHomeBinding
import com.base.browserwhite.fcm.NotificationUtil
import com.base.browserwhite.help.NewsUtils.requestNews
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.news.NewsActivity
import com.base.browserwhite.ui.activity.news.NewsDetailActivity
......@@ -46,7 +48,6 @@ import java.net.MalformedURLException
import java.net.URL
import java.net.URLEncoder
import java.nio.charset.StandardCharsets
import kotlin.math.abs
class HomeFragment : BaseFragment<FragmentHomeBinding>() {
......@@ -106,6 +107,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
NEWS -> {
requireContext().startActivity(Intent(requireContext(), NewsActivity::class.java))
}
APP_PROCESS -> {
requireContext().startActivity(Intent(requireContext(), AppProcessActivity::class.java))
}
}
})
......
......@@ -146,10 +146,11 @@
android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="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
android:id="@+id/progress_bar_loading"
......@@ -160,11 +161,18 @@
</FrameLayout>
<TextView
android:id="@+id/tv_btn"
android:layout_width="338dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
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>
\ No newline at end of file
......@@ -70,6 +70,23 @@
app:layout_constraintStart_toStartOf="parent"
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
android:id="@+id/iv_next"
android:layout_width="wrap_content"
......
......@@ -45,13 +45,13 @@
</LinearLayout>
<ImageView
android:visibility="gone"
android:id="@+id/iv_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="16dp"
android:src="@mipmap/d_del"
android:visibility="gone"
tools:ignore="ContentDescription" />
</FrameLayout>
......@@ -74,6 +74,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="30dp"
android:orientation="vertical"
android:visibility="gone">
......
......@@ -46,6 +46,13 @@
tools:ignore="HardcodedText" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginHorizontal="20dp"
android:background="#E5E6EB" />
<LinearLayout
android:id="@+id/ll_share"
android:layout_width="match_parent"
......@@ -75,6 +82,7 @@
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
......
......@@ -301,7 +301,7 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="165dp"
android:layout_height="180dp"
android:layout_marginHorizontal="16dp"
android:layout_marginBottom="8dp"
android:background="@drawable/bg_storke_dee9f4"
......
......@@ -82,7 +82,6 @@
android:clickable="true"
android:focusable="true"
android:orientation="vertical"
android:visibility="invisible"
tools:ignore="UseCompoundDrawables">
<ImageView
......
......@@ -13,4 +13,6 @@
<dimen name="dp_9">9dp</dimen>
<dimen name="dp_5">5dp</dimen>
<dimen name="dp_97">97dp</dimen>
<dimen name="dp_18">18dp</dimen>
<dimen name="dp_7">7dp</dimen>
</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