Skip to content

Commit d93f410

Browse files
authored
Merge pull request #153 from solrudev/develop
0.19.0
2 parents cfccdcf + f6de23b commit d93f410

15 files changed

Lines changed: 48 additions & 30 deletions

File tree

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Ackpine depends on Jetpack libraries, so it's also necessary to add the `google(
3737

3838
```toml
3939
[versions]
40-
ackpine = "0.18.6"
40+
ackpine = "0.19.0"
4141

4242
[libraries]
4343
ackpine-core = { module = "ru.solrudev.ackpine:ackpine-core", version.ref = "ackpine" }
@@ -78,7 +78,7 @@ ackpine = [
7878

7979
```kotlin
8080
dependencies {
81-
val ackpineVersion = "0.18.6"
81+
val ackpineVersion = "0.19.0"
8282
implementation("ru.solrudev.ackpine:ackpine-core:$ackpineVersion")
8383

8484
// optional - Kotlin extensions and Coroutines support
@@ -105,7 +105,7 @@ dependencies {
105105
License
106106
-------
107107

108-
Copyright (C) 2023-2025 Ilya Fomichev
108+
Copyright (C) 2023-2026 Ilya Fomichev
109109

110110
Licensed under the Apache License, Version 2.0 (the "License");
111111
you may not use this file except in compliance with the License.

ackpine-api/api-main/api/api-main.api

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,6 @@ public final class ru/solrudev/ackpine/uninstaller/UninstallFailure$Exceptional
687687
}
688688

689689
public final class ru/solrudev/ackpine/uninstaller/UninstallFailure$Generic : ru/solrudev/ackpine/uninstaller/UninstallFailure {
690-
public static final field INSTANCE Lru/solrudev/ackpine/uninstaller/UninstallFailure$Generic;
691690
public fun <init> ()V
692691
public fun <init> (Ljava/lang/String;)V
693692
public synthetic fun <init> (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V

ackpine-api/api-main/src/main/kotlin/ru/solrudev/ackpine/uninstaller/UninstallFailure.kt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,7 @@ public sealed class UninstallFailure(public open val message: String?) : Failure
3232
public data class Generic @JvmOverloads public constructor(
3333
public override val message: String? = null
3434
) : UninstallFailure(message) {
35-
3635
private companion object {
37-
38-
@Deprecated(
39-
message = "Binary and Java source compatibility. Will be removed in the next minor release",
40-
level = DeprecationLevel.HIDDEN
41-
)
42-
@Suppress("RedundantVisibilityModifier")
43-
@JvmField
44-
public val INSTANCE: Generic = Generic()
45-
4636
private const val serialVersionUID: Long = 90119473338043981L
4737
}
4838
}

ackpine-api/api-main/src/main/kotlin/ru/solrudev/ackpine/uninstaller/parameters/UninstallParameters.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ public class UninstallParameters private constructor(
112112
*
113113
* Default value is [UninstallerType.DEFAULT].
114114
*/
115+
@set:Deprecated(
116+
message = "The setter was mistakenly left public and will be removed in the next minor release. " +
117+
"Use setUninstallerType function instead.",
118+
level = DeprecationLevel.ERROR
119+
)
115120
public var uninstallerType: UninstallerType = UninstallerType.DEFAULT
116121

117122
/**
@@ -143,6 +148,7 @@ public class UninstallParameters private constructor(
143148
* Sets [UninstallParameters.uninstallerType].
144149
*/
145150
public fun setUninstallerType(uninstallerType: UninstallerType): Builder = apply {
151+
@Suppress("DEPRECATION_ERROR")
146152
this.uninstallerType = uninstallerType
147153
}
148154

ackpine-core/src/main/kotlin/ru/solrudev/ackpine/impl/plugability/AckpineServiceProviders.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ internal class AckpineServiceProviders(private val serviceProviders: Lazy<Set<Ac
3535

3636
@JvmSynthetic
3737
internal fun getByPlugins(pluginClasses: Collection<Class<out AckpinePlugin<*>>>): List<AckpineServiceProvider> {
38-
val plugins = pluginClasses.map { pluginClass -> AckpinePluginCache.get(pluginClass) }
39-
val appliedPlugins = plugins.map { plugin -> plugin.id }
38+
val appliedPlugins = pluginClasses.mapTo(mutableSetOf()) { pluginClass ->
39+
AckpinePluginCache.get(pluginClass).id
40+
}
4041
return getAll().filter { provider ->
4142
provider.pluginIdentifiers.any { it in appliedPlugins }
4243
}

ackpine-plugins/shizuku-ktx/src/main/kotlin/ru/solrudev/ackpine/shizuku/ShizukuPluginParametersDsl.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ public interface ShizukuPluginParametersDsl {
5858
public var allUsers: Boolean
5959

6060
/**
61-
* Installer package for the app. Empty by default, so the calling app package name will be used. Works only on
62-
* Android 9+.
61+
* Installer package for the app. Empty by default, so the calling app package name will be used. Takes effect only
62+
* on Android 9+.
6363
*/
6464
public var installerPackageName: String
6565
}

ackpine-plugins/shizuku-ktx/src/main/kotlin/ru/solrudev/ackpine/shizuku/UninstallParametersDsl.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import ru.solrudev.ackpine.uninstaller.parameters.UninstallParametersDsl
2020

2121
/**
2222
* Applies [ShizukuUninstallPlugin] to the session.
23+
*
24+
* The plugin's parameters take effect only on Android 8+.
2325
*/
2426
public inline fun UninstallParametersDsl.useShizuku(
2527
configure: ShizukuUninstallPluginParametersDsl.() -> Unit = {}

ackpine-plugins/shizuku/src/main/kotlin/ru/solrudev/ackpine/shizuku/ShizukuPackageInstaller.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ internal class ShizukuPackageInstaller(
110110
}
111111

112112
override fun uninstall(packageName: String, statusReceiver: IntentSender, ackpineSessionId: UUID) {
113+
if (Build.VERSION.SDK_INT < 26) {
114+
packageInstaller.uninstall(packageName, statusReceiver)
115+
return
116+
}
113117
val shizukuParams = uninstallParameters[ackpineSessionId]
114118
var flags = 0
115119
if (shizukuParams != null) {

ackpine-plugins/shizuku/src/main/kotlin/ru/solrudev/ackpine/shizuku/ShizukuPlugin.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,8 @@ public class ShizukuPlugin private constructor() : AckpinePlugin<ShizukuPlugin.P
190190
private set
191191

192192
/**
193-
* Installer package for the app. Empty by default, so the calling app package name will be used. Works only
194-
* on Android 9+.
193+
* Installer package for the app. Empty by default, so the calling app package name will be used. Takes
194+
* effect only on Android 9+.
195195
*/
196196
public var installerPackageName: String = ""
197197
private set

ackpine-plugins/shizuku/src/main/kotlin/ru/solrudev/ackpine/shizuku/ShizukuUninstallPlugin.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import ru.solrudev.ackpine.uninstaller.parameters.UninstallerType.INTENT_BASED
2727
/**
2828
* Ackpine plugin which enables uninstallation through Shizuku when applied.
2929
*
30+
* This plugin's parameters take effect only on Android 8+.
31+
*
3032
* Shizuku versions below 11 are not supported, and with these versions uninstallations will fall back to normal
3133
* system's [PackageInstaller], or [INTENT_BASED] uninstaller (if was set).
3234
*
@@ -48,15 +50,15 @@ public class ShizukuUninstallPlugin private constructor() : AckpinePlugin<Shizuk
4850
if (Shizuku.isPreV11()) {
4951
return
5052
}
51-
builder.uninstallerType = UninstallerType.PACKAGE_INSTALLER_BASED
53+
builder.setUninstallerType(UninstallerType.PACKAGE_INSTALLER_BASED)
5254
}
5355

5456
override fun equals(other: Any?): Boolean = this === other || other is ShizukuUninstallPlugin
5557
override fun hashCode(): Int = id.hashCode()
5658
override fun toString(): String = "ShizukuUninstallPlugin"
5759

5860
/**
59-
* Parameters for [ShizukuUninstallPlugin].
61+
* Parameters for [ShizukuUninstallPlugin]. Take effect only on Android 8+.
6062
*/
6163
public class Parameters private constructor(
6264

0 commit comments

Comments
 (0)