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

Commit 40962880 authored by Jim Miller's avatar Jim Miller Committed by Android (Google) Code Review
Browse files

Merge "Implement fallback clock in keyguard" into jb-mr1-lockscreen-dev

parents fd8c388f edc74abf
Loading
Loading
Loading
Loading
+0 −39
Original line number Diff line number Diff line
@@ -53,43 +53,4 @@
        android:drawablePadding="4dip"
        />

    <TextView
        android:id="@+id/owner_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end"
        android:layout_marginTop="4dp"
        android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:textAppearance="?android:attr/textAppearance"
        android:textSize="@dimen/kg_status_line_font_size"
        />

    <TextView
        android:id="@+id/status1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end"
        android:layout_marginTop="4dp"
        android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:textAppearance="?android:attr/textAppearance"
        android:textSize="@dimen/kg_status_line_font_size"
        />

    <TextView
        android:id="@+id/status_security_message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="right"
        android:layout_marginTop="12dp"
        android:singleLine="false"
        android:maxLines="3"
        android:ellipsize="marquee"
        android:textAppearance="?android:attr/textAppearance"
        android:textSize="16dp"
        />
</LinearLayout>
 No newline at end of file
+0 −39
Original line number Diff line number Diff line
@@ -56,43 +56,4 @@
            />
    </LinearLayout>

    <TextView
        android:id="@+id/owner_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginTop="4dp"
        android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:textAppearance="?android:attr/textAppearance"
        android:textSize="@dimen/kg_status_line_font_size"
        />

    <TextView
        android:id="@+id/status1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginTop="4dp"
        android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:textAppearance="?android:attr/textAppearance"
        android:textSize="@dimen/kg_status_line_font_size"
        />

    <TextView
        android:id="@+id/status_security_message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginTop="4dp"
        android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:textAppearance="?android:attr/textAppearance"
        android:textSize="@dimen/kg_status_line_font_size"
        />
        
</LinearLayout>
+0 −25
Original line number Diff line number Diff line
@@ -53,29 +53,4 @@
        android:drawablePadding="4dip"
        />

    <TextView
        android:id="@+id/owner_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end"
        android:layout_marginTop="4dp"
        android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:textAppearance="?android:attr/textAppearance"
        android:textSize="@dimen/kg_status_line_font_size"
        />

    <TextView
        android:id="@+id/status1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end"
        android:layout_marginTop="4dp"
        android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:textAppearance="?android:attr/textAppearance"
        android:textSize="@dimen/kg_status_line_font_size"
        />
</LinearLayout>
+0 −1
Original line number Diff line number Diff line
@@ -1343,7 +1343,6 @@
  <java-symbol type="id" name="clock_text" />
  <java-symbol type="id" name="clock_view" />
  <java-symbol type="id" name="keyguard_multi_user_selector" />
  <java-symbol type="id" name="status_security_message" />
  <java-symbol type="id" name="sliding_layout" />
  <java-symbol type="id" name="keyguard_add_widget" />
  <java-symbol type="id" name="keyguard_add_widget_view" />
+105 −10
Original line number Diff line number Diff line
@@ -17,14 +17,52 @@
package com.android.internal.policy.impl.keyguard;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Typeface;
import android.text.TextUtils;
import android.text.format.DateFormat;
import android.util.AttributeSet;
import android.util.Slog;
import android.view.View;
import android.widget.GridLayout;
import android.widget.TextView;

import com.android.internal.R;
import com.android.internal.widget.LockPatternUtils;

import java.util.Date;

public class KeyguardStatusView extends GridLayout {
    @SuppressWarnings("unused")
    private KeyguardStatusViewManager mStatusViewManager;
    private static final boolean DEBUG = KeyguardViewMediator.DEBUG;
    private static final String TAG = "KeyguardStatusView";

    public static final int LOCK_ICON = 0; // R.drawable.ic_lock_idle_lock;
    public static final int ALARM_ICON = com.android.internal.R.drawable.ic_lock_idle_alarm;
    public static final int CHARGING_ICON = 0; //R.drawable.ic_lock_idle_charging;
    public static final int BATTERY_LOW_ICON = 0; //R.drawable.ic_lock_idle_low_battery;

    private CharSequence mDateFormatString;
    private LockPatternUtils mLockPatternUtils;

    private TextView mDateView;
    private TextView mAlarmStatusView;
    private ClockView mClockView;

    private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() {

        @Override
        public void onTimeChanged() {
            refresh();
        }

        @Override
        void onKeyguardVisibilityChanged(boolean showing) {
            if (showing) {
                if (DEBUG) Slog.v(TAG, "refresh statusview showing:" + showing);
                refresh();
            }
        };
    };

    public KeyguardStatusView(Context context) {
        this(context, null, 0);
@@ -38,19 +76,76 @@ public class KeyguardStatusView extends GridLayout {
        super(context, attrs, defStyle);
    }

    public int getAppWidgetId() {
        return LockPatternUtils.ID_DEFAULT_STATUS_WIDGET;
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        Resources res = getContext().getResources();
        mDateFormatString =
                res.getText(com.android.internal.R.string.abbrev_wday_month_day_no_year);
        mDateView = (TextView) findViewById(R.id.date);
        mAlarmStatusView = (TextView) findViewById(R.id.alarm_status);
        mClockView = (ClockView) findViewById(R.id.clock_view);
        mLockPatternUtils = new LockPatternUtils(getContext());

        // Use custom font in mDateView
        mDateView.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD);

        // Required to get Marquee to work.
        final View marqueeViews[] = { mDateView, mAlarmStatusView };
        for (int i = 0; i < marqueeViews.length; i++) {
            View v = marqueeViews[i];
            if (v == null) {
                throw new RuntimeException("Can't find widget at index " + i);
            }
            v.setSelected(true);
        }
        refresh();
    }

    protected void refresh() {
        mClockView.updateTime();
        refreshDate();
        refreshAlarmStatus(); // might as well
    }

    void refreshAlarmStatus() {
        // Update Alarm status
        String nextAlarm = mLockPatternUtils.getNextAlarm();
        if (!TextUtils.isEmpty(nextAlarm)) {
            maybeSetUpperCaseText(mAlarmStatusView, nextAlarm);
            mAlarmStatusView.setCompoundDrawablesWithIntrinsicBounds(ALARM_ICON, 0, 0, 0);
            mAlarmStatusView.setVisibility(View.VISIBLE);
        } else {
            mAlarmStatusView.setVisibility(View.GONE);
        }
    }

    void refreshDate() {
        maybeSetUpperCaseText(mDateView, DateFormat.format(mDateFormatString, new Date()));
    }

        // StatusView manages all of the widgets in this view.
        mStatusViewManager = new KeyguardStatusViewManager(this);
    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
        KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mInfoCallback);
    }

    KeyguardStatusViewManager getManager() {
        return mStatusViewManager;
    @Override
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        KeyguardUpdateMonitor.getInstance(mContext).removeCallback(mInfoCallback);
    }

    public int getAppWidgetId() {
        return LockPatternUtils.ID_DEFAULT_STATUS_WIDGET;
    }

    private void maybeSetUpperCaseText(TextView textView, CharSequence text) {
        if (KeyguardViewManager.USE_UPPER_CASE
                && textView.getId() != R.id.owner_info) { // currently only required for date view
            textView.setText(text != null ? text.toString().toUpperCase() : null);
        } else {
            textView.setText(text);
        }
    }
}
Loading