diff --git a/app/src/main/java/net/foucry/pilldroid/Utils.java b/app/src/main/java/net/foucry/pilldroid/Utils.java index 623b2df..ad179a8 100644 --- a/app/src/main/java/net/foucry/pilldroid/Utils.java +++ b/app/src/main/java/net/foucry/pilldroid/Utils.java @@ -3,6 +3,7 @@ package net.foucry.pilldroid; import net.foucry.pilldroid.models.Medicine; import net.foucry.pilldroid.models.Prescription; +import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.Locale; @@ -48,12 +49,75 @@ public class Utils { } public static void sortPrescriptionList(List prescriptionList) { - prescriptionList.sort((lhs, rhs) -> { - if (lhs.getDateEndOfStock().compareTo(rhs.getDateEndOfStock()) != 0) - return lhs.getDateEndOfStock().compareTo(rhs.getDateEndOfStock()); - else - return (int) (lhs.getStock() - rhs.getStock()); + prescriptionList.sort(new Comparator<>() { + @Override + public int compare(Prescription lhs, Prescription rhs) { + if (lhs.getDateEndOfStock().compareTo(rhs.getDateEndOfStock()) != 0) + return lhs.getDateEndOfStock().compareTo(rhs.getDateEndOfStock()); + else + return (int) (lhs.getStock() - rhs.getStock()); + } + if(id == R.id.action_save_db) { }); } + public void backupDB() { + int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE); + if(permission == PackageManager.PERMISSION_GRANTED) { + //AppDatabase.getInstance(this).getDatabase().close(); + PrescriptionDatabase.getInstanceDatabase(this).getDatabase().close(); + + File db = getDatabasePath("PrescriptionDatabase"); + File dbShm = new File(db.getParent(), "PrescriptionDatabase-shm"); + File dbWal = new File(db.getParent(), "PrescriptionDatabase-wal"); + + File db2 = new File("/sdcard/", "PrescriptionDatabase"); + File dbShm2 = new File(db2.getParent(), "PrescriptionDatabase-shm"); + File dbWal2 = new File(db2.getParent(), "PrescriptionDatabase-wal"); + + try { + FileUtils.copyFile(db, db2); + FileUtils.copyFile(dbShm, dbShm2); + FileUtils.copyFile(dbWal, dbWal2); + } catch (Exception e) { + Log.e("SAVEDB", e.toString()); + } + } else { + Snackbar.make(mDrawer, "Please allow access to your storage", Snackbar.LENGTH_LONG) + .setAction("Allow", view -> ActivityCompat.requestPermissions(this, new String[] { + Manifest.permission.WRITE_EXTERNAL_STORAGE + }, 0)).show(); + } + } + + public void restoreDB () + { + int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE); + if(permission == PackageManager.PERMISSION_GRANTED) { + //AppDatabase.getInstance(this).getDatabase().close(); + PrescriptionDatabase.getInstanceDatabase(this).getDatabase().close(); + + File db = new File("/sdcard/", "PrescriptionDatabaseb"); + File dbShm = new File(db.getParent(), "PrescriptionDatabase-shm"); + File dbWal = new File(db.getParent(), "PrescriptionDatabase-wal"); + + File db2 = getDatabasePath("PrescriptionDatabase"); + File dbShm2 = new File(db2.getParent(), "PrescriptionDatabase-shm"); + File dbWal2 = new File(db2.getParent(), "PrescriptionDatabase-wal"); + + try { + FileUtils.copyFile(db, db2); + FileUtils.copyFile(dbShm, dbShm2); + FileUtils.copyFile(dbWal, dbWal2); + } catch (Exception e) { + Loge("RESTOREDB", e.toString()); + } + } else { + Snackbar.make(mDrawer, "Please allow access to your storage", Snackbar.LENGTH_LONG) + .setAction("Allow", view -> ActivityCompat.requestPermissions(this, new String[] { + Manifest.permission.READ_EXTERNAL_STORAGE + }, 0)).show(); + } + } + }