discord-jadx/app/src/main/java/com/discord/utilities/time/TimeUtils.java

340 lines
13 KiB
Java

package com.discord.utilities.time;
import android.content.Context;
import android.text.format.DateUtils;
import c.a.l.b;
import c.d.b.a.a;
import com.discord.utilities.locale.LocaleManager;
import d0.z.d.m;
import java.text.DateFormat;
import java.text.DateFormatSymbols;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import java.util.concurrent.TimeUnit;
/* compiled from: TimeUtils.kt */
public final class TimeUtils {
private static final String DATE_FORMAT_DISCORD_API = "yyyy-MM-dd'T'HH:mm:ss";
public static final TimeUtils INSTANCE = new TimeUtils();
private static final LocaleManager localeManager = new LocaleManager();
/* compiled from: TimeUtils.kt */
public static final class UTCFormat {
public static final UTCFormat INSTANCE = new UTCFormat();
public static final String LONG = "yyyy-MM-dd'T'HH:mm:ss";
public static final String SHORT = "yyyy-MM-dd";
private UTCFormat() {
}
}
private TimeUtils() {
}
public static final long addDaysToDate(String str, int i) {
Calendar calendar = toCalendar(parseUTCDate(str));
calendar.add(5, i);
return calendar.getTimeInMillis();
}
public static final String currentTimeUTCDateString(Clock clock) {
m.checkNotNullParameter(clock, "clock");
return toUTCDateTime$default(Long.valueOf(clock.currentTimeMillis()), null, 2, null);
}
public static final int getMonthsBetweenDates(Date date, Date date2) {
m.checkNotNullParameter(date, "firstDate");
m.checkNotNullParameter(date2, "secondDate");
Calendar instance = Calendar.getInstance();
if (date.before(date2)) {
m.checkNotNullExpressionValue(instance, "calendar");
instance.setTime(date);
date = date2;
} else {
m.checkNotNullExpressionValue(instance, "calendar");
instance.setTime(date2);
}
int i = 0;
while (instance.getTime().before(date)) {
instance.add(2, 1);
i++;
}
return i - 1;
}
public static final String getReadableTimeString(Context context, String str) {
m.checkNotNullParameter(context, "context");
return toReadableTimeString$default(context, parseUTCDate(str), null, 4, null).toString();
}
public static final long millisToSnowflake(long j) {
return (j - 1420070400000L) << 22;
}
public static final long parseSnowflake(Long l) {
if (l == null) {
l = 0L;
}
return (l.longValue() >> 22) + 1420070400000L;
}
public static final long parseUTCDate(String str) {
if (str == null) {
return 0;
}
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ROOT);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date parse = simpleDateFormat.parse(str);
if (parse != null) {
return parse.getTime();
}
return 0;
} catch (ArrayIndexOutOfBoundsException | NumberFormatException | ParseException unused) {
return 0;
}
}
private final String renderUtcDate(String str, Locale locale, String str2, DateFormat dateFormat, int i) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(str2, locale);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date parse = simpleDateFormat.parse(str);
Calendar instance = Calendar.getInstance(locale);
m.checkNotNullExpressionValue(instance, "calendar");
if (parse == null) {
parse = new Date();
}
instance.setTime(parse);
instance.add(5, i);
String format = dateFormat.format(instance.getTime());
m.checkNotNullExpressionValue(format, "outputFormat.format(offsetDate)");
return format;
}
public static /* synthetic */ String renderUtcDate$default(TimeUtils timeUtils, long j, Context context, int i, int i2, Object obj) {
if ((i2 & 4) != 0) {
i = 2;
}
return timeUtils.renderUtcDate(j, context, i);
}
public static /* synthetic */ String renderUtcDate$default(TimeUtils timeUtils, String str, Context context, String str2, DateFormat dateFormat, int i, int i2, Object obj) {
if ((i2 & 4) != 0) {
str2 = "yyyy-MM-dd'T'HH:mm:ss";
}
if ((i2 & 8) != 0) {
dateFormat = android.text.format.DateFormat.getMediumDateFormat(context);
m.checkNotNullExpressionValue(dateFormat, "DateFormat.getMediumDateFormat(context)");
}
return timeUtils.renderUtcDate(str, context, str2, dateFormat, (i2 & 16) != 0 ? 0 : i);
}
public static /* synthetic */ String renderUtcDate$default(TimeUtils timeUtils, String str, Locale locale, String str2, DateFormat dateFormat, int i, int i2, Object obj) {
if ((i2 & 4) != 0) {
str2 = "yyyy-MM-dd'T'HH:mm:ss";
}
return timeUtils.renderUtcDate(str, locale, str2, dateFormat, (i2 & 16) != 0 ? 0 : i);
}
public static /* synthetic */ String renderUtcDateTime$default(TimeUtils timeUtils, String str, Context context, String str2, int i, int i2, int i3, Object obj) {
if ((i3 & 4) != 0) {
str2 = "yyyy-MM-dd'T'HH:mm:ss";
}
return timeUtils.renderUtcDateTime(str, context, str2, i, i2);
}
public static final Calendar toCalendar(long j) {
Calendar instance = Calendar.getInstance(Locale.ROOT);
m.checkNotNullExpressionValue(instance, "calendar");
instance.setTimeInMillis(j);
return instance;
}
public static /* synthetic */ CharSequence toFriendlyString$default(TimeUtils timeUtils, long j, long j2, String str, String str2, int i, Object obj) {
if ((i & 2) != 0) {
j2 = ClockFactory.get().currentTimeMillis();
}
return timeUtils.toFriendlyString(j, j2, (i & 4) != 0 ? null : str, (i & 8) != 0 ? null : str2);
}
public static /* synthetic */ CharSequence toFriendlyStringSimple$default(TimeUtils timeUtils, long j, String str, String str2, int i, Object obj) {
if ((i & 2) != 0) {
str = null;
}
if ((i & 4) != 0) {
str2 = null;
}
return timeUtils.toFriendlyStringSimple(j, str, str2);
}
public static final CharSequence toReadableTimeString(Context context, long j, Clock clock) {
m.checkNotNullParameter(context, "context");
m.checkNotNullParameter(clock, "clock");
LocaleManager localeManager2 = localeManager;
if (m.areEqual(localeManager2.getPrimaryLocale(context).getLanguage(), "en")) {
return INSTANCE.toReadableTimeStringEN(localeManager2.getPrimaryLocale(context), j, clock);
}
CharSequence relativeDateTimeString = DateUtils.getRelativeDateTimeString(context, j, 86400000, 604800000, 131072);
m.checkNotNullExpressionValue(relativeDateTimeString, "DateUtils.getRelativeDat…RMAT_NUMERIC_DATE\n )");
return relativeDateTimeString;
}
public static /* synthetic */ CharSequence toReadableTimeString$default(Context context, long j, Clock clock, int i, Object obj) {
if ((i & 4) != 0) {
clock = ClockFactory.get();
}
return toReadableTimeString(context, j, clock);
}
public static /* synthetic */ String toReadableTimeStringEN$default(TimeUtils timeUtils, Locale locale, long j, Clock clock, int i, Object obj) {
if ((i & 4) != 0) {
clock = ClockFactory.get();
}
return timeUtils.toReadableTimeStringEN(locale, j, clock);
}
public static final String toUTCDateTime(Long l, String str) {
m.checkNotNullParameter(str, "format");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(str, Locale.ROOT);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
if (l == null) {
return null;
}
return simpleDateFormat.format(new Date(l.longValue()));
}
public static /* synthetic */ String toUTCDateTime$default(Long l, String str, int i, Object obj) {
if ((i & 2) != 0) {
str = "yyyy-MM-dd'T'HH:mm:ss";
}
return toUTCDateTime(l, str);
}
public final int getDaysFromMillis(long j) {
long j2 = (long) 86400000;
if (j < j2) {
return 0;
}
return (int) (j / j2);
}
public final int getHoursFromMillis(long j) {
long j2 = (long) 3600000;
if (j < j2) {
return 0;
}
return (int) (j / j2);
}
public final String getLocalizedMonthName(int i, Context context) {
m.checkNotNullParameter(context, "context");
String str = new DateFormatSymbols(localeManager.getPrimaryLocale(context)).getMonths()[i - 1];
m.checkNotNullExpressionValue(str, "DateFormatSymbols(locale…xt)).months[monthInt - 1]");
return str;
}
public final int getMinutesFromMillis(long j) {
long j2 = (long) 60000;
if (j < j2) {
return 0;
}
return (int) (j / j2);
}
public final int getSecondsFromMillis(long j) {
long j2 = (long) 1000;
if (j < j2) {
return 0;
}
return (int) (j / j2);
}
public final String renderUtcDate(long j, Context context, int i) {
m.checkNotNullParameter(context, "context");
String format = DateFormat.getDateInstance(i, localeManager.getPrimaryLocale(context)).format(Long.valueOf(j));
m.checkNotNullExpressionValue(format, "formatter.format(unixTimeMillis)");
return format;
}
public final String renderUtcDate(String str, Context context, String str2, DateFormat dateFormat, int i) {
m.checkNotNullParameter(str, "utcDate");
m.checkNotNullParameter(context, "context");
m.checkNotNullParameter(str2, "inputFormat");
m.checkNotNullParameter(dateFormat, "outputFormat");
return renderUtcDate(str, localeManager.getPrimaryLocale(context), str2, dateFormat, i);
}
public final String renderUtcDateTime(String str, Context context, String str2, int i, int i2) {
m.checkNotNullParameter(str, "utcDateTime");
m.checkNotNullParameter(context, "context");
m.checkNotNullParameter(str2, "inputFormat");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(str2, localeManager.getPrimaryLocale(context));
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date parse = simpleDateFormat.parse(str);
if (parse == null) {
parse = new Date();
}
String format = DateFormat.getDateTimeInstance(i, i2).format(parse);
m.checkNotNullExpressionValue(format, "outputDateFormatInstance.format(date)");
return format;
}
public final CharSequence toFriendlyString(long j, long j2, String str, String str2) {
long j3 = j2 - j;
if (TimeUnit.MILLISECONDS.toDays(j3) == 0) {
return toFriendlyStringSimple(j3, str, str2);
}
CharSequence relativeTimeSpanString = DateUtils.getRelativeTimeSpanString(j, j2, 86400000, 131072);
m.checkNotNullExpressionValue(relativeTimeSpanString, "DateUtils.getRelativeTim…AT_NUMERIC_DATE\n )");
return relativeTimeSpanString;
}
public final CharSequence toFriendlyStringSimple(long j, String str, String str2) {
String formatElapsedTime = DateUtils.formatElapsedTime(TimeUnit.MILLISECONDS.toSeconds(Math.max(0L, j)));
if (str == null || str2 == null) {
m.checkNotNullExpressionValue(formatElapsedTime, "elapsedTime");
return formatElapsedTime;
}
return b.f(str, new Object[0], new TimeUtils$toFriendlyStringSimple$1(formatElapsedTime, str2));
}
public final String toReadableTimeStringEN(Locale locale, long j, Clock clock) {
m.checkNotNullParameter(locale, "locale");
m.checkNotNullParameter(clock, "clock");
if (!m.areEqual(locale.getLanguage(), "en")) {
return "";
}
DateFormat timeInstance = DateFormat.getTimeInstance(3, locale);
DateFormat dateTimeInstance = DateFormat.getDateTimeInstance(2, 3, locale);
Calendar calendar = toCalendar(clock.currentTimeMillis());
calendar.set(11, 0);
calendar.set(12, 0);
calendar.set(13, 0);
calendar.set(14, 0);
calendar.add(5, 1);
if (j > calendar.getTimeInMillis()) {
String format = dateTimeInstance.format(Long.valueOf(j));
m.checkNotNullExpressionValue(format, "formatterDateTime.format(unixTimeMillis)");
return format;
}
calendar.add(5, -1);
if (j > calendar.getTimeInMillis()) {
StringBuilder L = a.L("Today at ");
L.append(timeInstance.format(Long.valueOf(j)));
return L.toString();
}
calendar.add(5, -1);
if (j > calendar.getTimeInMillis()) {
StringBuilder L2 = a.L("Yesterday at ");
L2.append(timeInstance.format(Long.valueOf(j)));
return L2.toString();
}
String format2 = dateTimeInstance.format(Long.valueOf(j));
m.checkNotNullExpressionValue(format2, "formatterDateTime.format(unixTimeMillis)");
return format2;
}
}