OSDN Git Service

SystemUI: make clock and time clickable in statusbar
authorRoman Birg <roman@cyngn.com>
Mon, 1 Dec 2014 22:05:52 +0000 (14:05 -0800)
committerSteve Kondik <steve@cyngn.com>
Sun, 4 Sep 2016 09:38:35 +0000 (02:38 -0700)
Clicking clock opens alarms, clicking the date will open the calendar.

Change-Id: I622527c1f144a8867aa543348b70a4fefe3f6403
Signed-off-by: Roman Birg <roman@cyngn.com>
packages/SystemUI/res/layout/status_bar_expanded_header.xml
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java

index c5cd65e..cdacc58 100644 (file)
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginBottom="@dimen/clock_collapsed_bottom_margin"
+        android:background="@drawable/ripple_drawable"
         android:layout_alignParentBottom="true">
         <com.android.systemui.statusbar.policy.DateView android:id="@+id/date_collapsed"
             android:layout_width="wrap_content"
             />
     </FrameLayout>
 
-    <include layout="@layout/split_clock_view"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="16dp"
-        android:layout_above="@id/date_group"
-        android:id="@+id/clock"
-        />
+    <FrameLayout
+            android:id="@+id/clock"
+            android:layout_marginStart="16dp"
+            android:layout_above="@id/date_group"
+            android:background="@drawable/ripple_drawable"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content">
+        <include layout="@layout/split_clock_view"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                />
+    </FrameLayout>
 
     <com.android.systemui.statusbar.AlphaOptimizedButton android:id="@+id/alarm_status"
         android:layout_width="wrap_content"
index 72eafd8..792d01e 100644 (file)
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.phone;
 
 import android.app.AlarmManager;
 import android.app.PendingIntent;
+import android.content.ContentUris;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Configuration;
@@ -27,6 +28,9 @@ import android.graphics.Rect;
 import android.graphics.drawable.Animatable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.RippleDrawable;
+import android.net.Uri;
+import android.provider.AlarmClock;
+import android.provider.CalendarContract;
 import android.util.AttributeSet;
 import android.util.MathUtils;
 import android.util.TypedValue;
@@ -142,7 +146,9 @@ public class StatusBarHeaderView extends BaseStatusBarHeader implements View.OnC
         mSystemIconsContainer = (ViewGroup) findViewById(R.id.system_icons_container);
         mSystemIconsSuperContainer.setOnClickListener(this);
         mDateGroup = findViewById(R.id.date_group);
+        mDateGroup.setOnClickListener(this);
         mClock = findViewById(R.id.clock);
+        mClock.setOnClickListener(this);
         mTime = (TextView) findViewById(R.id.time_view);
         mAmPm = (TextView) findViewById(R.id.am_pm_view);
         mMultiUserSwitch = (MultiUserSwitch) findViewById(R.id.multi_user_switch);
@@ -540,6 +546,10 @@ public class StatusBarHeaderView extends BaseStatusBarHeader implements View.OnC
             if (showIntent != null) {
                 mActivityStarter.startPendingIntentDismissingKeyguard(showIntent);
             }
+        } else if (v == mClock) {
+            startClockActivity();
+        } else if (v == mDateGroup) {
+            startDateActivity();
         }
     }
 
@@ -553,6 +563,19 @@ public class StatusBarHeaderView extends BaseStatusBarHeader implements View.OnC
                 true /* dismissShade */);
     }
 
+    private void startClockActivity() {
+        mActivityStarter.startActivity(new Intent(AlarmClock.ACTION_SHOW_ALARMS),
+                true /* dismissShade */);
+    }
+
+    private void startDateActivity() {
+        Uri.Builder builder = CalendarContract.CONTENT_URI.buildUpon();
+        builder.appendPath("time");
+        ContentUris.appendId(builder, System.currentTimeMillis());
+        Intent intent = new Intent(Intent.ACTION_VIEW).setData(builder.build());
+        mActivityStarter.startActivity(intent, true /* dismissShade */);
+    }
+
     public void setQSPanel(QSPanel qsp) {
         mQSPanel = qsp;
         if (mQSPanel != null) {