SettingMainActivity.kt 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package com.develop.setting.ui
  2. import android.content.Intent
  3. import android.graphics.Rect
  4. import android.os.Bundle
  5. import android.util.Log
  6. import android.view.LayoutInflater
  7. import android.view.View
  8. import android.widget.ImageView
  9. import androidx.appcompat.widget.AppCompatTextView
  10. import androidx.recyclerview.widget.RecyclerView
  11. import com.develop.base.ext.load
  12. import com.alibaba.android.arouter.facade.annotation.Route
  13. import com.develop.base.ext.navigateTo
  14. import com.develop.base.ext.resId2Dimension
  15. import com.develop.base.ext.src
  16. import com.develop.base.ext.updateText
  17. import com.develop.base.util.FileKit
  18. import com.develop.common.data_repo.db.DataFactory
  19. import com.develop.common.data_repo.db.SettingModel
  20. import com.develop.common.data_repo.db.SettingType
  21. import com.develop.common.router.Screens
  22. import com.develop.common.tag.LANGUAGE_FROM_SETTING
  23. import com.develop.common.tag.WIFI_FROM_MAIN_SETTING
  24. import com.develop.common.ui.CommonBindingActivity
  25. import com.develop.setting.R
  26. import com.develop.setting.databinding.ActivitySettingMainBinding
  27. import com.drake.brv.utils.grid
  28. import com.drake.brv.utils.models
  29. import com.drake.brv.utils.setup
  30. @Route(path = Screens.Setting.MAIN_SETTING)
  31. class SettingMainActivity : CommonBindingActivity<ActivitySettingMainBinding>() {
  32. private var dataList = mutableListOf<SettingModel>()
  33. override fun createViewBinding(inflater: LayoutInflater): ActivitySettingMainBinding {
  34. return ActivitySettingMainBinding.inflate(layoutInflater)
  35. }
  36. override fun onCreate(savedInstanceState: Bundle?) {
  37. super.onCreate(savedInstanceState)
  38. dataList = DataFactory.genSettingModesList(resources)
  39. binding.tvTitle.updateText(getString(com.develop.common.R.string.settings))
  40. binding.ivClose.src = com.develop.common.R.drawable.ic_close
  41. binding.ivClose.setOnClickListener {
  42. finish()
  43. }
  44. binding.mainSettingRecycler.apply {
  45. addItemDecoration(object : RecyclerView.ItemDecoration() {
  46. override fun getItemOffsets(
  47. outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State
  48. ) {
  49. super.getItemOffsets(outRect, view, parent, state)
  50. outRect.top = dp77
  51. }
  52. })
  53. grid(4)
  54. setup {
  55. addType<SettingModel>(R.layout.item_setting_main_view)
  56. onBind {
  57. val model = getModel<SettingModel>()
  58. findView<AppCompatTextView>(R.id.tv_name).updateText(model.name)
  59. findView<ImageView>(R.id.iv_icon).src = model.resId
  60. }
  61. R.id.iv_icon.onClick {
  62. Log.d("dddddd", "---")
  63. when (dataList[absoluteAdapterPosition].type) {
  64. SettingType.BRIGHTNESS -> {
  65. navigateTo(Screens.Setting.BRIGHTNESS)
  66. }
  67. SettingType.SOUND -> {
  68. navigateTo(Screens.Setting.SOUND)
  69. }
  70. SettingType.WIFI -> {
  71. navigateTo(Screens.Setting.WIFI) {
  72. val bundle = Bundle()
  73. bundle.putBoolean(WIFI_FROM_MAIN_SETTING, true)
  74. with(bundle)
  75. }
  76. }
  77. SettingType.USER_ACCOUNT -> {
  78. navigateTo(Screens.Auth.MEMBER) {
  79. withBoolean("enter_from_home", true)
  80. }
  81. }
  82. SettingType.LANGUAGE -> {
  83. navigateTo(Screens.Setting.LANGUAGE) {
  84. val bundle = Bundle()
  85. bundle.putBoolean(LANGUAGE_FROM_SETTING, true)
  86. with(bundle)
  87. }
  88. }
  89. SettingType.ABOUT -> {
  90. navigateTo(Screens.Setting.ABOUT)
  91. }
  92. SettingType.RESTORE_FACTORY_SETTINGS -> {
  93. navigateTo(Screens.Setting.RESTORE)
  94. }
  95. SettingType.STORAGE -> {
  96. openFileManager()
  97. }
  98. }
  99. }
  100. }
  101. }.models = dataList
  102. }
  103. // 打开文件管理器选择文件
  104. private fun openFileManager() {
  105. // 打开文件管理器选择文件
  106. val intent = Intent(Intent.ACTION_GET_CONTENT)
  107. intent.type = "application/zip"
  108. intent.addCategory(Intent.CATEGORY_OPENABLE)
  109. startActivityForResult(intent, 100)
  110. }
  111. override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
  112. super.onActivityResult(requestCode, resultCode, data)
  113. if (requestCode == 100) {
  114. data?.data?.apply {
  115. val path = FileKit.getPath(this@SettingMainActivity, this)
  116. }
  117. }
  118. }
  119. companion object {
  120. var dp156 = (com.develop.common.R.dimen.convert_156px).resId2Dimension().toInt()
  121. var dp40 = (com.develop.common.R.dimen.convert_40px).resId2Dimension().toInt()
  122. var dp77 = (com.develop.common.R.dimen.convert_77px).resId2Dimension().toInt()
  123. }
  124. }