2022-06-10 21:38:30 +09:00

748 lines
19 KiB
Smali

.class Lcom/google/android/material/datepicker/UtcDates;
.super Ljava/lang/Object;
.source "UtcDates.java"
# static fields
.field public static final UTC:Ljava/lang/String; = "UTC"
.field public static timeSourceRef:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Lcom/google/android/material/datepicker/TimeSource;",
">;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 1
.line 1
new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
sput-object v0, Lcom/google/android/material/datepicker/UtcDates;->timeSourceRef:Ljava/util/concurrent/atomic/AtomicReference;
return-void
.end method
.method private constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static canonicalYearMonthDay(J)J
.locals 1
.line 1
invoke-static {}, Lcom/google/android/material/datepicker/UtcDates;->getUtcCalendar()Ljava/util/Calendar;
move-result-object v0
.line 2
invoke-virtual {v0, p0, p1}, Ljava/util/Calendar;->setTimeInMillis(J)V
.line 3
invoke-static {v0}, Lcom/google/android/material/datepicker/UtcDates;->getDayCopy(Ljava/util/Calendar;)Ljava/util/Calendar;
move-result-object p0
.line 4
invoke-virtual {p0}, Ljava/util/Calendar;->getTimeInMillis()J
move-result-wide p0
return-wide p0
.end method
.method private static findCharactersInDateFormatPattern(Ljava/lang/String;Ljava/lang/String;II)I
.locals 2
.param p0 # Ljava/lang/String;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p1 # Ljava/lang/String;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
:goto_0
if-ltz p3, :cond_1
.line 1
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-ge p3, v0, :cond_1
.line 2
invoke-virtual {p0, p3}, Ljava/lang/String;->charAt(I)C
move-result v0
invoke-virtual {p1, v0}, Ljava/lang/String;->indexOf(I)I
move-result v0
const/4 v1, -0x1
if-ne v0, v1, :cond_1
.line 3
invoke-virtual {p0, p3}, Ljava/lang/String;->charAt(I)C
move-result v0
const/16 v1, 0x27
if-ne v0, v1, :cond_0
:goto_1
add-int/2addr p3, p2
if-ltz p3, :cond_0
.line 4
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-ge p3, v0, :cond_0
invoke-virtual {p0, p3}, Ljava/lang/String;->charAt(I)C
move-result v0
if-eq v0, v1, :cond_0
goto :goto_1
:cond_0
add-int/2addr p3, p2
goto :goto_0
:cond_1
return p3
.end method
.method public static getAbbrMonthDayFormat(Ljava/util/Locale;)Landroid/icu/text/DateFormat;
.locals 1
.annotation build Landroid/annotation/TargetApi;
value = 0x18
.end annotation
const-string v0, "MMMd"
.line 1
invoke-static {v0, p0}, Lcom/google/android/material/datepicker/UtcDates;->getAndroidFormat(Ljava/lang/String;Ljava/util/Locale;)Landroid/icu/text/DateFormat;
move-result-object p0
return-object p0
.end method
.method public static getAbbrMonthWeekdayDayFormat(Ljava/util/Locale;)Landroid/icu/text/DateFormat;
.locals 1
.annotation build Landroid/annotation/TargetApi;
value = 0x18
.end annotation
const-string v0, "MMMEd"
.line 1
invoke-static {v0, p0}, Lcom/google/android/material/datepicker/UtcDates;->getAndroidFormat(Ljava/lang/String;Ljava/util/Locale;)Landroid/icu/text/DateFormat;
move-result-object p0
return-object p0
.end method
.method private static getAndroidFormat(Ljava/lang/String;Ljava/util/Locale;)Landroid/icu/text/DateFormat;
.locals 0
.annotation build Landroid/annotation/TargetApi;
value = 0x18
.end annotation
.line 1
invoke-static {p0, p1}, Landroid/icu/text/DateFormat;->getInstanceForSkeleton(Ljava/lang/String;Ljava/util/Locale;)Landroid/icu/text/DateFormat;
move-result-object p0
.line 2
invoke-static {}, Lcom/google/android/material/datepicker/UtcDates;->getUtcAndroidTimeZone()Landroid/icu/util/TimeZone;
move-result-object p1
invoke-virtual {p0, p1}, Landroid/icu/text/DateFormat;->setTimeZone(Landroid/icu/util/TimeZone;)V
return-object p0
.end method
.method public static getDayCopy(Ljava/util/Calendar;)Ljava/util/Calendar;
.locals 4
.line 1
invoke-static {p0}, Lcom/google/android/material/datepicker/UtcDates;->getUtcCalendarOf(Ljava/util/Calendar;)Ljava/util/Calendar;
move-result-object p0
.line 2
invoke-static {}, Lcom/google/android/material/datepicker/UtcDates;->getUtcCalendar()Ljava/util/Calendar;
move-result-object v0
const/4 v1, 0x1
.line 3
invoke-virtual {p0, v1}, Ljava/util/Calendar;->get(I)I
move-result v1
const/4 v2, 0x2
.line 4
invoke-virtual {p0, v2}, Ljava/util/Calendar;->get(I)I
move-result v2
const/4 v3, 0x5
.line 5
invoke-virtual {p0, v3}, Ljava/util/Calendar;->get(I)I
move-result p0
.line 6
invoke-virtual {v0, v1, v2, p0}, Ljava/util/Calendar;->set(III)V
return-object v0
.end method
.method private static getFormat(ILjava/util/Locale;)Ljava/text/DateFormat;
.locals 0
.line 1
invoke-static {p0, p1}, Ljava/text/DateFormat;->getDateInstance(ILjava/util/Locale;)Ljava/text/DateFormat;
move-result-object p0
.line 2
invoke-static {}, Lcom/google/android/material/datepicker/UtcDates;->getTimeZone()Ljava/util/TimeZone;
move-result-object p1
invoke-virtual {p0, p1}, Ljava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V
return-object p0
.end method
.method public static getFullFormat()Ljava/text/DateFormat;
.locals 1
.line 1
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
invoke-static {v0}, Lcom/google/android/material/datepicker/UtcDates;->getFullFormat(Ljava/util/Locale;)Ljava/text/DateFormat;
move-result-object v0
return-object v0
.end method
.method public static getFullFormat(Ljava/util/Locale;)Ljava/text/DateFormat;
.locals 1
const/4 v0, 0x0
.line 2
invoke-static {v0, p0}, Lcom/google/android/material/datepicker/UtcDates;->getFormat(ILjava/util/Locale;)Ljava/text/DateFormat;
move-result-object p0
return-object p0
.end method
.method public static getMediumFormat()Ljava/text/DateFormat;
.locals 1
.line 1
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
invoke-static {v0}, Lcom/google/android/material/datepicker/UtcDates;->getMediumFormat(Ljava/util/Locale;)Ljava/text/DateFormat;
move-result-object v0
return-object v0
.end method
.method public static getMediumFormat(Ljava/util/Locale;)Ljava/text/DateFormat;
.locals 1
const/4 v0, 0x2
.line 2
invoke-static {v0, p0}, Lcom/google/android/material/datepicker/UtcDates;->getFormat(ILjava/util/Locale;)Ljava/text/DateFormat;
move-result-object p0
return-object p0
.end method
.method public static getMediumNoYear()Ljava/text/DateFormat;
.locals 1
.line 1
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
invoke-static {v0}, Lcom/google/android/material/datepicker/UtcDates;->getMediumNoYear(Ljava/util/Locale;)Ljava/text/DateFormat;
move-result-object v0
return-object v0
.end method
.method public static getMediumNoYear(Ljava/util/Locale;)Ljava/text/DateFormat;
.locals 1
.line 2
invoke-static {p0}, Lcom/google/android/material/datepicker/UtcDates;->getMediumFormat(Ljava/util/Locale;)Ljava/text/DateFormat;
move-result-object p0
check-cast p0, Ljava/text/SimpleDateFormat;
.line 3
invoke-virtual {p0}, Ljava/text/SimpleDateFormat;->toPattern()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/google/android/material/datepicker/UtcDates;->removeYearFromDateFormatPattern(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0}, Ljava/text/SimpleDateFormat;->applyPattern(Ljava/lang/String;)V
return-object p0
.end method
.method public static getSimpleFormat(Ljava/lang/String;)Ljava/text/SimpleDateFormat;
.locals 1
.line 1
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
invoke-static {p0, v0}, Lcom/google/android/material/datepicker/UtcDates;->getSimpleFormat(Ljava/lang/String;Ljava/util/Locale;)Ljava/text/SimpleDateFormat;
move-result-object p0
return-object p0
.end method
.method private static getSimpleFormat(Ljava/lang/String;Ljava/util/Locale;)Ljava/text/SimpleDateFormat;
.locals 1
.line 2
new-instance v0, Ljava/text/SimpleDateFormat;
invoke-direct {v0, p0, p1}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
.line 3
invoke-static {}, Lcom/google/android/material/datepicker/UtcDates;->getTimeZone()Ljava/util/TimeZone;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/text/SimpleDateFormat;->setTimeZone(Ljava/util/TimeZone;)V
return-object v0
.end method
.method public static getTextInputFormat()Ljava/text/SimpleDateFormat;
.locals 3
.line 1
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
const/4 v1, 0x3
invoke-static {v1, v0}, Ljava/text/DateFormat;->getDateInstance(ILjava/util/Locale;)Ljava/text/DateFormat;
move-result-object v0
check-cast v0, Ljava/text/SimpleDateFormat;
.line 2
invoke-virtual {v0}, Ljava/text/SimpleDateFormat;->toLocalizedPattern()Ljava/lang/String;
move-result-object v0
const-string v1, "\\s+"
const-string v2, ""
.line 3
invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 4
new-instance v1, Ljava/text/SimpleDateFormat;
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v2
invoke-direct {v1, v0, v2}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
.line 5
invoke-static {}, Lcom/google/android/material/datepicker/UtcDates;->getTimeZone()Ljava/util/TimeZone;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/text/SimpleDateFormat;->setTimeZone(Ljava/util/TimeZone;)V
const/4 v0, 0x0
.line 6
invoke-virtual {v1, v0}, Ljava/text/SimpleDateFormat;->setLenient(Z)V
return-object v1
.end method
.method public static getTextInputHint(Landroid/content/res/Resources;Ljava/text/SimpleDateFormat;)Ljava/lang/String;
.locals 3
.line 1
invoke-virtual {p1}, Ljava/text/SimpleDateFormat;->toLocalizedPattern()Ljava/lang/String;
move-result-object p1
.line 2
sget v0, Lcom/google/android/material/R$string;->mtrl_picker_text_input_year_abbr:I
invoke-virtual {p0, v0}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
move-result-object v0
.line 3
sget v1, Lcom/google/android/material/R$string;->mtrl_picker_text_input_month_abbr:I
invoke-virtual {p0, v1}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
move-result-object v1
.line 4
sget v2, Lcom/google/android/material/R$string;->mtrl_picker_text_input_day_abbr:I
invoke-virtual {p0, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
move-result-object p0
const-string v2, "d"
.line 5
invoke-virtual {p1, v2, p0}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
const-string p1, "M"
invoke-virtual {p0, p1, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
const-string p1, "y"
invoke-virtual {p0, p1, v0}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getTimeSource()Lcom/google/android/material/datepicker/TimeSource;
.locals 1
.line 1
sget-object v0, Lcom/google/android/material/datepicker/UtcDates;->timeSourceRef:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/material/datepicker/TimeSource;
if-nez v0, :cond_0
.line 2
invoke-static {}, Lcom/google/android/material/datepicker/TimeSource;->system()Lcom/google/android/material/datepicker/TimeSource;
move-result-object v0
:cond_0
return-object v0
.end method
.method private static getTimeZone()Ljava/util/TimeZone;
.locals 1
const-string v0, "UTC"
.line 1
invoke-static {v0}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
move-result-object v0
return-object v0
.end method
.method public static getTodayCalendar()Ljava/util/Calendar;
.locals 3
.line 1
invoke-static {}, Lcom/google/android/material/datepicker/UtcDates;->getTimeSource()Lcom/google/android/material/datepicker/TimeSource;
move-result-object v0
invoke-virtual {v0}, Lcom/google/android/material/datepicker/TimeSource;->now()Ljava/util/Calendar;
move-result-object v0
const/16 v1, 0xb
const/4 v2, 0x0
.line 2
invoke-virtual {v0, v1, v2}, Ljava/util/Calendar;->set(II)V
const/16 v1, 0xc
.line 3
invoke-virtual {v0, v1, v2}, Ljava/util/Calendar;->set(II)V
const/16 v1, 0xd
.line 4
invoke-virtual {v0, v1, v2}, Ljava/util/Calendar;->set(II)V
const/16 v1, 0xe
.line 5
invoke-virtual {v0, v1, v2}, Ljava/util/Calendar;->set(II)V
.line 6
invoke-static {}, Lcom/google/android/material/datepicker/UtcDates;->getTimeZone()Ljava/util/TimeZone;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V
return-object v0
.end method
.method private static getUtcAndroidTimeZone()Landroid/icu/util/TimeZone;
.locals 1
.annotation build Landroid/annotation/TargetApi;
value = 0x18
.end annotation
const-string v0, "UTC"
.line 1
invoke-static {v0}, Landroid/icu/util/TimeZone;->getTimeZone(Ljava/lang/String;)Landroid/icu/util/TimeZone;
move-result-object v0
return-object v0
.end method
.method public static getUtcCalendar()Ljava/util/Calendar;
.locals 1
const/4 v0, 0x0
.line 1
invoke-static {v0}, Lcom/google/android/material/datepicker/UtcDates;->getUtcCalendarOf(Ljava/util/Calendar;)Ljava/util/Calendar;
move-result-object v0
return-object v0
.end method
.method public static getUtcCalendarOf(Ljava/util/Calendar;)Ljava/util/Calendar;
.locals 3
.param p0 # Ljava/util/Calendar;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.line 1
invoke-static {}, Lcom/google/android/material/datepicker/UtcDates;->getTimeZone()Ljava/util/TimeZone;
move-result-object v0
invoke-static {v0}, Ljava/util/Calendar;->getInstance(Ljava/util/TimeZone;)Ljava/util/Calendar;
move-result-object v0
if-nez p0, :cond_0
.line 2
invoke-virtual {v0}, Ljava/util/Calendar;->clear()V
goto :goto_0
.line 3
:cond_0
invoke-virtual {p0}, Ljava/util/Calendar;->getTimeInMillis()J
move-result-wide v1
invoke-virtual {v0, v1, v2}, Ljava/util/Calendar;->setTimeInMillis(J)V
:goto_0
return-object v0
.end method
.method public static getYearAbbrMonthDayFormat(Ljava/util/Locale;)Landroid/icu/text/DateFormat;
.locals 1
.annotation build Landroid/annotation/TargetApi;
value = 0x18
.end annotation
const-string v0, "yMMMd"
.line 1
invoke-static {v0, p0}, Lcom/google/android/material/datepicker/UtcDates;->getAndroidFormat(Ljava/lang/String;Ljava/util/Locale;)Landroid/icu/text/DateFormat;
move-result-object p0
return-object p0
.end method
.method public static getYearAbbrMonthWeekdayDayFormat(Ljava/util/Locale;)Landroid/icu/text/DateFormat;
.locals 1
.annotation build Landroid/annotation/TargetApi;
value = 0x18
.end annotation
const-string v0, "yMMMEd"
.line 1
invoke-static {v0, p0}, Lcom/google/android/material/datepicker/UtcDates;->getAndroidFormat(Ljava/lang/String;Ljava/util/Locale;)Landroid/icu/text/DateFormat;
move-result-object p0
return-object p0
.end method
.method private static removeYearFromDateFormatPattern(Ljava/lang/String;)Ljava/lang/String;
.locals 5
.param p0 # Ljava/lang/String;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
const-string v0, "yY"
const/4 v1, 0x1
const/4 v2, 0x0
.line 1
invoke-static {p0, v0, v1, v2}, Lcom/google/android/material/datepicker/UtcDates;->findCharactersInDateFormatPattern(Ljava/lang/String;Ljava/lang/String;II)I
move-result v0
.line 2
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v2
if-lt v0, v2, :cond_0
return-object p0
:cond_0
const-string v2, "EMd"
.line 3
invoke-static {p0, v2, v1, v0}, Lcom/google/android/material/datepicker/UtcDates;->findCharactersInDateFormatPattern(Ljava/lang/String;Ljava/lang/String;II)I
move-result v3
.line 4
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v4
if-ge v3, v4, :cond_1
const-string v2, "EMd,"
:cond_1
const/4 v4, -0x1
.line 5
invoke-static {p0, v2, v4, v0}, Lcom/google/android/material/datepicker/UtcDates;->findCharactersInDateFormatPattern(Ljava/lang/String;Ljava/lang/String;II)I
move-result v0
add-int/2addr v0, v1
.line 6
invoke-virtual {p0, v0, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
const-string v1, " "
.line 7
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static setTimeSource(Lcom/google/android/material/datepicker/TimeSource;)V
.locals 1
.param p0 # Lcom/google/android/material/datepicker/TimeSource;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.line 1
sget-object v0, Lcom/google/android/material/datepicker/UtcDates;->timeSourceRef:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicReference;->set(Ljava/lang/Object;)V
return-void
.end method