Commit d8880904 authored by wanglei's avatar wanglei

...

parent c71ca2ea
......@@ -36,6 +36,12 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.activity.cleanjunk.ScanJunkActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".ui.activity.mediabrowser.MediaVideoDetailActivity"
android:exported="false"
......
package com.base.browserwhite.bean
import android.animation.ValueAnimator
import android.graphics.drawable.Drawable
data class ParentBean(
val icon: Int = 0,
val tittle: String = "",
) {
var playAnimation: Boolean = true
var isExpand: Boolean = false
var isSelect: Boolean = false
var finished: Boolean = false
var rotateValueAnimator: ValueAnimator? = null
}
data class ChildBean(
val icon: Drawable? = null,
val name: String = "",
val path: String = "",
) {
var isSelect: Boolean = false
}
\ No newline at end of file
package com.base.browserwhite.ui.activity.cleanjunk
import android.graphics.Color
import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import com.base.browserwhite.R
import com.base.browserwhite.bean.ParentBean
import com.base.browserwhite.databinding.ActivityScanJunkBinding
import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.adapter.JunkScanAdapter
import com.base.browserwhite.utils.BarUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
class ScanJunkActivity : BaseActivity<ActivityScanJunkBinding>() {
private lateinit var junkScanAdapter: JunkScanAdapter
override val binding: ActivityScanJunkBinding by lazy {
ActivityScanJunkBinding.inflate(layoutInflater)
}
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
junkScanAdapter = JunkScanAdapter()
binding.rv.adapter = junkScanAdapter
beginScan()
}
private fun beginScan() {
lifecycleScope.launch(Dispatchers.Main) {
junkScanAdapter.addData(ParentBean(R.mipmap.x_residual, "Residual File"), 0)
delay(300)
junkScanAdapter.addData(ParentBean(R.mipmap.x_useless, "Useless installation package"), 1)
delay(300)
junkScanAdapter.addData(ParentBean(R.mipmap.x_temp, "Temp Files"), 2)
delay(300)
junkScanAdapter.addData(ParentBean(R.mipmap.x_residual, "Log Files"), 3)
}
}
}
\ No newline at end of file
......@@ -16,7 +16,6 @@ import com.base.browserwhite.databinding.ItemTabWebstoreBinding
import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
import com.base.browserwhite.ui.adapter.WebSiteGroupAdapter
import com.base.browserwhite.utils.AssetUtils.readJsonFromAsset
import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.LogEx
import com.bumptech.glide.Glide
......@@ -59,6 +58,14 @@ class WevStoreActivity : BaseActivity<ActivityWevStoreBinding>() {
initData()
}
override fun initListener() {
super.initListener()
binding.ivGuanbi.setOnClickListener {
finishToMain()
}
}
private fun initData() = lifecycleScope.launch(Dispatchers.IO) {
webCategoryBean.addAll(webCategoryBeanList)
webSiteGroupBean.addAll(webSiteGroupBeanList)
......
package com.base.browserwhite.ui.adapter
import android.animation.ValueAnimator
import android.view.View
import android.view.ViewGroup
import android.view.animation.AnimationUtils
import android.view.animation.LinearInterpolator
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.base.browserwhite.R
import com.base.browserwhite.bean.ParentBean
import com.base.browserwhite.databinding.ItemJunkParentScanBinding
import com.base.browserwhite.utils.XmlEx.inflate
class JunkScanAdapter : RecyclerView.Adapter<JunkScanAdapter.ParentViewHolder>() {
private val beanList = arrayListOf<ParentBean>()
inner class ParentViewHolder(view: View) : RecyclerView.ViewHolder(view)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ParentViewHolder {
return ParentViewHolder(R.layout.item_junk_parent_scan.inflate(parent))
}
override fun getItemCount(): Int {
return beanList.size
}
override fun onBindViewHolder(holder: ParentViewHolder, position: Int) {
val bean = beanList[position]
val context = holder.itemView.context
val binding = ItemJunkParentScanBinding.bind(holder.itemView)
binding.ivIcon.setImageResource(bean.icon)
binding.tvTitle.text = bean.tittle
if (bean.playAnimation) {
val slideInFromRight = AnimationUtils.loadAnimation(holder.itemView.context, R.anim.slide_in_from_right)
binding.ll.startAnimation(slideInFromRight)
bean.playAnimation = false
}
if (bean.finished) {
binding.ivRotate.rotation = 0f
binding.ivRotate.setImageDrawable(ContextCompat.getDrawable(context, R.mipmap.xuan))
bean.rotateValueAnimator?.cancel()
bean.rotateValueAnimator = null
} else {
bean.rotateValueAnimator = ValueAnimator.ofFloat(0f, 360f).apply {
duration = 1000
repeatMode = ValueAnimator.RESTART
repeatCount = ValueAnimator.INFINITE
interpolator = LinearInterpolator()
addUpdateListener {
binding.ivRotate.rotation = it.animatedValue as Float
}
start()
}
}
}
fun addData(bean: ParentBean, position: Int) {
beanList.add(bean)
notifyItemChanged(position)
}
}
\ No newline at end of file
......@@ -15,6 +15,7 @@ import androidx.lifecycle.lifecycleScope
import com.base.browserwhite.bean.MediaBean
import com.base.browserwhite.databinding.FragmentFileBinding
import com.base.browserwhite.ui.activity.MainActivity
import com.base.browserwhite.ui.activity.cleanjunk.ScanJunkActivity
import com.base.browserwhite.ui.activity.mediabrowser.MediaBrowserActivity
import com.base.browserwhite.ui.adapter.MediaAdapter
import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
......@@ -91,6 +92,9 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
}
}
}
binding.tvClean.setOnClickListener {
startActivity(Intent(requireContext(), ScanJunkActivity::class.java))
}
binding.llPicture.setOnClickListener {
requireActivity().startActivity(Intent(requireContext(), MediaBrowserActivity::class.java).apply {
putExtra("tittle", "Picture")
......
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="800"
android:fillAfter="true"
android:fromXDelta="100%p"
android:startOffset="0"
android:toXDelta="0" />
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.activity.cleanjunk.ScanJunkActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_top"
android:layout_width="match_parent"
android:layout_height="300dp"
android:background="@mipmap/lan_bg"
app:layout_constraintTop_toTopOf="parent" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/tv_btn"
app:layout_constraintTop_toBottomOf="@id/cl_top">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</FrameLayout>
<TextView
android:id="@+id/tv_btn"
android:layout_width="338dp"
android:layout_height="50dp"
android:layout_marginBottom="30dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginVertical="8dp">
<ImageView
android:id="@+id/iv_rotate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/jiazai"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<LinearLayout
android:id="@+id/ll"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/iv_rotate"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/iv_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginVertical="12dp"
tools:ignore="ContentDescription"
tools:src="@mipmap/x_residual" />
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="11dp"
android:text="Residual File"
android:textColor="@color/black"
android:textSize="15sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="1px"
android:background="#E5E6EB"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/ll" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ 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