/** * */ package com.tencent.one.battery.demo.activity.device; import android.app.Activity; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; import com.tencent.one.battery.core.device.DeviceData; import com.tencent.one.battery.core.device.DeviceFacade; import com.tencent.one.battery.core.device.DeviceManager; import com.tencent.one.battery.demo.R; /** * @author matrixxu * */ public class DeviceActivity extends Activity implements OnClickListener, OnSeekBarChangeListener, OnCheckedChangeListener { private DeviceFacade deviceFacade = null; private TextView mTvScreennTimtOut = null; private TextView mTvScreenBrightness = null; private Button mBtnWifi = null; private Button mBtnBluetooth = null; private Button mBtnMobiledata = null; private Button mBtnAirplane = null; private Button mBtnHapticFeedback = null; private Button mBtnSyncInfo = null; private Button mBtnRotate = null; private Button mBtnScreenTimeout = null; private Button mBtnScreenBrightness = null; private Button mBtnSilent = null; private Button mBtnOnlyRing = null; private Button mBtnOnlyVibrate = null; private Button mBtnRingAndVibrate = null; private Button mBtnGps = null; private SeekBar mSbScreenTimeOut = null; private SeekBar mSbScreenBrightness = null; private CheckBox mCbScreenBrightnessAuto = null; private int wifiStatus = -1; private int bluetoothStatus = -1; private int mobiledataStatus = -1; private int airplaneStatus = -1; private int hapticFeedbackStatus = -1; private int syncInfoStatus = -1; private int rotateStatus = -1; private int screenTimeOutValue = -1; private int screenBrightnessValue = -1; private int vibrateAndRing = -1; private int gpsStatus = -1; /* * (non-Javadoc) * * @see android.app.Activity#onCreate(android.os.Bundle) */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_device); mTvScreennTimtOut = (TextView) findViewById(R.id.timeout_value); mTvScreenBrightness = (TextView) findViewById(R.id.screen_brightness_text); mBtnWifi = (Button) findViewById(R.id.btn_wifi); mBtnBluetooth = (Button) findViewById(R.id.btn_bluetooth); mBtnMobiledata = (Button) findViewById(R.id.btn_mobiledata); mBtnAirplane = (Button) findViewById(R.id.btn_aireplane); mBtnHapticFeedback = (Button) findViewById(R.id.btn_feedback); mBtnSyncInfo = (Button) findViewById(R.id.btn_syncinfo); mBtnRotate = (Button) findViewById(R.id.btn_rotate); mBtnScreenTimeout = (Button) findViewById(R.id.btn_timeout); mBtnScreenBrightness = (Button) findViewById(R.id.btn_screen_brightness); mSbScreenTimeOut = (SeekBar) findViewById(R.id.timeout_seekBar); mSbScreenBrightness = (SeekBar) findViewById(R.id.screenBrightness_seekBar); mCbScreenBrightnessAuto = (CheckBox) findViewById(R.id.screen_brightness_auto_cb); mBtnSilent = (Button) findViewById(R.id.btn_silent); mBtnOnlyRing = (Button) findViewById(R.id.btn_ring); mBtnOnlyVibrate = (Button) findViewById(R.id.btn_vibrate); mBtnRingAndVibrate = (Button) findViewById(R.id.btn_vibrateandring); mBtnGps = (Button) findViewById(R.id.btn_gps); mBtnAirplane.setOnClickListener(this); mBtnHapticFeedback.setOnClickListener(this); mBtnMobiledata.setOnClickListener(this); mBtnWifi.setOnClickListener(this); mBtnBluetooth.setOnClickListener(this); mBtnSyncInfo.setOnClickListener(this); mBtnRotate.setOnClickListener(this); mBtnScreenTimeout.setOnClickListener(this); mBtnScreenBrightness.setOnClickListener(this); mBtnSilent.setOnClickListener(this); mBtnOnlyRing.setOnClickListener(this); mBtnOnlyVibrate.setOnClickListener(this); mBtnRingAndVibrate.setOnClickListener(this); mSbScreenTimeOut.setOnSeekBarChangeListener(this); mSbScreenBrightness.setOnSeekBarChangeListener(this); mCbScreenBrightnessAuto.setOnCheckedChangeListener(this); mBtnGps.setOnClickListener(this); deviceFacade = new DeviceManager(); deviceFacade.registDataObserver(mOnSharedPreferenceChangeListener, this); } /* * (non-Javadoc) * * @see android.app.Activity#onResume() */ @Override protected void onResume() { checkWifiStatus(); checkBluetoothStatus(); checkMobiledataStatus(); checkAirplaneStatus(); checkHapticFeedbackStatus(); checkSyncInfo(); checkRotate(); checkScreenTimeOut(); checkScreenBrightness(); checkGps(); super.onResume(); } private void checkAirplaneStatus() { int status = deviceFacade.getDeviceStatus(this, DeviceManager.AIRPLANE_KEY); airplaneStatus = status; switch (status) { case 0: mBtnAirplane.setText("airplane model is close!"); break; case 1: mBtnAirplane.setText("airplane model is open!"); break; case -1: mBtnAirplane.setText("system error!"); break; } } private void checkHapticFeedbackStatus() { int status = deviceFacade.getDeviceStatus(this, DeviceManager.HAFEEDBACK); hapticFeedbackStatus = status; switch (status) { case 0: mBtnHapticFeedback.setText("hapticFeedback is close!"); break; case 1: mBtnHapticFeedback.setText("hapticFeedback is open!"); break; case -1: mBtnHapticFeedback.setText("system error!"); break; } } private void checkMobiledataStatus() { int status = deviceFacade.getDeviceStatus(this, DeviceManager.MOBILEDATA_KEY); mobiledataStatus = status; switch (status) { case 0: mBtnMobiledata.setText("mobiledata is close!"); break; case 1: mBtnMobiledata.setText("mobiledata is open!"); break; case -1: mBtnMobiledata.setText("system error!"); break; } } private void checkBluetoothStatus() { int status = deviceFacade.getDeviceStatus(this, DeviceManager.BLUETOOTH_KEY); bluetoothStatus = status; switch (status) { case 0: mBtnBluetooth.setText("bluetooth is close!"); break; case 1: mBtnBluetooth.setText("bluetooth is open!"); break; case -1: mBtnBluetooth.setText("system error!"); break; } } private void checkWifiStatus() { int status = deviceFacade.getDeviceStatus(this, DeviceManager.WIFI_KEY); wifiStatus = status; switch (status) { case 0: mBtnWifi.setText("wifi is close!"); break; case 1: mBtnWifi.setText("wifi is open!"); break; case -1: mBtnWifi.setText("system error!"); break; } } private void checkSyncInfo() { int status = deviceFacade.getDeviceStatus(this, DeviceManager.SYNCINFO_KEY); syncInfoStatus = status; switch (status) { case 0: mBtnSyncInfo.setText("syncinfo is close!"); break; case 1: mBtnSyncInfo.setText("syncinfo is open!"); break; case -1: mBtnSyncInfo.setText("system error!"); break; } } private void checkRotate() { int status = deviceFacade.getDeviceStatus(this, DeviceManager.ROTATE_KEY); rotateStatus = status; switch (status) { case 0: mBtnRotate.setText("rotate is close!"); break; case 1: mBtnRotate.setText("rotate is open!"); break; case -1: mBtnRotate.setText("system error!"); break; } } private void checkScreenTimeOut() { int status = deviceFacade.getDeviceStatus(this, DeviceManager.SCREENTIMEOUT_KEY); screenTimeOutValue = status; mSbScreenTimeOut.setProgress(screenTimeOutValue - 10); } private void checkScreenBrightness() { int status = deviceFacade.getDeviceStatus(this, DeviceManager.SCREENBRIGHTNESS_KEY); if (status != 1) { if (mCbScreenBrightnessAuto.isChecked()) { mCbScreenBrightnessAuto.setChecked(false); } screenBrightnessValue = status; mSbScreenBrightness.setProgress(screenBrightnessValue - 15); } else { mCbScreenBrightnessAuto.setChecked(true); } } private void checkVibrateAndRing() { int status = deviceFacade.getDeviceStatus(this, DeviceManager.RINGANDVIBRATE_KEY); vibrateAndRing = status; } private void checkGps() { int status = deviceFacade.getDeviceStatus(this, DeviceManager.GPS_KEY); gpsStatus = status; switch (status) { case 0: mBtnGps.setText("gps is close!"); break; case 1: mBtnGps.setText("gps is open!"); break; case -1: mBtnGps.setText("system error!"); break; } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_wifi: boolean isOpen = false; switch (wifiStatus) { case 0: mBtnWifi.setText("be open now..."); isOpen = true; break; case 1: mBtnWifi.setText("be closed now..."); isOpen = false; break; } deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.WIFI_KEY, isOpen, 0); break; } switch (v.getId()) { case R.id.btn_bluetooth: boolean isOpen = false; switch (bluetoothStatus) { case 0: mBtnBluetooth.setText("be open now..."); isOpen = true; break; case 1: mBtnBluetooth.setText("be closed now..."); isOpen = false; break; } deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.BLUETOOTH_KEY, isOpen, 0); break; } switch (v.getId()) { case R.id.btn_mobiledata: boolean isOpen = false; switch (mobiledataStatus) { case 0: mBtnMobiledata.setText("be open now..."); isOpen = true; break; case 1: mBtnMobiledata.setText("be closed now..."); isOpen = false; break; } deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.MOBILEDATA_KEY, isOpen, 0); break; } switch (v.getId()) { case R.id.btn_feedback: boolean isOpen = false; switch (hapticFeedbackStatus) { case 0: mBtnHapticFeedback.setText("be open now..."); isOpen = true; break; case 1: mBtnHapticFeedback.setText("be closed now..."); isOpen = false; break; } deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.HAFEEDBACK, isOpen, 0); break; } switch (v.getId()) { case R.id.btn_aireplane: boolean isOpen = false; switch (airplaneStatus) { case 0: mBtnAirplane.setText("be open now..."); isOpen = true; break; case 1: mBtnAirplane.setText("be closed now..."); isOpen = false; break; } deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.AIRPLANE_KEY, isOpen, 0); break; } switch (v.getId()) { case R.id.btn_syncinfo: boolean isOpen = false; switch (syncInfoStatus) { case 0: mBtnSyncInfo.setText("be open now..."); isOpen = true; break; case 1: mBtnSyncInfo.setText("be closed now..."); isOpen = false; break; } deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.SYNCINFO_KEY, isOpen, 0); break; } switch (v.getId()) { case R.id.btn_rotate: boolean isOpen = false; switch (rotateStatus) { case 0: mBtnRotate.setText("be open now..."); isOpen = true; break; case 1: mBtnRotate.setText("be closed now..."); isOpen = false; break; } deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.ROTATE_KEY, isOpen, 0); break; } switch (v.getId()) { case R.id.btn_timeout: deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.SCREENTIMEOUT_KEY, false, screenTimeOutValue); break; } switch (v.getId()) { case R.id.btn_screen_brightness: deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.SCREENBRIGHTNESS_KEY, mCbScreenBrightnessAuto.isChecked(), screenBrightnessValue); break; } switch (v.getId()) { case R.id.btn_ring: vibrateAndRing = DeviceManager.ONLY_RING; deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.RINGANDVIBRATE_KEY, false, vibrateAndRing); break; case R.id.btn_vibrate: vibrateAndRing = DeviceManager.ONLY_VIBRATE; deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.RINGANDVIBRATE_KEY, false, vibrateAndRing); break; case R.id.btn_silent: vibrateAndRing = DeviceManager.SILENT; deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.RINGANDVIBRATE_KEY, false, vibrateAndRing); break; case R.id.btn_vibrateandring: vibrateAndRing = DeviceManager.RING_AND_VIBRATE; deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.RINGANDVIBRATE_KEY, false, vibrateAndRing); break; } switch (v.getId()) { case R.id.btn_gps: boolean isOpen = false; switch (gpsStatus) { case 0: mBtnGps.setText("be open now..."); isOpen = true; break; case 1: mBtnGps.setText("be closed now..."); isOpen = false; break; } deviceFacade.deviceControll(DeviceActivity.this, DeviceManager.GPS_KEY, isOpen, 0); break; } } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (seekBar.getId() == R.id.timeout_seekBar) { screenTimeOutValue = progress + 10; mTvScreennTimtOut.setText(screenTimeOutValue + "s"); } else { screenBrightnessValue = progress + 15; mTvScreenBrightness.setText(screenBrightnessValue + "%"); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { mSbScreenBrightness.setVisibility(View.GONE); mTvScreenBrightness.setVisibility(View.GONE); } else { mSbScreenBrightness.setVisibility(View.VISIBLE); mTvScreenBrightness.setVisibility(View.VISIBLE); } } private OnSharedPreferenceChangeListener mOnSharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.equals(DeviceData.WIFI_KEY)) { checkWifiStatus(); } if (key.equals(DeviceData.BLUETOOTH_KEY)) { checkBluetoothStatus(); } if (key.equals(DeviceData.MOBILEDATA_KEY)) { checkMobiledataStatus(); } if (key.equals(DeviceData.HAPTICFEEDBACK_KEY)) { checkHapticFeedbackStatus(); } if (key.equals(DeviceData.AIRPLANE_KEY)) { checkAirplaneStatus(); } if (key.equals(DeviceData.SYNCINFO_KEY)) { checkSyncInfo(); } if (key.equals(DeviceData.ROTATE_KEY)) { checkRotate(); } if (key.equals(DeviceData.SCREENTIMEOUT_KEY)) { checkScreenTimeOut(); } if (key.equals(DeviceData.SCREENBRIGHTNESS_KEY)) { checkScreenBrightness(); } if (key.equals(DeviceData.RINGANDVIBRATE_KEY)) { checkVibrateAndRing(); } if (key.equals(DeviceData.GPS_KEY)) { checkGps(); } } }; }