NekoX/TMessagesProj/src/main/java/org/telegram/messenger/OneUIUtilities.java

65 lines
1.7 KiB
Java
Raw Normal View History

2022-03-11 17:49:54 +01:00
package org.telegram.messenger;
import android.os.Build;
2022-04-16 16:43:17 +02:00
import java.lang.reflect.Field;
2022-03-11 17:49:54 +01:00
public class OneUIUtilities {
2022-04-16 16:43:17 +02:00
public final static int ONE_UI_4_0 = 40000;
2022-03-11 17:49:54 +01:00
private static Boolean isOneUI;
2022-04-16 16:43:17 +02:00
private static int oneUIEncodedVersion;
private static int oneUIMajorVersion;
private static float oneUIMinorVersion;
2022-03-11 17:49:54 +01:00
@SuppressWarnings("JavaReflectionMemberAccess")
public static boolean isOneUI() {
if (isOneUI != null) {
return isOneUI;
}
try {
2022-04-16 16:43:17 +02:00
Field f = Build.VERSION.class.getDeclaredField("SEM_PLATFORM_INT");
f.setAccessible(true);
int semPlatformInt = (int) f.get(null);
if (semPlatformInt < 100000) {
// Samsung Experience then
return false;
}
oneUIEncodedVersion = semPlatformInt - 90000;
oneUIMajorVersion = oneUIEncodedVersion / 10000;
oneUIMinorVersion = (oneUIEncodedVersion % 10000) / 100F;
2022-03-11 17:49:54 +01:00
isOneUI = true;
2022-04-16 16:43:17 +02:00
} catch (Exception e) {
2022-03-11 17:49:54 +01:00
isOneUI = false;
}
return isOneUI;
}
2022-04-16 16:43:17 +02:00
public static boolean hasBuiltInClipboardToasts() {
return isOneUI() && getOneUIEncodedVersion() == ONE_UI_4_0;
}
public static int getOneUIMajorVersion() {
if (!isOneUI()) {
return 0;
}
return oneUIMajorVersion;
}
public static int getOneUIEncodedVersion() {
if (!isOneUI()) {
return 0;
}
return oneUIEncodedVersion;
}
public static float getOneUIMinorVersion() {
if (!isOneUI()) {
return 0;
}
return oneUIMinorVersion;
}
2022-03-11 17:49:54 +01:00
}