diff options
Diffstat (limited to 'mobile/android/thirdparty/com/adjust/sdk/DeviceInfo.java')
-rw-r--r-- | mobile/android/thirdparty/com/adjust/sdk/DeviceInfo.java | 290 |
1 files changed, 0 insertions, 290 deletions
diff --git a/mobile/android/thirdparty/com/adjust/sdk/DeviceInfo.java b/mobile/android/thirdparty/com/adjust/sdk/DeviceInfo.java deleted file mode 100644 index 5cccb77f4..000000000 --- a/mobile/android/thirdparty/com/adjust/sdk/DeviceInfo.java +++ /dev/null @@ -1,290 +0,0 @@ -package com.adjust.sdk; - -import android.content.ContentResolver; -import android.content.Context; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.content.res.Configuration; -import android.content.res.Resources; -import android.database.Cursor; -import android.net.Uri; -import android.os.Build; -import android.util.DisplayMetrics; - -import java.math.BigInteger; -import java.security.MessageDigest; -import java.util.Locale; -import java.util.Map; - -import static com.adjust.sdk.Constants.ENCODING; -import static com.adjust.sdk.Constants.HIGH; -import static com.adjust.sdk.Constants.LARGE; -import static com.adjust.sdk.Constants.LONG; -import static com.adjust.sdk.Constants.LOW; -import static com.adjust.sdk.Constants.MD5; -import static com.adjust.sdk.Constants.MEDIUM; -import static com.adjust.sdk.Constants.NORMAL; -import static com.adjust.sdk.Constants.SHA1; -import static com.adjust.sdk.Constants.SMALL; -import static com.adjust.sdk.Constants.XLARGE; - -/** - * Created by pfms on 06/11/14. - */ -class DeviceInfo { - String macSha1; - String macShortMd5; - String androidId; - String fbAttributionId; - String clientSdk; - String packageName; - String appVersion; - String deviceType; - String deviceName; - String deviceManufacturer; - String osName; - String osVersion; - String language; - String country; - String screenSize; - String screenFormat; - String screenDensity; - String displayWidth; - String displayHeight; - Map<String, String> pluginKeys; - - DeviceInfo(Context context, String sdkPrefix) { - Resources resources = context.getResources(); - DisplayMetrics displayMetrics = resources.getDisplayMetrics(); - Configuration configuration = resources.getConfiguration(); - Locale locale = configuration.locale; - int screenLayout = configuration.screenLayout; - boolean isGooglePlayServicesAvailable = Reflection.isGooglePlayServicesAvailable(context); - String macAddress = getMacAddress(context, isGooglePlayServicesAvailable); - - packageName = getPackageName(context); - appVersion = getAppVersion(context); - deviceType = getDeviceType(screenLayout); - deviceName = getDeviceName(); - deviceManufacturer = getDeviceManufacturer(); - osName = getOsName(); - osVersion = getOsVersion(); - language = getLanguage(locale); - country = getCountry(locale); - screenSize = getScreenSize(screenLayout); - screenFormat = getScreenFormat(screenLayout); - screenDensity = getScreenDensity(displayMetrics); - displayWidth = getDisplayWidth(displayMetrics); - displayHeight = getDisplayHeight(displayMetrics); - clientSdk = getClientSdk(sdkPrefix); - androidId = getAndroidId(context, isGooglePlayServicesAvailable); - fbAttributionId = getFacebookAttributionId(context); - pluginKeys = Reflection.getPluginKeys(context); - macSha1 = getMacSha1(macAddress); - macShortMd5 = getMacShortMd5(macAddress); - } - - private String getMacAddress(Context context, boolean isGooglePlayServicesAvailable) { - if (!isGooglePlayServicesAvailable) { - if (!!Util.checkPermission(context, android.Manifest.permission.ACCESS_WIFI_STATE)) { - AdjustFactory.getLogger().warn("Missing permission: ACCESS_WIFI_STATE"); - } - return Reflection.getMacAddress(context); - } else { - return null; - } - } - - private String getPackageName(Context context) { - return context.getPackageName(); - } - - private String getAppVersion(Context context) { - try { - PackageManager packageManager = context.getPackageManager(); - String name = context.getPackageName(); - PackageInfo info = packageManager.getPackageInfo(name, 0); - return info.versionName; - } catch (PackageManager.NameNotFoundException e) { - return null; - } - } - - private String getDeviceType(int screenLayout) { - int screenSize = screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK; - - switch (screenSize) { - case Configuration.SCREENLAYOUT_SIZE_SMALL: - case Configuration.SCREENLAYOUT_SIZE_NORMAL: - return "phone"; - case Configuration.SCREENLAYOUT_SIZE_LARGE: - case 4: - return "tablet"; - default: - return null; - } - } - - private String getDeviceName() { - return Build.MODEL; - } - - private String getDeviceManufacturer() { - return Build.MANUFACTURER; - } - - private String getOsName() { - return "android"; - } - - private String getOsVersion() { - return osVersion = "" + Build.VERSION.SDK_INT; - } - - private String getLanguage(Locale locale) { - return locale.getLanguage(); - } - - private String getCountry(Locale locale) { - return locale.getCountry(); - } - - private String getScreenSize(int screenLayout) { - int screenSize = screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK; - - switch (screenSize) { - case Configuration.SCREENLAYOUT_SIZE_SMALL: - return SMALL; - case Configuration.SCREENLAYOUT_SIZE_NORMAL: - return NORMAL; - case Configuration.SCREENLAYOUT_SIZE_LARGE: - return LARGE; - case 4: - return XLARGE; - default: - return null; - } - } - - private String getScreenFormat(int screenLayout) { - int screenFormat = screenLayout & Configuration.SCREENLAYOUT_LONG_MASK; - - switch (screenFormat) { - case Configuration.SCREENLAYOUT_LONG_YES: - return LONG; - case Configuration.SCREENLAYOUT_LONG_NO: - return NORMAL; - default: - return null; - } - } - - private String getScreenDensity(DisplayMetrics displayMetrics) { - int density = displayMetrics.densityDpi; - int low = (DisplayMetrics.DENSITY_MEDIUM + DisplayMetrics.DENSITY_LOW) / 2; - int high = (DisplayMetrics.DENSITY_MEDIUM + DisplayMetrics.DENSITY_HIGH) / 2; - - if (0 == density) { - return null; - } else if (density < low) { - return LOW; - } else if (density > high) { - return HIGH; - } - return MEDIUM; - } - - private String getDisplayWidth(DisplayMetrics displayMetrics) { - return String.valueOf(displayMetrics.widthPixels); - } - - private String getDisplayHeight(DisplayMetrics displayMetrics) { - return String.valueOf(displayMetrics.heightPixels); - } - - private String getClientSdk(String sdkPrefix) { - if (sdkPrefix == null) { - return Constants.CLIENT_SDK; - } else { - return String.format("%s@%s", sdkPrefix, Constants.CLIENT_SDK); - } - } - - private String getMacSha1(String macAddress) { - if (macAddress == null) { - return null; - } - String macSha1 = sha1(macAddress); - - return macSha1; - } - - private String getMacShortMd5(String macAddress) { - if (macAddress == null) { - return null; - } - String macShort = macAddress.replaceAll(":", ""); - String macShortMd5 = md5(macShort); - - return macShortMd5; - } - - private String getAndroidId(Context context, boolean isGooglePlayServicesAvailable) { - if (!isGooglePlayServicesAvailable) { - return Reflection.getAndroidId(context); - } else { - return null; - } - } - - private String sha1(final String text) { - return hash(text, SHA1); - } - - private String md5(final String text) { - return hash(text, MD5); - } - - private String hash(final String text, final String method) { - String hashString = null; - try { - final byte[] bytes = text.getBytes(ENCODING); - final MessageDigest mesd = MessageDigest.getInstance(method); - mesd.update(bytes, 0, bytes.length); - final byte[] hash = mesd.digest(); - hashString = convertToHex(hash); - } catch (Exception e) { - } - return hashString; - } - - private static String convertToHex(final byte[] bytes) { - final BigInteger bigInt = new BigInteger(1, bytes); - final String formatString = "%0" + (bytes.length << 1) + "x"; - return String.format(formatString, bigInt); - } - - private String getFacebookAttributionId(final Context context) { - try { - final ContentResolver contentResolver = context.getContentResolver(); - final Uri uri = Uri.parse("content://com.facebook.katana.provider.AttributionIdProvider"); - final String columnName = "aid"; - final String[] projection = {columnName}; - final Cursor cursor = contentResolver.query(uri, projection, null, null, null); - - if (null == cursor) { - return null; - } - if (!cursor.moveToFirst()) { - cursor.close(); - return null; - } - - final String attributionId = cursor.getString(cursor.getColumnIndex(columnName)); - cursor.close(); - return attributionId; - } catch (Exception e) { - return null; - } - } -} |