summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java54
-rw-r--r--core/src/main/res/values/strings.xml1
2 files changed, 30 insertions, 25 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java
index adaf5fe50..a0388cb03 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java
@@ -1,5 +1,6 @@
package de.danoeh.antennapod.activity;
+import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
@@ -9,6 +10,8 @@ import android.os.Bundle;
import android.os.Environment;
import android.os.ParcelFileDescriptor;
import android.support.design.widget.Snackbar;
+import android.support.v4.content.IntentCompat;
+import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import de.danoeh.antennapod.R;
@@ -74,20 +77,10 @@ public class ImportExportActivity extends AppCompatActivity {
@Override
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
- File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME);
-
if (requestCode == READ_REQUEST_CODE_DOCUMENT && resultCode == RESULT_OK) {
if (resultData != null) {
Uri uri = resultData.getData();
-
- try {
- InputStream inputStream = getContentResolver().openInputStream(uri);
- copyInputStreamToFile(inputStream, currentDB);
- inputStream.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
-
+ writeDatabase(uri);
}
} else if (requestCode == WRITE_REQUEST_CODE_DOCUMENT && resultCode == RESULT_OK) {
if (resultData != null) {
@@ -97,23 +90,34 @@ public class ImportExportActivity extends AppCompatActivity {
} else if(requestCode == READ_REQUEST_CODE && resultCode == RESULT_OK) {
if (resultData != null) {
Uri uri = resultData.getData();
- try {
- File backupDB = new File(getPath(getBaseContext(), uri));
-
- if (backupDB.exists()) {
- FileChannel src = new FileInputStream(currentDB).getChannel();
- FileChannel dst = new FileOutputStream(backupDB).getChannel();
- dst.transferFrom(src, 0, src.size());
- src.close();
- dst.close();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
+ writeDatabase(uri);
}
}
}
+ private void writeDatabase(Uri inputUri) {
+ File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME);
+ try {
+ InputStream inputStream = getContentResolver().openInputStream(inputUri);
+ copyInputStreamToFile(inputStream, currentDB);
+ inputStream.close();
+
+ AlertDialog.Builder d = new AlertDialog.Builder(ImportExportActivity.this);
+ d.setMessage(R.string.import_ok);
+ d.setCancelable(false);
+ d.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> {
+ Intent intent = new Intent(getApplicationContext(), SplashActivity.class);
+ ComponentName cn = intent.getComponent();
+ Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);
+ startActivity(mainIntent);
+ });
+ d.show();
+ } catch (Exception e) {
+ e.printStackTrace();
+ Snackbar.make(findViewById(R.id.import_export_layout), e.getMessage(), Snackbar.LENGTH_SHORT).show();
+ }
+ }
+
private void copyInputStreamToFile(InputStream in, File file) {
try {
OutputStream out = new FileOutputStream(file);
@@ -179,7 +183,7 @@ public class ImportExportActivity extends AppCompatActivity {
}
}
- void writeBackup(FileOutputStream outFileStream) {
+ private void writeBackup(FileOutputStream outFileStream) {
try {
File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME);
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 4f79914ee..eb8c057ee 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -668,6 +668,7 @@
<string name="label_export">Export</string>
<string name="import_select_file">Select file to import</string>
<string name="export_ok">Export successful. The database was written to the sd card.</string>
+ <string name="import_ok">Success.\n\nPlease press OK to restart AntennaPod</string>
<!-- Casting -->
<string name="cast_media_route_menu_title">Play on&#8230;</string>