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.text.SimpleDateFormat;
|
||||
|
||||
import art.pegasko.yeeemp.base.Wrapper;
|
||||
import art.pegasko.yeeemp.ui.activity.Utils;
|
||||
|
||||
// TODO: Better data management API
|
||||
public class DataUtils {
|
||||
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");
|
||||
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 */
|
||||
binding.toolbar.inflateMenu(R.menu.queue_list_toolbar_menu);
|
||||
// TODO: Better import / export / delete logic
|
||||
binding.toolbar.setOnMenuItemClickListener((MenuItem item) -> {
|
||||
if (item.getItemId() == R.id.queue_list_toolbar_menu_export) {
|
||||
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
|
||||
|
@ -99,6 +100,41 @@ public class QueueListActivity extends AppCompatActivity {
|
|||
intent.setType("*/*");
|
||||
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 false;
|
||||
|
@ -167,6 +203,9 @@ public class QueueListActivity extends AppCompatActivity {
|
|||
Log.i(TAG, "Importing file from " + uri.toString());
|
||||
|
||||
try {
|
||||
Log.i(TAG, "Close before restore");
|
||||
DataUtils.closeDatabase();
|
||||
|
||||
Log.i(TAG, "Backup before restore");
|
||||
DataUtils.backupDatabase(getApplicationContext());
|
||||
|
||||
|
|
|
@ -7,4 +7,8 @@
|
|||
<item
|
||||
android:id="@+id/queue_list_toolbar_menu_import"
|
||||
android:title="Import" />
|
||||
|
||||
<item
|
||||
android:id="@+id/queue_list_toolbar_menu_delete"
|
||||
android:title="Delete all" />
|
||||
</menu>
|
Loading…
Reference in a new issue