diff options
| author | Winson Chung <winsonc@google.com> | 2012-09-25 16:51:10 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-09-25 16:51:11 -0700 |
| commit | 282c51d3912995308901b45d22d1801eec50df41 (patch) | |
| tree | b65a98566709f4ba1d004867d94c6f0dcfd5a1ba /packages/SystemUI/src | |
| parent | 61ad1bacf8985e088c039d90123bf0d2a5de94fe (diff) | |
| parent | c86b23b9a6bc4763ff3fbe8d0ae8a9b2e21a1649 (diff) | |
| download | frameworks_base-282c51d3912995308901b45d22d1801eec50df41.zip frameworks_base-282c51d3912995308901b45d22d1801eec50df41.tar.gz frameworks_base-282c51d3912995308901b45d22d1801eec50df41.tar.bz2 | |
Merge "Updating time/alarm tiles, fixing issue with empty space under QuickSettings (Bug 7205141, Bug 7222371)" into jb-mr1-dev
Diffstat (limited to 'packages/SystemUI/src')
3 files changed, 64 insertions, 29 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java index 53be1dc..0e52204 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java @@ -265,21 +265,17 @@ class QuickSettings { timeTile.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - // TODO: Jump into the alarm application + // TODO: Jump into the clock application Intent intent = new Intent(); intent.setComponent(new ComponentName( "com.google.android.deskclock", - "com.android.deskclock.AlarmClock")); + "com.android.deskclock.DeskClock")); startSettingsActivity(intent); } }); mModel.addTimeTile(timeTile, new QuickSettingsModel.RefreshCallback() { @Override - public void refreshView(QuickSettingsTileView view, State alarmState) { - TextView tv = (TextView) view.findViewById(R.id.alarm_textview); - tv.setText(alarmState.label); - tv.setVisibility(alarmState.enabled ? View.VISIBLE : View.GONE); - } + public void refreshView(QuickSettingsTileView view, State alarmState) {} }); parent.addView(timeTile); mDynamicSpannedTiles.add(timeTile); @@ -487,6 +483,31 @@ class QuickSettings { } private void addTemporaryTiles(final ViewGroup parent, final LayoutInflater inflater) { + // Alarm tile + QuickSettingsTileView alarmTile = (QuickSettingsTileView) + inflater.inflate(R.layout.quick_settings_tile, parent, false); + alarmTile.setContent(R.layout.quick_settings_tile_alarm, inflater); + alarmTile.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // TODO: Jump into the alarm application + Intent intent = new Intent(); + intent.setComponent(new ComponentName( + "com.google.android.deskclock", + "com.android.deskclock.AlarmClock")); + startSettingsActivity(intent); + } + }); + mModel.addAlarmTile(alarmTile, new QuickSettingsModel.RefreshCallback() { + @Override + public void refreshView(QuickSettingsTileView view, State alarmState) { + TextView tv = (TextView) view.findViewById(R.id.alarm_textview); + tv.setText(alarmState.label); + view.setVisibility(alarmState.enabled ? View.VISIBLE : View.GONE); + } + }); + parent.addView(alarmTile); + // Location QuickSettingsTileView locationTile = (QuickSettingsTileView) inflater.inflate(R.layout.quick_settings_tile, parent, false); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsContainerView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsContainerView.java index e2190fe..4e8339e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsContainerView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsContainerView.java @@ -20,6 +20,7 @@ import android.animation.LayoutTransition; import android.content.Context; import android.content.res.Resources; import android.util.AttributeSet; +import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; @@ -73,20 +74,22 @@ class QuickSettingsContainerView extends FrameLayout { for (int i = 0; i < N; ++i) { // Update the child's width QuickSettingsTileView v = (QuickSettingsTileView) getChildAt(i); - ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) v.getLayoutParams(); - int colSpan = v.getColumnSpan(); - lp.width = (int) ((colSpan * cellWidth) + (colSpan - 1) * mCellGap); - - // Measure the child - int newWidthSpec = MeasureSpec.makeMeasureSpec(lp.width, MeasureSpec.EXACTLY); - int newHeightSpec = MeasureSpec.makeMeasureSpec(lp.height, MeasureSpec.EXACTLY); - v.measure(newWidthSpec, newHeightSpec); - - // Save the cell height - if (cellHeight <= 0) { - cellHeight = v.getMeasuredHeight(); + if (v.getVisibility() != View.GONE) { + ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) v.getLayoutParams(); + int colSpan = v.getColumnSpan(); + lp.width = (int) ((colSpan * cellWidth) + (colSpan - 1) * mCellGap); + + // Measure the child + int newWidthSpec = MeasureSpec.makeMeasureSpec(lp.width, MeasureSpec.EXACTLY); + int newHeightSpec = MeasureSpec.makeMeasureSpec(lp.height, MeasureSpec.EXACTLY); + v.measure(newWidthSpec, newHeightSpec); + + // Save the cell height + if (cellHeight <= 0) { + cellHeight = v.getMeasuredHeight(); + } + cursor += colSpan; } - cursor += colSpan; } // Set the measured dimensions. We always fill the tray width, but wrap to the height of diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java index 3f74388..04633bf 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java @@ -137,8 +137,12 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, private UserState mUserState = new UserState(); private QuickSettingsTileView mTimeTile; - private RefreshCallback mTimeAlarmCallback; - private State mTimeAlarmState = new State(); + private RefreshCallback mTimeCallback; + private State mTimeState = new State(); + + private QuickSettingsTileView mAlarmTile; + private RefreshCallback mAlarmCallback; + private State mAlarmState = new State(); private QuickSettingsTileView mAirplaneModeTile; private RefreshCallback mAirplaneModeCallback; @@ -212,17 +216,24 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, // Time void addTimeTile(QuickSettingsTileView view, RefreshCallback cb) { mTimeTile = view; - mTimeAlarmCallback = cb; - mTimeAlarmCallback.refreshView(view, mTimeAlarmState); + mTimeCallback = cb; + mTimeCallback.refreshView(view, mTimeState); + } + + // Alarm + void addAlarmTile(QuickSettingsTileView view, RefreshCallback cb) { + mAlarmTile = view; + mAlarmCallback = cb; + mAlarmCallback.refreshView(view, mAlarmState); } void onAlarmChanged(Intent intent) { - mTimeAlarmState.enabled = intent.getBooleanExtra("alarmSet", false); - mTimeAlarmCallback.refreshView(mTimeTile, mTimeAlarmState); + mAlarmState.enabled = intent.getBooleanExtra("alarmSet", false); + mAlarmCallback.refreshView(mAlarmTile, mAlarmState); } void onNextAlarmChanged() { - mTimeAlarmState.label = Settings.System.getString(mContext.getContentResolver(), + mAlarmState.label = Settings.System.getString(mContext.getContentResolver(), Settings.System.NEXT_ALARM_FORMATTED); - mTimeAlarmCallback.refreshView(mTimeTile, mTimeAlarmState); + mAlarmCallback.refreshView(mAlarmTile, mAlarmState); } // Airplane Mode @@ -330,7 +341,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mRSSIState.signalIconId = enabled && (mobileSignalIconId > 0) ? mobileSignalIconId : R.drawable.ic_qs_signal_no_signal; - mRSSIState.dataTypeIconId = enabled && (dataTypeIconId > 0) + mRSSIState.dataTypeIconId = enabled && (dataTypeIconId > 0) && !mWifiState.enabled ? dataTypeIconId : 0; mRSSIState.label = enabled |
