From 0a84b60e7ff4f623c39d5fb7d181a417aef4842f Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Wed, 24 Oct 2018 20:20:10 +0200 Subject: don't use internal updater if store != null --- .../pixart/messenger/services/UpdateService.java | 15 ++++--- .../pixart/messenger/ui/ConversationsActivity.java | 20 ++------- .../de/pixart/messenger/ui/UpdaterActivity.java | 49 +++++++++++----------- .../java/de/pixart/messenger/ui/XmppActivity.java | 7 +++- 4 files changed, 40 insertions(+), 51 deletions(-) (limited to 'src/main') diff --git a/src/main/java/de/pixart/messenger/services/UpdateService.java b/src/main/java/de/pixart/messenger/services/UpdateService.java index bf5242939..1d797324e 100644 --- a/src/main/java/de/pixart/messenger/services/UpdateService.java +++ b/src/main/java/de/pixart/messenger/services/UpdateService.java @@ -42,7 +42,7 @@ public class UpdateService extends AsyncTask { - Uri uri = Uri.parse(Config.CHANGELOG_URL); // missing 'http://' will cause crashed - Intent intent = new Intent(Intent.ACTION_VIEW, uri); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(intent); - overridePendingTransition(R.animator.fade_in, R.animator.fade_out); - //restart updater to show dialog again after coming back after opening changelog - recreate(); + Uri uri = Uri.parse(Config.CHANGELOG_URL); // missing 'http://' will cause crash + try { + Intent intent = new Intent(Intent.ACTION_VIEW, uri); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + overridePendingTransition(R.animator.fade_in, R.animator.fade_out); + } catch (Exception e) { + e.printStackTrace(); + } finally { + //restart updater to show dialog again after coming back after opening changelog + recreate(); + } }) .setNegativeButton(R.string.remind_later, (dialog, id) -> { // User cancelled the dialog @@ -212,8 +215,8 @@ public class UpdaterActivity extends XmppActivity { if (connectivity != null) { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) { - for (int i = 0; i < info.length; i++) { - if (info[i].getState() == NetworkInfo.State.CONNECTED) { + for (NetworkInfo anInfo : info) { + if (anInfo.getState() == NetworkInfo.State.CONNECTED) { return true; } } @@ -247,17 +250,14 @@ public class UpdaterActivity extends XmppActivity { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage(R.string.cancel_update) .setCancelable(false) - .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int id) { - if (downloadTask != null && !downloadTask.getStatus().equals(AsyncTask.Status.FINISHED)) { - downloadTask.cancel(true); - } - if (mProgressDialog.isShowing()) { - mProgressDialog.dismiss(); - } - UpdaterActivity.this.finish(); + .setPositiveButton(R.string.yes, (dialog, id) -> { + if (downloadTask != null && !downloadTask.getStatus().equals(AsyncTask.Status.FINISHED)) { + downloadTask.cancel(true); } + if (mProgressDialog.isShowing()) { + mProgressDialog.dismiss(); + } + UpdaterActivity.this.finish(); }) .setNegativeButton(R.string.no, (dialog, id) -> dialog.cancel()); AlertDialog alert = builder.create(); @@ -286,13 +286,13 @@ public class UpdaterActivity extends XmppActivity { File dir = new File(FileBackend.getAppUpdateDirectory()); File file = new File(dir, FileName); + XmppConnectionService xmppConnectionService; private Context context; private PowerManager.WakeLock mWakeLock; private long startTime = 0; - XmppConnectionService xmppConnectionService; private boolean mUseTor; - public DownloadTask(Context context) { + DownloadTask(Context context) { this.context = context; } @@ -409,6 +409,5 @@ public class UpdaterActivity extends XmppActivity { UpdaterActivity.this.finish(); } } - } } diff --git a/src/main/java/de/pixart/messenger/ui/XmppActivity.java b/src/main/java/de/pixart/messenger/ui/XmppActivity.java index dcf3afed4..0a0f5da77 100644 --- a/src/main/java/de/pixart/messenger/ui/XmppActivity.java +++ b/src/main/java/de/pixart/messenger/ui/XmppActivity.java @@ -74,6 +74,7 @@ import de.pixart.messenger.entities.Message; import de.pixart.messenger.entities.Presences; import de.pixart.messenger.services.AvatarService; import de.pixart.messenger.services.BarcodeProvider; +import de.pixart.messenger.services.UpdateService; import de.pixart.messenger.services.XmppConnectionService; import de.pixart.messenger.services.XmppConnectionService.XmppConnectionBinder; import de.pixart.messenger.ui.util.PresenceSelector; @@ -1236,7 +1237,7 @@ public abstract class XmppActivity extends ActionBarActivity { } protected void openInstallFromUnknownSourcesDialogIfNeeded() { - if (!installFromUnknownSourceAllowed()) { + if (!installFromUnknownSourceAllowed() && xmppConnectionService.installedFrom() == null) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.install_from_unknown_sources_disabled); builder.setMessage(R.string.install_from_unknown_sources_disabled_dialog); @@ -1254,6 +1255,10 @@ public abstract class XmppActivity extends ActionBarActivity { startActivityForResult(intent, REQUEST_UNKNOWN_SOURCE_OP); } catch (ActivityNotFoundException e) { Toast.makeText(XmppActivity.this, R.string.device_does_not_support_battery_op, Toast.LENGTH_SHORT).show(); + } finally { + UpdateService task = new UpdateService(this, xmppConnectionService.installedFrom(), xmppConnectionService); + task.executeOnExecutor(UpdateService.THREAD_POOL_EXECUTOR, "true"); + Log.d(Config.LOGTAG, "AppUpdater started"); } }); builder.create().show(); -- cgit v1.2.3