描述:

1.新增加载三方应用列表loading
This commit is contained in:
level 2024-10-30 17:03:36 +08:00
parent e4cc8d4fbe
commit 8c08d28e43
1 changed files with 76 additions and 44 deletions

View File

@ -27,9 +27,13 @@ import com.yingmao.clash.R
import com.yingmao.clash.base.BaseActivity
import com.yingmao.clash.conf.BZYConstants
import com.yingmao.clash.entity.AppInfoEntity
import com.yingmao.clash.net.http.entity.SendSmsRsp
import com.yingmao.clash.util.Utils
import com.yingmao.clash.view.RxToast
import com.yingmao.clash.view.adapter.InstallApplicationAdapter
import com.yingmao.clash.view.dialog.RxDialogShapeLoading
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.launch
import java.io.ByteArrayOutputStream
class InstallApplicationActivity : BaseActivity() {
@ -43,6 +47,8 @@ class InstallApplicationActivity : BaseActivity() {
private var index = 0
private var indexBase=0
private var saveAppInfo = mutableListOf<AppInfoEntity>()
private lateinit var rxDialogShapeLoading: RxDialogShapeLoading
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_install_application)
@ -51,7 +57,57 @@ class InstallApplicationActivity : BaseActivity() {
initView()
}
override fun onResume() {
super.onResume()
MainScope().launch {
val decodeString = MMKV.defaultMMKV().decodeString(BZYConstants.APPSETTINGINFO,"")
if(decodeString.isNullOrEmpty()){
val allLauncherIconPackages = getAllLauncherIconPackages(this@InstallApplicationActivity)
allLauncherIconPackages.reverse()
iAAdapter.notifyAdapter(allLauncherIconPackages,this@InstallApplicationActivity)
}else{
saveAppInfo = Gson().fromJson<AppInfoEntity>(
MMKV.defaultMMKV().decodeString(BZYConstants.APPSETTINGINFO),
object : TypeToken<ArrayList<AppInfoEntity?>?>() {
}.type
) as MutableList<AppInfoEntity>
val allLauncherIconPackages = getAllLauncherIconPackages(this@InstallApplicationActivity)
allLauncherIconPackages.reverse()
allLauncherIconPackages.forEach {allItem->
saveAppInfo.forEach { saveItem->
if(allItem.packageName==saveItem.packageName&&allItem.label==saveItem.label){
allItem.isChoose=true
}
}
}
indexBase=saveAppInfo.size
iAAdapter.notifyAdapter(allLauncherIconPackages,this@InstallApplicationActivity)
Log.i("levelInstall","saveAppInfo:::"+saveAppInfo.size+"allLauncherIconPackages::::"+allLauncherIconPackages.size)
if(allLauncherIconPackages.size==saveAppInfo.size){
isSelectAll=true
TVChooseName.text=resources.getString(R.string.cancel)+resources.getString(R.string.SelectAll)
tableTitleCB.setImageResource(R.drawable.ic_xianzhong)
index=saveAppInfo.size
}else if(saveAppInfo.size>0){
TVChooseName.text=resources.getString(R.string.SelectAll)
tableTitleCB.setImageResource(R.drawable.ic_xianzhongjian)
}
}
runOnUiThread {
RvIcon.layoutManager= LinearLayoutManager(this@InstallApplicationActivity)
RvIcon.adapter=iAAdapter
hideLoadingDialog()
}
}
}
private fun initView() {
showLoadingDialog(resources.getString(R.string.LoadingProgress))
val titleBar=findViewById<AppBarLayout>(R.id.appBar)
val statusBarHeight = Utils.getStatusBarHeight(this)
Utils.setLayoutMargins(titleBar,0,statusBarHeight,0,0)
@ -71,50 +127,6 @@ class InstallApplicationActivity : BaseActivity() {
TVChooseName=findViewById(R.id.TVChooseName)
val decodeString = MMKV.defaultMMKV().decodeString(BZYConstants.APPSETTINGINFO,"")
if(decodeString.isNullOrEmpty()){
val allLauncherIconPackages = getAllLauncherIconPackages(this)
allLauncherIconPackages.reverse()
iAAdapter.notifyAdapter(allLauncherIconPackages,this)
}else{
saveAppInfo = Gson().fromJson<AppInfoEntity>(
MMKV.defaultMMKV().decodeString(BZYConstants.APPSETTINGINFO),
object : TypeToken<ArrayList<AppInfoEntity?>?>() {
}.type
) as MutableList<AppInfoEntity>
val allLauncherIconPackages = getAllLauncherIconPackages(this)
allLauncherIconPackages.reverse()
allLauncherIconPackages.forEach {allItem->
saveAppInfo.forEach { saveItem->
if(allItem.packageName==saveItem.packageName&&allItem.label==saveItem.label){
allItem.isChoose=true
}
}
}
indexBase=saveAppInfo.size
iAAdapter.notifyAdapter(allLauncherIconPackages,this)
Log.i("levelInstall","saveAppInfo:::"+saveAppInfo.size+"allLauncherIconPackages::::"+allLauncherIconPackages.size)
if(allLauncherIconPackages.size==saveAppInfo.size){
isSelectAll=true
TVChooseName.text=resources.getString(R.string.cancel)+resources.getString(R.string.SelectAll)
tableTitleCB.setImageResource(R.drawable.ic_xianzhong)
index=saveAppInfo.size
}else if(saveAppInfo.size>0){
TVChooseName.text=resources.getString(R.string.SelectAll)
tableTitleCB.setImageResource(R.drawable.ic_xianzhongjian)
}
}
RvIcon.layoutManager= LinearLayoutManager(this)
RvIcon.adapter=iAAdapter
iAAdapter.setListener(object :InstallApplicationAdapter.onItemClickListener{
@SuppressLint("SetTextI18n")
override fun onItemClick(appInfoList: List<AppInfoEntity>, isPosition: Int) {
@ -295,4 +307,24 @@ class InstallApplicationActivity : BaseActivity() {
}
return null
}
private fun showLoadingDialog(content: String) {
if (!::rxDialogShapeLoading.isInitialized) {
rxDialogShapeLoading = RxDialogShapeLoading(this)
}
rxDialogShapeLoading.setMessage(content)
if (!rxDialogShapeLoading.isShowing) {
rxDialogShapeLoading.show()
}
}
private fun hideLoadingDialog() {
if (::rxDialogShapeLoading.isInitialized && rxDialogShapeLoading.isShowing) {
rxDialogShapeLoading.cancel()
}
}
override fun onDestroy() {
super.onDestroy()
hideLoadingDialog()
}
}