summaryrefslogtreecommitdiff
path: root/NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc
diff options
context:
space:
mode:
Diffstat (limited to 'NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc')
-rw-r--r--NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc34
1 files changed, 23 insertions, 11 deletions
diff --git a/NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc b/NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc
index 739d2b4..427eb63 100644
--- a/NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc
+++ b/NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc
@@ -30,8 +30,8 @@
#endif
#define LOG_TAG "DOTNET_INSTALLER_PLUGIN"
-static bool aotPluginInstalled = false;
-static bool aotPluginFinished = false;
+static std::string prevInstallPkgId = std::string("");
+static std::string prevFinishPkgId = std::string("");
typedef struct metadata_s {
const char* key;
@@ -40,12 +40,16 @@ typedef struct metadata_s {
extern "C" int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgId, const char *appId, GList *list)
{
+ if (pkgId == NULL) {
+ return 0;
+ }
+
// Can be multiple apps in one package
- if (aotPluginInstalled) {
- _INFO("AOT plugin already installed");
+ if (strcmp(pkgId, prevInstallPkgId.c_str()) == 0) {
+ _INFO("AOT Plugin already run for same pkgId (%s)", pkgId);
return 0;
}
- aotPluginInstalled = true;
+ prevInstallPkgId = pkgId;
int skipOpt = false;
if (!pkgmgr_installer_info_get_skip_optimization(&skipOpt)) {
@@ -109,12 +113,16 @@ extern "C" int PKGMGR_MDPARSER_PLUGIN_REMOVED(const char *pkgId, const char *app
extern "C" int PKGMGR_MDPARSER_PLUGIN_CLEAN(const char *pkgId, const char *appId, GList *list)
{
+ if (pkgId == NULL) {
+ return 0;
+ }
+
// Can be multiple apps in one package
- if (aotPluginFinished) {
- _INFO("AOT plugin already finished(CLEAN)");
+ if (strcmp(pkgId, prevFinishPkgId.c_str()) == 0) {
+ _INFO("AOT Plugin(CLEAN) already run for same pkgId (%s)", pkgId);
return 0;
}
- aotPluginFinished = true;
+ prevFinishPkgId = pkgId;
finalizeNICommon();
return 0;
@@ -122,12 +130,16 @@ extern "C" int PKGMGR_MDPARSER_PLUGIN_CLEAN(const char *pkgId, const char *appId
extern "C" int PKGMGR_MDPARSER_PLUGIN_UNDO(const char *pkgId, const char *appId, GList *list)
{
+ if (pkgId == NULL) {
+ return 0;
+ }
+
// Can be multiple apps in one package
- if (aotPluginFinished) {
- _INFO("AOT plugin already finished(UNDO)");
+ if (strcmp(pkgId, prevFinishPkgId.c_str()) == 0) {
+ _INFO("AOT Plugin(UNDO) already run for same pkgId (%s)", pkgId);
return 0;
}
- aotPluginFinished = true;
+ prevFinishPkgId = pkgId;
finalizeNICommon();
return 0;