mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
fix: update apk installation intent for MIUI devices
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user