Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit a6c96cca authored by Marc K's avatar Marc K Committed by Michael Bestas
Browse files

SystemUI: make clock and date clickable in statusbar

Clicking clock opens alarms, clicking the date will open the calendar.

Based on: I622527c1f144a8867aa543348b70a4fefe3f6403

Change-Id: I88d369123f58a661751b8a427af177ecd6488455
parent ea62a933
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -31,10 +31,16 @@
        android:orientation="horizontal"
        android:focusable="true" >

        <FrameLayout
            android:id="@+id/clock"
            android:background="?android:attr/selectableItemBackgroundBorderless"
            android:layout_above="@id/date_time_alarm_group"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <include layout="@layout/split_clock_view"
                android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/clock" />
                android:layout_height="match_parent" />
        </FrameLayout>

        <com.android.systemui.statusbar.policy.DateView
            android:id="@+id/date"
@@ -47,6 +53,7 @@
            android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock"
            android:textSize="@dimen/qs_time_collapsed_size"
            android:gravity="top"
            android:background="?android:attr/selectableItemBackgroundBorderless"
            systemui:datePattern="@string/abbrev_wday_month_day_no_year_alarm" />

        <com.android.systemui.statusbar.AlphaOptimizedImageView
@@ -56,6 +63,7 @@
            android:src="@drawable/ic_access_alarms_small"
            android:paddingStart="6dp"
            android:gravity="center"
            android:background="?android:attr/selectableItemBackgroundBorderless"
            android:visibility="gone" />
    </LinearLayout>

@@ -70,7 +78,7 @@
        android:textColor="#64ffffff"
        android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Date"
        android:gravity="top"
        android:background="?android:attr/selectableItemBackground"
        android:background="?android:attr/selectableItemBackgroundBorderless"
        android:visibility="gone" />

</LinearLayout>
+12 −4
Original line number Diff line number Diff line
@@ -31,10 +31,16 @@
        android:orientation="horizontal"
        android:focusable="true" >

        <FrameLayout
            android:id="@+id/clock"
            android:background="?android:attr/selectableItemBackgroundBorderless"
            android:layout_above="@id/date_time_alarm_group"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <include layout="@layout/split_clock_view"
                android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/clock" />
                android:layout_height="match_parent" />
        </FrameLayout>

        <com.android.systemui.statusbar.AlphaOptimizedImageView
            android:id="@+id/alarm_status_collapsed"
@@ -43,6 +49,7 @@
            android:src="@drawable/ic_access_alarms_small"
            android:paddingStart="6dp"
            android:gravity="center"
            android:background="?android:attr/selectableItemBackgroundBorderless"
            android:visibility="gone" />
    </LinearLayout>

@@ -55,6 +62,7 @@
        android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock"
        android:textSize="@dimen/qs_time_collapsed_size"
        android:gravity="top"
        android:background="?android:attr/selectableItemBackgroundBorderless"
        systemui:datePattern="@string/abbrev_wday_month_day_no_year_alarm" />

    <com.android.systemui.statusbar.AlphaOptimizedButton
@@ -68,7 +76,7 @@
        android:textColor="#64ffffff"
        android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Date"
        android:gravity="top"
        android:background="?android:attr/selectableItemBackground"
        android:background="?android:attr/selectableItemBackgroundBorderless"
        android:visibility="gone" />

</LinearLayout>
+40 −2
Original line number Diff line number Diff line
@@ -18,12 +18,16 @@ 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;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.RippleDrawable;
import android.net.Uri;
import android.os.UserManager;
import android.provider.AlarmClock;
import android.provider.CalendarContract;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
@@ -70,6 +74,9 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements
    private boolean mExpanded;
    private boolean mAlarmShowing;

    private View mClock;
    private View mDate;

    private ViewGroup mDateTimeGroup;
    private ViewGroup mDateTimeAlarmGroup;
    private TextView mEmergencyOnly;
@@ -115,6 +122,11 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements
        mDateTimeTranslation = getResources().getDimension(R.dimen.qs_date_time_translation);
        mShowFullAlarm = getResources().getBoolean(R.bool.quick_settings_show_full_alarm);

        mClock = (View) findViewById(R.id.clock);
        mClock.setOnClickListener(this);
        mDate = (View) findViewById(R.id.date);
        mDate.setOnClickListener(this);

        mExpandIndicator = (ExpandableIndicator) findViewById(R.id.expand_indicator);

        mHeaderQsPanel = (QuickQSPanel) findViewById(R.id.quick_qs_panel);
@@ -124,6 +136,7 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements
        mSettingsButton.setOnClickListener(this);

        mAlarmStatusCollapsed = findViewById(R.id.alarm_status_collapsed);
        mAlarmStatusCollapsed.setOnClickListener(this);
        mAlarmStatus = (TextView) findViewById(R.id.alarm_status);
        mAlarmStatus.setOnClickListener(this);

@@ -259,6 +272,8 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements
    public void updateEverything() {
        post(() -> {
            updateVisibilities();
            mDate.setClickable(mExpanded || mShowFullAlarm);
            mAlarmStatus.setClickable(mExpanded && mShowFullAlarm);
            setClickable(false);
        });
    }
@@ -341,10 +356,33 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements
            } else {
                startSettingsActivity();
            }
        } else if (v == mAlarmStatus && mNextAlarm != null) {
            PendingIntent showIntent = mNextAlarm.getShowIntent();
        } else if (v == mAlarmStatus || v == mAlarmStatusCollapsed) {
            startClockActivity(mNextAlarm);
         } else if (v == mClock) {
            startClockActivity(null);
        } else if (v == mDate) {
            startDateActivity();
        }
    }

    private void startClockActivity(AlarmManager.AlarmClockInfo alarm) {
        Intent intent = null;
        if (alarm != null) {
            PendingIntent showIntent = alarm.getShowIntent();
            mActivityStarter.startPendingIntentDismissingKeyguard(showIntent);
        }
        if (intent == null) {
            intent = new Intent(AlarmClock.ACTION_SHOW_ALARMS);
        }
        mActivityStarter.startActivity(intent, 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 */);
    }

    private void startSettingsActivity() {