diff options
author | steckbrief <steckbrief@chefmail.de> | 2019-07-07 22:04:50 +0200 |
---|---|---|
committer | steckbrief <steckbrief@chefmail.de> | 2019-07-07 22:04:50 +0200 |
commit | abde267e5c1abc02ef1130f5ffd058199582926d (patch) | |
tree | f805833dc85b2b61a27f06d7cbc540ff4ba5b395 /src/main/java/de/pixart/messenger/services/UpdateService.java | |
parent | 08244e218a3cd08bb1abd1be31776510eee5da6a (diff) |
implements FS#272: Remove 'App-Updater'
Diffstat (limited to 'src/main/java/de/pixart/messenger/services/UpdateService.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/services/UpdateService.java | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/src/main/java/de/pixart/messenger/services/UpdateService.java b/src/main/java/de/pixart/messenger/services/UpdateService.java deleted file mode 100644 index 1d797324e..000000000 --- a/src/main/java/de/pixart/messenger/services/UpdateService.java +++ /dev/null @@ -1,205 +0,0 @@ -package de.pixart.messenger.services; - -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; -import android.os.AsyncTask; -import android.os.Handler; -import android.os.Looper; -import android.util.Log; -import android.widget.Toast; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.URL; - -import javax.net.ssl.HttpsURLConnection; - -import de.pixart.messenger.BuildConfig; -import de.pixart.messenger.Config; -import de.pixart.messenger.R; -import de.pixart.messenger.ui.UpdaterActivity; - -import static de.pixart.messenger.http.HttpConnectionManager.getProxy; - -public class UpdateService extends AsyncTask<String, Object, UpdateService.Wrapper> { - private boolean mUseTor; - private Context context; - private String store; - private NotificationService getNotificationService; - public UpdateService() { - } - - public UpdateService(Context context, String Store, XmppConnectionService mXmppConnectionService) { - this.context = context; - this.store = Store; - this.mUseTor = mXmppConnectionService.useTorToConnect(); - this.getNotificationService = mXmppConnectionService.getNotificationService(); - } - - @Override - protected Wrapper doInBackground(String... params) { - StringBuilder jsonString = new StringBuilder(); - boolean UpdateAvailable = false; - boolean showNoUpdateToast = false; - boolean isError = false; - - if (params[0].equals("true")) { - showNoUpdateToast = true; - } - - HttpsURLConnection connection = null; - - try { - URL url = new URL(Config.UPDATE_URL); - if (mUseTor) { - connection = (HttpsURLConnection) url.openConnection(getProxy()); - } else { - connection = (HttpsURLConnection) url.openConnection(); - } - connection.setConnectTimeout(Config.SOCKET_TIMEOUT * 1000); - connection.setReadTimeout(Config.SOCKET_TIMEOUT * 1000); - connection.setRequestProperty("User-Agent", context.getString(R.string.app_name)); - BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); - String line; - while ((line = reader.readLine()) != null) { - jsonString.append(line); - } - } catch (Exception e) { - e.printStackTrace(); - isError = true; - } finally { - if (connection != null) { - connection.disconnect(); - } - } - - try { - JSONObject json = new JSONObject(jsonString.toString()); - if (json.getBoolean("success") && json.has("latestVersion") && json.has("appURI") && json.has("filesize")) { - String version = json.getString("latestVersion"); - String ownVersion = BuildConfig.VERSION_NAME; - String url = json.getString("appURI"); - String filesize = json.getString("filesize"); - String changelog = ""; - if (json.has("changelog")) { - changelog = json.getString("changelog"); - } - if (checkVersion(version, ownVersion) >= 1) { - Log.d(Config.LOGTAG, "AppUpdater: Version " + ownVersion + " should be updated to " + version); - UpdateAvailable = true; - showNotification(url, changelog, version, filesize, store); - } else { - Log.d(Config.LOGTAG, "AppUpdater: Version " + ownVersion + " is up to date"); - UpdateAvailable = false; - } - } - } catch (JSONException e) { - e.printStackTrace(); - } - Wrapper w = new Wrapper(); - w.isError = isError; - w.UpdateAvailable = UpdateAvailable; - w.NoUpdate = showNoUpdateToast; - return w; - } - - @Override - protected void onPostExecute(Wrapper w) { - super.onPostExecute(w); - if (w.isError) { - showToastMessage(true, true); - return; - } - if (!w.UpdateAvailable) { - showToastMessage(w.NoUpdate, false); - } - } - - private void showToastMessage(boolean show, final boolean error) { - if (!show) { - return; - } - Handler handler = new Handler(Looper.getMainLooper()); - handler.post(() -> { - 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(); - }); - } - - private void showNotification(String url, String changelog, String version, String filesize, String store) { - Intent intent = new Intent(context, UpdaterActivity.class); - intent.putExtra("update", "PixArtMessenger_UpdateService"); - intent.putExtra("url", url); - intent.putExtra("changelog", changelog); - intent.putExtra("store", store); - PendingIntent pi = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); - getNotificationService.AppUpdateServiceNotification(getNotificationService.AppUpdateNotification(pi, version, filesize)); - } - - private int checkVersion(String remoteVersion, String installedVersion) { - // Use this instead of String.compareTo() for a non-lexicographical - // comparison that works for version strings. e.g. "1.10".compareTo("1.6"). - // - // @param str1 a string of ordinal numbers separated by decimal points. - // @param str2 a string of ordinal numbers separated by decimal points. - // @return The result is a negative integer if str1 is _numerically_ less than str2. - // The result is a positive integer if str1 is _numerically_ greater than str2. - // The result is zero if the strings are _numerically_ equal. - // @note It does not work if "1.10" is supposed to be equal to "1.10.0". - - String[] remote = null; - String[] installed = null; - String[] remoteV = null; - String[] installedV = null; - try { - installedV = installedVersion.split(" "); - Log.d(Config.LOGTAG, "AppUpdater: Version installed: " + installedV[0]); - installed = installedV[0].split("\\."); - } catch (Exception e) { - e.printStackTrace(); - } - try { - remoteV = remoteVersion.split(" "); - if (installedV != null && installedV.length > 1) { - if (installedV[1] != null) { - remoteV[0] = remoteV[0] + ".1"; - } - } - Log.d(Config.LOGTAG, "AppUpdater: Version on server: " + remoteV[0]); - remote = remoteV[0].split("\\."); - } catch (Exception e) { - e.printStackTrace(); - } - int i = 0; - // set index to first non-equal ordinal or length of shortest localVersion string - if (remote != null && installed != null) { - while (i < remote.length && i < installed.length && remote[i].equals(installed[i])) { - i++; - } - // compare first non-equal ordinal number - if (i < remote.length && i < installed.length) { - int diff = Integer.valueOf(remote[i]).compareTo(Integer.valueOf(installed[i])); - return Integer.signum(diff); - } - // the strings are equal or one string is a substring of the other - // e.g. "1.2.3" = "1.2.3" or "1.2.3" < "1.2.3.4" - return Integer.signum(remote.length - installed.length); - } - return 0; - } - - class Wrapper { - boolean UpdateAvailable = false; - boolean NoUpdate = false; - boolean isError = false; - } -}
\ No newline at end of file |