fix backup/restore for Android 13

Update for V2.0
This commit is contained in:
woheller69 2023-07-31 11:46:57 +02:00
parent 66c12873d8
commit 39cb0d9b65
4 changed files with 17 additions and 4 deletions

View file

@ -8,8 +8,8 @@ android {
applicationId "org.woheller69.solxpect" applicationId "org.woheller69.solxpect"
minSdkVersion 26 minSdkVersion 26
targetSdkVersion 33 targetSdkVersion 33
versionCode 19 versionCode 20
versionName "1.9" versionName "2.0"
buildConfigField "String", "BASE_URL", "\"https://api.open-meteo.com/v1/\"" buildConfigField "String", "BASE_URL", "\"https://api.open-meteo.com/v1/\""
buildConfigField "String", "GITHUB_URL","\"https://github.com/woheller69/solxpect/\"" buildConfigField "String", "GITHUB_URL","\"https://github.com/woheller69/solxpect/\""

View file

@ -5,6 +5,7 @@ import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityCompat;
@ -16,6 +17,7 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.nio.file.Files;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream; import java.util.zip.ZipInputStream;
@ -25,8 +27,12 @@ public class Backup {
public static boolean checkPermissionStorage (Context context) { public static boolean checkPermissionStorage (Context context) {
int result = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE); int result = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE);
int result1 = ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE); int result1 = ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
return true;
} else {
return result == PackageManager.PERMISSION_GRANTED && result1 == PackageManager.PERMISSION_GRANTED; return result == PackageManager.PERMISSION_GRANTED && result1 == PackageManager.PERMISSION_GRANTED;
} }
}
public static void requestPermission(Activity activity) { public static void requestPermission(Activity activity) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity); AlertDialog.Builder builder = new AlertDialog.Builder(activity);
@ -52,7 +58,7 @@ public class Backup {
try (ZipInputStream zipInputStream = new ZipInputStream(src)) { try (ZipInputStream zipInputStream = new ZipInputStream(src)) {
while ((zipEntry = zipInputStream.getNextEntry()) != null) { while ((zipEntry = zipInputStream.getNextEntry()) != null) {
File extractedFile = new File(targetDir ,zipEntry.getName()); File extractedFile = new File(targetDir ,zipEntry.getName());
try (OutputStream outputStream = new FileOutputStream(extractedFile)) { try (OutputStream outputStream = Files.newOutputStream(extractedFile.toPath())) {
while ((readLen = zipInputStream.read(readBuffer)) != -1) { while ((readLen = zipInputStream.read(readBuffer)) != -1) {
outputStream.write(readBuffer, 0, readLen); outputStream.write(readBuffer, 0, readLen);
} }

View file

@ -3,6 +3,7 @@ package org.woheller69.weather.activities;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
@ -25,6 +26,7 @@ import android.view.MenuItem;
import org.woheller69.weather.BuildConfig; import org.woheller69.weather.BuildConfig;
import org.woheller69.weather.R; import org.woheller69.weather.R;
import org.woheller69.weather.database.SQLiteHelper;
import org.woheller69.weather.preferences.AppPreferencesManager; import org.woheller69.weather.preferences.AppPreferencesManager;
import static java.lang.Boolean.TRUE; import static java.lang.Boolean.TRUE;
@ -170,6 +172,9 @@ public class NavigationActivity extends AppCompatActivity implements OnNavigatio
intent = new Intent(this, HelpActivity.class); intent = new Intent(this, HelpActivity.class);
startActivity(intent); startActivity(intent);
}else if(itemId==R.id.nav_backuprestore) { }else if(itemId==R.id.nav_backuprestore) {
SQLiteHelper dbhelper = SQLiteHelper.getInstance(this); //create a database if it does not yet exist
SQLiteDatabase database = dbhelper.getWritableDatabase();
database.close();
intent = new Intent(this, BackupRestoreActivity.class); intent = new Intent(this, BackupRestoreActivity.class);
startActivity(intent); startActivity(intent);
}else if (itemId==R.id.star_on_github){ }else if (itemId==R.id.star_on_github){

View file

@ -0,0 +1,2 @@
Improved icon
Fix backup/restore for Android 13