added device info frag + fixed miui detection
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package ru.vtosters.lite.deviceinfo;
|
||||
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isEMUI;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isMIUI;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isMIUIAlter;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isSamsung;
|
||||
@@ -17,6 +18,7 @@ public class Device {
|
||||
private String MiuiIncrementalCode;
|
||||
private String OneUiMinorVersion;
|
||||
private String OneUiMajorVersion;
|
||||
private String EmuiVersion;
|
||||
private int sdkVersion;
|
||||
|
||||
public Device withSdkVersion(int i) {
|
||||
@@ -79,6 +81,11 @@ public class Device {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Device withEmuiVersionName(String str) {
|
||||
this.EmuiVersion = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String toDeviceName() {
|
||||
return "Device information: "
|
||||
+ "commit='" + getBuildNumber()
|
||||
@@ -91,6 +98,7 @@ public class Device {
|
||||
+ (isMIUI() ? "', MiuiUiVersionCode='" + this.MiuiUiVersionCode + "', MiuiUiVersionName='" + this.MiuiUiVersionName : "")
|
||||
+ (isSamsung() ? "', OneUiMajorVersion='" + this.OneUiMajorVersion + "', OneUiMinorVersion='" + this.OneUiMinorVersion : "")
|
||||
+ (isMIUIAlter() ? "', MiuiUiVersionIncrementalCode='" + this.MiuiIncrementalCode : "")
|
||||
+ (isEMUI() ? "', MiuiUiVersionIncrementalCode='" + this.EmuiVersion : "")
|
||||
+ "', modelName='" + this.modelName + "'";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package ru.vtosters.lite.deviceinfo;
|
||||
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getEmuiVersionCode;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getMiuiUiVersionCode;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getMiuiUiVersionIncrementalCode;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getMiuiUiVersionName;
|
||||
@@ -23,6 +24,7 @@ public class DeviceInfoCollector {
|
||||
.withOneUiMinorVersionName(String.valueOf(getOneUiMinorVersion()))
|
||||
.withMiuiUiVersionName(getMiuiUiVersionName())
|
||||
.withMiuiIncrementalCodeName(getMiuiUiVersionIncrementalCode())
|
||||
.withEmuiVersionName(getEmuiVersionCode())
|
||||
.withMiuiUiVersionCodeName(getMiuiUiVersionCode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,23 @@
|
||||
package ru.vtosters.lite.deviceinfo;
|
||||
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import ru.vtosters.lite.utils.ReflectionUtils;
|
||||
|
||||
public class OEMDetector {
|
||||
private static Field semPlatformIntField;
|
||||
private static Method getPropMtd;
|
||||
|
||||
private static Boolean isOneUi;
|
||||
private static int oneUiMajorVersion;
|
||||
private static float oneUiMinorVersion;
|
||||
@@ -56,31 +62,48 @@ public class OEMDetector {
|
||||
return isMIUI() || isEMUI() || isFlyme() || isZenUI() || isSamsung() || isVivo();
|
||||
}
|
||||
|
||||
static boolean isMIUI() {
|
||||
return !TextUtils.isEmpty(getMiuiUiVersionName()) || !TextUtils.isEmpty(getMiuiUiVersionIncrementalCode());
|
||||
public static boolean isMIUI() {
|
||||
try {
|
||||
getGlobalContext().getPackageManager().getPackageInfo("com.miui.system", 0);
|
||||
return true;
|
||||
} catch (Exception unused) {
|
||||
return detectMiuiV2();
|
||||
}
|
||||
}
|
||||
|
||||
static boolean isMIUIAlter() {
|
||||
return !TextUtils.isEmpty(getMiuiUiVersionIncrementalCode());
|
||||
public static boolean isIntentResolved(Context ctx, Intent intent ){
|
||||
return (intent!=null && ctx.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null);
|
||||
}
|
||||
|
||||
private static boolean isEMUI() {
|
||||
public static boolean detectMiuiV2() {
|
||||
var ctx = getGlobalContext();
|
||||
return isIntentResolved(ctx, new Intent("miui.intent.action.OP_AUTO_START").addCategory(Intent.CATEGORY_DEFAULT))
|
||||
|| isIntentResolved(ctx, new Intent().setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity")))
|
||||
|| isIntentResolved(ctx, new Intent("miui.intent.action.POWER_HIDE_MODE_APP_LIST").addCategory(Intent.CATEGORY_DEFAULT))
|
||||
|| isIntentResolved(ctx, new Intent().setComponent(new ComponentName("com.miui.securitycenter", "com.miui.powercenter.PowerSettings")));
|
||||
}
|
||||
|
||||
public static boolean isMIUIAlter() {
|
||||
return !TextUtils.isEmpty(getMiuiUiVersionIncrementalCode()) && isMIUI();
|
||||
}
|
||||
|
||||
public static boolean isEMUI() {
|
||||
return !TextUtils.isEmpty(getSystemProperty("ro.build.hw_emui_api_level"));
|
||||
}
|
||||
|
||||
private static boolean isZenUI() {
|
||||
public static boolean isZenUI() {
|
||||
return !TextUtils.isEmpty(getSystemProperty("ro.asus.ui"));
|
||||
}
|
||||
|
||||
private static boolean isVivo() {
|
||||
public static boolean isVivo() {
|
||||
return !TextUtils.isEmpty(getSystemProperty("ro.vivo.os.version")) || !TextUtils.isEmpty(getSystemProperty("ro.vivo.rom")) || !TextUtils.isEmpty(getSystemProperty("ro.vivo.rom.version")) || !TextUtils.isEmpty(getSystemProperty("ro.vivo.build.version.sdk"));
|
||||
}
|
||||
|
||||
static boolean isSamsung() {
|
||||
public static boolean isSamsung() {
|
||||
return !TextUtils.isEmpty(getSystemProperty("ro.config.knox"));
|
||||
}
|
||||
|
||||
private static boolean isFlyme() {
|
||||
public static boolean isFlyme() {
|
||||
return !TextUtils.isEmpty(getSystemProperty("ro.build.ro.meizu.rom.config")) || !TextUtils.isEmpty(getSystemProperty("persist.sys.static_blur_mode")) || !TextUtils.isEmpty(getSystemProperty("persist.sys.use.flyme.icon"));
|
||||
}
|
||||
|
||||
@@ -92,11 +115,15 @@ public class OEMDetector {
|
||||
return getSystemProperty("ro.miui.ui.version.code");
|
||||
}
|
||||
|
||||
public static String getEmuiVersionCode() {
|
||||
return getSystemProperty("ro.build.version.emui");
|
||||
}
|
||||
|
||||
public static String getMiuiUiVersionIncrementalCode() {
|
||||
return getSystemProperty("ro.build.version.incremental");
|
||||
}
|
||||
|
||||
private static String getSystemProperty(String prop) {
|
||||
public static String getSystemProperty(String prop) {
|
||||
try {
|
||||
return (String) getPropMtd.invoke(null, prop);
|
||||
} catch (Throwable e) {
|
||||
|
||||
@@ -43,6 +43,7 @@ import com.vk.im.ui.providers.audiomsg.PlayerActionSources;
|
||||
import com.vk.imageloader.VKImageLoader;
|
||||
import com.vk.media.player.cache.AutoPlayCacheHolder;
|
||||
import com.vk.mediastore.MediaStorage;
|
||||
import com.vk.navigation.Navigator;
|
||||
import com.vk.pushes.PushSubscriber;
|
||||
import com.vk.stickers.Stickers;
|
||||
import com.vtosters.lite.auth.VKAccountManager;
|
||||
@@ -56,7 +57,6 @@ import ru.vtosters.lite.ui.activities.VKAdminTokenActivity;
|
||||
import ru.vtosters.lite.ui.components.BackupManager;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import ru.vtosters.lite.utils.ContactsUtils;
|
||||
import ru.vtosters.lite.utils.ThemesUtils;
|
||||
|
||||
public class OtherFragment extends MaterialPreferenceToolbarFragment {
|
||||
private static final int VK_ADMIN_TOKEN_REQUEST_CODE = 1;
|
||||
@@ -91,6 +91,15 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment {
|
||||
cacheCleanDialog();
|
||||
return true;
|
||||
});
|
||||
|
||||
findPreference("deviceinfo").setOnPreferenceClickListener(preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(SystemInfo.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return true;
|
||||
});
|
||||
|
||||
findPreference("autoclearcache").setOnPreferenceClickListener(preference -> {
|
||||
cacheAutoCleanDialog();
|
||||
return true;
|
||||
|
||||
@@ -0,0 +1,196 @@
|
||||
package ru.vtosters.lite.ui.fragments;
|
||||
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.detectMiuiV2;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getEmuiVersionCode;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getMiuiUiVersionCode;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getMiuiUiVersionIncrementalCode;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getMiuiUiVersionName;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getOneUiMajorVersion;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getOneUiMinorVersion;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isEMUI;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isFlyme;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isMIUI;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isMIUIAlter;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isOneUi;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isSamsung;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isVivo;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isZenUI;
|
||||
import static ru.vtosters.lite.ui.PreferencesUtil.addPreference;
|
||||
import static ru.vtosters.lite.ui.PreferencesUtil.addPreferenceCategory;
|
||||
import static ru.vtosters.lite.utils.About.getBuildNumber;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.isTablet;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
|
||||
import static ru.vtosters.lite.utils.Preferences.isValidSignature;
|
||||
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment;
|
||||
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
|
||||
public class SystemInfo extends MaterialPreferenceToolbarFragment {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
addPreferencesFromResource(getIdentifier("empty", "xml"));
|
||||
|
||||
var oneUiMajorVersion = String.valueOf(getOneUiMajorVersion());
|
||||
var oneUiMinorVersion = String.valueOf(getOneUiMinorVersion());
|
||||
var sdkVersion = String.valueOf(Build.VERSION.SDK_INT);
|
||||
var productName = Build.PRODUCT;
|
||||
var deviceName = Build.DEVICE;
|
||||
var boardName = Build.BOARD;
|
||||
var manufacturerName = Build.MANUFACTURER;
|
||||
var brandName = Build.BRAND;
|
||||
var modelName = Build.MODEL;
|
||||
var miuiUiVersionName = getMiuiUiVersionName();
|
||||
var miuiIncrementalCodeName = getMiuiUiVersionIncrementalCode();
|
||||
var miuiUiVersionCodeName = getMiuiUiVersionCode();
|
||||
var emuiVersionCode = getEmuiVersionCode();
|
||||
var packageName = requireContext().getPackageName();
|
||||
var commit = getBuildNumber();
|
||||
|
||||
var isMiui = isMIUI();
|
||||
var isMIUIDetectionV2 = detectMiuiV2();
|
||||
var isFlyme = isFlyme();
|
||||
var isSamsung = isSamsung();
|
||||
var isOneUi = isOneUi();
|
||||
var isVivo = isVivo();
|
||||
var isZenUI = isZenUI();
|
||||
var isEMUI = isEMUI();
|
||||
var isMIUIAlter = isMIUIAlter();
|
||||
|
||||
var isValidSignature = isValidSignature();
|
||||
var isTablet = isTablet();
|
||||
|
||||
addPreferenceCategory(this, "App information");
|
||||
|
||||
addPreference(this, "", "Package name", packageName, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", packageName));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Commit", commit, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", commit));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Valid Signature", "Value: " + isValidSignature, null, null);
|
||||
|
||||
addPreference(this, "", "isTablet", "Value: " + isTablet, null, null);
|
||||
|
||||
addPreferenceCategory(this, "System information");
|
||||
|
||||
addPreference(this, "", "SDK Version", sdkVersion, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", sdkVersion));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Product Name", productName, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", productName));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Device Name", deviceName, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", deviceName));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Board Name", boardName, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", boardName));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Manufacturer Name", manufacturerName, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", manufacturerName));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Brand Name", brandName, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", brandName));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Model Name", modelName, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", modelName));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreferenceCategory(this, "OEM Information");
|
||||
|
||||
if (isOneUi){
|
||||
addPreference(this, "", "OneUiMajorVersion", oneUiMajorVersion, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", oneUiMajorVersion));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "OneUiMinorVersion", oneUiMinorVersion, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", oneUiMinorVersion));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
} else if (isMiui) {
|
||||
addPreference(this, "", "miuiUiVersionName", miuiUiVersionName, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", miuiUiVersionName));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "miuiUiVersionCodeName", miuiUiVersionCodeName, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", miuiUiVersionCodeName));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
|
||||
if (isMIUIAlter) {
|
||||
addPreference(this, "", "miuiIncrementalCodeName", miuiIncrementalCodeName, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", miuiIncrementalCodeName));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
}
|
||||
} else if (isEMUI){
|
||||
addPreference(this, "", "emuiVersionCode", emuiVersionCode, null, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", emuiVersionCode));
|
||||
sendToast(AndroidUtils.getString("copied_to_clipboard"));
|
||||
return false;
|
||||
});
|
||||
} else {
|
||||
addPreference(this, "", "No info", "No information about OEM", null, null);
|
||||
}
|
||||
|
||||
addPreferenceCategory(this, "OEM List");
|
||||
|
||||
addPreference(this, "", "isOneUi", "Value: " + isOneUi, null, null);
|
||||
|
||||
addPreference(this, "", "isMiui", "Value: " + isMiui, null, null);
|
||||
|
||||
addPreference(this, "", "isEMUI", "Value: " + isEMUI, null, null);
|
||||
|
||||
addPreference(this, "", "isMIUIDetectionV2", "Value: " + isMIUIDetectionV2, null, null);
|
||||
|
||||
addPreference(this, "", "isFlyme", "Value: " + isFlyme, null, null);
|
||||
|
||||
addPreference(this, "", "isSamsung", "Value: " + isSamsung, null, null);
|
||||
|
||||
addPreference(this, "", "isVivo", "Value: " + isVivo, null, null);
|
||||
|
||||
addPreference(this, "", "isZenUI", "Value: " + isZenUI, null, null);
|
||||
}
|
||||
}
|
||||
@@ -27,6 +27,9 @@
|
||||
<Preference
|
||||
android:key="tokencopy"
|
||||
android:title="@string/copytokenbtn" />
|
||||
<Preference
|
||||
android:key="deviceinfo"
|
||||
android:title="Device info" />
|
||||
<Preference
|
||||
android:key="vk_admin_token"
|
||||
android:title="@string/vk_admin_token_title" />
|
||||
|
||||
Reference in New Issue
Block a user