100 lines
3.4 KiB
Java
100 lines
3.4 KiB
Java
package org.thoughtcrime.securesms.database;
|
|
|
|
import android.content.ContentProvider;
|
|
import android.content.ContentValues;
|
|
import android.database.Cursor;
|
|
import android.net.Uri;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
|
|
import org.thoughtcrime.securesms.BuildConfig;
|
|
|
|
/**
|
|
* Starting in API 26, a {@link ContentProvider} needs to be defined for each authority you wish to
|
|
* observe changes on. These classes essentially do nothing except exist so Android doesn't complain.
|
|
*/
|
|
public class DatabaseContentProviders {
|
|
|
|
public static class ConversationList extends NoopContentProvider {
|
|
private static final String CONTENT_AUTHORITY = BuildConfig.APPLICATION_ID + ".database.conversationlist";
|
|
private static final String CONTENT_URI_STRING = "content://" + CONTENT_AUTHORITY;
|
|
|
|
public static final Uri CONTENT_URI = Uri.parse(CONTENT_URI_STRING);
|
|
}
|
|
|
|
public static class Conversation extends NoopContentProvider {
|
|
private static final String CONTENT_AUTHORITY = BuildConfig.APPLICATION_ID + ".database.conversation";
|
|
private static final String CONTENT_URI_STRING = "content://" + CONTENT_AUTHORITY + "/";
|
|
|
|
public static Uri getUriForThread(long threadId) {
|
|
return Uri.parse(CONTENT_URI_STRING + threadId);
|
|
}
|
|
|
|
public static Uri getVerboseUriForThread(long threadId) {
|
|
return Uri.parse(CONTENT_URI_STRING + "verbose/" + threadId);
|
|
}
|
|
|
|
public static Uri getUriForAllThreads() {
|
|
return Uri.parse(CONTENT_URI_STRING);
|
|
}
|
|
}
|
|
|
|
public static class Attachment extends NoopContentProvider {
|
|
private static final String CONTENT_AUTHORITY = BuildConfig.APPLICATION_ID + ".database.attachment";
|
|
private static final String CONTENT_URI_STRING = "content://" + CONTENT_AUTHORITY;
|
|
|
|
public static final Uri CONTENT_URI = Uri.parse(CONTENT_URI_STRING);
|
|
}
|
|
|
|
public static class Sticker extends NoopContentProvider {
|
|
private static final String CONTENT_AUTHORITY = BuildConfig.APPLICATION_ID + ".database.sticker";
|
|
private static final String CONTENT_URI_STRING = "content://" + CONTENT_AUTHORITY;
|
|
|
|
public static final Uri CONTENT_URI = Uri.parse(CONTENT_URI_STRING);
|
|
}
|
|
|
|
public static class StickerPack extends NoopContentProvider {
|
|
private static final String CONTENT_AUTHORITY = BuildConfig.APPLICATION_ID + ".database.stickerpack";
|
|
private static final String CONTENT_URI_STRING = "content://" + CONTENT_AUTHORITY;
|
|
|
|
public static final Uri CONTENT_URI = Uri.parse(CONTENT_URI_STRING);
|
|
}
|
|
|
|
private static abstract class NoopContentProvider extends ContentProvider {
|
|
|
|
@Override
|
|
public boolean onCreate() {
|
|
return false;
|
|
}
|
|
|
|
@Nullable
|
|
@Override
|
|
public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
|
|
return null;
|
|
}
|
|
|
|
@Nullable
|
|
@Override
|
|
public String getType(@NonNull Uri uri) {
|
|
return null;
|
|
}
|
|
|
|
@Nullable
|
|
@Override
|
|
public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
|
|
return 0;
|
|
}
|
|
}
|
|
}
|