package com.TestBrightness;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import com.TestBrightness.manager.SystemManager;
public class TestBrightness extends Activity implements OnClickListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SystemManager.init(this);
showBrightnessSettingDialog();
}
@Override
public void onClick(View v) {
showBrightnessSettingDialog();
}
private int mOldBrightness;
private int mCurrentBrightness = 0;
private int mOldAutomatic;
private boolean mAutomaticAvailable;
/**
* Brightness value for dim backlight
*/
private static final int BRIGHTNESS_DIM = 20;
/**
* Brightness value for fully on
*/
private static final int BRIGHTNESS_ON = 255;
// Backlight range is from 0 - 255. Need to make sure that user
// doesn't set the backlight to 0 and get stuck
private static final int MINIMUM_BACKLIGHT = BRIGHTNESS_DIM + 10;
private static final int MAXIMUM_BACKLIGHT = BRIGHTNESS_ON;
private void showBrightnessSettingDialog(){
final SystemManager systemManager = SystemManager.getInstance();
final Builder builder = new AlertDialog.Builder(this);
final View view = getLayoutInflater().inflate(R.layout.brightness_view, null);
// set brightness seekbar
final SeekBar brightnessBar = (SeekBar) view.findViewById(R.id.brightness_bar);
brightnessBar.setMax(MAXIMUM_BACKLIGHT - MINIMUM_BACKLIGHT);
int brightness = systemManager.getScreenBrightness();
int process = brightness - MINIMUM_BACKLIGHT;
if (process<0) {
process = 0;
mOldBrightness = MINIMUM_BACKLIGHT;
mCurrentBrightness = MINIMUM_BACKLIGHT;
}else{
mOldBrightness = brightness;
mCurrentBrightness = brightness;
}
brightnessBar.setProgress(process);
// set automatic available checkbox
final CheckBox autoBrightness = (CheckBox)view.findViewById(R.id.auto_brightness);
mOldAutomatic = systemManager.getBrightnessMode();
mAutomaticAvailable = systemManager.isAutoBrightness();
autoBrightness.setChecked(mAutomaticAvailable);
if(mAutomaticAvailable){
brightnessBar.setVisibility(View.GONE);
}else{
brightnessBar.setVisibility(View.VISIBLE);
}
autoBrightness.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
mAutomaticAvailable = isChecked;
if(isChecked){
brightnessBar.setVisibility(View.GONE);
systemManager.startAutoBrightness();
//systemManager.setBrightness(MainActivity.this, systemManager.getScreenBrightness());
int process = systemManager.getScreenBrightness() - MINIMUM_BACKLIGHT;
if (process<0) {
process = 0;
}// end if
brightnessBar.setProgress(process);
}else{
brightnessBar.setVisibility(View.VISIBLE);
systemManager.stopAutoBrightness();
//systemManager.setBrightness(MainActivity.this, systemManager.getScreenBrightness());
int process = systemManager.getScreenBrightness() - MINIMUM_BACKLIGHT;
if (process<0) {
process = 0;
}// end if
brightnessBar.setProgress(process);
}
}
});
brightnessBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(final SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(final SeekBar seekBar) {
}
@Override
public void onProgressChanged(final SeekBar seekBar, final int progress,
final boolean fromUser) {
mCurrentBrightness = progress + MINIMUM_BACKLIGHT;
systemManager.setBrightness(TestBrightness.this, mCurrentBrightness);
}
});
builder.setTitle(R.string.brightness);
builder.setView(view);
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){
@Override
public void onClick(final DialogInterface dialog, final int which) {
// set brightness
if(mAutomaticAvailable){
systemManager.saveBrightness(systemManager.getScreenBrightness());
}else{
systemManager.saveBrightness(mCurrentBrightness);
}
}
});
builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
// recover brightness
systemManager.setBrightness(TestBrightness.this, mOldBrightness);
systemManager.saveBrightness(mOldBrightness);
// recover automatic brightness mode
systemManager.setBrightnessMode(mOldAutomatic);
}
});
builder.show();
}
}
firepation
- 粉丝: 1708
- 资源: 614
最新资源
- 基于积分型滑模控制器的永磁同步电机FOC 1.转速环基于积分型滑模面设计积分型滑模面结构控制器,采用指数趋近律来提高系统的动态性
- 基于Android API 3.1+的ActivityOptionsICS动画优化设计源码
- 基于Java开发的谷粒商城全栈设计源码
- 基于2024华为昇腾AI原生创新算子挑战赛S1的0xCCCCCCCC队伍Python设计源码
- 基于Spring Boot的视频点播系统设计与源码解析教程
- CarSim与Simulink联合仿真,实时检测,动态规划路径,实现超车道,基于mpc,模型预测控制实现,距离效果见视频 提供c
- 基于Java语言开发的题库管理系统设计源码
- 基恩士KV8000程序 ~ 基恩士KV8000系列程序,KV8000+KV-C64X+KV-C64T等输入输出模块,KV
- 基于Java平台的Python课程在线代码调试系统设计源码
- 基于Java Server Pages的简单邮箱示例设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈