X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Futils%2FMLDB.java;h=ed72cb1a2542586274cf43d3088be7af596d66e8;hp=489472b7b2ba9d7cf0d0689b443e5db3bf99f8db;hb=9860e17895b681d63cfa300aaa9a9e739cfd0b2f;hpb=998dd32a089d199a2569069415755eb3169b35b0 diff --git a/app/src/main/java/net/ktnx/mobileledger/utils/MLDB.java b/app/src/main/java/net/ktnx/mobileledger/utils/MLDB.java index 489472b7..ed72cb1a 100644 --- a/app/src/main/java/net/ktnx/mobileledger/utils/MLDB.java +++ b/app/src/main/java/net/ktnx/mobileledger/utils/MLDB.java @@ -34,6 +34,7 @@ import android.widget.AutoCompleteTextView; import android.widget.FilterQueryProvider; import android.widget.SimpleCursorAdapter; +import net.ktnx.mobileledger.async.DescriptionSelectedCallback; import net.ktnx.mobileledger.model.Data; import org.jetbrains.annotations.NonNls; @@ -63,14 +64,19 @@ public final class MLDB { public static synchronized SQLiteDatabase getDatabase(DatabaseMode mode) { checkState(); + SQLiteDatabase db; + if (mode == READ) { if (helperForReading == null) helperForReading = new MobileLedgerDatabase(context); - return helperForReading.getReadableDatabase(); + db = helperForReading.getReadableDatabase(); } else { if (helperForWriting == null) helperForWriting = new MobileLedgerDatabase(context); - return helperForWriting.getWritableDatabase(); + db = helperForWriting.getWritableDatabase(); } + + db.execSQL("pragma case_sensitive_like=ON;"); + return db; } public static SQLiteDatabase getReadableDatabase() { return getDatabase(READ); @@ -133,14 +139,15 @@ public final class MLDB { final AutoCompleteTextView view, final String table, final String field, final boolean profileSpecific) { - hookAutocompletionAdapter(context, view, table, field, profileSpecific, null); + hookAutocompletionAdapter(context, view, table, field, profileSpecific, null, null); } @TargetApi(Build.VERSION_CODES.N) public static void hookAutocompletionAdapter(final Context context, final AutoCompleteTextView view, final String table, final String field, final boolean profileSpecific, - final View nextView) { + final View nextView, + final DescriptionSelectedCallback callback) { String[] from = {field}; int[] to = {android.R.id.text1}; SimpleCursorAdapter adapter = @@ -199,6 +206,9 @@ public final class MLDB { if (nextView != null) { view.setOnItemClickListener((parent, itemView, position, id) -> { nextView.requestFocus(View.FOCUS_FORWARD); + if (callback != null) { + callback.descriptionSelected(String.valueOf(view.getText())); + } }); } } @@ -217,7 +227,7 @@ public final class MLDB { class MobileLedgerDatabase extends SQLiteOpenHelper implements AutoCloseable { public static final String DB_NAME = "MoLe.db"; - public static final int LATEST_REVISION = 17; + public static final int LATEST_REVISION = 20; private final Application mContext;