Copy Image of notes to interal app storage
This commit is contained in:
parent
3088f5e7b0
commit
f5291e290f
@ -19,6 +19,9 @@ import core.notevault.data.MusicNote;
|
|||||||
import core.notevault.databinding.ActivityMainBinding;
|
import core.notevault.databinding.ActivityMainBinding;
|
||||||
import core.notevault.ui.metadatadialog.MetaDataDialog;
|
import core.notevault.ui.metadatadialog.MetaDataDialog;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity implements MetaDataDialog.OnMetadataListener {
|
public class MainActivity extends AppCompatActivity implements MetaDataDialog.OnMetadataListener {
|
||||||
|
|
||||||
private AppBarConfiguration mAppBarConfiguration;
|
private AppBarConfiguration mAppBarConfiguration;
|
||||||
@ -65,16 +68,31 @@ public class MainActivity extends AppCompatActivity implements MetaDataDialog.On
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMetadataEntered(Uri uri, String title, String composer, int year, String genre) {
|
public void onMetadataEntered(Uri uri, String title, String composer, int year, String genre) {
|
||||||
MusicNote musicNote = new MusicNote(title, uri.toString(), composer, year, genre);
|
String path = saveImageInternally(uri);
|
||||||
|
MusicNote musicNote = new MusicNote(title, path, composer, year, genre);
|
||||||
|
|
||||||
// Anfordern der dauerhaften Lese-/Schreibberechtigungen für die URI
|
// Anfordern der dauerhaften Lese-/Schreibberechtigungen für die URI
|
||||||
getContentResolver().takePersistableUriPermission(
|
|
||||||
uri,
|
|
||||||
Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION
|
|
||||||
);
|
|
||||||
|
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
musicDB.musicNoteDao().insert(musicNote);
|
musicDB.musicNoteDao().insert(musicNote);
|
||||||
}).start();
|
}).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Speichere eine Kopie des Bilds im internen Speicher
|
||||||
|
private String saveImageInternally(Uri uri) {
|
||||||
|
try (InputStream inputStream = getContentResolver().openInputStream(uri)) {
|
||||||
|
File imageFile = new File(getFilesDir(), "saved_image_" + System.currentTimeMillis() + ".jpg");
|
||||||
|
try (OutputStream outputStream = Files.newOutputStream(imageFile.toPath())) {
|
||||||
|
byte[] buffer = new byte[4096];
|
||||||
|
int bytesRead;
|
||||||
|
while ((bytesRead = inputStream.read(buffer)) != -1) {
|
||||||
|
outputStream.write(buffer, 0, bytesRead);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return imageFile.getAbsolutePath(); // Pfad speichern, um später darauf zuzugreifen
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user