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

Commit 40daf33c authored by Romain Guy's avatar Romain Guy Committed by Android Git Automerger
Browse files

am 998d03bd: Merge "A new clock widget to create lock screen appwidgets" into jb-mr1-dev

* commit '998d03bd':
  A new clock widget to create lock screen appwidgets
parents 22ad682a 998d03bd
Loading
Loading
Loading
Loading
+26 −8
Original line number Diff line number Diff line
@@ -491,6 +491,8 @@ package android {
    field public static final int foreground = 16843017; // 0x1010109
    field public static final int foregroundGravity = 16843264; // 0x1010200
    field public static final int format = 16843013; // 0x1010105
    field public static final int format12Hour = 16843722; // 0x10103ca
    field public static final int format24Hour = 16843723; // 0x10103cb
    field public static final int fragment = 16843491; // 0x10102e3
    field public static final int fragmentCloseEnterAnimation = 16843495; // 0x10102e7
    field public static final int fragmentCloseExitAnimation = 16843496; // 0x10102e8
@@ -1074,6 +1076,7 @@ package android {
    field public static final int thumbTextPadding = 16843634; // 0x1010372
    field public static final int thumbnail = 16843429; // 0x10102a5
    field public static final int tileMode = 16843265; // 0x1010201
    field public static final int timeZone = 16843724; // 0x10103cc
    field public static final int tint = 16843041; // 0x1010121
    field public static final int title = 16843233; // 0x10101e1
    field public static final int titleCondensed = 16843234; // 0x10101e2
@@ -22300,14 +22303,14 @@ package android.text.format {
  public class DateFormat {
    ctor public DateFormat();
    method public static final java.lang.CharSequence format(java.lang.CharSequence, long);
    method public static final java.lang.CharSequence format(java.lang.CharSequence, java.util.Date);
    method public static final java.lang.CharSequence format(java.lang.CharSequence, java.util.Calendar);
    method public static final java.text.DateFormat getDateFormat(android.content.Context);
    method public static final char[] getDateFormatOrder(android.content.Context);
    method public static final java.text.DateFormat getLongDateFormat(android.content.Context);
    method public static final java.text.DateFormat getMediumDateFormat(android.content.Context);
    method public static final java.text.DateFormat getTimeFormat(android.content.Context);
    method public static java.lang.CharSequence format(java.lang.CharSequence, long);
    method public static java.lang.CharSequence format(java.lang.CharSequence, java.util.Date);
    method public static java.lang.CharSequence format(java.lang.CharSequence, java.util.Calendar);
    method public static java.text.DateFormat getDateFormat(android.content.Context);
    method public static char[] getDateFormatOrder(android.content.Context);
    method public static java.text.DateFormat getLongDateFormat(android.content.Context);
    method public static java.text.DateFormat getMediumDateFormat(android.content.Context);
    method public static java.text.DateFormat getTimeFormat(android.content.Context);
    method public static boolean is24HourFormat(android.content.Context);
    field public static final char AM_PM = 97; // 0x0061 'a'
    field public static final char CAPITAL_AM_PM = 65; // 0x0041 'A'
@@ -29518,6 +29521,21 @@ package android.widget {
    field public int span;
  }
  public class TextClock extends android.widget.TextView {
    ctor public TextClock(android.content.Context);
    ctor public TextClock(android.content.Context, android.util.AttributeSet);
    ctor public TextClock(android.content.Context, android.util.AttributeSet, int);
    method public java.lang.CharSequence getFormat12Hour();
    method public java.lang.CharSequence getFormat24Hour();
    method public java.lang.String getTimeZone();
    method public boolean is24HourModeEnabled();
    method public void setFormat12Hour(java.lang.CharSequence);
    method public void setFormat24Hour(java.lang.CharSequence);
    method public void setTimeZone(java.lang.String);
    field public static final java.lang.CharSequence DEFAULT_FORMAT_12_HOUR;
    field public static final java.lang.CharSequence DEFAULT_FORMAT_24_HOUR;
  }
  public class TextSwitcher extends android.widget.ViewSwitcher {
    ctor public TextSwitcher(android.content.Context);
    ctor public TextSwitcher(android.content.Context, android.util.AttributeSet);
+26 −8
Original line number Diff line number Diff line
@@ -491,6 +491,8 @@ package android {
    field public static final int foreground = 16843017; // 0x1010109
    field public static final int foregroundGravity = 16843264; // 0x1010200
    field public static final int format = 16843013; // 0x1010105
    field public static final int format12Hour = 16843722; // 0x10103ca
    field public static final int format24Hour = 16843723; // 0x10103cb
    field public static final int fragment = 16843491; // 0x10102e3
    field public static final int fragmentCloseEnterAnimation = 16843495; // 0x10102e7
    field public static final int fragmentCloseExitAnimation = 16843496; // 0x10102e8
@@ -1074,6 +1076,7 @@ package android {
    field public static final int thumbTextPadding = 16843634; // 0x1010372
    field public static final int thumbnail = 16843429; // 0x10102a5
    field public static final int tileMode = 16843265; // 0x1010201
    field public static final int timeZone = 16843724; // 0x10103cc
    field public static final int tint = 16843041; // 0x1010121
    field public static final int title = 16843233; // 0x10101e1
    field public static final int titleCondensed = 16843234; // 0x10101e2
@@ -22300,14 +22303,14 @@ package android.text.format {
  public class DateFormat {
    ctor public DateFormat();
    method public static final java.lang.CharSequence format(java.lang.CharSequence, long);
    method public static final java.lang.CharSequence format(java.lang.CharSequence, java.util.Date);
    method public static final java.lang.CharSequence format(java.lang.CharSequence, java.util.Calendar);
    method public static final java.text.DateFormat getDateFormat(android.content.Context);
    method public static final char[] getDateFormatOrder(android.content.Context);
    method public static final java.text.DateFormat getLongDateFormat(android.content.Context);
    method public static final java.text.DateFormat getMediumDateFormat(android.content.Context);
    method public static final java.text.DateFormat getTimeFormat(android.content.Context);
    method public static java.lang.CharSequence format(java.lang.CharSequence, long);
    method public static java.lang.CharSequence format(java.lang.CharSequence, java.util.Date);
    method public static java.lang.CharSequence format(java.lang.CharSequence, java.util.Calendar);
    method public static java.text.DateFormat getDateFormat(android.content.Context);
    method public static char[] getDateFormatOrder(android.content.Context);
    method public static java.text.DateFormat getLongDateFormat(android.content.Context);
    method public static java.text.DateFormat getMediumDateFormat(android.content.Context);
    method public static java.text.DateFormat getTimeFormat(android.content.Context);
    method public static boolean is24HourFormat(android.content.Context);
    field public static final char AM_PM = 97; // 0x0061 'a'
    field public static final char CAPITAL_AM_PM = 65; // 0x0041 'A'
@@ -29518,6 +29521,21 @@ package android.widget {
    field public int span;
  }
  public class TextClock extends android.widget.TextView {
    ctor public TextClock(android.content.Context);
    ctor public TextClock(android.content.Context, android.util.AttributeSet);
    ctor public TextClock(android.content.Context, android.util.AttributeSet, int);
    method public java.lang.CharSequence getFormat12Hour();
    method public java.lang.CharSequence getFormat24Hour();
    method public java.lang.String getTimeZone();
    method public boolean is24HourModeEnabled();
    method public void setFormat12Hour(java.lang.CharSequence);
    method public void setFormat24Hour(java.lang.CharSequence);
    method public void setTimeZone(java.lang.String);
    field public static final java.lang.CharSequence DEFAULT_FORMAT_12_HOUR;
    field public static final java.lang.CharSequence DEFAULT_FORMAT_24_HOUR;
  }
  public class TextSwitcher extends android.widget.ViewSwitcher {
    ctor public TextSwitcher(android.content.Context);
    ctor public TextSwitcher(android.content.Context, android.util.AttributeSet);
+80 −17
Original line number Diff line number Diff line
@@ -249,12 +249,13 @@ public class DateFormat {

            synchronized (sLocaleLock) {
                sIs24HourLocale = locale;
                sIs24Hour = !value.equals("12");
                sIs24Hour = value.equals("24");
            }

            return sIs24Hour;
        }

        boolean b24 =  !(value == null || value.equals("12"));
        return b24;
        return value.equals("24");
    }

    /**
@@ -263,7 +264,7 @@ public class DateFormat {
     * @param context the application context
     * @return the {@link java.text.DateFormat} object that properly formats the time.
     */
    public static final java.text.DateFormat getTimeFormat(Context context) {
    public static java.text.DateFormat getTimeFormat(Context context) {
        boolean b24 = is24HourFormat(context);
        int res;

@@ -283,7 +284,7 @@ public class DateFormat {
     * @param context the application context
     * @return the {@link java.text.DateFormat} object that properly formats the date.
     */
    public static final java.text.DateFormat getDateFormat(Context context) {
    public static java.text.DateFormat getDateFormat(Context context) {
        String value = Settings.System.getString(context.getContentResolver(),
                Settings.System.DATE_FORMAT);

@@ -353,7 +354,7 @@ public class DateFormat {
     * @param context the application context
     * @return the {@link java.text.DateFormat} object that formats the date in long form.
     */
    public static final java.text.DateFormat getLongDateFormat(Context context) {
    public static java.text.DateFormat getLongDateFormat(Context context) {
        return java.text.DateFormat.getDateInstance(java.text.DateFormat.LONG);
    }

@@ -363,7 +364,7 @@ public class DateFormat {
     * @param context the application context
     * @return the {@link java.text.DateFormat} object that formats the date in long form.
     */
    public static final java.text.DateFormat getMediumDateFormat(Context context) {
    public static java.text.DateFormat getMediumDateFormat(Context context) {
        return java.text.DateFormat.getDateInstance(java.text.DateFormat.MEDIUM);
    }

@@ -376,7 +377,7 @@ public class DateFormat {
     * not just the day, month, and year, and not necessarily in the same
     * order returned here.
     */    
    public static final char[] getDateFormatOrder(Context context) {
    public static char[] getDateFormatOrder(Context context) {
        char[] order = new char[] {DATE, MONTH, YEAR};
        String value = getDateFormatString(context);
        int index = 0;
@@ -420,7 +421,7 @@ public class DateFormat {
     * @param inTimeInMillis in milliseconds since Jan 1, 1970 GMT
     * @return a {@link CharSequence} containing the requested text
     */
    public static final CharSequence format(CharSequence inFormat, long inTimeInMillis) {
    public static CharSequence format(CharSequence inFormat, long inTimeInMillis) {
        return format(inFormat, new Date(inTimeInMillis));
    }

@@ -431,7 +432,7 @@ public class DateFormat {
     * @param inDate the date to format
     * @return a {@link CharSequence} containing the requested text
     */
    public static final CharSequence format(CharSequence inFormat, Date inDate) {
    public static CharSequence format(CharSequence inFormat, Date inDate) {
        Calendar    c = new GregorianCalendar();
        
        c.setTime(inDate);
@@ -439,6 +440,68 @@ public class DateFormat {
        return format(inFormat, c);
    }

    /**
     * Indicates whether the specified format string contains seconds.
     * 
     * Always returns false if the input format is null.
     * 
     * @param inFormat the format string, as described in {@link android.text.format.DateFormat}
     *                 
     * @return true if the format string contains {@link #SECONDS}, false otherwise
     * 
     * @hide
     */
    public static boolean hasSeconds(CharSequence inFormat) {
        if (inFormat == null) return false;

        final int length = inFormat.length();

        int c;
        int count;

        for (int i = 0; i < length; i += count) {
            count = 1;
            c = inFormat.charAt(i);

            if (c == QUOTE) {
                count = skipQuotedText(inFormat, i, length);
            } else if (c == SECONDS) {
                return true;
            }
        }

        return false;
    }

    private static int skipQuotedText(CharSequence s, int i, int len) {
        if (i + 1 < len && s.charAt(i + 1) == QUOTE) {
            return 2;
        }

        int count = 1;
        // skip leading quote
        i++;

        while (i < len) {
            char c = s.charAt(i);

            if (c == QUOTE) {
                count++;
                //  QUOTEQUOTE -> QUOTE
                if (i + 1 < len && s.charAt(i + 1) == QUOTE) {
                    i++;
                } else {
                    break;
                }
            } else {
                i++;
                count++;
            }
        }

        return count;
    }

    /**
     * Given a format string and a {@link java.util.Calendar} object, returns a CharSequence 
     * containing the requested date.
@@ -446,7 +509,7 @@ public class DateFormat {
     * @param inDate the date to format
     * @return a {@link CharSequence} containing the requested text
     */
    public static final CharSequence format(CharSequence inFormat, Calendar inDate) {
    public static CharSequence format(CharSequence inFormat, Calendar inDate) {
        SpannableStringBuilder      s = new SpannableStringBuilder(inFormat);
        int             c;
        int             count;
@@ -545,7 +608,7 @@ public class DateFormat {
            return s.toString();
    }
    
    private static final String getMonthString(Calendar inDate, int count, int kind) {
    private static String getMonthString(Calendar inDate, int count, int kind) {
        boolean standalone = (kind == STANDALONE_MONTH);
        int month = inDate.get(Calendar.MONTH);
        
@@ -563,7 +626,7 @@ public class DateFormat {
        }
    }
        
    private static final String getTimeZoneString(Calendar inDate, int count) {
    private static String getTimeZoneString(Calendar inDate, int count) {
        TimeZone tz = inDate.getTimeZone();
        
        if (count < 2) { // FIXME: shouldn't this be <= 2 ?
@@ -576,7 +639,7 @@ public class DateFormat {
        }
    }

    private static final String formatZoneOffset(int offset, int count) {
    private static String formatZoneOffset(int offset, int count) {
        offset /= 1000; // milliseconds to seconds
        StringBuilder tb = new StringBuilder();

@@ -595,13 +658,13 @@ public class DateFormat {
        return tb.toString();
    }
    
    private static final String getYearString(Calendar inDate, int count) {
    private static String getYearString(Calendar inDate, int count) {
        int year = inDate.get(Calendar.YEAR);
        return (count <= 2) ? zeroPad(year % 100, 2)
                            : String.format(Locale.getDefault(), "%d", year);
    }
   
    private static final int appendQuotedText(SpannableStringBuilder s, int i, int len) {
    private static int appendQuotedText(SpannableStringBuilder s, int i, int len) {
        if (i + 1 < len && s.charAt(i + 1) == QUOTE) {
            s.delete(i, i + 1);
            return 1;
@@ -638,7 +701,7 @@ public class DateFormat {
        return count;
    }

    private static final String zeroPad(int inValue, int inMinDigits) {
    private static String zeroPad(int inValue, int inMinDigits) {
        return String.format(Locale.getDefault(), "%0" + inMinDigits + "d", inValue);
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -17697,7 +17697,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        boolean mScalingRequired;
        /**
         * If set, ViewAncestor doesn't use its lame animation for when the window resizes.
         * If set, ViewRootImpl doesn't use its lame animation for when the window resizes.
         */
        boolean mTurnOffWindowResizeAnim;
+15 −16
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package android.widget;

import android.content.Context;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.os.Handler;
import android.os.SystemClock;
@@ -32,14 +31,12 @@ import java.util.Calendar;
/**
 * Like AnalogClock, but digital.  Shows seconds.
 *
 * FIXME: implement separate views for hours/minutes/seconds, so
 * proportional fonts don't shake rendering
 * 
 * @deprecated It is recommended you use a {@link TextView} and {@link DateFormat}
 * to implement the same behavior.
 * @deprecated It is recommended you use {@link TextClock} instead.
 */
@Deprecated
public class DigitalClock extends TextView {
    // FIXME: implement separate views for hours/minutes/seconds, so
    // proportional fonts don't shake rendering

    Calendar mCalendar;
    private final static String m12 = "h:mm:ss aa";
@@ -134,12 +131,14 @@ public class DigitalClock extends TextView {
    @Override
    public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
        super.onInitializeAccessibilityEvent(event);
        //noinspection deprecation
        event.setClassName(DigitalClock.class.getName());
    }

    @Override
    public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
        super.onInitializeAccessibilityNodeInfo(info);
        //noinspection deprecation
        info.setClassName(DigitalClock.class.getName());
    }
}
Loading