Skip to content

Commit adc37ab

Browse files
authored
Merge pull request #209 from solrudev/develop
0.22.8
2 parents cb8f7be + e2d4f2d commit adc37ab

4 files changed

Lines changed: 12 additions & 26 deletions

File tree

‎ackpine-core/src/main/kotlin/ru/solrudev/ackpine/impl/installer/activity/SessionBasedInstallConfirmationActivity.kt‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -196,15 +196,14 @@ internal class SessionBasedInstallConfirmationActivity : InstallActivity(TAG) {
196196
logger.warn("Install permission denied for session %s", ackpineSessionId)
197197
abortSession("Install permission denied")
198198
}
199-
// User has dismissed confirmation activity.
200-
isSessionAlive && isActivityCancelled -> {
201-
logger.warn("Install confirmation was dismissed for session %s", ackpineSessionId)
202-
abortSession()
203-
}
204199
// There was some error while installing which is not handled in PackageInstallerStatusReceiver,
205200
// or session's progress may have been delayed by Play Protect, or session may have completed
206201
// too quickly.
207202
else -> {
203+
if (isSessionAlive && isActivityCancelled) {
204+
// User may have dismissed confirmation activity.
205+
logger.warn("Install confirmation dismiss heuristics for session %s", ackpineSessionId)
206+
}
208207
// Wait for possible progress/result from PackageInstallerStatusReceiver before completing with failure.
209208
logger.info("Waiting for delayed dead-session fallback for session %s", ackpineSessionId)
210209
setLoading(isLoading = true, delayMillis = 100)

‎ackpine-core/src/test/kotlin/ru/solrudev/ackpine/impl/installer/activity/SessionBasedInstallConfirmationActivityResultTest.kt‎

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -54,26 +54,6 @@ class SessionBasedInstallConfirmationActivityResultTest {
5454
CommitProgressValueHolder.clear(context)
5555
}
5656

57-
@Test
58-
fun activityCancelledAbortsSession() {
59-
ensureCommitProgressValueCached()
60-
val sessionId = UUID.randomUUID()
61-
val session = TestPreapprovalSession(sessionId)
62-
PackageInstallerImpl.getInstance(context).addSession(sessionId, session)
63-
val intent = Intent(context, SessionBasedInstallConfirmationActivity::class.java)
64-
.putExtra(Intent.EXTRA_INTENT, Intent())
65-
.putExtra(PackageInstaller.EXTRA_SESSION_ID, 1)
66-
SessionIdIntents.putSessionId(intent, sessionId)
67-
ActivityScenario.launch<SessionBasedInstallConfirmationActivity>(intent).use { scenario ->
68-
scenario.onActivity { it.onActivityResult(Activity.RESULT_CANCELED) }
69-
drainMainThread()
70-
val completedState = session.completedState
71-
assertNotNull(completedState)
72-
assertIs<Session.State.Failed<InstallFailure>>(completedState)
73-
assertIs<InstallFailure.Aborted>(completedState.failure)
74-
}
75-
}
76-
7757
@Test
7858
fun preapprovalResultDoesNotAbortSession() {
7959
ensureCommitProgressValueCached()

‎docs/changelog.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ hide:
66
Change Log
77
==========
88

9+
Version 0.22.8 (2026-05-01)
10+
---------------------------
11+
12+
### Bug fixes and improvements
13+
14+
- Fix "SessionBasedInstallConfirmationActivity was finished by user" install error on some devices.
15+
916
Version 0.22.7 (2026-04-24)
1017
---------------------------
1118

‎version.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"majorVersion": 0,
33
"minorVersion": 22,
4-
"patchVersion": 7,
4+
"patchVersion": 8,
55
"suffix": "",
66
"isSnapshot": false
77
}

0 commit comments

Comments
 (0)