Final fixes

This commit is contained in:
Vologhat
2022-06-16 00:04:34 +03:00
parent ce64296c01
commit 1b02e806f8
2 changed files with 21 additions and 11 deletions
@@ -7,15 +7,17 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Environment;
import android.widget.HeaderViewListAdapter;
import com.vk.core.f.FileUtils;
import java.io.File;
import ru.vtosters.lite.ui.activities.APKInstallActivity;
import ru.vtosters.lite.ui.vkui.ModalBottomSheetWrapper;
import ru.vtosters.lite.utils.Globals;
public class OTADownloader {
private static BroadcastReceiver callback = new BroadcastReceiver() {
private static final BroadcastReceiver callback = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
var extras = intent.getExtras();
@@ -23,17 +25,28 @@ public class OTADownloader {
|| !intent.getAction().equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) return;
var query = new DownloadManager.Query();
long id = extras.getLong(DownloadManager.EXTRA_DOWNLOAD_ID);
var id = extras.getLong(DownloadManager.EXTRA_DOWNLOAD_ID);
query.setFilterById(id);
var manager = (DownloadManager) Globals.getContext().getSystemService(Context.DOWNLOAD_SERVICE);
var cursor = manager.query(query);
if (cursor.moveToFirst()) {
var status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
if (status == DownloadManager.STATUS_SUCCESSFUL) {
var uri = Uri.parse(cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_URI)));
APKInstallActivity.installOta(Globals.getContext(), uri);
var downloadDir = new File(Environment.getExternalStorageDirectory(), "Download");
if (!downloadDir.exists()) return;
var list = downloadDir.listFiles();
if (list == null || list.length == 0) return;
var maxIndex = -1;
for (File file : list) {
var name = file.getAbsolutePath().substring(file.getAbsolutePath().lastIndexOf("/") + 1);
if (file.isFile()
&& name.matches("VTLite-\\d+\\.apk"))
maxIndex = Math.max(maxIndex, Integer.parseInt(name.replaceFirst(".+-(\\d+).+", "$1")));
}
File apk = maxIndex == -1 ? new File(downloadDir, "VTLite.apk") : new File(downloadDir, "VTLite-" + maxIndex + ".apk");
APKInstallActivity.installOta(context, FileUtils.h(apk));
} else if (status == DownloadManager.STATUS_FAILED) {
// do something
}
}
}
@@ -41,6 +54,7 @@ public class OTADownloader {
public static void downloadBuild(String url) {
var context = Globals.getContext();
url = "https://github.com/vtosters/lite/releases/download/v0.2.9-beta2/VTLite.apk";
var uri = Uri.parse(url);
context.registerReceiver(callback, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
@@ -1,14 +1,10 @@
package ru.vtosters.lite.ui.dialogs;
import android.app.Activity;
import android.text.Html;
import android.widget.Toast;
import com.vk.core.dialogs.VKProgressDialog;
import ru.vtosters.lite.downloaders.OTADownloader;
import ru.vtosters.lite.ui.vkui.ModalBottomSheetWrapper;
import ru.vtosters.lite.utils.Globals;
import ru.vtosters.lite.utils.OTAHelper;
public class OTADialog implements OTAHelper.OTAListener {