1
0
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:
OliE
2018-03-01 08:45:55 +01:00
committed by GitHub

View File

@@ -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;
} }