Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dac04437 authored by Jonathan Klee's avatar Jonathan Klee
Browse files

Add callbacks

parent 0168fca2
Loading
Loading
Loading
Loading
+28 −1
Original line number Diff line number Diff line
@@ -16,22 +16,27 @@

package foundation.e.splitinstall.service

import android.annotation.TargetApi
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.content.pm.PackageInstaller
import android.os.Build
import android.os.Handler
import android.util.Log
import foundation.e.splitinstall.ISplitInstallService
import java.io.File

class SplitInstallBinder(
    val applicationContext: Context
    private val applicationContext: Context,
    private val handler: Handler
) : ISplitInstallService.Stub() {

    companion object {
        const val TAG = SplitInstallService.TAG
    }

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    override fun installSplitModule(packageName: String, modulePath: String) {

        Log.i(TAG, "installing $modulePath")
@@ -56,6 +61,28 @@ class SplitInstallBinder(
            val flags = PendingIntent.FLAG_UPDATE_CURRENT
            val servicePendingIntent =
                PendingIntent.getBroadcast(applicationContext, sessionId, callbackIntent, flags)

            packageInstaller.registerSessionCallback(object : PackageInstaller.SessionCallback() {
                override fun onCreated(sessionId: Int) {
                    Log.d(TAG, "onCreated $sessionId")
                }

                override fun onBadgingChanged(sessionId: Int) {
                    Log.d(TAG, "onBadgingChanged $sessionId")
                }

                override fun onActiveChanged(sessionId: Int, active: Boolean) {
                    Log.d(TAG, "onActiveChanged $sessionId $active")
                }

                override fun onProgressChanged(sessionId: Int, progress: Float) {
                    Log.d(TAG, "onProgressChanged $sessionId $progress")
                }

                override fun onFinished(sessionId: Int, success: Boolean) {
                    Log.d(TAG, "onFinished $sessionId $success")
                }
            }, handler)
            session.commit(servicePendingIntent.intentSender)
        } catch (e: Exception) {
            session.abandon()
+12 −1
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@ import android.content.Intent
import android.content.pm.PackageInstaller.Session
import android.content.pm.PackageInstaller.SessionParams
import android.os.Build
import android.os.Handler
import android.os.HandlerThread
import android.os.IBinder
import android.util.Log
import foundation.e.splitinstall.service.R
@@ -38,7 +40,16 @@ class SplitInstallService : Service() {
        const val TAG = "SplitInstallSysService"
    }

    private lateinit var handler: Handler
    private val handlerThread = HandlerThread("thread")

    override fun onCreate() {
        super.onCreate()
        handlerThread.start()
        handler = Handler(handlerThread.looper)
    }

    override fun onBind(intent: Intent?): IBinder? {
        return SplitInstallBinder(applicationContext)
        return SplitInstallBinder(applicationContext, handler)
    }
}