package org.softeg.slartus.forpdaplus.db; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import org.softeg.slartus.forpdaplus.App; import org.softeg.slartus.forpdaplus.classes.PdaApplication; import org.softeg.slartus.forpdaplus.common.AppLog; import java.io.IOException; import java.util.ArrayList; import java.util.UUID; /** * Created by slinkin on 16.01.14. */ public class ApplicationRelationsTable { public static final String TABLE_NAME = "ApplicationRelations"; public static final String COLUMN_ID = "id"; public static final String COLUMN_APP_URL = "app_url"; public static final String COLUMN_PACK_NAME = "pack_name"; public static final String COLUMN_BYUSER_NAME = "byuser"; public static void addRealtion(CharSequence packName, CharSequence topicId) { SQLiteDatabase db = null; try { DbHelper dbHelper = new DbHelper(App.getInstance()); db = dbHelper.getWritableDatabase(); String[] selectionArgs = new String[]{packName + "%"}; db.execSQL("delete from " + TABLE_NAME + " where pack_name like ?", selectionArgs); ContentValues values = new ContentValues(); values.put(COLUMN_ID, UUID.randomUUID().toString()); values.put(COLUMN_PACK_NAME, packName.toString()); values.put(COLUMN_APP_URL, topicId.toString()); values.put(COLUMN_BYUSER_NAME, true); db.insertOrThrow(TABLE_NAME, null, values); } catch (Exception ex) { AppLog.e(App.getInstance(), ex); } finally { if (db != null) { // db.endTransaction(); db.close(); } } } public static void addCacheRelation(SQLiteDatabase db, CharSequence packName, CharSequence topicId) { try { ContentValues values = new ContentValues(); values.put(COLUMN_ID, UUID.randomUUID().toString()); values.put(COLUMN_PACK_NAME, packName.toString()); values.put(COLUMN_APP_URL, topicId.toString()); db.update(TABLE_NAME, values, null, null); } catch (Exception ex) { AppLog.e(App.getInstance(), ex); } } public static ArrayList<PdaApplication> getApplications(SQLiteDatabase db, CharSequence packName) throws IOException { ArrayList<PdaApplication> res = new ArrayList<PdaApplication>(); Cursor c = null; try { String[] selectionArgs = new String[]{packName + "%"}; c = db.rawQuery("select app_url,pack_name from ApplicationRelations where pack_name like ?", selectionArgs); if (c.moveToFirst()) { int columnAppUrlIndex = c.getColumnIndex(COLUMN_APP_URL); int columnPackNameIndex = c.getColumnIndex(COLUMN_PACK_NAME); do { String pckn = c.getString(columnPackNameIndex); int appUrl = c.getInt(columnAppUrlIndex); PdaApplication app = new PdaApplication(); app.AppUrl = appUrl; app.PackName = pckn; res.add(app); } while (c.moveToNext()); } } finally { if (c != null) c.close(); } return res; } }