package com.github.gen2brain.crtaci.utils;
import android.app.DownloadManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Environment;
import android.preference.PreferenceManager;
import java.util.Locale;
import go.crtaci.Crtaci;
public class Update {
public static boolean checkUpdate(Context ctx) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
long now = Utils.getUnixTime();
long checked = prefs.getLong("checked", 0);
long diff = now - checked;
if(diff > 86400) {
SharedPreferences.Editor edit = prefs.edit();
edit.putLong("checked", now);
edit.apply();
return true;
}
return false;
}
static String getCurrentVersion(Context ctx) {
return Crtaci.Version;
}
private static String getUpdateVersion(Context ctx) {
String ver = getCurrentVersion(ctx);
float version = Float.parseFloat(ver) + 0.1f;
return String.format(Locale.ROOT, "%.1f", version);
}
private static String getUpdateUrl(Context ctx) {
String ver = getUpdateVersion(ctx);
return String.format(Locale.ROOT, "https://crtaci.rs/download/crtaci-%s.apk", ver);
}
public static boolean updateExists(Context ctx) {
try {
return Crtaci.checkUpdate();
} catch(Exception e) {
e.printStackTrace();
return false;
}
}
static void downloadUpdate(Context ctx) {
DownloadManager downloadmanager;
downloadmanager = (DownloadManager) ctx.getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse(getUpdateUrl(ctx));
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setTitle("Downloading update");
request.setDescription("Crtaci");
request.setMimeType("application/vnd.android.package-archive");
request.setVisibleInDownloadsUi(true);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "crtaci-"+getUpdateVersion(ctx)+".apk");
downloadmanager.enqueue(request);
}
}