session-android/app/src/main/java/org/thoughtcrime/securesms/components/location/SignalPlace.java

97 lines
2.3 KiB
Java

package org.thoughtcrime.securesms.components.location;
import android.net.Uri;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.text.TextUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.session.libsignal.utilities.logging.Log;
import org.session.libsignal.utilities.JsonUtil;
import java.io.IOException;
public class SignalPlace {
/* Loki - Temporary Placeholders */
class LatLng {
double latitude;
double longitude;
LatLng(double latitude, double longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
}
class Place {
public CharSequence getName() { return ""; }
public CharSequence getAddress() { return ""; }
LatLng getLatLng() { return new LatLng(0, 0); }
}
private static final String URL = "https://maps.google.com/maps";
private static final String TAG = SignalPlace.class.getSimpleName();
@JsonProperty
private CharSequence name;
@JsonProperty
private CharSequence address;
@JsonProperty
private double latitude;
@JsonProperty
private double longitude;
public SignalPlace(Place place) {
this.name = place.getName();
this.address = place.getAddress();
this.latitude = place.getLatLng().latitude;
this.longitude = place.getLatLng().longitude;
}
public SignalPlace() {}
@JsonIgnore
public LatLng getLatLong() {
return new LatLng(latitude, longitude);
}
@JsonIgnore
public String getDescription() {
String description = "";
if (!TextUtils.isEmpty(name)) {
description += (name + "\n");
}
if (!TextUtils.isEmpty(address)) {
description += (address + "\n");
}
description += Uri.parse(URL)
.buildUpon()
.appendQueryParameter("q", String.format("%s,%s", latitude, longitude))
.build().toString();
return description;
}
public @Nullable String serialize() {
try {
return JsonUtil.toJsonThrows(this);
} catch (IOException e) {
Log.w(TAG, e);
return null;
}
}
public static SignalPlace deserialize(@NonNull String serialized) throws IOException {
return JsonUtil.fromJson(serialized, SignalPlace.class);
}
}