Loading service/java/foundation/e/splitinstall/service/SplitInstallBinder.kt +28 −1 Original line number Diff line number Diff line Loading @@ -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") Loading @@ -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() Loading service/java/foundation/e/splitinstall/service/SplitInstallService.kt +12 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) } } Loading
service/java/foundation/e/splitinstall/service/SplitInstallBinder.kt +28 −1 Original line number Diff line number Diff line Loading @@ -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") Loading @@ -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() Loading
service/java/foundation/e/splitinstall/service/SplitInstallService.kt +12 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) } }