package android.hardware.location;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.Log;
public final class GeofenceHardwareRequestParcelable implements Parcelable {
private GeofenceHardwareRequest mRequest;
private int mId;
public GeofenceHardwareRequestParcelable(int id, GeofenceHardwareRequest request) {
mId = id;
mRequest = request;
}
public int getId() {
return mId;
}
public double getLatitude() {
return mRequest.getLatitude();
}
public double getLongitude() {
return mRequest.getLongitude();
}
public double getRadius() {
return mRequest.getRadius();
}
public int getMonitorTransitions() {
return mRequest.getMonitorTransitions();
}
public int getUnknownTimer() {
return mRequest.getUnknownTimer();
}
public int getNotificationResponsiveness() {
return mRequest.getNotificationResponsiveness();
}
public int getLastTransition() {
return mRequest.getLastTransition();
}
int getType() {
return mRequest.getType();
}
int getSourceTechnologies() {
return mRequest.getSourceTechnologies();
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("id=");
builder.append(mId);
builder.append(", type=");
builder.append(mRequest.getType());
builder.append(", latitude=");
builder.append(mRequest.getLatitude());
builder.append(", longitude=");
builder.append(mRequest.getLongitude());
builder.append(", radius=");
builder.append(mRequest.getRadius());
builder.append(", lastTransition=");
builder.append(mRequest.getLastTransition());
builder.append(", unknownTimer=");
builder.append(mRequest.getUnknownTimer());
builder.append(", monitorTransitions=");
builder.append(mRequest.getMonitorTransitions());
builder.append(", notificationResponsiveness=");
builder.append(mRequest.getNotificationResponsiveness());
builder.append(", sourceTechnologies=");
builder.append(mRequest.getSourceTechnologies());
return builder.toString();
}
public static final Parcelable.Creator<GeofenceHardwareRequestParcelable> CREATOR =
new Parcelable.Creator<GeofenceHardwareRequestParcelable>() {
@Override
public GeofenceHardwareRequestParcelable createFromParcel(Parcel parcel) {
int geofenceType = parcel.readInt();
if(geofenceType != GeofenceHardwareRequest.GEOFENCE_TYPE_CIRCLE) {
Log.e(
"GeofenceHardwareRequest",
String.format("Invalid Geofence type: %d", geofenceType));
return null;
}
GeofenceHardwareRequest request = GeofenceHardwareRequest.createCircularGeofence(
parcel.readDouble(),
parcel.readDouble(),
parcel.readDouble());
request.setLastTransition(parcel.readInt());
request.setMonitorTransitions(parcel.readInt());
request.setUnknownTimer(parcel.readInt());
request.setNotificationResponsiveness(parcel.readInt());
request.setSourceTechnologies(parcel.readInt());
int id = parcel.readInt();
return new GeofenceHardwareRequestParcelable(id, request);
}
@Override
public GeofenceHardwareRequestParcelable[] newArray(int size) {
return new GeofenceHardwareRequestParcelable[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flags) {
parcel.writeInt(getType());
parcel.writeDouble(getLatitude());
parcel.writeDouble(getLongitude());
parcel.writeDouble(getRadius());
parcel.writeInt(getLastTransition());
parcel.writeInt(getMonitorTransitions());
parcel.writeInt(getUnknownTimer());
parcel.writeInt(getNotificationResponsiveness());
parcel.writeInt(getSourceTechnologies());
parcel.writeInt(getId());
}
}