|
|
@@ -257,7 +257,7 @@ class TaskRunner(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- suspend fun reset() {
|
|
|
+ suspend fun reset(mock: Boolean = true) {
|
|
|
val context = getContext()
|
|
|
val dir = ContextCompat.getExternalCacheDirs(context)[0]
|
|
|
// val pifPath = File(dir, "pif1.json").path
|
|
|
@@ -269,7 +269,9 @@ class TaskRunner(
|
|
|
delay(100)
|
|
|
appStateRepo.updateRuntimeFlags(reqState = ReqState.RESET)
|
|
|
gmsgStateRepo.updateRcsState(RcsConfigureState.NOT_CONFIGURED)
|
|
|
- spoofedInfoRepo.mock()
|
|
|
+ if (mock) {
|
|
|
+ spoofedInfoRepo.mock()
|
|
|
+ }
|
|
|
resetAll()
|
|
|
var switchAppear = gmsgStateRepo.waitForRcsState(
|
|
|
arrayOf(RcsConfigureState.WAITING_FOR_TOS),
|
|
|
@@ -399,7 +401,7 @@ class TaskRunner(
|
|
|
// shellRun("rm /data/adb/pif.json")
|
|
|
}
|
|
|
|
|
|
- private suspend fun requestNumberAtomic(store: Boolean? = false) {
|
|
|
+ private suspend fun requestNumberAtomic(store: Boolean? = false, reset: Boolean = false) {
|
|
|
appStateRepo.updateRuntimeFlags(reqState = ReqState.REQUEST)
|
|
|
gmsgStateRepo.updateRcsState(RcsConfigureState.NOT_CONFIGURED)
|
|
|
val device = DeviceApi.getDevice(appPrefsRepo.appPrefs.value.id)
|
|
|
@@ -464,6 +466,9 @@ class TaskRunner(
|
|
|
if (sendOtpTimeout > 2.minutes) {
|
|
|
sendOtpTimeout = 2.minutes
|
|
|
}
|
|
|
+ if (reset) {
|
|
|
+ reset()
|
|
|
+ }
|
|
|
if (gmsgStateRepo.waitForRcsState(
|
|
|
arrayOf(RcsConfigureState.WAITING_FOR_OTP),
|
|
|
sendOtpTimeout
|
|
|
@@ -573,12 +578,11 @@ class TaskRunner(
|
|
|
|
|
|
needRest = needRest || appStateRepo.appState.value.requestedNum >= 5
|
|
|
if (needRest && !appPrefsRepo.appPrefs.value.preventReset) {
|
|
|
- reset()
|
|
|
needRest = false
|
|
|
}
|
|
|
|
|
|
appStateRepo.incrementRequestedNum()
|
|
|
- requestNumberAtomic()
|
|
|
+ requestNumberAtomic(reset = needRest)
|
|
|
return@withTimeoutOrNull true
|
|
|
} catch (e: Exception) {
|
|
|
if (e is RequestNumberException) {
|