From bed3b18312174edd1f8972d34bcb1e2bc22418c0 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Mon, 29 Jan 2018 21:07:33 +0100 Subject: check if app is installedFromPlayStore and use upcoming playstore site for updates --- .../pixart/messenger/ui/ConversationActivity.java | 19 ++++++------------- .../de/pixart/messenger/ui/UpdaterActivity.java | 21 +++++++++++++++++++-- 2 files changed, 25 insertions(+), 15 deletions(-) (limited to 'src/main/java/de/pixart/messenger/ui') diff --git a/src/main/java/de/pixart/messenger/ui/ConversationActivity.java b/src/main/java/de/pixart/messenger/ui/ConversationActivity.java index b7018b58c..274b51d8a 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationActivity.java @@ -483,7 +483,7 @@ public class ConversationActivity extends XmppActivity menuInviteContact.setVisible(false); menuAttach.setVisible(false); menuClearHistory.setVisible(false); - if (installedFromFDroid()) { + if (xmppConnectionService.installedFromFDroid()) { menuUpdater.setVisible(false); } else { menuUpdater.setVisible(true); @@ -523,14 +523,6 @@ public class ConversationActivity extends XmppActivity return super.onCreateOptionsMenu(menu); } - private boolean installedFromFDroid() { - final PackageManager packageManager = this.getPackageManager(); - final String packageID = BuildConfig.APPLICATION_ID; - final String installedFrom = packageManager.getInstallerPackageName(packageID); - Log.d(Config.LOGTAG, "Messenger installed from " + installedFrom); - return installedFrom != null && installedFrom.contains("fdroid"); - } - private Runnable addOmemoDebuggerRunnable = new Runnable() { @Override public void run() { @@ -1386,7 +1378,7 @@ public class ConversationActivity extends XmppActivity if (xmppConnectionService.getAccounts().size() != 0) { if (xmppConnectionService.hasInternetConnection()) { if (xmppConnectionService.isWIFI() || (xmppConnectionService.isMobile() && !xmppConnectionService.isMobileRoaming())) { - if (!installedFromFDroid()) { + if (!xmppConnectionService.installedFromFDroid()) { AppUpdate(); } } @@ -1432,10 +1424,11 @@ public class ConversationActivity extends XmppActivity if (!ExceptionHelper.checkForCrash(this, this.xmppConnectionService) && !mRedirected.get()) { openBatteryOptimizationDialogIfNeeded(); + if (!xmppConnectionService.installedFromFDroid() && !xmppConnectionService.installedFromPlayStore()) { + openInstallFromUnknownSourcesDialogIfNeeded(); + } } - if (!installedFromFDroid()) { - openInstallFromUnknownSourcesDialogIfNeeded(); - } + if (isConversationsOverviewVisable() && isConversationsOverviewHideable()) { xmppConnectionService.getNotificationService().setOpenConversation(null); } else { diff --git a/src/main/java/de/pixart/messenger/ui/UpdaterActivity.java b/src/main/java/de/pixart/messenger/ui/UpdaterActivity.java index 37497ee6a..670e24406 100644 --- a/src/main/java/de/pixart/messenger/ui/UpdaterActivity.java +++ b/src/main/java/de/pixart/messenger/ui/UpdaterActivity.java @@ -7,6 +7,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; @@ -33,9 +34,11 @@ import java.util.List; import de.pixart.messenger.Config; import de.pixart.messenger.R; import de.pixart.messenger.persistance.FileBackend; +import de.pixart.messenger.services.XmppConnectionService; public class UpdaterActivity extends Activity { + XmppConnectionService xmppConnectionService; static final private String FileName = "update.apk"; String appURI = ""; String changelog = ""; @@ -88,8 +91,22 @@ public class UpdaterActivity extends Activity { //ask for permissions on devices >= SDK 23 if (isStoragePermissionGranted() && isNetworkAvailable(getApplicationContext())) { //start downloading the file using the download manager - DownloadFromUrl(appURI, FileName); - Toast.makeText(getApplicationContext(), getText(R.string.download_started), Toast.LENGTH_LONG).show(); + if (xmppConnectionService.installedFromPlayStore()) { + Uri uri = Uri.parse("market://details?id=de.pixart.openmessenger"); + Intent marketIntent = new Intent(Intent.ACTION_VIEW, uri); + PackageManager manager = getApplicationContext().getPackageManager(); + List infos = manager.queryIntentActivities(marketIntent, 0); + if (infos.size() > 0) { + startActivity(marketIntent); + } else { + uri = Uri.parse("https://jabber.pix-art.de/"); + Intent browserIntent = new Intent(Intent.ACTION_VIEW, uri); + startActivity(browserIntent); + } + } else { + DownloadFromUrl(appURI, FileName); + Toast.makeText(getApplicationContext(), getText(R.string.download_started), Toast.LENGTH_LONG).show(); + } } else { Log.d(Config.LOGTAG, "AppUpdater: failed - has storage permissions " + isStoragePermissionGranted() + " and internet " + isNetworkAvailable(getApplicationContext())); } -- cgit v1.2.3