diff options
author | Adnan Begovic <adnan@cyngn.com> | 2015-12-11 16:16:02 -0800 |
---|---|---|
committer | Adnan Begovic <adnan@cyngn.com> | 2015-12-14 10:24:34 -0800 |
commit | c055fcad62f1376ed223a588ae8795a679fa93ee (patch) | |
tree | 2a7f38ce88010fa987066e24671b0f4da5548ab7 /packages/SystemUI/src/com | |
parent | 1fb9c5747a9b19eeab734b3bcf52d8fe346aec82 (diff) | |
download | frameworks_base-c055fcad62f1376ed223a588ae8795a679fa93ee.zip frameworks_base-c055fcad62f1376ed223a588ae8795a679fa93ee.tar.gz frameworks_base-c055fcad62f1376ed223a588ae8795a679fa93ee.tar.bz2 |
SystemUI: Readd AmbientDisplayTile.
Change-Id: Ie7b93ba0f87d505206b5d60f193c2234d83d7eac
Diffstat (limited to 'packages/SystemUI/src/com')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tiles/AmbientDisplayTile.java | 107 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java | 3 |
2 files changed, 110 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/AmbientDisplayTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/AmbientDisplayTile.java new file mode 100644 index 0000000..3ea9749 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/AmbientDisplayTile.java @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2015 The CyanogenMod Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.qs.tiles; + +import android.content.Context; +import android.content.Intent; +import android.provider.Settings; +import android.provider.Settings.Secure; + +import com.android.internal.logging.MetricsLogger; +import com.android.systemui.qs.SecureSetting; +import com.android.systemui.qs.QSTile; +import com.android.systemui.R; + +/** Quick settings tile: Ambient Display **/ +public class AmbientDisplayTile extends QSTile<QSTile.BooleanState> { + + private static final Intent DISPLAY_SETTINGS = new Intent("android.settings.DISPLAY_SETTINGS"); + + private final SecureSetting mSetting; + + public AmbientDisplayTile(Host host) { + super(host); + + mSetting = new SecureSetting(mContext, mHandler, Secure.DOZE_ENABLED) { + @Override + protected void handleValueChanged(int value, boolean observedChange) { + handleRefreshState(value); + } + }; + } + + @Override + protected BooleanState newTileState() { + return new BooleanState(); + } + + @Override + protected void handleClick() { + setEnabled(!mState.value); + refreshState(); + } + + @Override + protected void handleLongClick() { + mHost.startActivityDismissingKeyguard(DISPLAY_SETTINGS); + } + + private void setEnabled(boolean enabled) { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.DOZE_ENABLED, + enabled ? 1 : 0); + } + + @Override + protected void handleUpdateState(BooleanState state, Object arg) { + final int value = arg instanceof Integer ? (Integer)arg : mSetting.getValue(); + final boolean enable = value != 0; + state.value = enable; + state.visible = true; + state.label = mContext.getString(R.string.quick_settings_ambient_display_label); + if (enable) { + state.icon = ResourceIcon.get(R.drawable.ic_qs_ambientdisplay_on); + state.contentDescription = mContext.getString( + R.string.accessibility_quick_settings_ambient_display_on); + } else { + state.icon = ResourceIcon.get(R.drawable.ic_qs_ambientdisplay_off); + state.contentDescription = mContext.getString( + R.string.accessibility_quick_settings_ambient_display_off); + } + } + + @Override + public int getMetricsCategory() { + return MetricsLogger.DONT_TRACK_ME_BRO; + } + + @Override + protected String composeChangeAnnouncement() { + if (mState.value) { + return mContext.getString( + R.string.accessibility_quick_settings_ambient_display_changed_on); + } else { + return mContext.getString( + R.string.accessibility_quick_settings_ambient_display_changed_off); + } + } + + @Override + public void setListening(boolean listening) { + // Do nothing + } +}
\ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java index 4cc7e53..48bd3db 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java @@ -38,6 +38,7 @@ import com.android.systemui.R; import com.android.systemui.qs.QSTile; import com.android.systemui.qs.tiles.AdbOverNetworkTile; import com.android.systemui.qs.tiles.AirplaneModeTile; +import com.android.systemui.qs.tiles.AmbientDisplayTile; import com.android.systemui.qs.tiles.BluetoothTile; import com.android.systemui.qs.tiles.CastTile; import com.android.systemui.qs.tiles.CellularTile; @@ -354,6 +355,7 @@ public class QSTileHost implements QSTile.Host, Tunable { else if (tileSpec.equals("screen_timeout")) return new ScreenTimeoutTile(this); else if (tileSpec.equals("performance")) return new PerfProfileTile(this); else if (tileSpec.equals("lockscreen")) return new LockscreenToggleTile(this); + else if (tileSpec.equals("ambient_display")) return new AmbientDisplayTile(this); else if (tileSpec.startsWith(IntentTile.PREFIX)) return IntentTile.create(this,tileSpec); else throw new IllegalArgumentException("Bad tile spec: " + tileSpec); } @@ -434,6 +436,7 @@ public class QSTileHost implements QSTile.Host, Tunable { else if (spec.equals("screen_timeout")) return R.string.quick_settings_screen_timeout_detail_title; else if (spec.equals("performance")) return R.string.qs_tile_performance; else if (spec.equals("lockscreen")) return R.string.quick_settings_lockscreen_label; + else if (spec.equals("ambient_display")) return R.string.quick_settings_ambient_display_label; return 0; } |