Loading packages/SystemUI/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ <uses-permission android:name="android.permission.STATUS_BAR" /> <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" /> <uses-permission android:name="android.permission.REMOTE_AUDIO_PLAYBACK" /> <uses-permission android:name="com.android.alarm.permission.SET_ALARM" /> <uses-permission android:name="android.permission.MANAGE_USERS" /> <uses-permission android:name="android.permission.READ_PROFILE" /> Loading packages/SystemUI/res/layout/status_bar_expanded_header.xml +5 −0 Original line number Diff line number Diff line Loading @@ -42,7 +42,9 @@ android:layout_marginEnd="8dp" android:singleLine="true" android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock" android:background="@drawable/ic_notify_button_bg" android:layout_centerVertical="true" android:clickable="true" /> <com.android.systemui.statusbar.policy.DateView android:id="@+id/date" Loading @@ -50,6 +52,9 @@ android:layout_height="wrap_content" android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Date" android:layout_toEndOf="@id/clock" android:background="@drawable/ic_notify_button_bg" android:paddingTop="8dp" android:paddingBottom="8dp" android:layout_centerVertical="true" /> </RelativeLayout> Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java +49 −1 Original line number Diff line number Diff line Loading @@ -16,21 +16,30 @@ package com.android.systemui.statusbar.policy; import android.app.ActivityManagerNative; import android.app.StatusBarManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.provider.AlarmClock; import android.provider.Settings; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.format.DateFormat; import android.text.style.CharacterStyle; import android.text.style.RelativeSizeSpan; import android.util.AttributeSet; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnLongClickListener; import android.widget.TextView; import com.android.systemui.DemoMode; import com.android.internal.R; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Locale; Loading @@ -41,7 +50,7 @@ import libcore.icu.LocaleData; /** * Digital clock for the status bar. */ public class Clock extends TextView implements DemoMode { public class Clock extends TextView implements DemoMode, OnClickListener, OnLongClickListener { private boolean mAttached; private Calendar mCalendar; private String mClockFormatString; Loading @@ -64,6 +73,11 @@ public class Clock extends TextView implements DemoMode { public Clock(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); if (isClickable()) { setOnClickListener(this); setOnLongClickListener(this); } } @Override Loading Loading @@ -201,6 +215,40 @@ public class Clock extends TextView implements DemoMode { } private void collapseStartActivity(Intent what) { // collapse status bar StatusBarManager statusBarManager = (StatusBarManager) getContext().getSystemService( Context.STATUS_BAR_SERVICE); statusBarManager.collapsePanels(); // dismiss keyguard in case it was active and no passcode set try { ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity(); } catch (Exception ex) { // no action needed here } // start activity what.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); mContext.startActivity(what); } @Override public void onClick(View v) { Intent intent = new Intent(AlarmClock.ACTION_SHOW_ALARMS); collapseStartActivity(intent); } @Override public boolean onLongClick(View v) { Intent intent = new Intent("android.settings.DATE_SETTINGS"); intent.addCategory(Intent.CATEGORY_DEFAULT); collapseStartActivity(intent); // consume event return true; } private boolean mDemoMode; @Override Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java +50 −1 Original line number Diff line number Diff line Loading @@ -16,13 +16,21 @@ package com.android.systemui.statusbar.policy; import android.app.ActivityManagerNative; import android.app.StatusBarManager; import android.content.BroadcastReceiver; import android.content.ContentUris; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; import android.provider.CalendarContract; import android.text.format.DateFormat; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnLongClickListener; import android.view.ViewParent; import android.widget.TextView; Loading @@ -34,7 +42,7 @@ import java.util.Locale; import libcore.icu.ICU; public class DateView extends TextView { public class DateView extends TextView implements OnClickListener, OnLongClickListener { private static final String TAG = "DateView"; private final Date mCurrentTime = new Date(); Loading Loading @@ -63,6 +71,8 @@ public class DateView extends TextView { public DateView(Context context, AttributeSet attrs) { super(context, attrs); setOnClickListener(this); setOnLongClickListener(this); } @Override Loading Loading @@ -112,4 +122,43 @@ public class DateView extends TextView { mLastText = text; } } private void collapseStartActivity(Intent what) { // collapse status bar StatusBarManager statusBarManager = (StatusBarManager) getContext().getSystemService( Context.STATUS_BAR_SERVICE); statusBarManager.collapsePanels(); // dismiss keyguard in case it was active and no passcode set try { ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity(); } catch (Exception ex) { // no action needed here } // start activity what.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); mContext.startActivity(what); } @Override public void onClick(View v) { long nowMillis = System.currentTimeMillis(); Uri.Builder builder = CalendarContract.CONTENT_URI.buildUpon(); builder.appendPath("time"); ContentUris.appendId(builder, nowMillis); Intent intent = new Intent(Intent.ACTION_VIEW).setData(builder.build()); collapseStartActivity(intent); } @Override public boolean onLongClick(View v) { Intent intent = new Intent("android.settings.DATE_SETTINGS"); intent.addCategory(Intent.CATEGORY_DEFAULT); collapseStartActivity(intent); // consume event return true; } } Loading
packages/SystemUI/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ <uses-permission android:name="android.permission.STATUS_BAR" /> <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" /> <uses-permission android:name="android.permission.REMOTE_AUDIO_PLAYBACK" /> <uses-permission android:name="com.android.alarm.permission.SET_ALARM" /> <uses-permission android:name="android.permission.MANAGE_USERS" /> <uses-permission android:name="android.permission.READ_PROFILE" /> Loading
packages/SystemUI/res/layout/status_bar_expanded_header.xml +5 −0 Original line number Diff line number Diff line Loading @@ -42,7 +42,9 @@ android:layout_marginEnd="8dp" android:singleLine="true" android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock" android:background="@drawable/ic_notify_button_bg" android:layout_centerVertical="true" android:clickable="true" /> <com.android.systemui.statusbar.policy.DateView android:id="@+id/date" Loading @@ -50,6 +52,9 @@ android:layout_height="wrap_content" android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Date" android:layout_toEndOf="@id/clock" android:background="@drawable/ic_notify_button_bg" android:paddingTop="8dp" android:paddingBottom="8dp" android:layout_centerVertical="true" /> </RelativeLayout> Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java +49 −1 Original line number Diff line number Diff line Loading @@ -16,21 +16,30 @@ package com.android.systemui.statusbar.policy; import android.app.ActivityManagerNative; import android.app.StatusBarManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.provider.AlarmClock; import android.provider.Settings; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.format.DateFormat; import android.text.style.CharacterStyle; import android.text.style.RelativeSizeSpan; import android.util.AttributeSet; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnLongClickListener; import android.widget.TextView; import com.android.systemui.DemoMode; import com.android.internal.R; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Locale; Loading @@ -41,7 +50,7 @@ import libcore.icu.LocaleData; /** * Digital clock for the status bar. */ public class Clock extends TextView implements DemoMode { public class Clock extends TextView implements DemoMode, OnClickListener, OnLongClickListener { private boolean mAttached; private Calendar mCalendar; private String mClockFormatString; Loading @@ -64,6 +73,11 @@ public class Clock extends TextView implements DemoMode { public Clock(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); if (isClickable()) { setOnClickListener(this); setOnLongClickListener(this); } } @Override Loading Loading @@ -201,6 +215,40 @@ public class Clock extends TextView implements DemoMode { } private void collapseStartActivity(Intent what) { // collapse status bar StatusBarManager statusBarManager = (StatusBarManager) getContext().getSystemService( Context.STATUS_BAR_SERVICE); statusBarManager.collapsePanels(); // dismiss keyguard in case it was active and no passcode set try { ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity(); } catch (Exception ex) { // no action needed here } // start activity what.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); mContext.startActivity(what); } @Override public void onClick(View v) { Intent intent = new Intent(AlarmClock.ACTION_SHOW_ALARMS); collapseStartActivity(intent); } @Override public boolean onLongClick(View v) { Intent intent = new Intent("android.settings.DATE_SETTINGS"); intent.addCategory(Intent.CATEGORY_DEFAULT); collapseStartActivity(intent); // consume event return true; } private boolean mDemoMode; @Override Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java +50 −1 Original line number Diff line number Diff line Loading @@ -16,13 +16,21 @@ package com.android.systemui.statusbar.policy; import android.app.ActivityManagerNative; import android.app.StatusBarManager; import android.content.BroadcastReceiver; import android.content.ContentUris; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; import android.provider.CalendarContract; import android.text.format.DateFormat; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnLongClickListener; import android.view.ViewParent; import android.widget.TextView; Loading @@ -34,7 +42,7 @@ import java.util.Locale; import libcore.icu.ICU; public class DateView extends TextView { public class DateView extends TextView implements OnClickListener, OnLongClickListener { private static final String TAG = "DateView"; private final Date mCurrentTime = new Date(); Loading Loading @@ -63,6 +71,8 @@ public class DateView extends TextView { public DateView(Context context, AttributeSet attrs) { super(context, attrs); setOnClickListener(this); setOnLongClickListener(this); } @Override Loading Loading @@ -112,4 +122,43 @@ public class DateView extends TextView { mLastText = text; } } private void collapseStartActivity(Intent what) { // collapse status bar StatusBarManager statusBarManager = (StatusBarManager) getContext().getSystemService( Context.STATUS_BAR_SERVICE); statusBarManager.collapsePanels(); // dismiss keyguard in case it was active and no passcode set try { ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity(); } catch (Exception ex) { // no action needed here } // start activity what.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); mContext.startActivity(what); } @Override public void onClick(View v) { long nowMillis = System.currentTimeMillis(); Uri.Builder builder = CalendarContract.CONTENT_URI.buildUpon(); builder.appendPath("time"); ContentUris.appendId(builder, nowMillis); Intent intent = new Intent(Intent.ACTION_VIEW).setData(builder.build()); collapseStartActivity(intent); } @Override public boolean onLongClick(View v) { Intent intent = new Intent("android.settings.DATE_SETTINGS"); intent.addCategory(Intent.CATEGORY_DEFAULT); collapseStartActivity(intent); // consume event return true; } }