From d2393efea8e6b26c211c62a20950f3befabfcecd Mon Sep 17 00:00:00 2001 From: xavihernandez Date: Fri, 22 Mar 2013 23:50:26 +0100 Subject: SystemUI: Add Expanded desktop tile to QuickSettings (2/2) * Patch Set 1: initial commit * Patch Set 2: change tile title * Patch Set 3: change tile title again * Patch Set 4: updated to suggested drawable by blunden * Patch Set 5: update drawables to fit to the bahavior of the other icons used in QS * Patch Set 6: rebase only display tile if feature is enabled * Patch Set 7: launch the proper long press activity * Patch Set 8: correctly hide tiles if ED or profiles are turned off style fixes Change-Id: I2273f8f0bdb726ec34f00a6fb205b1bc6e795cfa --- .../quicksettings/ExpandedDesktopTile.java | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 packages/SystemUI/src/com/android/systemui/quicksettings/ExpandedDesktopTile.java (limited to 'packages/SystemUI/src/com/android/systemui/quicksettings/ExpandedDesktopTile.java') diff --git a/packages/SystemUI/src/com/android/systemui/quicksettings/ExpandedDesktopTile.java b/packages/SystemUI/src/com/android/systemui/quicksettings/ExpandedDesktopTile.java new file mode 100644 index 0000000..6c0ed52 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/quicksettings/ExpandedDesktopTile.java @@ -0,0 +1,75 @@ +package com.android.systemui.quicksettings; + +import android.content.ContentResolver; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Handler; +import android.provider.Settings; +import android.view.LayoutInflater; +import android.view.View; + +import com.android.systemui.R; +import com.android.systemui.statusbar.phone.QuickSettingsContainerView; +import com.android.systemui.statusbar.phone.QuickSettingsController; + +public class ExpandedDesktopTile extends QuickSettingsTile { + private boolean mEnabled = false; + + public ExpandedDesktopTile(Context context, LayoutInflater inflater, + QuickSettingsContainerView container, + QuickSettingsController qsc, Handler handler) { + super(context, inflater, container, qsc); + + mOnClick = new View.OnClickListener() { + @Override + public void onClick(View v) { + // Change the system setting + Settings.System.putInt(mContext.getContentResolver(), + Settings.System.EXPANDED_DESKTOP_STATE, mEnabled ? 0 : 1); + } + }; + + mOnLongClick = new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + Intent intent = new Intent(Intent.ACTION_MAIN); + intent.setClassName("com.android.settings", + "com.android.settings.Settings$SystemSettingsActivity"); + startSettingsActivity(intent); + return true; + } + }; + + Uri stateUri = Settings.System.getUriFor(Settings.System.EXPANDED_DESKTOP_STATE); + qsc.registerObservedContent(stateUri, this); + } + + void onPostCreate() { + updateTile(); + super.onPostCreate(); + } + + @Override + public void updateResources() { + updateTile(); + super.updateResources(); + } + + private synchronized void updateTile() { + mEnabled = Settings.System.getInt(mContext.getContentResolver(), + Settings.System.EXPANDED_DESKTOP_STATE, 0) == 1; + if (mEnabled) { + mDrawable = R.drawable.ic_qs_expanded_desktop_on; + mLabel = mContext.getString(R.string.quick_settings_expanded_desktop); + } else { + mDrawable = R.drawable.ic_qs_expanded_desktop_off; + mLabel = mContext.getString(R.string.quick_settings_expanded_desktop_off); + } + } + + @Override + public void onChangeUri(ContentResolver resolver, Uri uri) { + updateResources(); + } +} -- cgit v1.1