169 lines
9.1 KiB
Java
169 lines
9.1 KiB
Java
package com.google.android.gms.libs.identity;
|
|
|
|
import android.app.PendingIntent;
|
|
import android.location.Location;
|
|
import android.os.Looper;
|
|
import android.os.RemoteException;
|
|
import com.google.android.gms.common.api.ApiException;
|
|
import com.google.android.gms.common.api.GoogleApiClient;
|
|
import com.google.android.gms.common.api.PendingResult;
|
|
import com.google.android.gms.common.api.Status;
|
|
import com.google.android.gms.common.api.internal.BaseImplementation;
|
|
import com.google.android.gms.common.api.internal.ListenerHolders;
|
|
import com.google.android.gms.common.internal.Preconditions;
|
|
import com.google.android.gms.location.FusedLocationProviderApi;
|
|
import com.google.android.gms.location.LastLocationRequest;
|
|
import com.google.android.gms.location.LocationAvailability;
|
|
import com.google.android.gms.location.LocationCallback;
|
|
import com.google.android.gms.location.LocationListener;
|
|
import com.google.android.gms.location.LocationRequest;
|
|
import com.google.android.gms.location.zzac;
|
|
import com.google.android.gms.tasks.OnCompleteListener;
|
|
import com.google.android.gms.tasks.Task;
|
|
import com.google.android.gms.tasks.TaskCompletionSource;
|
|
import java.util.concurrent.CountDownLatch;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
/* JADX INFO: compiled from: com.google.android.gms:play-services-location@@21.2.0 */
|
|
/* JADX INFO: loaded from: classes2.dex */
|
|
public final class zzbb implements FusedLocationProviderApi {
|
|
static /* synthetic */ TaskCompletionSource zza(final BaseImplementation.ResultHolder resultHolder) {
|
|
TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
|
|
taskCompletionSource.getTask().addOnCompleteListener(new OnCompleteListener() { // from class: com.google.android.gms.internal.location.zzbd
|
|
@Override // com.google.android.gms.tasks.OnCompleteListener
|
|
public final /* synthetic */ void onComplete(Task task) {
|
|
BaseImplementation.ResultHolder resultHolder2 = resultHolder;
|
|
if (task.isSuccessful()) {
|
|
resultHolder2.setResult(Status.RESULT_SUCCESS);
|
|
return;
|
|
}
|
|
if (task.isCanceled()) {
|
|
resultHolder2.setFailedResult(Status.RESULT_CANCELED);
|
|
return;
|
|
}
|
|
Exception exception = task.getException();
|
|
if (exception instanceof ApiException) {
|
|
resultHolder2.setFailedResult(((ApiException) exception).getStatus());
|
|
} else {
|
|
resultHolder2.setFailedResult(Status.RESULT_INTERNAL_ERROR);
|
|
}
|
|
}
|
|
});
|
|
return taskCompletionSource;
|
|
}
|
|
|
|
@Override // com.google.android.gms.location.FusedLocationProviderApi
|
|
public final PendingResult<Status> flushLocations(GoogleApiClient googleApiClient) {
|
|
return googleApiClient.execute(new zzaq(this, googleApiClient));
|
|
}
|
|
|
|
@Override // com.google.android.gms.location.FusedLocationProviderApi
|
|
public final Location getLastLocation(GoogleApiClient googleApiClient) {
|
|
Preconditions.checkArgument(googleApiClient != null, "GoogleApiClient parameter is required.");
|
|
zzdz zzdzVar = (zzdz) googleApiClient.getClient(zzbi.zza);
|
|
final AtomicReference atomicReference = new AtomicReference();
|
|
final CountDownLatch countDownLatch = new CountDownLatch(1);
|
|
TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
|
|
try {
|
|
zzdzVar.zzq(new LastLocationRequest.Builder().build(), taskCompletionSource);
|
|
taskCompletionSource.getTask().addOnCompleteListener(new OnCompleteListener() { // from class: com.google.android.gms.internal.location.zzbe
|
|
@Override // com.google.android.gms.tasks.OnCompleteListener
|
|
public final /* synthetic */ void onComplete(Task task) {
|
|
if (task.isSuccessful()) {
|
|
atomicReference.set((Location) task.getResult());
|
|
}
|
|
countDownLatch.countDown();
|
|
}
|
|
});
|
|
if (zzfd.zza(countDownLatch, 30L, TimeUnit.SECONDS)) {
|
|
return (Location) atomicReference.get();
|
|
}
|
|
return null;
|
|
} catch (Exception unused) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.location.FusedLocationProviderApi
|
|
public final LocationAvailability getLocationAvailability(GoogleApiClient googleApiClient) {
|
|
Preconditions.checkArgument(googleApiClient != null, "GoogleApiClient parameter is required.");
|
|
zzdz zzdzVar = (zzdz) googleApiClient.getClient(zzbi.zza);
|
|
final AtomicReference atomicReference = new AtomicReference();
|
|
final CountDownLatch countDownLatch = new CountDownLatch(1);
|
|
TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
|
|
try {
|
|
zzdzVar.zzp(zzac.zza(), taskCompletionSource);
|
|
taskCompletionSource.getTask().addOnCompleteListener(new OnCompleteListener() { // from class: com.google.android.gms.internal.location.zzbc
|
|
@Override // com.google.android.gms.tasks.OnCompleteListener
|
|
public final /* synthetic */ void onComplete(Task task) {
|
|
if (task.isSuccessful()) {
|
|
atomicReference.set((LocationAvailability) task.getResult());
|
|
}
|
|
countDownLatch.countDown();
|
|
}
|
|
});
|
|
if (zzfd.zza(countDownLatch, 30L, TimeUnit.SECONDS)) {
|
|
return (LocationAvailability) atomicReference.get();
|
|
}
|
|
return null;
|
|
} catch (RemoteException unused) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.location.FusedLocationProviderApi
|
|
public final PendingResult<Status> removeLocationUpdates(GoogleApiClient googleApiClient, PendingIntent pendingIntent) {
|
|
return googleApiClient.execute(new zzav(this, googleApiClient, pendingIntent));
|
|
}
|
|
|
|
@Override // com.google.android.gms.location.FusedLocationProviderApi
|
|
public final PendingResult<Status> requestLocationUpdates(GoogleApiClient googleApiClient, LocationRequest locationRequest, PendingIntent pendingIntent) {
|
|
return googleApiClient.execute(new zzat(this, googleApiClient, pendingIntent, locationRequest));
|
|
}
|
|
|
|
@Override // com.google.android.gms.location.FusedLocationProviderApi
|
|
public final PendingResult<Status> setMockLocation(GoogleApiClient googleApiClient, Location location) {
|
|
return googleApiClient.execute(new zzay(this, googleApiClient, location));
|
|
}
|
|
|
|
@Override // com.google.android.gms.location.FusedLocationProviderApi
|
|
public final PendingResult<Status> setMockMode(GoogleApiClient googleApiClient, boolean z) {
|
|
return googleApiClient.execute(new zzax(this, googleApiClient, z));
|
|
}
|
|
|
|
@Override // com.google.android.gms.location.FusedLocationProviderApi
|
|
public final PendingResult<Status> removeLocationUpdates(GoogleApiClient googleApiClient, LocationCallback locationCallback) {
|
|
return googleApiClient.execute(new zzaw(this, googleApiClient, locationCallback));
|
|
}
|
|
|
|
@Override // com.google.android.gms.location.FusedLocationProviderApi
|
|
public final PendingResult<Status> requestLocationUpdates(GoogleApiClient googleApiClient, LocationRequest locationRequest, LocationCallback locationCallback, Looper looper) {
|
|
if (looper == null) {
|
|
looper = Looper.myLooper();
|
|
Preconditions.checkNotNull(looper, "invalid null looper");
|
|
}
|
|
return googleApiClient.execute(new zzas(this, googleApiClient, ListenerHolders.createListenerHolder(locationCallback, looper, "LocationCallback"), locationRequest));
|
|
}
|
|
|
|
@Override // com.google.android.gms.location.FusedLocationProviderApi
|
|
public final PendingResult<Status> removeLocationUpdates(GoogleApiClient googleApiClient, LocationListener locationListener) {
|
|
return googleApiClient.execute(new zzau(this, googleApiClient, locationListener));
|
|
}
|
|
|
|
@Override // com.google.android.gms.location.FusedLocationProviderApi
|
|
public final PendingResult<Status> requestLocationUpdates(GoogleApiClient googleApiClient, LocationRequest locationRequest, LocationListener locationListener) {
|
|
Looper looperMyLooper = Looper.myLooper();
|
|
Preconditions.checkNotNull(looperMyLooper, "invalid null looper");
|
|
return googleApiClient.execute(new zzar(this, googleApiClient, ListenerHolders.createListenerHolder(locationListener, looperMyLooper, "LocationListener"), locationRequest));
|
|
}
|
|
|
|
@Override // com.google.android.gms.location.FusedLocationProviderApi
|
|
public final PendingResult<Status> requestLocationUpdates(GoogleApiClient googleApiClient, LocationRequest locationRequest, LocationListener locationListener, Looper looper) {
|
|
if (looper == null) {
|
|
looper = Looper.myLooper();
|
|
Preconditions.checkNotNull(looper, "invalid null looper");
|
|
}
|
|
return googleApiClient.execute(new zzar(this, googleApiClient, ListenerHolders.createListenerHolder(locationListener, looper, "LocationListener"), locationRequest));
|
|
}
|
|
} |