Delete action
This commit is contained in:
parent
4dee17b7de
commit
09b2e6fc21
3 changed files with 57 additions and 0 deletions
|
@ -30,8 +30,10 @@ import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
import art.pegasko.yeeemp.base.Wrapper;
|
||||||
import art.pegasko.yeeemp.ui.activity.Utils;
|
import art.pegasko.yeeemp.ui.activity.Utils;
|
||||||
|
|
||||||
|
// TODO: Better data management API
|
||||||
public class DataUtils {
|
public class DataUtils {
|
||||||
public static final String DATE_FORMAT = "yyyy-MM-dd-HH-mm-ss";
|
public static final String DATE_FORMAT = "yyyy-MM-dd-HH-mm-ss";
|
||||||
|
|
||||||
|
@ -118,4 +120,16 @@ public class DataUtils {
|
||||||
File backupFile = new File(context.getFilesDir(), "backup.db");
|
File backupFile = new File(context.getFilesDir(), "backup.db");
|
||||||
backupFile.delete();
|
backupFile.delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void closeDatabase() {
|
||||||
|
// Drop current database
|
||||||
|
((DBWrapper) DBWrapper.instance()).db.close();
|
||||||
|
Wrapper.setInstance(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void deleteDatabase(Context context) throws IOException {
|
||||||
|
|
||||||
|
File internalFile = DBWrapper.getDBPath(context);
|
||||||
|
internalFile.delete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,6 +86,7 @@ public class QueueListActivity extends AppCompatActivity {
|
||||||
|
|
||||||
/* Toolbar menu */
|
/* Toolbar menu */
|
||||||
binding.toolbar.inflateMenu(R.menu.queue_list_toolbar_menu);
|
binding.toolbar.inflateMenu(R.menu.queue_list_toolbar_menu);
|
||||||
|
// TODO: Better import / export / delete logic
|
||||||
binding.toolbar.setOnMenuItemClickListener((MenuItem item) -> {
|
binding.toolbar.setOnMenuItemClickListener((MenuItem item) -> {
|
||||||
if (item.getItemId() == R.id.queue_list_toolbar_menu_export) {
|
if (item.getItemId() == R.id.queue_list_toolbar_menu_export) {
|
||||||
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
|
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
|
||||||
|
@ -99,6 +100,41 @@ public class QueueListActivity extends AppCompatActivity {
|
||||||
intent.setType("*/*");
|
intent.setType("*/*");
|
||||||
startActivityForResult(intent, REQUEST_CODE_OPEN_FILE);
|
startActivityForResult(intent, REQUEST_CODE_OPEN_FILE);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} else if (item.getItemId() == R.id.queue_list_toolbar_menu_delete) {
|
||||||
|
|
||||||
|
new AlertDialog
|
||||||
|
.Builder(QueueListActivity.this)
|
||||||
|
.setTitle("Confirm action")
|
||||||
|
.setMessage("Delete everything?")
|
||||||
|
.setCancelable(true)
|
||||||
|
.setPositiveButton("Yes", (DialogInterface dialog, int id) -> {
|
||||||
|
try {
|
||||||
|
Log.i(TAG, "Close before delete");
|
||||||
|
DataUtils.closeDatabase();
|
||||||
|
|
||||||
|
Log.i(TAG, "Deleting database");
|
||||||
|
DataUtils.deleteDatabase(getApplicationContext());
|
||||||
|
|
||||||
|
Log.i(TAG, "Reloading database");
|
||||||
|
Init.reinitDB(getApplicationContext());
|
||||||
|
updateList();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e(TAG, "Delete failed");
|
||||||
|
Log.wtf(TAG, e);
|
||||||
|
|
||||||
|
new AlertDialog
|
||||||
|
.Builder(QueueListActivity.this)
|
||||||
|
.setTitle("Delete failed")
|
||||||
|
.setMessage(e.getMessage())
|
||||||
|
.setCancelable(true)
|
||||||
|
.setNegativeButton("OK", (DialogInterface dialog2, int id2) -> { dialog2.cancel(); })
|
||||||
|
.show();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.setNegativeButton("Cancel", (DialogInterface dialog, int id) -> { dialog.cancel(); })
|
||||||
|
.show();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -167,6 +203,9 @@ public class QueueListActivity extends AppCompatActivity {
|
||||||
Log.i(TAG, "Importing file from " + uri.toString());
|
Log.i(TAG, "Importing file from " + uri.toString());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
Log.i(TAG, "Close before restore");
|
||||||
|
DataUtils.closeDatabase();
|
||||||
|
|
||||||
Log.i(TAG, "Backup before restore");
|
Log.i(TAG, "Backup before restore");
|
||||||
DataUtils.backupDatabase(getApplicationContext());
|
DataUtils.backupDatabase(getApplicationContext());
|
||||||
|
|
||||||
|
|
|
@ -7,4 +7,8 @@
|
||||||
<item
|
<item
|
||||||
android:id="@+id/queue_list_toolbar_menu_import"
|
android:id="@+id/queue_list_toolbar_menu_import"
|
||||||
android:title="Import" />
|
android:title="Import" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/queue_list_toolbar_menu_delete"
|
||||||
|
android:title="Delete all" />
|
||||||
</menu>
|
</menu>
|
Loading…
Reference in a new issue