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=3d17facf58b3a48fecaabe70b16a7f4e51da916d;hb=9860e17895b681d63cfa300aaa9a9e739cfd0b2f;hpb=649f399014447df347d0fd5c76219b6549f53ee0 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 3d17facf..ed72cb1a 100644 --- a/app/src/main/java/net/ktnx/mobileledger/utils/MLDB.java +++ b/app/src/main/java/net/ktnx/mobileledger/utils/MLDB.java @@ -1,18 +1,18 @@ /* * Copyright © 2019 Damyan Ivanov. - * This file is part of Mobile-Ledger. - * Mobile-Ledger is free software: you can distribute it and/or modify it + * This file is part of MoLe. + * MoLe is free software: you can distribute it and/or modify it * under the term of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your opinion), any later version. * - * Mobile-Ledger is distributed in the hope that it will be useful, + * MoLe is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License terms for details. * * You should have received a copy of the GNU General Public License - * along with Mobile-Ledger. If not, see . + * along with MoLe. If not, see . */ package net.ktnx.mobileledger.utils; @@ -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())); + } }); } } @@ -216,8 +226,8 @@ public final class MLDB { } class MobileLedgerDatabase extends SQLiteOpenHelper implements AutoCloseable { - public static final String DB_NAME = "mobile-ledger.db"; - public static final int LATEST_REVISION = 17; + public static final String DB_NAME = "MoLe.db"; + public static final int LATEST_REVISION = 20; private final Application mContext;