Rabbit-R1/original r1/java/sources/androidx/appcompat/app/TwilightManager.java

113 lines
4.8 KiB
Java
Raw Normal View History

2024-05-21 16:08:36 -05:00
package androidx.appcompat.app;
import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.util.Log;
import androidx.compose.material3.CalendarModelKt;
import androidx.core.content.PermissionChecker;
import java.util.Calendar;
/* loaded from: classes.dex */
class TwilightManager {
private static final int SUNRISE = 6;
private static final int SUNSET = 22;
private static final String TAG = "TwilightManager";
private static TwilightManager sInstance;
private final Context mContext;
private final LocationManager mLocationManager;
private final TwilightState mTwilightState = new TwilightState();
static void setInstance(TwilightManager twilightManager) {
sInstance = twilightManager;
}
/* JADX INFO: Access modifiers changed from: package-private */
public static TwilightManager getInstance(Context context) {
if (sInstance == null) {
Context applicationContext = context.getApplicationContext();
sInstance = new TwilightManager(applicationContext, (LocationManager) applicationContext.getSystemService("location"));
}
return sInstance;
}
TwilightManager(Context context, LocationManager locationManager) {
this.mContext = context;
this.mLocationManager = locationManager;
}
/* JADX INFO: Access modifiers changed from: package-private */
public boolean isNight() {
TwilightState twilightState = this.mTwilightState;
if (isStateValid()) {
return twilightState.isNight;
}
Location lastKnownLocation = getLastKnownLocation();
if (lastKnownLocation != null) {
updateState(lastKnownLocation);
return twilightState.isNight;
}
Log.i(TAG, "Could not get last known location. This is probably because the app does not have any location permissions. Falling back to hardcoded sunrise/sunset values.");
int i = Calendar.getInstance().get(11);
return i < 6 || i >= 22;
}
private Location getLastKnownLocation() {
Location lastKnownLocationForProvider = PermissionChecker.checkSelfPermission(this.mContext, "android.permission.ACCESS_COARSE_LOCATION") == 0 ? getLastKnownLocationForProvider("network") : null;
Location lastKnownLocationForProvider2 = PermissionChecker.checkSelfPermission(this.mContext, "android.permission.ACCESS_FINE_LOCATION") == 0 ? getLastKnownLocationForProvider("gps") : null;
return (lastKnownLocationForProvider2 == null || lastKnownLocationForProvider == null) ? lastKnownLocationForProvider2 != null ? lastKnownLocationForProvider2 : lastKnownLocationForProvider : lastKnownLocationForProvider2.getTime() > lastKnownLocationForProvider.getTime() ? lastKnownLocationForProvider2 : lastKnownLocationForProvider;
}
private Location getLastKnownLocationForProvider(String str) {
try {
if (this.mLocationManager.isProviderEnabled(str)) {
return this.mLocationManager.getLastKnownLocation(str);
}
return null;
} catch (Exception e) {
Log.d(TAG, "Failed to get last known location", e);
return null;
}
}
private boolean isStateValid() {
return this.mTwilightState.nextUpdate > System.currentTimeMillis();
}
private void updateState(Location location) {
long j;
TwilightState twilightState = this.mTwilightState;
long currentTimeMillis = System.currentTimeMillis();
TwilightCalculator twilightCalculator = TwilightCalculator.getInstance();
twilightCalculator.calculateTwilight(currentTimeMillis - CalendarModelKt.MillisecondsIn24Hours, location.getLatitude(), location.getLongitude());
twilightCalculator.calculateTwilight(currentTimeMillis, location.getLatitude(), location.getLongitude());
boolean z = twilightCalculator.state == 1;
long j2 = twilightCalculator.sunrise;
long j3 = twilightCalculator.sunset;
twilightCalculator.calculateTwilight(currentTimeMillis + CalendarModelKt.MillisecondsIn24Hours, location.getLatitude(), location.getLongitude());
long j4 = twilightCalculator.sunrise;
if (j2 == -1 || j3 == -1) {
j = currentTimeMillis + 43200000;
} else {
if (currentTimeMillis > j3) {
j2 = j4;
} else if (currentTimeMillis > j2) {
j2 = j3;
}
j = j2 + 60000;
}
twilightState.isNight = z;
twilightState.nextUpdate = j;
}
/* JADX INFO: Access modifiers changed from: private */
/* loaded from: classes.dex */
public static class TwilightState {
boolean isNight;
long nextUpdate;
TwilightState() {
}
}
}