From ef6dc57d5a3d01cb3a79123efc63803f7067ff8b Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sat, 28 Jul 2018 11:59:22 +0200 Subject: use TOR for updater --- .../pixart/messenger/services/UpdateService.java | 48 +++--- .../de/pixart/messenger/ui/UpdaterActivity.java | 178 +++++++++++---------- 2 files changed, 120 insertions(+), 106 deletions(-) (limited to 'src/main/java/de/pixart/messenger') diff --git a/src/main/java/de/pixart/messenger/services/UpdateService.java b/src/main/java/de/pixart/messenger/services/UpdateService.java index c08dab683..da940f7b7 100644 --- a/src/main/java/de/pixart/messenger/services/UpdateService.java +++ b/src/main/java/de/pixart/messenger/services/UpdateService.java @@ -26,25 +26,21 @@ import de.pixart.messenger.Config; import de.pixart.messenger.R; import de.pixart.messenger.ui.UpdaterActivity; +import static de.pixart.messenger.http.HttpConnectionManager.getProxy; import static de.pixart.messenger.services.NotificationService.UPDATE_NOTIFICATION_ID; public class UpdateService extends AsyncTask { - public UpdateService (){ - } - + XmppConnectionService mXmppConnectionService; + private boolean mUseTor; private Context context; private boolean playstore; + public UpdateService() { + } public UpdateService(Context context, boolean PlayStore) { this.context = context; this.playstore = PlayStore; - } - - public class Wrapper - { - public boolean UpdateAvailable = false; - public boolean NoUpdate = false; - public boolean isError = false; + this.mUseTor = mXmppConnectionService.useTorToConnect(); } @Override @@ -60,9 +56,13 @@ public class UpdateService extends AsyncTask { + String ToastMessage = ""; + if (error) { + ToastMessage = context.getString(R.string.failed); + } else { + ToastMessage = context.getString(R.string.no_update_available); } + Toast.makeText(context, ToastMessage, Toast.LENGTH_LONG).show(); }); } @@ -211,4 +207,10 @@ public class UpdateService extends AsyncTask= 23) { + if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) + == PackageManager.PERMISSION_GRANTED) { + return true; + } else { + + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); + return false; + } + } else { //permission is automatically granted on sdk<23 upon installation + return true; + } + } + + //show warning on back pressed + @Override + public void onBackPressed() { + showCancelDialog(); + } + + private void showCancelDialog() { + 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.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(); + alert.show(); + } + + @Override + public void onPause() { + super.onPause(); + if (downloadTask != null && !downloadTask.getStatus().equals(AsyncTask.Status.FINISHED)) { + downloadTask.cancel(true); + } + UpdaterActivity.this.finish(); + } + + @Override + protected void onStop() { + super.onStop(); + if (downloadTask != null && !downloadTask.getStatus().equals(AsyncTask.Status.FINISHED)) { + downloadTask.cancel(true); + } + UpdaterActivity.this.finish(); + } + private class DownloadTask extends AsyncTask { + File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + FileBackend.getDirectoryName("Update", false)); + File file = new File(dir, FileName); private Context context; - private PowerManager.WakeLock mWakeLock; private long startTime = 0; - File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + FileBackend.getDirectoryName("Update", false)); - File file = new File(dir, FileName); + public DownloadTask(Context context) { this.context = context; } @@ -233,7 +315,12 @@ public class UpdaterActivity extends XmppActivity { Log.d(Config.LOGTAG, "AppUpdater: download update from url: " + sUrl[0] + " to file name: " + file.toString()); URL url = new URL(sUrl[0]); - connection = (HttpURLConnection) url.openConnection(); + + if (mUseTor) { + connection = (HttpURLConnection) url.openConnection(getProxy()); + } else { + connection = (HttpURLConnection) url.openConnection(); + } connection.connect(); // expect HTTP 200 OK, so we don't mistakenly save error report @@ -309,79 +396,4 @@ public class UpdaterActivity extends XmppActivity { } } - //check for internet connection - private boolean isNetworkAvailable(Context context) { - ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - 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) { - return true; - } - } - } - } - return false; - } - - public boolean isStoragePermissionGranted() { - if (Build.VERSION.SDK_INT >= 23) { - if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) - == PackageManager.PERMISSION_GRANTED) { - return true; - } else { - - ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); - return false; - } - } else { //permission is automatically granted on sdk<23 upon installation - return true; - } - } - - //show warning on back pressed - @Override - public void onBackPressed() { - showCancelDialog(); - } - - private void showCancelDialog() { - 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.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(); - alert.show(); - } - - @Override - public void onPause() { - super.onPause(); - if (downloadTask != null && !downloadTask.getStatus().equals(AsyncTask.Status.FINISHED)) { - downloadTask.cancel(true); - } - UpdaterActivity.this.finish(); - } - - @Override - protected void onStop() { - super.onStop(); - if (downloadTask != null && !downloadTask.getStatus().equals(AsyncTask.Status.FINISHED)) { - downloadTask.cancel(true); - } - UpdaterActivity.this.finish(); - } } -- cgit v1.2.3