1 package com.folioreader.model.sqlite;
3 import android.content.ContentValues;
4 import android.content.Context;
5 import android.database.Cursor;
6 import android.database.sqlite.SQLiteDatabase;
8 import java.util.ArrayList;
13 * @author gautam chibde on 28/6/17.
16 public class DictionaryTable {
18 public static final String TABLE_NAME = "dictionary_table";
20 public static final String ID = "_id";
21 public static final String WORD = "word";
22 public static final String MEANING = "meaning";
23 private SQLiteDatabase database;
25 public DictionaryTable(Context context) {
26 FolioDatabaseHelper dbHelper = new FolioDatabaseHelper(context);
27 database = dbHelper.getWritableDatabase();
30 public static final String SQL_CREATE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " ( " + ID
31 + " INTEGER PRIMARY KEY AUTOINCREMENT" + ","
32 + WORD + " TEXT" + ","
33 + MEANING + " TEXT" + ")";
35 public static final String SQL_DROP = "DROP TABLE IF EXISTS " + TABLE_NAME;
37 public boolean insertWord(String word, String meaning) {
38 ContentValues values = new ContentValues();
39 values.put(WORD, word);
40 values.put(MEANING, meaning);
41 return database.insert(TABLE_NAME, null, values) > 0;
44 public void insert(Map<String, String> map) {
45 database.beginTransaction();
46 for (String key : map.keySet()) {
47 insertWord(key.toLowerCase(), map.get(key));
49 database.setTransactionSuccessful();
50 database.endTransaction();
53 public String getMeaningForWord(String word) {
54 Cursor c = database.rawQuery("SELECT * FROM "
56 " WHERE " + WORD + " = '" + word.trim() + "'", null);
57 if (c.moveToFirst()) {
58 String toRetuen = c.getString(2);
66 public List<String> getMeaning(String word) {
67 List<String> words = new ArrayList<>();
68 String meaning = getMeaningForWord(word);
69 if (meaning != null) {
73 return getProbableCombinations(word);
77 private List<String> getProbableCombinations(String word) {
78 List<String> combinations = new ArrayList<>();
79 for (int i = 1; i <= 3; i++) {
80 String m = getMeaningForWord(word.substring(0, word.length() - i));