diff options
author | Christian S <christian@pix-art.de> | 2016-05-06 21:42:30 +0200 |
---|---|---|
committer | Christian S <christian@pix-art.de> | 2016-05-06 21:42:30 +0200 |
commit | 70971661cb04a1f6ce6beb8140c2af86119918a2 (patch) | |
tree | 42fa9e937f948f2c23dfc8c6fdc18771bb732d2a /src/main/java/eu/siacs/conversations/ui/ConversationActivity.java | |
parent | 2b25969a7878a1772dec26ac6ee9f7286f4e73bd (diff) |
Ask to uninstall the plugins because the features are directly integrated
Diffstat (limited to 'src/main/java/eu/siacs/conversations/ui/ConversationActivity.java')
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/ConversationActivity.java | 73 |
1 files changed, 70 insertions, 3 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java index b336d98e2..5b84446ec 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java @@ -13,6 +13,8 @@ import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.IntentSender.SendIntentException; import android.content.SharedPreferences; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; @@ -203,8 +205,6 @@ public class ConversationActivity extends XmppActivity } } - AppUpdate(); - setContentView(R.layout.fragment_conversations_overview); this.mConversationFragment = new ConversationFragment(); @@ -345,11 +345,78 @@ public class ConversationActivity extends XmppActivity } } - protected void AppUpdate() { + public boolean isPackageInstalled(String targetPackage){ + List<ApplicationInfo> packages; + PackageManager pm; + pm = getPackageManager(); + packages = pm.getInstalledApplications(0); + for (ApplicationInfo packageInfo : packages) { + if(packageInfo.packageName.equals(targetPackage)) return true; + } + return false; + } + + protected void AppUpdate() { String PREFS_NAME = "UpdateTimeStamp"; SharedPreferences UpdateTimeStamp = getApplicationContext().getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); long lastUpdateTime = UpdateTimeStamp.getLong("lastUpdateTime", 0); + //detect installed plugins and deinstall them + PackageInfo pInfo = null; + try { + pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } + //get the app version Name for display + final int versionCode = pInfo.versionCode; + // delete voice recorder and location plugin for versions >= 142 (1.12.1) + if (versionCode >= 142) { + Log.d(Config.LOGTAG, "New Features - Uninstall plugins"); + if (isPackageInstalled("eu.siacs.conversations.voicerecorder") || isPackageInstalled("eu.siacs.conversations.sharelocation") || isPackageInstalled("com.samwhited.opensharelocationplugin")) { + AlertDialog.Builder builder = new AlertDialog.Builder(ConversationActivity.this); + builder.setMessage(R.string.uninstall_plugins) + .setPositiveButton(R.string.uninstall, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialogInterface, int i) { + //start the deinstallation of voice recorder + if (isPackageInstalled("eu.siacs.conversations.voicerecorder")) { + Uri packageURI_VR = Uri.parse("package:eu.siacs.conversations.voicerecorder"); + Intent uninstallIntent_VR = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageURI_VR); + if (uninstallIntent_VR.resolveActivity(getPackageManager()) != null) { + Log.d(Config.LOGTAG, "New Features - Uninstall voice recorder"); + startActivity(uninstallIntent_VR); + } + } + //start the deinstallation of share location + if (isPackageInstalled("eu.siacs.conversations.sharelocation")) { + Uri packageURI_SL = Uri.parse("package:eu.siacs.conversations.sharelocation"); + Intent uninstallIntent_SL = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageURI_SL); + if (uninstallIntent_SL.resolveActivity(getPackageManager()) != null) { + Log.d(Config.LOGTAG, "New Features - Uninstall share location"); + startActivity(uninstallIntent_SL); + } + } + //start the deinstallation of open share location + if (isPackageInstalled("com.samwhited.opensharelocationplugin")) { + Uri packageURI_SL = Uri.parse("package:com.samwhited.opensharelocationplugin"); + Intent uninstallIntent_SL = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageURI_SL); + if (uninstallIntent_SL.resolveActivity(getPackageManager()) != null) { + Log.d(Config.LOGTAG, "New Features - Uninstall open share location"); + startActivity(uninstallIntent_SL); + } + } + } + }) + .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialogInterface, int i) { + Log.d(Config.LOGTAG, "New Features - Uninstall cancled"); + + } + }); + builder.create().show(); + } + } + Log.d(Config.LOGTAG, "AppUpdater - LastUpdateTime: " + lastUpdateTime); if ((lastUpdateTime + (Config.UPDATE_CHECK_TIMER * 1000)) < System.currentTimeMillis()) { |