package com.orgzly.android.provider.models; import android.content.ContentValues; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; import android.provider.BaseColumns; import com.orgzly.android.provider.DatabaseUtils; import java.util.Set; /** * User-configured repositories. */ public class DbRepo { public static final String TABLE = "repos"; public static final String[] CREATE_SQL = new String[] { "CREATE TABLE IF NOT EXISTS " + TABLE + " (" + BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + Columns.REPO_URL + " TEXT NOT NULL, " + Columns.IS_REPO_ACTIVE + " INTEGER DEFAULT 1, " + "UNIQUE (" + Columns.REPO_URL + "))" }; public static final String DROP_SQL = "DROP TABLE IF EXISTS " + TABLE; /** * Inserts new URL or updates existing marking it as active. */ public static long insert(SQLiteDatabase db, String url) { ContentValues values = new ContentValues(); values.put(Column.REPO_URL, url); values.put(Column.IS_REPO_ACTIVE, 1); long id = DatabaseUtils.getId( db, TABLE, Column.REPO_URL + "=?", new String[] { url }); if (id > 0) { db.update(TABLE, values, Column._ID + "=" + id, null); } else { id = db.insertOrThrow(TABLE, null, values); } return id; } /** * Delete repos by marking them as inactive. */ public static int delete(SQLiteDatabase db, String selection, String[] selectionArgs) { ContentValues values = new ContentValues(); values.put(Column.IS_REPO_ACTIVE, 0); return db.update(TABLE, values, selection, selectionArgs); } public static int update(SQLiteDatabase db, ContentValues contentValues, String selection, String[] selectionArgs) { return db.update(TABLE, contentValues, selection, selectionArgs); } public interface Columns { String REPO_URL = "repo_url"; String IS_REPO_ACTIVE = "is_repo_active"; } public static class Column implements Columns, BaseColumns {} }