mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-21 07:51:46 +02:00
Merge pull request #211 from erijo/export-cleanup
Release old persistable permission when new export is done
This commit is contained in:
@@ -603,6 +603,8 @@ public class MainActivity extends AppCompatActivity
|
|||||||
try {
|
try {
|
||||||
String exportUri = prefs.getString(getExportPreferenceKey(selectedScaleUser), "");
|
String exportUri = prefs.getString(getExportPreferenceKey(selectedScaleUser), "");
|
||||||
uri = Uri.parse(exportUri);
|
uri = Uri.parse(exportUri);
|
||||||
|
|
||||||
|
// Verify that the file still exists and that we have write permission
|
||||||
getContentResolver().takePersistableUriPermission(uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
getContentResolver().takePersistableUriPermission(uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
||||||
openScale.getFilenameFromUri(uri);
|
openScale.getFilenameFromUri(uri);
|
||||||
}
|
}
|
||||||
@@ -684,16 +686,33 @@ public class MainActivity extends AppCompatActivity
|
|||||||
break;
|
break;
|
||||||
case EXPORT_DATA_REQUEST:
|
case EXPORT_DATA_REQUEST:
|
||||||
if (doExportData(data.getData())) {
|
if (doExportData(data.getData())) {
|
||||||
try {
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
getContentResolver().takePersistableUriPermission(
|
SharedPreferences.Editor editor = prefs.edit();
|
||||||
data.getData(), Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
|
||||||
String key = getExportPreferenceKey(openScale.getSelectedScaleUser());
|
String key = getExportPreferenceKey(openScale.getSelectedScaleUser());
|
||||||
PreferenceManager.getDefaultSharedPreferences(this).edit()
|
|
||||||
.putString(key, data.getData().toString()).apply();
|
// Remove any old persistable permission and export uri
|
||||||
|
try {
|
||||||
|
getContentResolver().releasePersistableUriPermission(
|
||||||
|
Uri.parse(prefs.getString(key, "")),
|
||||||
|
Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
||||||
|
editor.remove(key);
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
catch (Exception ex) {
|
||||||
// Ignore
|
// Ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Take persistable permission and save export uri
|
||||||
|
try {
|
||||||
|
getContentResolver().takePersistableUriPermission(
|
||||||
|
data.getData(), Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
||||||
|
editor.putString(key, data.getData().toString());
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
// Ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
editor.apply();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user