package com.piusvelte.sonet.provider;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.provider.BaseColumns;
import android.support.annotation.NonNull;
import com.piusvelte.sonet.Sonet;
/**
* Created by bemmanuel on 3/22/15.
*/
public final class StatusesStyles implements BaseColumns {
public static final String VIEW = "statuses_styles";
// this is actually a view, joining the account/widget/default styles to the statuses
private StatusesStyles() {
}
public static Uri getContentUri(Context context) {
return Uri.parse("content://" + Sonet.getAuthority(context) + "/statuses_styles");
}
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.piusvelte.statuses_styles";
public static final String CREATED = "created";
public static final String FRIEND = "friend";
public static final String PROFILE_URL = "profile_url";
public static final String MESSAGE = "message";
public static final String SERVICE = "service";
public static final String WIDGET = "widget";
// account specific settings per widget
public static final String ACCOUNT = "account";
public static final String CREATEDTEXT = "createdtext";
// service id, for posting and linking
public static final String SID = "sid";
// store friend and profile data in a separate table
public static final String ENTITY = "entity";
public static final String ESID = "esid";
public static final String IMAGE_URL = "image_url";
public static void createView(@NonNull SQLiteDatabase db) {
db.execSQL("create view if not exists " + VIEW + " as select " +
"s." + Statuses._ID + " as " + StatusesStyles._ID
+ ",s." + Statuses.CREATED + " as " + StatusesStyles.CREATED
+ ",(case when " + "s." + Statuses.FRIEND_OVERRIDE + " != \"\" then " + "s." + Statuses.FRIEND_OVERRIDE + " else " + "e." +
Entity.FRIEND + " end) as " + StatusesStyles.FRIEND
+ ",s." + Statuses.MESSAGE + " as " + StatusesStyles.MESSAGE
+ ",s." + Statuses.SERVICE + " as " + StatusesStyles.SERVICE
+ ",s." + Statuses.CREATEDTEXT + " as " + StatusesStyles.CREATEDTEXT
+ ",s." + Statuses.WIDGET + " as " + StatusesStyles.WIDGET
+ ",s." + Statuses.ACCOUNT + " as " + StatusesStyles.ACCOUNT
+ ",s." + Statuses.SID + " as " + StatusesStyles.SID
+ ",e." + Entity._ID + " as " + StatusesStyles.ENTITY
+ ",e." + Entity.ESID + " as " + StatusesStyles.ESID
+ ",e." + Entity.PROFILE_URL + " as " + StatusesStyles.PROFILE_URL
+ ",i." + StatusImages.URL + " as " + StatusesStyles.IMAGE_URL
+ " from " + Statuses.TABLE + " s,"
+ Entity.TABLE + " e"
+ " left join " + StatusImages.TABLE + " i"
+ " on i." + StatusImages.STATUS_ID + "=s." + Statuses._ID
+ " where "
+ "e." + Entity._ID + "=s." + Statuses.ENTITY + ";");
}
}