From 525c5f8aa48c7adcfa53ad470cd429362f3b297c Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Wed, 15 Jun 2022 11:42:48 +0530 Subject: [PATCH] Fixed Language download --- .../retromusic/extensions/extensions.kt | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/app/src/normal/java/code/name/monkey/retromusic/extensions/extensions.kt b/app/src/normal/java/code/name/monkey/retromusic/extensions/extensions.kt index 3ac58980f..59d05fb74 100644 --- a/app/src/normal/java/code/name/monkey/retromusic/extensions/extensions.kt +++ b/app/src/normal/java/code/name/monkey/retromusic/extensions/extensions.kt @@ -10,6 +10,8 @@ import com.google.android.gms.cast.framework.CastButtonFactory import com.google.android.play.core.splitcompat.SplitCompat import com.google.android.play.core.splitinstall.SplitInstallManagerFactory import com.google.android.play.core.splitinstall.SplitInstallRequest +import com.google.android.play.core.splitinstall.SplitInstallSessionState +import com.google.android.play.core.splitinstall.SplitInstallStateUpdatedListener import java.util.* fun Context.setUpMediaRouteButton(menu: Menu) { @@ -17,7 +19,19 @@ fun Context.setUpMediaRouteButton(menu: Menu) { } fun FragmentActivity.installLanguageAndRecreate(code: String) { + var mySessionId = 0 + val manager = SplitInstallManagerFactory.create(this) + val listener = object: SplitInstallStateUpdatedListener{ + override fun onStateUpdate(state: SplitInstallSessionState) { + if (state.sessionId() == mySessionId) { + recreate() + manager.unregisterListener(this) + } + } + } + manager.registerListener(listener) + if (code != "auto") { // Try to download language resources val request = @@ -25,8 +39,11 @@ fun FragmentActivity.installLanguageAndRecreate(code: String) { .build() manager.startInstall(request) // Recreate the activity on download complete - .addOnCompleteListener { - recreate() + .addOnSuccessListener { + mySessionId = it + } + .addOnFailureListener { + showToast("Language download failed.") } } else { recreate()