123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- package com.develop.setting.ui
- import android.content.ContentResolver
- import android.net.Uri
- import android.os.Build
- import android.os.Bundle
- import android.provider.Settings
- import android.provider.Settings.System.SCREEN_OFF_TIMEOUT
- import android.util.Log
- import android.view.LayoutInflater
- import android.view.View
- import android.widget.SeekBar
- import androidx.annotation.RequiresApi
- import com.alibaba.android.arouter.facade.annotation.Route
- import com.develop.base.ext.getSN
- import com.develop.base.ext.setVisible
- import com.develop.base.ext.updateText
- import com.develop.base.util.MMkvUtils
- import com.develop.common.router.Screens
- import com.develop.common.tag.BRIGHTNESS
- import com.develop.common.tag.SCREENSAVER
- import com.develop.common.ui.CommonBindingActivity
- import com.develop.setting.R
- import com.develop.setting.databinding.ActivityBirghtnessBinding
- @Route(path = Screens.Setting.BRIGHTNESS)
- class BrightnessActivity : CommonBindingActivity<ActivityBirghtnessBinding>() {
- private var sn = getSN()
- override fun createViewBinding(inflater: LayoutInflater): ActivityBirghtnessBinding {
- return ActivityBirghtnessBinding.inflate(layoutInflater)
- }
- @RequiresApi(Build.VERSION_CODES.O)
- override fun onCreate(savedInstanceState: Bundle?) {
- Log.i("screen", Settings.System.getInt(contentResolver, SCREEN_OFF_TIMEOUT).toString())
- super.onCreate(savedInstanceState)
- binding.ivClose.setOnClickListener {
- finish()
- }
- if (baseSn.startsWith("063B")){
- binding.tvSound.visibility = View.VISIBLE
- binding.sbBrightness.visibility = View.VISIBLE
- binding.ivSoundOne.visibility = View.VISIBLE
- binding.ivSoundTwo.visibility = View.VISIBLE
- }
- if (sn.startsWith("011")) {
- //011需要把控制亮度隐藏
- binding.tvSound.visibility = View.GONE
- binding.sbBrightness.visibility = View.GONE
- binding.ivSoundOne.visibility = View.GONE
- binding.ivSoundTwo.visibility = View.GONE
- binding.tvScreenLockTime.visibility = View.INVISIBLE
- binding.tvTitle.updateText(getString(com.develop.common.R.string.brightness_011))
- } else {
- binding.tvTitle.updateText(getString(com.develop.common.R.string.brightness))
- }
- if (baseSn.startsWith("011F")) {
- binding.birghtnessLayout.background =
- resources.getDrawable(com.develop.common.R.drawable.home_bg_011_f)
- }
- binding.rb3Min.text = " " + resources.getString(com.develop.common.R.string.time_5min)
- binding.rb10Min.text = " " + resources.getString(com.develop.common.R.string.time_10min)
- binding.rb30Min.text = " " + resources.getString(com.develop.common.R.string.time_20min)
- binding.ivClose.setVisible()
- binding.ivClose.setImageResource(com.develop.common.R.drawable.ic_close)
- setScreenManualMode()
- // binding.sbBrightness.max = 255
- var org = getScreenBrightness()
- Log.e("TAG sbBrightness", "org: $org")
- binding.sbBrightness.progress = org
- var lastInt = 0
- var config = false
- //暂时禁止拖动
- // binding.sbBrightness.setOnTouchListener { view, motionEvent ->
- // true
- // }
- binding.sbBrightness.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
- override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
- // setScreenBrightness(p1)
- }
- override fun onStartTrackingTouch(p0: SeekBar?) {
- }
- override fun onStopTrackingTouch(p0: SeekBar?) {
- Log.e("TAG Brightness", " onStopTrackingTouch p1:${p0!!.progress}")
- if (p0 != null) {
- var progress = p0.progress
- setScreenBrightness(progress)
- // val v = (128 - progress)
- // if (v >= 0) {
- // lastInt = v
- // if (config) {
- // return
- // }
- // config = true
- // ThreadUtils.runOnMainThread({
- // config = false
- // CofarSDK.configBrightness(lastInt)
- // }, 1000)
- //
- // }
- }
- }
- })
- //回显设置值
- val min = (Settings.System.getInt(contentResolver, SCREEN_OFF_TIMEOUT) / 1000 / 60)
- binding.rgLockTime.check(R.id.rb_3_min)
- if (min == 10) {
- binding.rgLockTime.check(R.id.rb_10_min)
- }
- if (min == 20) {
- binding.rgLockTime.check(R.id.rb_30_min)
- }
- binding.rgLockTime.setOnCheckedChangeListener { p0, p1 ->
- var minute = 5
- when (p1) {
- R.id.rb_3_min -> {
- minute = 5
- }
- R.id.rb_10_min -> {
- minute = 10
- }
- R.id.rb_30_min -> {
- minute = 20
- }
- }
- setScreenSaverEnable(minute)
- }
- }
- private fun setScreenManualMode() {
- val contentResolver: ContentResolver = contentResolver
- try {
- val mode: Int = Settings.System.getInt(
- contentResolver,
- Settings.System.SCREEN_BRIGHTNESS_MODE
- )
- if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
- Settings.System.putInt(
- contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE,
- Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
- )
- }
- } catch (e: Settings.SettingNotFoundException) {
- e.printStackTrace()
- }
- }
- private fun saveScreenBrightness(value: Int) {
- Settings.System.putInt(
- contentResolver, Settings.System.SCREEN_BRIGHTNESS, value
- )
- }
- fun setScreenBrightness(brightness: Int) {
- MMkvUtils.save(BRIGHTNESS, brightness)
- // 设置屏幕亮度
- // 设置最低亮度
- // Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, brightness)
- val uri = Settings.System.getUriFor("screen_brightness")
- Settings.System.putInt(contentResolver, "screen_brightness", brightness)
- // 通知系统设置发生了变化
- contentResolver.notifyChange(uri, null)
- }
- private fun getScreenBrightness(): Int {
- val defVal = 128
- return Settings.System.getInt(
- contentResolver,
- Settings.System.SCREEN_BRIGHTNESS, defVal
- )
- }
- private fun setScreenSaverEnable(minute: Int) {
- Settings.System.putInt(contentResolver, SCREEN_OFF_TIMEOUT, 1000 * 60 * minute)
- val uri: Uri = Settings.System
- .getUriFor(SCREEN_OFF_TIMEOUT)
- contentResolver.notifyChange(uri, null)
- MMkvUtils.save(SCREENSAVER, minute)
- }
- }
|