BrightnessActivity.kt 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. package com.develop.setting.ui
  2. import android.content.ContentResolver
  3. import android.net.Uri
  4. import android.os.Build
  5. import android.os.Bundle
  6. import android.provider.Settings
  7. import android.provider.Settings.System.SCREEN_OFF_TIMEOUT
  8. import android.util.Log
  9. import android.view.LayoutInflater
  10. import android.view.View
  11. import android.widget.SeekBar
  12. import androidx.annotation.RequiresApi
  13. import com.alibaba.android.arouter.facade.annotation.Route
  14. import com.develop.base.ext.getSN
  15. import com.develop.base.ext.setVisible
  16. import com.develop.base.ext.updateText
  17. import com.develop.base.util.MMkvUtils
  18. import com.develop.common.router.Screens
  19. import com.develop.common.tag.BRIGHTNESS
  20. import com.develop.common.tag.SCREENSAVER
  21. import com.develop.common.ui.CommonBindingActivity
  22. import com.develop.setting.R
  23. import com.develop.setting.databinding.ActivityBirghtnessBinding
  24. @Route(path = Screens.Setting.BRIGHTNESS)
  25. class BrightnessActivity : CommonBindingActivity<ActivityBirghtnessBinding>() {
  26. private var sn = getSN()
  27. override fun createViewBinding(inflater: LayoutInflater): ActivityBirghtnessBinding {
  28. return ActivityBirghtnessBinding.inflate(layoutInflater)
  29. }
  30. @RequiresApi(Build.VERSION_CODES.O)
  31. override fun onCreate(savedInstanceState: Bundle?) {
  32. Log.i("screen", Settings.System.getInt(contentResolver, SCREEN_OFF_TIMEOUT).toString())
  33. super.onCreate(savedInstanceState)
  34. binding.ivClose.setOnClickListener {
  35. finish()
  36. }
  37. if (baseSn.startsWith("063B")){
  38. binding.tvSound.visibility = View.VISIBLE
  39. binding.sbBrightness.visibility = View.VISIBLE
  40. binding.ivSoundOne.visibility = View.VISIBLE
  41. binding.ivSoundTwo.visibility = View.VISIBLE
  42. }
  43. if (sn.startsWith("011")) {
  44. //011需要把控制亮度隐藏
  45. binding.tvSound.visibility = View.GONE
  46. binding.sbBrightness.visibility = View.GONE
  47. binding.ivSoundOne.visibility = View.GONE
  48. binding.ivSoundTwo.visibility = View.GONE
  49. binding.tvScreenLockTime.visibility = View.INVISIBLE
  50. binding.tvTitle.updateText(getString(com.develop.common.R.string.brightness_011))
  51. } else {
  52. binding.tvTitle.updateText(getString(com.develop.common.R.string.brightness))
  53. }
  54. if (baseSn.startsWith("011F")) {
  55. binding.birghtnessLayout.background =
  56. resources.getDrawable(com.develop.common.R.drawable.home_bg_011_f)
  57. }
  58. binding.rb3Min.text = " " + resources.getString(com.develop.common.R.string.time_5min)
  59. binding.rb10Min.text = " " + resources.getString(com.develop.common.R.string.time_10min)
  60. binding.rb30Min.text = " " + resources.getString(com.develop.common.R.string.time_20min)
  61. binding.ivClose.setVisible()
  62. binding.ivClose.setImageResource(com.develop.common.R.drawable.ic_close)
  63. setScreenManualMode()
  64. // binding.sbBrightness.max = 255
  65. var org = getScreenBrightness()
  66. Log.e("TAG sbBrightness", "org: $org")
  67. binding.sbBrightness.progress = org
  68. var lastInt = 0
  69. var config = false
  70. //暂时禁止拖动
  71. // binding.sbBrightness.setOnTouchListener { view, motionEvent ->
  72. // true
  73. // }
  74. binding.sbBrightness.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
  75. override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
  76. // setScreenBrightness(p1)
  77. }
  78. override fun onStartTrackingTouch(p0: SeekBar?) {
  79. }
  80. override fun onStopTrackingTouch(p0: SeekBar?) {
  81. Log.e("TAG Brightness", " onStopTrackingTouch p1:${p0!!.progress}")
  82. if (p0 != null) {
  83. var progress = p0.progress
  84. setScreenBrightness(progress)
  85. // val v = (128 - progress)
  86. // if (v >= 0) {
  87. // lastInt = v
  88. // if (config) {
  89. // return
  90. // }
  91. // config = true
  92. // ThreadUtils.runOnMainThread({
  93. // config = false
  94. // CofarSDK.configBrightness(lastInt)
  95. // }, 1000)
  96. //
  97. // }
  98. }
  99. }
  100. })
  101. //回显设置值
  102. val min = (Settings.System.getInt(contentResolver, SCREEN_OFF_TIMEOUT) / 1000 / 60)
  103. binding.rgLockTime.check(R.id.rb_3_min)
  104. if (min == 10) {
  105. binding.rgLockTime.check(R.id.rb_10_min)
  106. }
  107. if (min == 20) {
  108. binding.rgLockTime.check(R.id.rb_30_min)
  109. }
  110. binding.rgLockTime.setOnCheckedChangeListener { p0, p1 ->
  111. var minute = 5
  112. when (p1) {
  113. R.id.rb_3_min -> {
  114. minute = 5
  115. }
  116. R.id.rb_10_min -> {
  117. minute = 10
  118. }
  119. R.id.rb_30_min -> {
  120. minute = 20
  121. }
  122. }
  123. setScreenSaverEnable(minute)
  124. }
  125. }
  126. private fun setScreenManualMode() {
  127. val contentResolver: ContentResolver = contentResolver
  128. try {
  129. val mode: Int = Settings.System.getInt(
  130. contentResolver,
  131. Settings.System.SCREEN_BRIGHTNESS_MODE
  132. )
  133. if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
  134. Settings.System.putInt(
  135. contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE,
  136. Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
  137. )
  138. }
  139. } catch (e: Settings.SettingNotFoundException) {
  140. e.printStackTrace()
  141. }
  142. }
  143. private fun saveScreenBrightness(value: Int) {
  144. Settings.System.putInt(
  145. contentResolver, Settings.System.SCREEN_BRIGHTNESS, value
  146. )
  147. }
  148. fun setScreenBrightness(brightness: Int) {
  149. MMkvUtils.save(BRIGHTNESS, brightness)
  150. // 设置屏幕亮度
  151. // 设置最低亮度
  152. // Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, brightness)
  153. val uri = Settings.System.getUriFor("screen_brightness")
  154. Settings.System.putInt(contentResolver, "screen_brightness", brightness)
  155. // 通知系统设置发生了变化
  156. contentResolver.notifyChange(uri, null)
  157. }
  158. private fun getScreenBrightness(): Int {
  159. val defVal = 128
  160. return Settings.System.getInt(
  161. contentResolver,
  162. Settings.System.SCREEN_BRIGHTNESS, defVal
  163. )
  164. }
  165. private fun setScreenSaverEnable(minute: Int) {
  166. Settings.System.putInt(contentResolver, SCREEN_OFF_TIMEOUT, 1000 * 60 * minute)
  167. val uri: Uri = Settings.System
  168. .getUriFor(SCREEN_OFF_TIMEOUT)
  169. contentResolver.notifyChange(uri, null)
  170. MMkvUtils.save(SCREENSAVER, minute)
  171. }
  172. }