2017-05-05 16:36:04 +02:00
/ * Copyright 2017 Thomas Schneider
*
2017-07-10 10:33:24 +02:00
* This file is a part of Mastalab
2017-05-05 16:36:04 +02:00
*
* This program is free software ; you can redistribute it and / or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation ; either version 3 of the
* License , or ( at your option ) any later version .
*
2017-07-10 10:33:24 +02:00
* Mastalab is distributed in the hope that it will be useful , but WITHOUT ANY WARRANTY ; without even
2017-05-05 16:36:04 +02:00
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU General
* Public License for more details .
*
2017-08-04 11:11:27 +02:00
* You should have received a copy of the GNU General Public License along with Mastalab ; if not ,
2017-05-05 16:36:04 +02:00
* see < http : //www.gnu.org/licenses>. */
package fr.gouv.etalab.mastodon.sqlite ;
import android.content.Context ;
import android.database.sqlite.SQLiteDatabase ;
import android.database.sqlite.SQLiteOpenHelper ;
/ * *
* Created by Thomas on 23 / 04 / 2017 .
* Manage the DataBase
* /
2018-01-04 15:58:39 +01:00
2017-05-05 16:36:04 +02:00
public class Sqlite extends SQLiteOpenHelper {
2019-02-14 11:49:52 +01:00
public static final int DB_VERSION = 27 ;
2017-05-05 16:36:04 +02:00
public static final String DB_NAME = " mastodon_etalab_db " ;
public static SQLiteDatabase db ;
private static Sqlite sInstance ;
/ * * *
* List of tables to manage users and data
* /
//Table of owned accounts
static final String TABLE_USER_ACCOUNT = " USER_ACCOUNT " ;
2017-07-15 14:59:09 +02:00
//Table of stored status
static final String TABLE_STATUSES_STORED = " STATUSES_STORED " ;
2017-11-01 18:52:08 +01:00
//Table for custom emoji
2019-03-02 11:40:46 +01:00
public static final String TABLE_CUSTOM_EMOJI = " CUSTOM_EMOJI " ;
2017-11-23 18:16:47 +01:00
//Table for search
static final String TABLE_SEARCH = " SEARCH " ;
2017-05-05 16:36:04 +02:00
2018-01-04 15:58:39 +01:00
//Table for temp muting
static final String TABLE_TEMP_MUTE = " TEMP_MUTE " ;
2018-02-14 18:44:22 +01:00
//Table for cached statuses
2019-03-02 11:40:46 +01:00
public static final String TABLE_STATUSES_CACHE = " STATUSES_CACHE " ;
2018-02-14 18:44:22 +01:00
2018-08-20 19:00:20 +02:00
//Table for instance names
static final String TABLE_INSTANCES = " INSTANCES " ;
2018-02-14 18:44:22 +01:00
2018-10-21 18:43:57 +02:00
//Table for peertube favorites
static final String TABLE_PEERTUBE_FAVOURITES = " PEERTUBE_FAVOURITES " ;
2018-11-18 16:01:46 +01:00
//Table for timeline cache
2018-12-15 12:02:29 +01:00
private static final String TABLE_TIMELINE_CACHE = " TIMELINE_CACHE " ;
2018-11-18 16:01:46 +01:00
2018-11-30 18:39:01 +01:00
//Table for tags cache
static final String TABLE_CACHE_TAGS = " CACHE_TAGS " ;
2018-12-09 12:14:05 +01:00
//Table for scheduling boosts
2019-03-02 11:40:46 +01:00
public static final String TABLE_BOOST_SCHEDULE = " BOOST_SCHEDULE " ;
2018-11-18 16:01:46 +01:00
2019-02-14 11:49:52 +01:00
//Table for blocking tracking domains
2019-02-23 14:16:15 +01:00
public static final String TABLE_TRACKING_BLOCK = " TRACKING_BLOCK " ;
2019-02-14 11:49:52 +01:00
2018-01-04 15:58:39 +01:00
static final String COL_USER_ID = " USER_ID " ;
static final String COL_USERNAME = " USERNAME " ;
static final String COL_ACCT = " ACCT " ;
static final String COL_DISPLAYED_NAME = " DISPLAYED_NAME " ;
static final String COL_LOCKED = " LOCKED " ;
static final String COL_CREATED_AT = " CREATED_AT " ;
static final String COL_FOLLOWERS_COUNT = " FOLLOWERS_COUNT " ;
static final String COL_FOLLOWING_COUNT = " FOLLOWING_COUNT " ;
static final String COL_STATUSES_COUNT = " STATUSES_COUNT " ;
static final String COL_NOTE = " NOTE " ;
static final String COL_URL = " URL " ;
static final String COL_AVATAR = " AVATAR " ;
static final String COL_AVATAR_STATIC = " AVATAR_STATIC " ;
static final String COL_HEADER = " HEADER " ;
static final String COL_HEADER_STATIC = " HEADER_STATIC " ;
static final String COL_INSTANCE = " INSTANCE " ;
static final String COL_OAUTHTOKEN = " OAUTH_TOKEN " ;
2018-09-16 15:05:33 +02:00
static final String COL_EMOJIS = " EMOJIS " ;
2019-01-02 19:39:40 +01:00
static final String COL_SOCIAL = " SOCIAL " ;
2019-01-05 13:00:15 +01:00
static final String COL_CLIENT_ID = " CLIENT_ID " ;
static final String COL_CLIENT_SECRET = " CLIENT_SECRET " ;
static final String COL_REFRESH_TOKEN = " REFRESH_TOKEN " ;
2019-01-27 11:02:53 +01:00
static final String COL_IS_MODERATOR = " IS_MODERATOR " ;
static final String COL_IS_ADMIN = " IS_ADMIN " ;
2019-01-29 11:52:54 +01:00
static final String COL_UPDATED_AT = " UPDATED_AT " ;
2017-05-05 16:36:04 +02:00
private static final String CREATE_TABLE_USER_ACCOUNT = " CREATE TABLE " + TABLE_USER_ACCOUNT + " ( "
+ COL_USER_ID + " TEXT PRIMARY KEY, " + COL_USERNAME + " TEXT NOT NULL, " + COL_ACCT + " TEXT NOT NULL, "
+ COL_DISPLAYED_NAME + " TEXT NOT NULL, " + COL_LOCKED + " INTEGER NOT NULL, "
+ COL_FOLLOWERS_COUNT + " INTEGER NOT NULL, " + COL_FOLLOWING_COUNT + " INTEGER NOT NULL, " + COL_STATUSES_COUNT + " INTEGER NOT NULL, "
+ COL_NOTE + " TEXT NOT NULL, " + COL_URL + " TEXT NOT NULL, "
+ COL_AVATAR + " TEXT NOT NULL, " + COL_AVATAR_STATIC + " TEXT NOT NULL, "
+ COL_HEADER + " TEXT NOT NULL, " + COL_HEADER_STATIC + " TEXT NOT NULL, "
2018-09-16 15:05:33 +02:00
+ COL_EMOJIS + " TEXT, "
2019-01-02 19:39:40 +01:00
+ COL_SOCIAL + " TEXT, "
2019-01-27 11:02:53 +01:00
+ COL_IS_MODERATOR + " INTEGER DEFAULT 0, "
+ COL_IS_ADMIN + " INTEGER DEFAULT 0, "
2019-01-05 13:00:15 +01:00
+ COL_CLIENT_ID + " TEXT, " + COL_CLIENT_SECRET + " TEXT, " + COL_REFRESH_TOKEN + " TEXT, "
2019-01-29 11:52:54 +01:00
+ COL_UPDATED_AT + " TEXT, "
2017-05-05 16:36:04 +02:00
+ COL_INSTANCE + " TEXT NOT NULL, " + COL_OAUTHTOKEN + " TEXT NOT NULL, " + COL_CREATED_AT + " TEXT NOT NULL) " ;
2018-01-04 15:58:39 +01:00
static final String COL_ID = " ID " ;
static final String COL_STATUS_SERIALIZED = " STATUS_SERIALIZED " ;
static final String COL_STATUS_REPLY_SERIALIZED = " STATUS_REPLY_SERIALIZED " ;
static final String COL_DATE_CREATION = " DATE_CREATION " ;
static final String COL_IS_SCHEDULED = " IS_SCHEDULED " ;
static final String COL_DATE_SCHEDULED = " DATE_SCHEDULED " ;
static final String COL_SENT = " SENT " ;
static final String COL_DATE_SENT = " DATE_SENT " ;
2017-07-15 14:59:09 +02:00
private static final String CREATE_TABLE_STATUSES_STORED = " CREATE TABLE " + TABLE_STATUSES_STORED + " ( "
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COL_USER_ID + " TEXT NOT NULL, " + COL_INSTANCE + " TEXT NOT NULL, "
2017-07-20 11:06:11 +02:00
+ COL_STATUS_SERIALIZED + " TEXT NOT NULL, " + COL_STATUS_REPLY_SERIALIZED + " TEXT, " + COL_DATE_CREATION + " TEXT NOT NULL, "
2017-07-15 14:59:09 +02:00
+ COL_IS_SCHEDULED + " INTEGER NOT NULL, " + COL_DATE_SCHEDULED + " TEXT, "
+ COL_SENT + " INTEGER NOT NULL, " + COL_DATE_SENT + " TEXT) " ;
2017-05-05 16:36:04 +02:00
2018-01-04 15:58:39 +01:00
static final String COL_SHORTCODE = " SHORTCODE " ;
static final String COL_URL_STATIC = " URL_STATIC " ;
2017-11-01 18:52:08 +01:00
private final String CREATE_TABLE_CUSTOM_EMOJI = " CREATE TABLE " + TABLE_CUSTOM_EMOJI + " ( "
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COL_SHORTCODE + " TEXT NOT NULL, " + COL_INSTANCE + " TEXT NOT NULL, "
+ COL_URL + " TEXT NOT NULL, " + COL_URL_STATIC + " TEXT NOT NULL, " + COL_DATE_CREATION + " TEXT NOT NULL) " ;
2017-11-23 18:16:47 +01:00
2018-01-04 15:58:39 +01:00
static final String COL_KEYWORDS = " KEYWORDS " ;
2018-12-15 12:02:29 +01:00
static final String COL_IS_ART = " IS_ART " ;
static final String COL_IS_NSFW = " IS_NSFW " ;
2018-12-27 17:49:50 +01:00
static final String COL_ANY = " ANY_TAG " ;
static final String COL_ALL = " ALL_TAG " ;
static final String COL_NONE = " NONE_TAG " ;
2018-12-28 10:41:40 +01:00
static final String COL_NAME = " NAME " ;
2017-11-23 18:16:47 +01:00
private final String CREATE_TABLE_SEARCH = " CREATE TABLE " + TABLE_SEARCH + " ( "
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
2018-12-15 12:02:29 +01:00
+ COL_KEYWORDS + " TEXT NOT NULL, " + COL_USER_ID + " TEXT NOT NULL, "
2018-12-28 10:41:40 +01:00
+ COL_ANY + " TEXT, " + COL_ALL + " TEXT, " + COL_NONE + " TEXT, " + COL_NAME + " TEXT, "
2018-12-15 12:02:29 +01:00
+ COL_IS_ART + " INTEGER DEFAULT 0, " + COL_IS_NSFW + " INTEGER DEFAULT 0, "
+ COL_DATE_CREATION + " TEXT NOT NULL) " ;
2017-11-23 18:16:47 +01:00
2018-01-04 15:58:39 +01:00
static final String COL_TARGETED_USER_ID = " TARGETED_USER_ID " ;
static final String COL_DATE_END = " DATE_END " ;
private final String CREATE_TABLE_TEMP_MUTE = " CREATE TABLE " + TABLE_TEMP_MUTE + " ( "
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
2018-01-04 18:43:33 +01:00
+ COL_ACCT + " TEXT NOT NULL, " + COL_INSTANCE + " TEXT NOT NULL, " + COL_TARGETED_USER_ID + " TEXT NOT NULL, " + COL_DATE_CREATION + " TEXT NOT NULL, " + COL_DATE_END + " TEXT NOT NULL) " ;
2018-01-04 15:58:39 +01:00
2018-02-14 18:44:22 +01:00
static final String COL_CACHED_ACTION = " CACHED_ACTION " ;
2018-02-15 07:55:24 +01:00
static final String COL_STATUS_ID = " STATUS_ID " ;
2018-02-14 18:44:22 +01:00
static final String COL_URI = " URI " ;
static final String COL_ACCOUNT = " ACCOUNT " ;
static final String COL_IN_REPLY_TO_ID = " IN_REPLY_TO_ID " ;
static final String COL_IN_REPLY_TO_ACCOUNT_ID = " IN_REPLY_TO_ACCOUNT_ID " ;
static final String COL_REBLOG = " REBLOG " ;
static final String COL_CONTENT = " CONTENT " ;
static final String COL_REBLOGS_COUNT = " REBLOGS_COUNT " ;
static final String COL_FAVOURITES_COUNT = " FAVOURITES_COUNT " ;
static final String COL_REBLOGGED = " REBLOGGED " ;
static final String COL_FAVOURITED = " FAVOURITED " ;
static final String COL_MUTED = " MUTED " ;
static final String COL_SENSITIVE = " SENSITIVE " ;
static final String COL_SPOILER_TEXT = " SPOILER_TEXT " ;
static final String COL_VISIBILITY = " VISIBILITY " ;
static final String COL_MEDIA_ATTACHMENTS = " MEDIA_ATTACHMENTS " ;
static final String COL_MENTIONS = " MENTIONS " ;
static final String COL_TAGS = " TAGS " ;
static final String COL_APPLICATION = " APPLICATION " ;
static final String COL_LANGUAGE = " LANGUAGE " ;
static final String COL_PINNED = " PINNED " ;
2018-02-17 08:49:28 +01:00
static final String COL_DATE_BACKUP = " DATE_BACKUP " ;
2018-11-18 13:33:12 +01:00
static final String COL_CARD = " CARD " ;
2019-01-05 13:00:15 +01:00
2018-02-14 18:44:22 +01:00
private final String CREATE_TABLE_STATUSES_CACHE = " CREATE TABLE " + TABLE_STATUSES_CACHE + " ( "
2018-02-15 07:55:24 +01:00
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
2018-02-17 09:30:44 +01:00
+ COL_CACHED_ACTION + " INTEGER NOT NULL, " + COL_INSTANCE + " TEXT NOT NULL, " + COL_USER_ID + " NOT NULL, " + COL_DATE_BACKUP + " TEXT NOT NULL, "
2018-02-15 07:55:24 +01:00
+ COL_STATUS_ID + " TEXT NOT NULL, " + COL_URI + " TEXT NOT NULL, " + COL_URL + " TEXT NOT NULL, "
2018-02-14 18:44:22 +01:00
+ COL_ACCOUNT + " TEXT NOT NULL, " + COL_IN_REPLY_TO_ID + " TEXT, " + COL_IN_REPLY_TO_ACCOUNT_ID + " TEXT, "
+ COL_REBLOG + " TEXT, " + COL_CONTENT + " TEXT NOT NULL, " + COL_CREATED_AT + " TEXT NOT NULL, "
+ COL_EMOJIS + " TEXT, " + COL_REBLOGS_COUNT + " INTEGER NOT NULL, " + COL_FAVOURITES_COUNT + " INTEGER NOT NULL, "
+ COL_REBLOGGED + " INTEGER, " + COL_FAVOURITED + " INTEGER, " + COL_MUTED + " INTEGER, " + COL_SENSITIVE + " INTEGER, "
2018-11-18 13:33:12 +01:00
+ COL_SPOILER_TEXT + " TEXT, " + COL_VISIBILITY + " TEXT NOT NULL, " + COL_MEDIA_ATTACHMENTS + " TEXT, " + COL_CARD + " TEXT, "
2018-02-14 18:44:22 +01:00
+ COL_MENTIONS + " TEXT, " + COL_TAGS + " TEXT, " + COL_APPLICATION + " TEXT, "
2018-02-22 20:00:36 +01:00
+ COL_LANGUAGE + " TEXT, " + COL_PINNED + " INTEGER) " ;
private final String CREATE_UNIQUE_CACHE_INDEX = " CREATE UNIQUE INDEX instance_statusid on "
+ TABLE_STATUSES_CACHE + " ( " + COL_INSTANCE + " , " + COL_STATUS_ID + " ) " ;
2018-02-14 18:44:22 +01:00
2018-10-05 18:02:11 +02:00
static final String COL_INSTANCE_TYPE = " INSTANCE_TYPE " ;
2018-08-20 19:00:20 +02:00
private final String CREATE_TABLE_INSTANCES = " CREATE TABLE " + TABLE_INSTANCES + " ( "
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
2018-10-05 18:02:11 +02:00
+ COL_INSTANCE + " TEXT NOT NULL, " + COL_USER_ID + " TEXT NOT NULL, " + COL_INSTANCE_TYPE + " TEXT, " + COL_DATE_CREATION + " TEXT NOT NULL) " ;
2018-08-20 19:00:20 +02:00
2018-10-21 18:43:57 +02:00
static final String COL_UUID = " UUID " ;
static final String COL_CACHE = " CACHE " ;
static final String COL_DATE = " DATE " ;
private final String CREATE_TABLE_PEERTUBE_FAVOURITES = " CREATE TABLE "
+ TABLE_PEERTUBE_FAVOURITES + " ( "
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COL_UUID + " TEXT NOT NULL, "
+ COL_INSTANCE + " TEXT NOT NULL, "
+ COL_CACHE + " TEXT NOT NULL, "
+ COL_DATE + " TEXT NOT NULL) " ;
2018-11-18 16:01:46 +01:00
2018-11-30 18:39:01 +01:00
private final String CREATE_TABLE_CACHE_TAGS = " CREATE TABLE "
+ TABLE_CACHE_TAGS + " ( "
2018-11-18 16:01:46 +01:00
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
2018-11-30 18:39:01 +01:00
+ COL_TAGS + " TEXT NOT NULL) " ;
2018-11-18 16:01:46 +01:00
2018-12-09 12:14:05 +01:00
private static final String CREATE_TABLE_BOOST_SCHEDULE = " CREATE TABLE " + TABLE_BOOST_SCHEDULE + " ( "
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COL_USER_ID + " TEXT NOT NULL, " + COL_INSTANCE + " TEXT NOT NULL, "
+ COL_STATUS_SERIALIZED + " TEXT NOT NULL, " + COL_DATE_SCHEDULED + " TEXT, "
+ COL_IS_SCHEDULED + " INTEGER NOT NULL, " + COL_SENT + " INTEGER NOT NULL, " + COL_DATE_SENT + " TEXT) " ;
2019-02-14 11:49:52 +01:00
static final String COL_DOMAIN = " DOMAIN " ;
private static final String CREATE_TABLE_TRACKING_BLOCK = " CREATE TABLE " + TABLE_TRACKING_BLOCK + " ( "
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COL_DOMAIN + " TEXT NOT NULL) " ;
2017-05-05 16:36:04 +02:00
public Sqlite ( Context context , String name , SQLiteDatabase . CursorFactory factory , int version ) {
super ( context , name , factory , version ) ;
}
public static synchronized Sqlite getInstance ( Context context , String name , SQLiteDatabase . CursorFactory factory , int version )
{
if ( sInstance = = null ) {
sInstance = new Sqlite ( context , name , factory , version ) ;
}
return sInstance ;
}
@Override
public void onCreate ( SQLiteDatabase db ) {
db . execSQL ( CREATE_TABLE_USER_ACCOUNT ) ;
2017-07-15 14:59:09 +02:00
db . execSQL ( CREATE_TABLE_STATUSES_STORED ) ;
2017-11-15 16:51:35 +01:00
db . execSQL ( CREATE_TABLE_CUSTOM_EMOJI ) ;
2017-11-23 18:16:47 +01:00
db . execSQL ( CREATE_TABLE_SEARCH ) ;
2018-01-04 15:58:39 +01:00
db . execSQL ( CREATE_TABLE_TEMP_MUTE ) ;
2018-02-14 18:44:22 +01:00
db . execSQL ( CREATE_TABLE_STATUSES_CACHE ) ;
2018-02-22 20:00:36 +01:00
db . execSQL ( CREATE_UNIQUE_CACHE_INDEX ) ;
2018-08-20 19:00:20 +02:00
db . execSQL ( CREATE_TABLE_INSTANCES ) ;
2018-10-21 18:43:57 +02:00
db . execSQL ( CREATE_TABLE_PEERTUBE_FAVOURITES ) ;
2018-11-30 18:39:01 +01:00
db . execSQL ( CREATE_TABLE_CACHE_TAGS ) ;
2018-12-09 12:14:05 +01:00
db . execSQL ( CREATE_TABLE_BOOST_SCHEDULE ) ;
2019-02-14 11:49:52 +01:00
db . execSQL ( CREATE_TABLE_TRACKING_BLOCK ) ;
2017-05-05 16:36:04 +02:00
}
@Override
public void onUpgrade ( SQLiteDatabase db , int oldVersion , int newVersion ) {
switch ( oldVersion ) {
2017-07-15 14:59:09 +02:00
case 1 :
db . execSQL ( CREATE_TABLE_STATUSES_STORED ) ;
2017-07-18 10:54:15 +02:00
case 2 :
2017-07-20 11:06:11 +02:00
db . execSQL ( " DROP TABLE IF EXISTS " + TABLE_STATUSES_STORED ) ;
db . execSQL ( CREATE_TABLE_STATUSES_STORED ) ;
2017-11-01 18:52:08 +01:00
case 3 :
db . execSQL ( CREATE_TABLE_CUSTOM_EMOJI ) ;
2017-11-15 16:51:35 +01:00
case 4 :
db . execSQL ( " CREATE TABLE IF NOT EXISTS " + TABLE_CUSTOM_EMOJI + " ( "
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COL_SHORTCODE + " TEXT NOT NULL, " + COL_INSTANCE + " TEXT NOT NULL, "
+ COL_URL + " TEXT NOT NULL, " + COL_URL_STATIC + " TEXT NOT NULL, " + COL_DATE_CREATION + " TEXT NOT NULL) " ) ;
2017-11-19 16:08:34 +01:00
case 5 :
db . execSQL ( " delete from " + TABLE_CUSTOM_EMOJI ) ; //Reset table due to bugs
2017-11-23 18:16:47 +01:00
case 6 :
db . execSQL ( CREATE_TABLE_SEARCH ) ;
2018-01-04 15:58:39 +01:00
case 7 :
db . execSQL ( CREATE_TABLE_TEMP_MUTE ) ;
2018-02-14 18:44:22 +01:00
case 8 :
db . execSQL ( CREATE_TABLE_STATUSES_CACHE ) ;
2018-02-17 08:44:13 +01:00
case 9 :
2018-02-17 08:49:28 +01:00
db . execSQL ( " DROP TABLE IF EXISTS " + TABLE_STATUSES_CACHE ) ;
db . execSQL ( CREATE_TABLE_STATUSES_CACHE ) ;
2018-02-22 20:00:36 +01:00
case 10 :
2018-02-23 07:31:05 +01:00
//Table cache is deleted to avoid error during migration
db . execSQL ( " DROP TABLE IF EXISTS " + TABLE_STATUSES_CACHE ) ;
db . execSQL ( CREATE_TABLE_STATUSES_CACHE ) ;
2018-02-22 20:00:36 +01:00
db . execSQL ( CREATE_UNIQUE_CACHE_INDEX ) ;
2018-08-20 19:00:20 +02:00
case 11 :
db . execSQL ( CREATE_TABLE_INSTANCES ) ;
2018-09-16 15:05:33 +02:00
case 12 :
db . execSQL ( " ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_EMOJIS + " TEXT " ) ;
2018-10-05 18:02:11 +02:00
case 13 :
2018-10-31 11:20:07 +01:00
if ( oldVersion > 11 )
db . execSQL ( " ALTER TABLE " + TABLE_INSTANCES + " ADD COLUMN " + COL_INSTANCE_TYPE + " TEXT " ) ;
2018-10-21 18:43:57 +02:00
case 14 :
db . execSQL ( CREATE_TABLE_PEERTUBE_FAVOURITES ) ;
2018-11-18 13:33:12 +01:00
case 15 :
if ( oldVersion > 8 )
db . execSQL ( " ALTER TABLE " + TABLE_STATUSES_CACHE + " ADD COLUMN " + COL_CARD + " TEXT " ) ;
2018-11-18 16:01:46 +01:00
case 16 :
2018-11-30 18:39:01 +01:00
case 17 :
db . execSQL ( " DROP TABLE IF EXISTS ' " + TABLE_TIMELINE_CACHE + " ' " ) ;
db . execSQL ( CREATE_TABLE_CACHE_TAGS ) ;
2018-12-09 12:14:05 +01:00
case 18 :
db . execSQL ( CREATE_TABLE_BOOST_SCHEDULE ) ;
2018-12-15 12:02:29 +01:00
case 19 :
if ( oldVersion > 6 ) {
db . execSQL ( " ALTER TABLE " + TABLE_SEARCH + " ADD COLUMN " + COL_IS_ART + " INTEGER DEFAULT 0 " ) ;
db . execSQL ( " ALTER TABLE " + TABLE_SEARCH + " ADD COLUMN " + COL_IS_NSFW + " INTEGER DEFAULT 0 " ) ;
}
2018-12-27 17:49:50 +01:00
case 20 :
if ( oldVersion > 6 ) {
db . execSQL ( " ALTER TABLE " + TABLE_SEARCH + " ADD COLUMN " + COL_ANY + " TEXT " ) ;
db . execSQL ( " ALTER TABLE " + TABLE_SEARCH + " ADD COLUMN " + COL_ALL + " TEXT " ) ;
db . execSQL ( " ALTER TABLE " + TABLE_SEARCH + " ADD COLUMN " + COL_NONE + " TEXT " ) ;
}
2018-12-28 10:41:40 +01:00
case 21 :
if ( oldVersion > 6 ) {
db . execSQL ( " ALTER TABLE " + TABLE_SEARCH + " ADD COLUMN " + COL_NAME + " TEXT " ) ;
}
2019-01-02 19:39:40 +01:00
case 22 :
db . execSQL ( " ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_SOCIAL + " TEXT " ) ;
2019-01-05 12:17:38 +01:00
case 23 :
db . execSQL ( " ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_CLIENT_ID + " TEXT " ) ;
db . execSQL ( " ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_CLIENT_SECRET + " TEXT " ) ;
db . execSQL ( " ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_REFRESH_TOKEN + " TEXT " ) ;
2019-01-27 11:02:53 +01:00
case 24 :
db . execSQL ( " ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_IS_MODERATOR + " INTEGER DEFAULT 0 " ) ;
db . execSQL ( " ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_IS_ADMIN + " INTEGER DEFAULT 0 " ) ;
2019-01-29 11:52:54 +01:00
case 25 :
db . execSQL ( " ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_UPDATED_AT + " TEXT " ) ;
2019-02-14 11:49:52 +01:00
case 26 :
db . execSQL ( CREATE_TABLE_TRACKING_BLOCK ) ;
2017-05-05 16:36:04 +02:00
default :
break ;
}
}
public SQLiteDatabase open ( ) {
//opened with write access
db = getWritableDatabase ( ) ;
return db ;
}
public void close ( ) {
//Close the db
if ( db ! = null & & db . isOpen ( ) ) {
db . close ( ) ;
}
}
}