blob: ccfc008a9fe2e059ac802d33dc0c9e70627ea67a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package moe.yuuta.workmode.suspend.data
import android.os.Process
import java.util.regex.Pattern
/**
* The data of Suspended app which can be stored in {@link SuspendedStorage} only
*/
data class PersistableSuspendedApp(
val userId: Int,
val packageName: String
) {
constructor(serializedString: String) : this(parseUserIDFromSerializedString(serializedString),
parsePackageNameFromSerializedString(serializedString))
override fun toString(): String =
String.format("%d|%s", userId, packageName)
/**
* Create a TransferableSuspendedApp with the simplest data.
*/
fun copyToSimpleTransferableInfo(): TransferableSuspendedApp =
TransferableSuspendedApp(userId, packageName, null, -1, null)
companion object {
private fun parseFromSerializedString(serializedString: String): PersistableSuspendedApp {
val arr = serializedString.split(Pattern.compile("\\|"))
// Legacy
if (arr.size != 2) {
return PersistableSuspendedApp(Process.myUserHandle().hashCode(), serializedString)
}
return PersistableSuspendedApp(arr[0].toInt(), arr[1])
}
private fun parseUserIDFromSerializedString(serializedString: String): Int =
parseFromSerializedString(serializedString).userId
private fun parsePackageNameFromSerializedString(serializedString: String): String =
parseFromSerializedString(serializedString).packageName
}
}
|