package org.wikipedia.util; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Intent; import android.location.Location; import android.net.Uri; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; import org.wikipedia.R; import org.wikipedia.WikipediaApp; import org.wikipedia.feed.announcement.GeoIPCookieUnmarshaller; public final class GeoUtil { public static void sendGeoIntent(@NonNull Activity activity, @NonNull Location location, @Nullable String placeName) { // Using geo:latitude,longitude doesn't give a point on the map, // hence using query String geoStr = "geo:0,0?q=" + location.getLatitude() + "," + location.getLongitude(); if (!TextUtils.isEmpty(placeName)) { geoStr += "(" + Uri.encode(placeName) + ")"; } try { activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(geoStr))); } catch (ActivityNotFoundException e) { FeedbackUtil.showMessage(activity, R.string.error_no_maps_app); } } @Nullable public static String getGeoIPCountry() { try { return GeoIPCookieUnmarshaller.unmarshal(WikipediaApp.getInstance()).country(); } catch (IllegalArgumentException e) { // For our purposes, don't care about malformations in the GeoIP cookie for now. return null; } } private GeoUtil() { } }