From c86b23b9a6bc4763ff3fbe8d0ae8a9b2e21a1649 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Mon, 24 Sep 2012 11:24:28 -0700 Subject: Updating time/alarm tiles, fixing issue with empty space under QuickSettings (Bug 7205141, Bug 7222371) Change-Id: If42308a0bbc4a31ffb7f5f0b66063c3b1418ca3e --- .../res/drawable-hdpi/ic_qs_clock_circle.png | Bin 0 -> 1606 bytes .../res/drawable-hdpi/ic_qs_clock_hour.png | Bin 0 -> 433 bytes .../res/drawable-hdpi/ic_qs_clock_minute.png | Bin 0 -> 486 bytes .../res/drawable-mdpi/ic_qs_clock_circle.png | Bin 0 -> 1136 bytes .../res/drawable-mdpi/ic_qs_clock_hour.png | Bin 0 -> 445 bytes .../res/drawable-mdpi/ic_qs_clock_minute.png | Bin 0 -> 447 bytes .../res/drawable-xhdpi/ic_qs_clock_circle.png | Bin 0 -> 2244 bytes .../res/drawable-xhdpi/ic_qs_clock_hour.png | Bin 0 -> 499 bytes .../res/drawable-xhdpi/ic_qs_clock_minute.png | Bin 0 -> 549 bytes .../SystemUI/res/drawable/qs_tile_background.xml | 4 +-- .../res/layout/quick_settings_tile_alarm.xml | 25 +++++++++++++++ .../res/layout/quick_settings_tile_time.xml | 30 ++++++------------ packages/SystemUI/res/values/dimens.xml | 2 +- packages/SystemUI/res/values/styles.xml | 2 +- .../systemui/statusbar/phone/QuickSettings.java | 35 ++++++++++++++++----- .../phone/QuickSettingsContainerView.java | 29 +++++++++-------- .../statusbar/phone/QuickSettingsModel.java | 29 +++++++++++------ 17 files changed, 103 insertions(+), 53 deletions(-) create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_clock_circle.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_clock_hour.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_clock_minute.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_clock_circle.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_clock_hour.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_clock_minute.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_circle.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_hour.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_minute.png create mode 100644 packages/SystemUI/res/layout/quick_settings_tile_alarm.xml diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_circle.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_circle.png new file mode 100644 index 000000000000..f724ea58692a Binary files /dev/null and b/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_circle.png differ diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_hour.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_hour.png new file mode 100644 index 000000000000..979ca0846aca Binary files /dev/null and b/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_hour.png differ diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_minute.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_minute.png new file mode 100644 index 000000000000..eef78c16d869 Binary files /dev/null and b/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_minute.png differ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_circle.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_circle.png new file mode 100644 index 000000000000..27904f2d81aa Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_circle.png differ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_hour.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_hour.png new file mode 100644 index 000000000000..4dca96a5a3da Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_hour.png differ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_minute.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_minute.png new file mode 100644 index 000000000000..12e78189d3af Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_minute.png differ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_circle.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_circle.png new file mode 100644 index 000000000000..c7864baa512e Binary files /dev/null and b/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_circle.png differ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_hour.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_hour.png new file mode 100644 index 000000000000..a293c0bacf93 Binary files /dev/null and b/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_hour.png differ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_minute.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_minute.png new file mode 100644 index 000000000000..bb0c17c28467 Binary files /dev/null and b/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_minute.png differ diff --git a/packages/SystemUI/res/drawable/qs_tile_background.xml b/packages/SystemUI/res/drawable/qs_tile_background.xml index 83dadd84270f..96891c14bd33 100644 --- a/packages/SystemUI/res/drawable/qs_tile_background.xml +++ b/packages/SystemUI/res/drawable/qs_tile_background.xml @@ -18,9 +18,9 @@ --> - + - + diff --git a/packages/SystemUI/res/layout/quick_settings_tile_alarm.xml b/packages/SystemUI/res/layout/quick_settings_tile_alarm.xml new file mode 100644 index 000000000000..0327bee5069e --- /dev/null +++ b/packages/SystemUI/res/layout/quick_settings_tile_alarm.xml @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_time.xml b/packages/SystemUI/res/layout/quick_settings_tile_time.xml index f09e0cb7680b..4ffbf52389f5 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_time.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_time.xml @@ -19,30 +19,20 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:orientation="vertical"> - - \ No newline at end of file diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 90fe5587846a..46c39037d456 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -187,6 +187,6 @@ 110dp - 5dp + 4dp diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index f6fe8d0e0571..d666fc34c986 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -80,7 +80,7 @@ 12dp 12dp normal - #ff8d908c + #CCCCCC true true marquee 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 53be1dc4fef5..0e522048f902 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 e2190fe13cca..4e8339e7b79f 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 3f74388f9c99..04633bfe5e13 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 -- cgit v1.2.3-59-g8ed1b