Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[core] Add DeviceInfoBuilder. Close #2669 #2674

Merged
merged 3 commits into from
May 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions mirai-core-api/compatibility-validation/android/api/android.api
Original file line number Diff line number Diff line change
Expand Up @@ -5689,6 +5689,62 @@ public final class net/mamoe/mirai/utils/DeviceInfo$Version$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}

public final class net/mamoe/mirai/utils/DeviceInfoBuilder {
public static final field Companion Lnet/mamoe/mirai/utils/DeviceInfoBuilder$Companion;
public fun <init> ()V
public final fun androidId (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun androidId ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun apn (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun apn ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun baseBand (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun baseBand ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun board (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun board ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun bootId (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun bootId ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun bootloader (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun bootloader ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun brand (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun brand ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun build ()Lnet/mamoe/mirai/utils/DeviceInfo;
public final fun device (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun device ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun display (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun display ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun fingerprint (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun fingerprint ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public static final fun fromPrototype (Lnet/mamoe/mirai/utils/DeviceInfo;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public static final fun fromRandom ()Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public static final fun fromRandom (Lkotlin/random/Random;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun imei (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun imsiMd5 (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun imsiMd5 ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun macAddress (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun macAddress ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun model (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun model ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun osType (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun osType ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun procVersion (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun procVersion ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun product (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun product ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun simInfo (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun simInfo ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun version (Lnet/mamoe/mirai/utils/DeviceInfo$Version;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun wifiBSSID (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun wifiBSSID ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun wifiSSID (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun wifiSSID ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
}

public final class net/mamoe/mirai/utils/DeviceInfoBuilder$Companion {
public final fun fromPrototype (Lnet/mamoe/mirai/utils/DeviceInfo;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun fromRandom ()Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun fromRandom (Lkotlin/random/Random;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public static synthetic fun fromRandom$default (Lnet/mamoe/mirai/utils/DeviceInfoBuilder$Companion;Lkotlin/random/Random;ILjava/lang/Object;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
}

public final class net/mamoe/mirai/utils/DeviceInfoKt {
public static final fun generateDeviceInfoData (Lnet/mamoe/mirai/utils/DeviceInfo;)[B
public static final synthetic fun serializeToString (Lnet/mamoe/mirai/utils/DeviceInfo;)Ljava/lang/String;
Expand Down
56 changes: 56 additions & 0 deletions mirai-core-api/compatibility-validation/jvm/api/jvm.api
Original file line number Diff line number Diff line change
Expand Up @@ -5689,6 +5689,62 @@ public final class net/mamoe/mirai/utils/DeviceInfo$Version$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}

public final class net/mamoe/mirai/utils/DeviceInfoBuilder {
public static final field Companion Lnet/mamoe/mirai/utils/DeviceInfoBuilder$Companion;
public fun <init> ()V
public final fun androidId (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun androidId ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun apn (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun apn ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun baseBand (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun baseBand ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun board (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun board ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun bootId (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun bootId ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun bootloader (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun bootloader ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun brand (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun brand ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun build ()Lnet/mamoe/mirai/utils/DeviceInfo;
public final fun device (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun device ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun display (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun display ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun fingerprint (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun fingerprint ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public static final fun fromPrototype (Lnet/mamoe/mirai/utils/DeviceInfo;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public static final fun fromRandom ()Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public static final fun fromRandom (Lkotlin/random/Random;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun imei (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun imsiMd5 (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun imsiMd5 ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun macAddress (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun macAddress ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun model (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun model ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun osType (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun osType ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun procVersion (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun procVersion ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun product (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun product ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun simInfo (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun simInfo ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun version (Lnet/mamoe/mirai/utils/DeviceInfo$Version;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun wifiBSSID (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun wifiBSSID ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun wifiSSID (Ljava/lang/String;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun wifiSSID ([B)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
}

public final class net/mamoe/mirai/utils/DeviceInfoBuilder$Companion {
public final fun fromPrototype (Lnet/mamoe/mirai/utils/DeviceInfo;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun fromRandom ()Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public final fun fromRandom (Lkotlin/random/Random;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
public static synthetic fun fromRandom$default (Lnet/mamoe/mirai/utils/DeviceInfoBuilder$Companion;Lkotlin/random/Random;ILjava/lang/Object;)Lnet/mamoe/mirai/utils/DeviceInfoBuilder;
}

public final class net/mamoe/mirai/utils/DeviceInfoKt {
public static final fun generateDeviceInfoData (Lnet/mamoe/mirai/utils/DeviceInfo;)[B
public static final synthetic fun serializeToString (Lnet/mamoe/mirai/utils/DeviceInfo;)Ljava/lang/String;
Expand Down
42 changes: 38 additions & 4 deletions mirai-core-api/src/commonMain/kotlin/utils/DeviceInfo.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,47 @@ import kotlin.jvm.JvmSynthetic
import kotlin.random.Random

internal const val DeviceInfoConstructorDeprecationMessage =
"Constructor and serializer of DeviceInfo is deprecated and will be removed in the future." +
"This is because new properties can be added and it requires too much effort to maintain public stability." +
"Please use DeviceInfo.serializeToString and DeviceInfo.deserializeFromString instead."
"DeviceInfo 构造器将会在未来删除. " +
"这是因为构造器导致维护变得十分困难. " +
"若要构造 DeviceInfo 实例, 请使用 DeviceInfoBuilder." +
"若要序列化, 请使用 DeviceInfo.serializeToString 和 DeviceInfo.deserializeFromString."

internal const val DeviceInfoConstructorReplaceWith = "DeviceInfoBuilder.create()" +
".display(display)" +
".product(product)" +
".device(device)" +
".board(board)" +
".brand(brand)" +
".model(model)" +
".bootloader(bootloader)" +
".fingerprint(fingerprint)" +
".bootId(bootId)" +
".procVersion(procVersion)" +
".baseBand(baseBand)" +
".version(version)" +
".simInfo(simInfo)" +
".osType(osType)" +
".macAddress(macAddress)" +
".wifiBSSID(wifiBSSID)" +
".wifiSSID(wifiSSID)" +
".imsiMd5(imsiMd5)" +
".imei(imei)" +
".apn(apn)" +
".androidId(androidId)" +
".build()"

/**
* 表示设备信息
* @see DeviceInfoBuilder
*/
public expect class DeviceInfo
@Deprecated(DeviceInfoConstructorDeprecationMessage, level = DeprecationLevel.WARNING)
@Deprecated(
DeviceInfoConstructorDeprecationMessage, level = DeprecationLevel.WARNING,
replaceWith = ReplaceWith(
DeviceInfoConstructorReplaceWith,
"net.mamoe.mirai.utils.DeviceInfoBuilder"
)
)
@DeprecatedSinceMirai(warningSince = "2.15") // planned internal
public constructor(
display: ByteArray,
Expand Down Expand Up @@ -117,6 +149,7 @@ public constructor(
/**
* 生成随机 [DeviceInfo]
*
* @see DeviceInfoBuilder
* @since 2.0
*/
@JvmStatic
Expand All @@ -125,6 +158,7 @@ public constructor(
/**
* 使用特定随机数生成器生成 [DeviceInfo]
*
* @see DeviceInfoBuilder
* @since 2.9
*/
@JvmStatic
Expand Down
Loading