- https://github.com/ReVolt-ROM/frameworks_base/commit/a79211133a0c88b00f63aee353ef53f862895c3c
- package com.android.systemui.quicksettings;
- import android.content.ContentResolver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.res.Resources;
- import android.net.Uri;
- import android.os.UserHandle;
- import android.provider.Settings;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.View.OnLongClickListener;
- import com.android.systemui.R;
- import com.android.systemui.statusbar.phone.QuickSettingsController;
- import com.android.systemui.statusbar.phone.QuickSettingsContainerView;
- import android.content.SharedPreferences;
- import android.content.SharedPreferences.Editor;
- import android.database.ContentObserver;
- public class StayAwakeTile extends QuickSettingsTile {
- private static final String KEY_USER_TIMEOUT = "user_timeout";
- private static final int neverSleep = Integer.MAX_VALUE; // MAX_VALUE equates to approx 24 days
- private static final int FALLBACK_SCREEN_TIMEOUT_VALUE = 30000;
- private boolean enabled;
- private int storedUserTimeout;
- SettingsObserver mObserver = null;
- //private static final int SCREEN_TIMEOUT_MAX = Integer.Max_;
- @Override
- public void init(Context c, int style) {
- super.init(c, style);
- SharedPreferences shared = mContext.getSharedPreferences(KEY_USER_TIMEOUT,
- Context.MODE_PRIVATE);
- storedUserTimeout = shared.getInt("timeout", FALLBACK_SCREEN_TIMEOUT_VALUE);
- mObserver = new SettingsObserver(mHandler);
- mObserver.observe();
- }
- @Override
- protected void cleanup() {
- if (mObserver != null) {
- mContext.getContentResolver().unregisterContentObserver(mObserver);
- mObserver = null;
- }
- super.cleanup();
- }
- public StayAwakeTile(Context context, QuickSettingsController qsc) {
- super(context, qsc);
- mOnClick = new OnClickListener() {
- @Override
- public void onClick(View v) {
- toggleState();
- updateResources();
- }
- };
- mOnLongClick = new OnLongClickListener() {
- @Override
- public boolean onLongClick(View v) {
- Intent intent = new Intent("android.settings.DISPLAY_SETTINGS");
- startSettingsActivity(intent);
- return true;
- }
- };
- qsc.registerObservedContent(Settings.System.getUriFor(Settings.System.SCREEN_OFF_TIMEOUT)
- , this);
- }
- @Override
- public void onChangeUri(ContentResolver resolver, Uri uri) {
- updateResources();
- }
- @Override
- void onPostCreate() {
- updateTile();
- super.onPostCreate();
- }
- @Override
- public void updateResources() {
- updateTile();
- super.updateResources();
- }
- private synchronized void updateTile() {
- int currentTimeout = Settings.System.getInt(mContext.getContentResolver(),
- Settings.System.SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE);
- if (currentTimeout == neverSleep) {
- enabled = true;
- } else {
- enabled = false;
- }
- mLabel = (enabled ? R.string.quick_settings_stayawake_on
- : R.string.quick_settings_stayawake_off);
- mDrawable = (enabled ? R.drawable.ic_qs_stayawake_on : R.drawable.ic_qs_stayawake_off);
- }
- protected void toggleState() {
- int currentTimeout =
- if (state) {
- saveUserTimeout();
- Settings.System.putInt(mContext.getContentResolver(),
- Settings.System.SCREEN_OFF_TIMEOUT, neverSleep);
- } else {
- Settings.System.putInt(mContext.getContentResolver(),
- Settings.System.SCREEN_OFF_TIMEOUT, storedUserTimeout);
- saveUserTimeout(); // save here incase of manual change
- }
- }
- private void saveUserTimeout() {
- storedUserTimeout = Settings.System.getInt(mContext.getContentResolver(),
- Settings.System.SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE);
- SharedPreferences shared = mContext.getSharedPreferences(KEY_USER_TIMEOUT,
- Context.MODE_PRIVATE);
- shared.edit().putInt("timeout", storedUserTimeout).commit();
- }
- class SettingsObserver extends ContentObserver {
- SettingsObserver(Handler handler) {
- super(handler);
- }
- void observe() {
- ContentResolver resolver = mContext.getContentResolver();
- resolver.registerContentObserver(Settings.Global
- .getUriFor(Settings.System.SCREEN_OFF_TIMEOUT), false,
- this);
- }
StayAwakeTile.java
Posted by Phoenix on Sat 19th Oct 2013 18:44
raw | new post
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.
phoenix.kpaste.net RSS