Add Location APIs + empty files

This commit is contained in:
mar-v-in 2015-01-11 12:53:42 +01:00
parent 8ab6a25cfd
commit 012ce9bd3c
59 changed files with 1219 additions and 1 deletions

View File

@ -0,0 +1,4 @@
package com.google.android.gms.auth;
public class AccountChangeEvent {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.auth.firstparty.dataservice;
public class TokenRequest {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.auth.firstparty.dataservice;
public class TokenResponse {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.auth.firstparty.proximity.data;
public class Permit {
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.common.data;
parcelable DataHolder;

View File

@ -0,0 +1,36 @@
package com.google.android.gms.common.data;
import android.os.Parcel;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
/**
* TODO: usage
*/
public class DataHolder implements SafeParcelable {
private DataHolder(Parcel in) {
SafeParcelUtil.readObject(this, in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Creator<DataHolder> CREATOR = new Creator<DataHolder>() {
@Override
public DataHolder createFromParcel(Parcel parcel) {
return new DataHolder(parcel);
}
@Override
public DataHolder[] newArray(int i) {
return new DataHolder[i];
}
};
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.drive.metadata.internal;
public class MetadataBundle {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.fitness.data;
public class DataPoint {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.fitness.data;
public class Device {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.fitness.data;
public class Field {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.fitness.data;
public class Value {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.identity.accounts.api;
public class AccountData {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.identity.intents.model;
public class CountrySpecification {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.identity.intents.model;
public class UserAddress {
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.location;
parcelable GeofencingRequest;

View File

@ -0,0 +1,38 @@
package com.google.android.gms.location;
import android.os.Parcel;
import android.os.Parcelable;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
/**
* TODO: usage
*/
public class GeofencingRequest implements SafeParcelable {
private GeofencingRequest(Parcel in) {
SafeParcelUtil.readObject(this, in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Parcelable.Creator<GeofencingRequest> CREATOR = new Parcelable.Creator<GeofencingRequest>() {
@Override
public GeofencingRequest createFromParcel(Parcel parcel) {
return new GeofencingRequest(parcel);
}
@Override
public GeofencingRequest[] newArray(int i) {
return new GeofencingRequest[i];
}
};
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.location;
parcelable LocationRequest;

View File

@ -0,0 +1,445 @@
package com.google.android.gms.location;
import android.os.Parcel;
import android.os.SystemClock;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
import org.microg.safeparcel.SafeParceled;
import java.util.Arrays;
/**
* A data object that contains quality of service parameters for requests to the
* FusedLocationProviderApi.
* <p/>
* LocationRequest objects are used to request a quality of service for location updates from the
* FusedLocationProviderApi.
* <p/>
* For example, if your application wants high accuracy location it should create a location
* request with {@link #setPriority(int)} set to {@link #PRIORITY_HIGH_ACCURACY} and
* {@link #setInterval(long)} to 5 seconds. This would be appropriate for mapping applications that
* are showing your location in real-time.
* <p/>
* At the other extreme, if you want negligible power impact, but to still receive location updates
* when available, then create a location request with {@link #setPriority(int)} set to
* {@link #PRIORITY_NO_POWER}. With this request your application will not trigger (and therefore
* will not receive any power blame) any location updates, but will receive locations triggered by
* other applications. This would be appropriate for applications that have no firm requirement for
* location, but can take advantage when available.
* <p/>
* In between these two extremes is a very common use-case, where applications definitely want to
* receive updates at a specified interval, and can receive them faster when available, but still
* want a low power impact. These applications should consider
* {@link #PRIORITY_BALANCED_POWER_ACCURACY} combined with a faster
* {@link #setFastestInterval(long)} (such as 1 minute) and a slower {@link #setInterval(long)}
* (such as 60 minutes). They will only be assigned power blame for the interval set by
* {@link #setInterval(long)}, but can still receive locations triggered by other applications at a
* rate up to {@link #setFastestInterval(long)}. This style of request is appropriate for many
* location aware applications, including background usage. Do be careful to also throttle
* {@link #setFastestInterval(long)} if you perform heavy-weight work after receiving an update -
* such as using the network.
* <p/>
* Activities should strongly consider removing all location request when entering the background
* (for example at {@link android.app.Activity#onPause()}), or at least swap the request to a
* larger interval and lower quality.
* <p/>
* Applications cannot specify the exact location sources, such as GPS, that are used by the
* LocationClient. In fact, the system may have multiple location sources (providers) running and
* may fuse the results from several sources into a single Location object.
* <p/>
* Location requests from applications with
* {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} and not
* {@link android.Manifest.permission#ACCESS_FINE_LOCATION} will be automatically throttled to a
* slower interval, and the location object will be obfuscated to only show a coarse level of
* accuracy.
* <p/>
* All location requests are considered hints, and you may receive locations that are more/less
* accurate, and faster/slower than requested.
* <p/>
* TODO: Works on wire, but methods not yet implemented.
*/
public class LocationRequest implements SafeParcelable {
/**
* Used with {@link #setPriority(int)} to request "block" level accuracy.
* <p/>
* Block level accuracy is considered to be about 100 meter accuracy. Using a coarse accuracy
* such as this often consumes less power.
*/
public static final int PRIORITY_BALANCED_POWER_ACCURACY = 102;
/**
* Used with {@link #setPriority(int)} to request the most accurate locations available.
* <p/>
* This will return the finest location available.
*/
public static final int PRIORITY_HIGH_ACCURACY = 100;
/**
* Used with {@link #setPriority(int)} to request "city" level accuracy.
* <p/>
* City level accuracy is considered to be about 10km accuracy. Using a coarse accuracy such as
* this often consumes less power.
*/
public static final int PRIORITY_LOW_POWER = 104;
/**
* Used with {@link #setPriority(int)} to request the best accuracy possible with zero
* additional power consumption.
* <p/>
* No locations will be returned unless a different client has requested location updates in
* which case this request will act as a passive listener to those locations.
*/
public static final int PRIORITY_NO_POWER = 105;
@SafeParceled(1000)
private final int versionCode;
@SafeParceled(1)
private int priority;
@SafeParceled(2)
private long interval;
@SafeParceled(3)
private long fastestInterval;
@SafeParceled(4)
private boolean explicitFastestInterval;
@SafeParceled(5)
private long expirationTime;
@SafeParceled(6)
private int numUpdates;
@SafeParceled(7)
private float smallestDesplacement;
@SafeParceled(8)
private long maxWaitTime;
public LocationRequest() {
this.versionCode = 1;
this.priority = PRIORITY_BALANCED_POWER_ACCURACY;
this.interval = 3600000;
this.fastestInterval = 600000;
this.explicitFastestInterval = false;
this.expirationTime = Long.MAX_VALUE;
this.numUpdates = Integer.MAX_VALUE;
this.smallestDesplacement = 0;
this.maxWaitTime = 0;
}
public LocationRequest(Parcel in) {
this();
SafeParcelUtil.readObject(this, in);
}
/**
* Create a location request with default parameters.
* <p/>
* Default parameters are for a block accuracy, slowly updated location. It can then be
* adjusted as required by the applications before passing to the FusedLocationProviderApi.
*
* @return a new location request
*/
public static LocationRequest create() {
return new LocationRequest();
}
@Override
public int describeContents() {
return 0;
}
/**
* Get the request expiration time, in milliseconds since boot.
* <p/>
* This value can be compared to {@link SystemClock#elapsedRealtime()} to determine
* the time until expiration.
*
* @return expiration time of request, in milliseconds since boot including suspend
*/
public long getExpirationTime() {
return expirationTime;
}
/**
* Get the fastest interval of this request, in milliseconds.
* <p/>
* The system will never provide location updates faster than the minimum of
* {@link #getFastestInterval()} and {@link #getInterval()}.
*
* @return fastest interval in milliseconds, exact
*/
public long getFastestInterval() {
return fastestInterval;
}
/**
* Get the desired interval of this request, in milliseconds.
*
* @return desired interval in milliseconds, inexact
*/
public long getInterval() {
return interval;
}
/**
* Get the number of updates requested.
* <p/>
* By default this is {@link java.lang.Integer#MAX_VALUE}, which indicates that locations are
* updated until the request is explicitly removed.
*
* @return number of updates
*/
public int getNumUpdates() {
return numUpdates;
}
/**
* Get the quality of the request.
*
* @return an accuracy constant
*/
public int getPriority() {
return priority;
}
/**
* Get the minimum displacement between location updates in meters
* <p/>
* By default this is 0.
*
* @return minimum displacement between location updates in meters
*/
public float getSmallestDesplacement() {
return smallestDesplacement;
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
LocationRequest that = (LocationRequest) o;
if (expirationTime != that.expirationTime)
return false;
if (explicitFastestInterval != that.explicitFastestInterval)
return false;
if (fastestInterval != that.fastestInterval)
return false;
if (interval != that.interval)
return false;
if (maxWaitTime != that.maxWaitTime)
return false;
if (numUpdates != that.numUpdates)
return false;
if (priority != that.priority)
return false;
if (Float.compare(that.smallestDesplacement, smallestDesplacement) != 0)
return false;
return true;
}
@Override
public int hashCode() {
return Arrays.hashCode(
new Object[] { priority, interval, fastestInterval, explicitFastestInterval,
explicitFastestInterval, numUpdates, smallestDesplacement, maxWaitTime
});
}
/**
* Set the duration of this request, in milliseconds.
* <p/>
* The duration begins immediately (and not when the request is passed to the location client),
* so call this method again if the request is re-used at a later time.
* <p/>
* The location client will automatically stop updates after the request expires.
* <p/>
* The duration includes suspend time. Values less than 0 are allowed, but indicate that the
* request has already expired.
*
* @param millis duration of request in milliseconds
* @return the same object, so that setters can be chained
*/
public LocationRequest setExpirationDuration(long millis) {
expirationTime = SystemClock.elapsedRealtime() + millis;
return this;
}
/**
* Set the request expiration time, in millisecond since boot.
* <p/>
* This expiration time uses the same time base as {@link SystemClock#elapsedRealtime()}.
* <p/>
* The location client will automatically stop updates after the request expires.
* <p/>
* The duration includes suspend time. Values before {@link SystemClock#elapsedRealtime()} are
* allowed, but indicate that the request has already expired.
*
* @param millis expiration time of request, in milliseconds since boot including suspend
* @return the same object, so that setters can be chained
*/
public LocationRequest setExpirationTime(long millis) {
expirationTime = millis;
return this;
}
/**
* Explicitly set the fastest interval for location updates, in milliseconds.
* <p/>
* This controls the fastest rate at which your application will receive location updates,
* which might be faster than {@link #setInterval(long)} in some situations (for example, if
* other applications are triggering location updates).
* <p/>
* This allows your application to passively acquire locations at a rate faster than it
* actively acquires locations, saving power.
* <p/>
* Unlike {@link #setInterval(long)}, this parameter is exact. Your application will never
* receive updates faster than this value.
* <p/>
* If you don't call this method, a fastest interval will be selected for you. It will be a
* value faster than your active interval ({@link #setInterval(long)}).
* <p/>
* An interval of 0 is allowed, but not recommended, since location updates may be extremely
* fast on future implementations.
* <p/>
* If {@link #setFastestInterval(long)} is set slower than {@link #setInterval(long)}, then
* your effective fastest interval is {@link #setInterval(long)}.
*
* @param millis fastest interval for updates in milliseconds, exact
* @return the same object, so that setters can be chained
* @throws IllegalArgumentException if the interval is less than zero
*/
public LocationRequest setFastestInterval(long millis) throws IllegalArgumentException {
if (millis < 0)
throw new IllegalArgumentException("interval must not be negative");
fastestInterval = millis;
return this;
}
/**
* Set the desired interval for active location updates, in milliseconds.
* <p/>
* The location client will actively try to obtain location updates for your application at
* this interval, so it has a direct influence on the amount of power used by your application.
* Choose your interval wisely.
* <p/>
* This interval is inexact. You may not receive updates at all (if no location sources are
* available), or you may receive them slower than requested. You may also receive them faster
* than requested (if other applications are requesting location at a faster interval). The
* fastest rate that that you will receive updates can be controlled with
* {@link #setFastestInterval(long)}. By default this fastest rate is 6x the interval frequency.
* <p/>
* Applications with only the coarse location permission may have their interval silently
* throttled.
* <p/>
* An interval of 0 is allowed, but not recommended, since location updates may be extremely
* fast on future implementations.
* <p/>
* {@link #setPriority(int)} and {@link #setInterval(long)} are the most important parameters
* on a location request.
*
* @param millis desired interval in millisecond, inexact
* @return the same object, so that setters can be chained
* @throws IllegalArgumentException if the interval is less than zero
*/
public LocationRequest setInterval(long millis) throws IllegalArgumentException {
if (millis < 0)
throw new IllegalArgumentException("interval must not be negative");
interval = millis;
return this;
}
/**
* Set the number of location updates.
* <p/>
* By default locations are continuously updated until the request is explicitly removed,
* however you can optionally request a set number of updates. For example, if your application
* only needs a single fresh location, then call this method with a value of 1 before passing
* the request to the location client.
* <p/>
* When using this option care must be taken to either explicitly remove the request when no
* longer needed or to set an expiration with ({@link #setExpirationDuration(long)} or
* {@link #setExpirationTime(long)}. Otherwise in some cases if a location can't be computed,
* this request could stay active indefinitely consuming power.
*
* @param numUpdates the number of location updates requested
* @return the same object, so that setters can be chained
* @throws IllegalArgumentException if numUpdates is 0 or less
*/
public LocationRequest setNumUpdates(int numUpdates) throws IllegalArgumentException {
if (numUpdates <= 0)
throw new IllegalArgumentException("numUpdates must not be 0 or negative");
this.numUpdates = numUpdates;
return this;
}
/**
* Set the priority of the request.
* <p/>
* Use with a priority constant such as {@link #PRIORITY_HIGH_ACCURACY}. No other values are
* accepted.
* <p/>
* The priority of the request is a strong hint to the LocationClient for which location
* sources to use. For example, {@link #PRIORITY_HIGH_ACCURACY} is more likely to use GPS, and
* {@link #PRIORITY_BALANCED_POWER_ACCURACY} is more likely to use WIFI & Cell tower
* positioning, but it also depends on many other factors (such as which sources are available)
* and is implementation dependent.
* <p/>
* {@link #setPriority(int)} and {@link #setInterval(long)} are the most important parameters
* on a location request.
*
* @param priority an accuracy or power constant
* @return the same object, so that setters can be chained
* @throws IllegalArgumentException if the quality constant is not valid
*/
public LocationRequest setPriority(int priority) {
switch (priority) {
default:
throw new IllegalArgumentException("priority is not a known constant");
case PRIORITY_BALANCED_POWER_ACCURACY:
case PRIORITY_HIGH_ACCURACY:
case PRIORITY_LOW_POWER:
case PRIORITY_NO_POWER:
this.priority = priority;
}
return this;
}
/**
* Set the minimum displacement between location updates in meters
* <p/>
* By default this is 0.
*
* @param smallestDisplacementMeters the smallest displacement in meters the user must move
* between location updates.
* @return the same object, so that setters can be chained
* @throws IllegalArgumentException if smallestDisplacementMeters is negative
*/
public LocationRequest setSmallestDesplacement(float smallestDisplacementMeters) {
if (smallestDisplacementMeters < 0)
throw new IllegalArgumentException("smallestDisplacementMeters must not be negative");
this.smallestDesplacement = smallestDisplacementMeters;
return this;
}
@Override
public String toString() {
// TODO
return super.toString();
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Creator<LocationRequest> CREATOR = new Creator<LocationRequest>() {
@Override
public LocationRequest createFromParcel(Parcel parcel) {
return new LocationRequest(parcel);
}
@Override
public LocationRequest[] newArray(int i) {
return new LocationRequest[i];
}
};
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.location;
parcelable LocationStatus;

View File

@ -0,0 +1,103 @@
package com.google.android.gms.location;
import android.os.Parcel;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
import org.microg.safeparcel.SafeParceled;
import java.util.Arrays;
public class LocationStatus implements SafeParcelable {
public static final int STATUS_SUCCESSFUL = 0;
public static final int STATUS_UNKNOWN = 1;
public static final int STATUS_TIMED_OUT_ON_SCAN = 2;
public static final int STATUS_NO_INFO_IN_DATABASE = 3;
public static final int STATUS_INVALID_SCAN = 4;
public static final int STATUS_UNABLE_TO_QUERY_DATABASE = 5;
public static final int STATUS_SCANS_DISABLED_IN_SETTINGS = 6;
public static final int STATUS_LOCATION_DISABLED_IN_SETTINGS = 7;
public static final int STATUS_IN_PROGRESS = 8;
@SafeParceled(1000)
private final int versionCode;
@SafeParceled(1)
int cellStatus;
@SafeParceled(2)
int wifiStatus;
@SafeParceled(3)
long elapsedRealtimeNanos;
private LocationStatus(Parcel in) {
versionCode = 1;
SafeParcelUtil.readObject(this, in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
LocationStatus that = (LocationStatus) o;
if (cellStatus != that.cellStatus)
return false;
if (elapsedRealtimeNanos != that.elapsedRealtimeNanos)
return false;
if (wifiStatus != that.wifiStatus)
return false;
return true;
}
@Override
public int hashCode() {
return Arrays.hashCode(new Object[] { cellStatus, wifiStatus, elapsedRealtimeNanos });
}
private String statusToString(int status) {
switch (status) {
case STATUS_SUCCESSFUL:
return "STATUS_SUCCESSFUL";
case STATUS_UNKNOWN:
default:
return "STATUS_UNKNOWN";
case STATUS_TIMED_OUT_ON_SCAN:
return "STATUS_TIMED_OUT_ON_SCAN";
case STATUS_NO_INFO_IN_DATABASE:
return "STATUS_NO_INFO_IN_DATABASE";
case STATUS_INVALID_SCAN:
return "STATUS_INVALID_SCAN";
case STATUS_UNABLE_TO_QUERY_DATABASE:
return "STATUS_UNABLE_TO_QUERY_DATABASE";
case STATUS_SCANS_DISABLED_IN_SETTINGS:
return "STATUS_SCANS_DISABLED_IN_SETTINGS";
case STATUS_LOCATION_DISABLED_IN_SETTINGS:
return "STATUS_LOCATION_DISABLED_IN_SETTINGS";
case STATUS_IN_PROGRESS:
return "STATUS_IN_PROGRESS";
}
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Creator<LocationStatus> CREATOR = new Creator<LocationStatus>() {
@Override
public LocationStatus createFromParcel(Parcel parcel) {
return new LocationStatus(parcel);
}
@Override
public LocationStatus[] newArray(int i) {
return new LocationStatus[i];
}
};
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.location.internal;
public class ClientIdentity {
}

View File

@ -1,8 +1,60 @@
package com.google.android.gms.location.internal;
import com.google.android.gms.location.places.AutocompleteFilter;
import com.google.android.gms.location.places.internal.IPlacesCallbacks;
import com.google.android.gms.location.internal.LocationRequestInternal;
import com.google.android.gms.location.places.NearbyAlertRequest;
import com.google.android.gms.location.places.PlaceFilter;
import com.google.android.gms.location.places.PlaceRequest;
import com.google.android.gms.location.places.PlaceReport;
import com.google.android.gms.location.places.internal.PlacesParams;
import com.google.android.gms.location.places.UserAddedPlace;
import com.google.android.gms.location.places.UserDataType;
import com.google.android.gms.location.Geofence;
import com.google.android.gms.location.GeofencingRequest;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationStatus;
import com.google.android.gms.location.internal.IGeofencerCallbacks;
import com.google.android.gms.location.internal.ILocationListener;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.LatLngBounds;
interface IGoogleLocationManagerService {
void addGeofences(in List<com.google.android.gms.location.Geofence> geofences, in PendingIntent pendingIntent, IGeofencerCallbacks callback, String str);
void addGeofencesList(in List<Geofence> geofences, in PendingIntent pendingIntent, IGeofencerCallbacks callbacks, String packageName) = 0;
void removeGeofencesByIntent(in PendingIntent pendingIntent, IGeofencerCallbacks callbacks, String packageName) = 1;
void removeGeofencesById(in String[] geofenceRequestIds, IGeofencerCallbacks callbacks, String packageName) = 2;
void iglms4(IGeofencerCallbacks callbacks, String packageName) = 3;
void requestActivityUpdates(long detectionIntervalMillis, boolean alwaysTrue, in PendingIntent callbackIntent) = 4;
void removeActivityUpdates(in PendingIntent callbackIntent) = 5;
Location getLastLocation() = 6;
void requestLocationUpdatesWithListener(in LocationRequest request, ILocationListener listener) = 7;
void requestLocationUpdatesWithIntent(in LocationRequest request, in PendingIntent callbackIntent) = 8;
void removeLocationUpdatesWithListener(ILocationListener listener) = 9; // TODO
void removeLocationUpdatesWithIntent(in PendingIntent callbackIntent) = 11;
void setMockMode(boolean mockMode) = 12;
void setMockLocation(in Location mockLocation) = 13;
void iglms14(in LatLngBounds var1, int var2, in PlaceFilter var3, in PlacesParams var4, IPlacesCallbacks var5) = 14;
void iglms15(String var1, in PlacesParams var2, IPlacesCallbacks var3) = 15;
void iglms16(in LatLng var1, in PlaceFilter var2, in PlacesParams var3, IPlacesCallbacks var4) = 16;
void iglms17(in PlaceFilter var1, in PlacesParams var2, IPlacesCallbacks var3) = 17;
void iglms18(in PlaceRequest var1, in PlacesParams var2, in PendingIntent var3) = 18;
void iglms19(in PlacesParams var1, in PendingIntent var2) = 19;
void requestLocationUpdates(in LocationRequest request, ILocationListener listener, String packageName) = 20;
Location getLastLocationWithPackage(String packageName) = 21;
void iglms25(in PlaceReport var1, in PlacesParams var2) = 25;
void iglms26(in Location var1, int var2) = 26;
LocationStatus iglms34(String var1) = 34;
void iglms42(String var1, in PlacesParams var2, IPlacesCallbacks var3) = 42;
void iglms46(in UserAddedPlace var1, in PlacesParams var2, IPlacesCallbacks var3) = 46;
void iglms47(in LatLngBounds var1, int var2, String var3, in PlaceFilter var4, in PlacesParams var5, IPlacesCallbacks var6) = 47;
void iglms48(in NearbyAlertRequest var1, in PlacesParams var2, in PendingIntent var3) = 48;
void iglms49(in PlacesParams var1, in PendingIntent var2) = 49;
void iglms50(in UserDataType var1, in LatLngBounds var2, in List var3, in PlacesParams var4, IPlacesCallbacks var5) = 50;
IBinder iglms51() = 51;
void requestLocationUpdatesInternalWithListener(in LocationRequestInternal request, ILocationListener listener) = 52;
void requestLocationUpdatesInternalWithIntent(in LocationRequestInternal request, in PendingIntent callbackIntent) = 53;
IBinder iglms54() = 54;
void iglms55(String var1, in LatLngBounds var2, in AutocompleteFilter var3, in PlacesParams var4, IPlacesCallbacks var5) = 55;
void addGeofences(in GeofencingRequest geofencingRequest, in PendingIntent pendingIntent, IGeofencerCallbacks callbacks) = 57;
void iglms58(in List var1, in PlacesParams var2, IPlacesCallbacks var3) = 58;
}

View File

@ -0,0 +1,7 @@
package com.google.android.gms.location.internal;
import android.location.Location;
interface ILocationListener {
void onLocationChanged(in Location location);
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.location.internal;
parcelable LocationRequestInternal;

View File

@ -0,0 +1,37 @@
package com.google.android.gms.location.internal;
import android.os.Parcel;
import android.os.Parcelable;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
/**
* TODO: usage
*/
public class LocationRequestInternal implements SafeParcelable {
private LocationRequestInternal(Parcel in) {
SafeParcelUtil.readObject(this, in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Parcelable.Creator<LocationRequestInternal> CREATOR = new Parcelable.Creator<LocationRequestInternal>() {
@Override
public LocationRequestInternal createFromParcel(Parcel parcel) {
return new LocationRequestInternal(parcel);
}
@Override
public LocationRequestInternal[] newArray(int i) {
return new LocationRequestInternal[i];
}
};
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.location.places;
parcelable AutocompleteFilter;

View File

@ -0,0 +1,46 @@
package com.google.android.gms.location.places;
import android.os.Parcel;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
import org.microg.safeparcel.SafeParceled;
/**
* TODO usage
*/
public class AutocompleteFilter implements SafeParcelable {
@SafeParceled(1000)
private final int versionCode;
private AutocompleteFilter() {
this.versionCode = 1;
}
private AutocompleteFilter(Parcel in) {
this();
SafeParcelUtil.readObject(this, in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Creator<AutocompleteFilter> CREATOR = new Creator<AutocompleteFilter>() {
@Override
public AutocompleteFilter createFromParcel(Parcel parcel) {
return new AutocompleteFilter(parcel);
}
@Override
public AutocompleteFilter[] newArray(int i) {
return new AutocompleteFilter[i];
}
};
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.location.places;
parcelable NearbyAlertRequest;

View File

@ -0,0 +1,36 @@
package com.google.android.gms.location.places;
import android.os.Parcel;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
/**
* TODO: usage
*/
public class NearbyAlertRequest implements SafeParcelable {
private NearbyAlertRequest(Parcel in) {
SafeParcelUtil.readObject(this, in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Creator<NearbyAlertRequest> CREATOR = new Creator<NearbyAlertRequest>() {
@Override
public NearbyAlertRequest createFromParcel(Parcel parcel) {
return new NearbyAlertRequest(parcel);
}
@Override
public NearbyAlertRequest[] newArray(int i) {
return new NearbyAlertRequest[i];
}
};
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.location.places;
parcelable PlaceFilter;

View File

@ -0,0 +1,37 @@
package com.google.android.gms.location.places;
import android.os.Parcel;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
/**
* TODO: usage
*/
public class PlaceFilter implements SafeParcelable {
private PlaceFilter(Parcel in) {
SafeParcelUtil.readObject(this, in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Creator<PlaceFilter> CREATOR = new Creator<PlaceFilter>() {
@Override
public PlaceFilter createFromParcel(Parcel parcel) {
return new PlaceFilter(parcel);
}
@Override
public PlaceFilter[] newArray(int i) {
return new PlaceFilter[i];
}
};
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.location.places;
parcelable PlaceReport;

View File

@ -0,0 +1,38 @@
package com.google.android.gms.location.places;
import android.os.Parcel;
import android.os.Parcelable;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
/**
* TODO: usage
*/
public class PlaceReport implements SafeParcelable {
private PlaceReport(Parcel in) {
SafeParcelUtil.readObject(this, in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Parcelable.Creator<PlaceReport> CREATOR = new Parcelable.Creator<PlaceReport>() {
@Override
public PlaceReport createFromParcel(Parcel parcel) {
return new PlaceReport(parcel);
}
@Override
public PlaceReport[] newArray(int i) {
return new PlaceReport[i];
}
};
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.location.places;
parcelable PlaceRequest;

View File

@ -0,0 +1,36 @@
package com.google.android.gms.location.places;
import android.os.Parcel;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
/**
* TODO: usage
*/
public class PlaceRequest implements SafeParcelable {
private PlaceRequest(Parcel in) {
SafeParcelUtil.readObject(this, in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Creator<PlaceRequest> CREATOR = new Creator<PlaceRequest>() {
@Override
public PlaceRequest createFromParcel(Parcel parcel) {
return new PlaceRequest(parcel);
}
@Override
public PlaceRequest[] newArray(int i) {
return new PlaceRequest[i];
}
};
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.location.places;
parcelable UserAddedPlace;

View File

@ -0,0 +1,46 @@
package com.google.android.gms.location.places;
import android.os.Parcel;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
import org.microg.safeparcel.SafeParceled;
/**
* TODO: usage
*/
public class UserAddedPlace implements SafeParcelable {
@SafeParceled(1000)
private final int versionCode;
private UserAddedPlace() {
versionCode = -1;
}
private UserAddedPlace(Parcel in) {
this();
SafeParcelUtil.readObject(this, in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Creator<UserAddedPlace> CREATOR = new Creator<UserAddedPlace>() {
@Override
public UserAddedPlace createFromParcel(Parcel parcel) {
return new UserAddedPlace(parcel);
}
@Override
public UserAddedPlace[] newArray(int i) {
return new UserAddedPlace[i];
}
};
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.location.places;
parcelable UserDataType;

View File

@ -0,0 +1,36 @@
package com.google.android.gms.location.places;
import android.os.Parcel;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
/**
* TODO: usage
*/
public class UserDataType implements SafeParcelable {
private UserDataType(Parcel in) {
SafeParcelUtil.readObject(this, in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Creator<UserDataType> CREATOR = new Creator<UserDataType>() {
@Override
public UserDataType createFromParcel(Parcel parcel) {
return new UserDataType(parcel);
}
@Override
public UserDataType[] newArray(int i) {
return new UserDataType[i];
}
};
}

View File

@ -0,0 +1,9 @@
package com.google.android.gms.location.places.internal;
import com.google.android.gms.common.data.DataHolder;
interface IPlacesCallbacks {
void X(in DataHolder dataHolder);
void Y(in DataHolder dataHolder);
void Z(in DataHolder dataHolder);
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.location.places.internal;
parcelable PlacesParams;

View File

@ -0,0 +1,52 @@
package com.google.android.gms.location.places.internal;
import android.os.Parcel;
import org.microg.safeparcel.SafeParcelUtil;
import org.microg.safeparcel.SafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class PlacesParams implements SafeParcelable {
@SafeParceled(1000)
private final int versionCode;
@SafeParceled(1)
public final String clientPackageName;
@SafeParceled(2)
public final String locale;
@SafeParceled(3)
public final String accountName;
@SafeParceled(4)
public final String gCoreClientName;
private PlacesParams() {
versionCode = -1;
clientPackageName = locale = accountName = gCoreClientName = null;
}
private PlacesParams(Parcel in) {
this();
SafeParcelUtil.readObject(this, in);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
SafeParcelUtil.writeObject(this, out, flags);
}
public static final Creator<PlacesParams> CREATOR = new Creator<PlacesParams>() {
@Override
public PlacesParams createFromParcel(Parcel parcel) {
return new PlacesParams(parcel);
}
@Override
public PlacesParams[] newArray(int i) {
return new PlacesParams[i];
}
};
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.maps;
public class StreetViewPanoramaOptions {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.maps.internal;
public class Point {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.maps.model;
public class StreetViewPanoramaCamera {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.maps.model;
public class StreetViewPanoramaLink {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.maps.model;
public class StreetViewPanoramaLocation {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.maps.model;
public class StreetViewPanoramaOrientation {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.plus.internal;
public class PlusCommonExtras {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.plus.internal;
public class PlusSession {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.plus.internal.model.smart_profile;
public class CardsRequest {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.plus.internal.model.smart_profile;
public class CardsResponse {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.plus.internal.model.smart_profile;
public class PeopleForProfilesRequest {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.plus.internal.model.smart_profile;
public class PeopleForProfilesResponse {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.plus.model.posts;
public class Comment {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.plus.model.posts;
public class Post {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.plus.model.posts;
public class Settings {
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.wearable;
public class ConnectionConfiguration {
}

View File

@ -1,6 +1,12 @@
package org.microg.gms.maps;
public class Constants {
/**
* This is the highest version that was looked at during development.
* Does not necessarily mean anything.
*/
public static final int MAX_REFERENCE_VERSION = 6599436;
/**
* No base map tiles.
*/
@ -25,4 +31,7 @@ public class Constants {
* Satellite maps with a transparent layer of major streets.
*/
public static final int MAP_TYPE_HYBRID = 4;
public static final String ACTION_GMS_LOCATION_MANAGER_SERVICE_START = "com.google.android.location.internal.GoogleLocationManagerService.START";
public static final String KEY_MOCK_LOCATION = "mockLocation";
}