[android] #2421 - Implementing dynamic user agent based on App Name, Version Name, and Version Code
This commit is contained in:
@@ -4,7 +4,7 @@ import java.io.Serializable;
|
||||
|
||||
public class MapboxEvent implements Serializable {
|
||||
public static final int VERSION_NUMBER = 1;
|
||||
public static final String MGLMapboxEventsUserAgent = "Sirius/1.0/ANDROID MapboxEventsiOS/1.1";
|
||||
public static final String MGLMapboxEventsUserAgent = "MapboxEventsAndroid/1.1";
|
||||
public static final String MGLMapboxEventsAPIBase = "https://api.tiles.mapbox.com";
|
||||
|
||||
// Event Types
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.mapbox.mapboxsdk.telemetry;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.location.Location;
|
||||
import android.net.ConnectivityManager;
|
||||
@@ -43,6 +44,8 @@ public class MapboxEventManager {
|
||||
|
||||
private static final String SESSION_UUID = UUID.randomUUID().toString();
|
||||
|
||||
private String userAgent = MapboxEvent.MGLMapboxEventsUserAgent;
|
||||
|
||||
private MapboxEventManager(@NonNull Context context) {
|
||||
super();
|
||||
this.accessToken = ApiAccess.getToken(context);
|
||||
@@ -53,6 +56,10 @@ public class MapboxEventManager {
|
||||
ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
|
||||
String stagingURL = appInfo.metaData.getString(MapboxConstants.KEY_META_DATA_STAGING_SERVER);
|
||||
String stagingAccessToken = appInfo.metaData.getString(MapboxConstants.KEY_META_DATA_STAGING_ACCESS_TOKEN);
|
||||
String appName = context.getPackageManager().getApplicationLabel(appInfo).toString();
|
||||
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
|
||||
String versionName = packageInfo.versionName;
|
||||
int versionCode = packageInfo.versionCode;
|
||||
|
||||
if (!TextUtils.isEmpty(stagingURL)) {
|
||||
eventsURL = stagingURL;
|
||||
@@ -62,6 +69,11 @@ public class MapboxEventManager {
|
||||
this.accessToken = stagingAccessToken;
|
||||
}
|
||||
|
||||
// Build User Agent
|
||||
if (!TextUtils.isEmpty(appName) && !TextUtils.isEmpty(versionName)) {
|
||||
userAgent = appName + "/" + versionName + "/" + versionCode + " " + userAgent;
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Error Trying to load Staging Credentials: " + e.toString());
|
||||
}
|
||||
@@ -151,7 +163,7 @@ public class MapboxEventManager {
|
||||
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.header("User-Agent", MapboxEvent.MGLMapboxEventsUserAgent)
|
||||
.header("User-Agent", userAgent)
|
||||
.post(body)
|
||||
.build();
|
||||
Response response = client.newCall(request).execute();
|
||||
|
||||
Reference in New Issue
Block a user