2019-04-20 05:29:45 +00:00
|
|
|
package code.name.monkey.retromusic.activities.bugreport.model;
|
2018-12-06 10:23:03 +00:00
|
|
|
|
|
|
|
import android.annotation.SuppressLint;
|
|
|
|
import android.content.Context;
|
|
|
|
import android.content.pm.PackageInfo;
|
|
|
|
import android.content.pm.PackageManager;
|
|
|
|
import android.os.Build;
|
2020-02-26 16:49:24 +00:00
|
|
|
|
2019-11-15 17:44:42 +00:00
|
|
|
import androidx.annotation.IntRange;
|
2020-02-26 16:49:24 +00:00
|
|
|
|
2019-12-30 11:01:50 +00:00
|
|
|
import java.util.Arrays;
|
2018-12-06 10:23:03 +00:00
|
|
|
|
2020-02-26 16:49:24 +00:00
|
|
|
import code.name.monkey.retromusic.util.PreferenceUtil;
|
|
|
|
|
2018-12-06 10:23:03 +00:00
|
|
|
public class DeviceInfo {
|
2019-12-30 11:01:50 +00:00
|
|
|
|
2018-12-06 10:23:03 +00:00
|
|
|
@SuppressLint("NewApi")
|
|
|
|
@SuppressWarnings("deprecation")
|
|
|
|
private final String[] abis = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ?
|
|
|
|
Build.SUPPORTED_ABIS : new String[]{Build.CPU_ABI, Build.CPU_ABI2};
|
2019-12-30 11:01:50 +00:00
|
|
|
|
2018-12-06 10:23:03 +00:00
|
|
|
@SuppressLint("NewApi")
|
|
|
|
private final String[] abis32Bits = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ?
|
|
|
|
Build.SUPPORTED_32_BIT_ABIS : null;
|
2019-12-30 11:01:50 +00:00
|
|
|
|
2018-12-06 10:23:03 +00:00
|
|
|
@SuppressLint("NewApi")
|
|
|
|
private final String[] abis64Bits = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ?
|
|
|
|
Build.SUPPORTED_64_BIT_ABIS : null;
|
|
|
|
|
2019-12-30 11:01:50 +00:00
|
|
|
private final String baseTheme;
|
|
|
|
|
|
|
|
private final String brand = Build.BRAND;
|
|
|
|
|
|
|
|
private final String buildID = Build.DISPLAY;
|
|
|
|
|
|
|
|
private final String buildVersion = Build.VERSION.INCREMENTAL;
|
|
|
|
|
|
|
|
private final String device = Build.DEVICE;
|
|
|
|
|
|
|
|
private final String hardware = Build.HARDWARE;
|
|
|
|
|
|
|
|
private final boolean isAdaptive;
|
|
|
|
|
|
|
|
private final String manufacturer = Build.MANUFACTURER;
|
|
|
|
|
|
|
|
private final String model = Build.MODEL;
|
|
|
|
|
|
|
|
private final String nowPlayingTheme;
|
|
|
|
|
|
|
|
private final String product = Build.PRODUCT;
|
|
|
|
|
|
|
|
private final String releaseVersion = Build.VERSION.RELEASE;
|
|
|
|
|
|
|
|
@IntRange(from = 0)
|
|
|
|
private final int sdkVersion = Build.VERSION.SDK_INT;
|
|
|
|
|
|
|
|
private final int versionCode;
|
|
|
|
|
|
|
|
private final String versionName;
|
|
|
|
|
2018-12-06 10:23:03 +00:00
|
|
|
public DeviceInfo(Context context) {
|
|
|
|
PackageInfo packageInfo;
|
|
|
|
try {
|
|
|
|
packageInfo = context.getPackageManager()
|
|
|
|
.getPackageInfo(context.getPackageName(), 0);
|
|
|
|
} catch (PackageManager.NameNotFoundException e) {
|
|
|
|
packageInfo = null;
|
|
|
|
}
|
|
|
|
if (packageInfo != null) {
|
|
|
|
versionCode = packageInfo.versionCode;
|
|
|
|
versionName = packageInfo.versionName;
|
|
|
|
} else {
|
|
|
|
versionCode = -1;
|
|
|
|
versionName = null;
|
|
|
|
}
|
2019-09-09 13:04:53 +00:00
|
|
|
baseTheme = PreferenceUtil.getInstance(context).getBaseTheme();
|
|
|
|
nowPlayingTheme = context.getString(PreferenceUtil.getInstance(context).getNowPlayingScreen().getTitleRes());
|
|
|
|
isAdaptive = PreferenceUtil.getInstance(context).getAdaptiveColor();
|
2018-12-06 10:23:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public String toMarkdown() {
|
|
|
|
return "Device info:\n"
|
|
|
|
+ "---\n"
|
|
|
|
+ "<table>\n"
|
|
|
|
+ "<tr><td>App version</td><td>" + versionName + "</td></tr>\n"
|
|
|
|
+ "<tr><td>App version code</td><td>" + versionCode + "</td></tr>\n"
|
|
|
|
+ "<tr><td>Android build version</td><td>" + buildVersion + "</td></tr>\n"
|
|
|
|
+ "<tr><td>Android release version</td><td>" + releaseVersion + "</td></tr>\n"
|
|
|
|
+ "<tr><td>Android SDK version</td><td>" + sdkVersion + "</td></tr>\n"
|
|
|
|
+ "<tr><td>Android build ID</td><td>" + buildID + "</td></tr>\n"
|
|
|
|
+ "<tr><td>Device brand</td><td>" + brand + "</td></tr>\n"
|
|
|
|
+ "<tr><td>Device manufacturer</td><td>" + manufacturer + "</td></tr>\n"
|
|
|
|
+ "<tr><td>Device name</td><td>" + device + "</td></tr>\n"
|
|
|
|
+ "<tr><td>Device model</td><td>" + model + "</td></tr>\n"
|
|
|
|
+ "<tr><td>Device product name</td><td>" + product + "</td></tr>\n"
|
|
|
|
+ "<tr><td>Device hardware name</td><td>" + hardware + "</td></tr>\n"
|
|
|
|
+ "<tr><td>ABIs</td><td>" + Arrays.toString(abis) + "</td></tr>\n"
|
|
|
|
+ "<tr><td>ABIs (32bit)</td><td>" + Arrays.toString(abis32Bits) + "</td></tr>\n"
|
|
|
|
+ "<tr><td>ABIs (64bit)</td><td>" + Arrays.toString(abis64Bits) + "</td></tr>\n"
|
|
|
|
+ "</table>\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String toString() {
|
|
|
|
return "App version: " + versionName + "\n"
|
|
|
|
+ "App version code: " + versionCode + "\n"
|
|
|
|
+ "Android build version: " + buildVersion + "\n"
|
|
|
|
+ "Android release version: " + releaseVersion + "\n"
|
|
|
|
+ "Android SDK version: " + sdkVersion + "\n"
|
|
|
|
+ "Android build ID: " + buildID + "\n"
|
|
|
|
+ "Device brand: " + brand + "\n"
|
|
|
|
+ "Device manufacturer: " + manufacturer + "\n"
|
|
|
|
+ "Device name: " + device + "\n"
|
|
|
|
+ "Device model: " + model + "\n"
|
|
|
|
+ "Device product name: " + product + "\n"
|
|
|
|
+ "Device hardware name: " + hardware + "\n"
|
|
|
|
+ "ABIs: " + Arrays.toString(abis) + "\n"
|
|
|
|
+ "ABIs (32bit): " + Arrays.toString(abis32Bits) + "\n"
|
2019-02-19 17:40:16 +00:00
|
|
|
+ "ABIs (64bit): " + Arrays.toString(abis64Bits) + "\n"
|
|
|
|
+ "Base theme: " + baseTheme + "\n"
|
2019-02-27 17:07:09 +00:00
|
|
|
+ "Now playing theme: " + nowPlayingTheme + "\n"
|
|
|
|
+ "Adaptive: " + isAdaptive;
|
2018-12-06 10:23:03 +00:00
|
|
|
}
|
|
|
|
}
|