Skip to content
This repository was archived by the owner on Dec 29, 2024. It is now read-only.

Commit 87d3a1f

Browse files
committed
Add package receiver as well
1 parent 9e808fa commit 87d3a1f

File tree

4 files changed

+42
-7
lines changed

4 files changed

+42
-7
lines changed

app/src/main/AndroidManifest.xml

+10
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,15 @@
3333
<action android:name="android.intent.action.BOOT_COMPLETED" />
3434
</intent-filter>
3535
</receiver>
36+
37+
<receiver
38+
android:name=".PackageReceiver"
39+
android:directBootAware="true"
40+
android:exported="false">
41+
<intent-filter>
42+
<action android:name="android.intent.action.PACKAGE_ADDED" />
43+
<action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" />
44+
</intent-filter>
45+
</receiver>
3646
</application>
3747
</manifest>

app/src/main/java/org/lsposed/wsa/helper/HomePage.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@ import androidx.compose.material.icons.Icons
1313
import androidx.compose.material.icons.filled.Add
1414
import androidx.compose.material.icons.filled.Delete
1515
import androidx.compose.material3.*
16-
import androidx.compose.runtime.*
16+
import androidx.compose.runtime.Composable
17+
import androidx.compose.runtime.getValue
18+
import androidx.compose.runtime.mutableStateOf
1719
import androidx.compose.runtime.saveable.rememberSaveable
20+
import androidx.compose.runtime.setValue
1821
import androidx.compose.ui.platform.LocalContext
1922
import kotlinx.coroutines.CoroutineScope
2023
import kotlinx.coroutines.Dispatchers
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.lsposed.wsa.helper
2+
3+
import android.content.BroadcastReceiver
4+
import android.content.Context
5+
import android.content.Intent
6+
7+
class PackageReceiver : BroadcastReceiver() {
8+
override fun onReceive(context: Context, intent: Intent) {
9+
getWSAInstallReceiver(context)?.onReceive(context, intent)
10+
}
11+
}

app/src/main/java/org/lsposed/wsa/helper/WSAUtils.kt

+17-6
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,51 @@ fun getWSAInstallReceiver(context: Context) = runCatching {
1515
cl.loadClass("com.microsoft.windows.redirection.AppsRedirectionHandler")
1616
val ctor = handlerClass.getConstructor(Context::class.java)
1717
ctor.newInstance(object : ContextWrapper(context) {
18-
fun onRegister(receiver: BroadcastReceiver?, filter: IntentFilter): Intent? {
18+
fun onRegister(receiver: BroadcastReceiver?, filter: IntentFilter) {
1919
Log.d("LSPosed", "skip receiver")
2020
if (filter.hasAction(Intent.ACTION_PACKAGE_ADDED) && receiver != null) {
2121
installReceiver = receiver
2222
Log.i("LSPosed", "got install receiver")
2323
}
24-
return null
2524
}
2625

2726
override fun registerReceiver(
2827
receiver: BroadcastReceiver?,
2928
filter: IntentFilter
30-
) = onRegister(receiver, filter)
29+
) = run {
30+
onRegister(receiver, filter)
31+
super.registerReceiver(receiver, filter)
32+
}
3133

3234
override fun registerReceiver(
3335
receiver: BroadcastReceiver?,
3436
filter: IntentFilter,
3537
flags: Int
36-
) = onRegister(receiver, filter)
38+
) = run {
39+
onRegister(receiver, filter)
40+
super.registerReceiver(receiver, filter, flags)
41+
}
3742

3843
override fun registerReceiver(
3944
receiver: BroadcastReceiver?,
4045
filter: IntentFilter,
4146
broadcastPermission: String?,
4247
scheduler: Handler?
43-
) = onRegister(receiver, filter)
48+
) = run {
49+
onRegister(receiver, filter)
50+
super.registerReceiver(receiver, filter, broadcastPermission, scheduler)
51+
}
4452

4553
override fun registerReceiver(
4654
receiver: BroadcastReceiver?,
4755
filter: IntentFilter,
4856
broadcastPermission: String?,
4957
scheduler: Handler?,
5058
flags: Int
51-
) = onRegister(receiver, filter)
59+
) = run {
60+
onRegister(receiver, filter)
61+
super.registerReceiver(receiver, filter, broadcastPermission, scheduler, flags)
62+
}
5263
})
5364
installReceiver
5465
}.getOrNull()

0 commit comments

Comments
 (0)