fix: update apk installation intent for MIUI devices

This commit is contained in:
Akash Yadav
2023-03-12 09:08:06 +05:30
parent 1bc3fc7bc1
commit 461bd7debe
3 changed files with 19 additions and 12 deletions
@@ -18,7 +18,6 @@
package com.itsaky.androidide.syntax.colorschemes
import android.content.Context
import com.google.android.material.elevation.SurfaceColors
import com.itsaky.androidide.common.R.attr
import com.itsaky.androidide.utils.isSystemInDarkMode
import com.itsaky.androidide.utils.resolveAttr
@@ -19,12 +19,13 @@ package com.itsaky.androidide.utils
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.content.IntentSender
import android.content.pm.PackageInstaller
import android.content.pm.PackageInstaller.Session
import android.content.pm.PackageInstaller.SessionCallback
import android.text.TextUtils
import com.blankj.utilcode.util.IntentUtils
import androidx.core.content.FileProvider
import com.itsaky.androidide.tasks.executeAsync
import java.io.File
import java.io.IOException
@@ -44,7 +45,7 @@ object ApkInstaller {
*
* @param context The context.
* @param sender The componenent which is requesting the installation. This component receives the
* installation result.
* installation result.
* @param apk The APK file to install.
*/
@JvmStatic
@@ -53,15 +54,26 @@ object ApkInstaller {
log.error("File is not an APK:", apk)
return
}
log.info("Installing APK:", apk)
if (isMiui() || DEBUG_FALLBACK_INSTALLER) {
log.warn(
"Cannot use session-based installer on this device. Falling back to intent-based installer."
)
IntentUtils.getInstallAppIntent(apk)?.let { context.startActivity(it) }
?: log.warn("Cannot start package installer intent. Unknown error occurred.")
@Suppress("DEPRECATION") val intent = Intent(Intent.ACTION_INSTALL_PACKAGE)
val authority = "${context.packageName}.providers.fileprovider"
val uri = FileProvider.getUriForFile(context, authority, apk)
intent.setDataAndType(uri, "application/vnd.android.package-archive")
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_ACTIVITY_NEW_TASK
try {
context.startActivity(intent)
} catch (e: Exception) {
log.warn("Failed to start installation intent", e.message)
}
return
}
@@ -28,13 +28,9 @@ import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.blankj.utilcode.util.SizeUtils;
import com.itsaky.androidide.resources.R;
import com.itsaky.androidide.utils.ResourceUtilsKt;
import io.github.rosemoe.sora.widget.base.EditorPopupWindow;
/**
@@ -82,8 +78,8 @@ public abstract class BaseEditorWindow extends AbstractPopupWindow {
text.setFocusable(false);
text.setPaddingRelative(dp8, dp4, dp8, dp4);
text.setLayoutParams(
new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
return text;
}