Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- My Content provider:
- package com.phehossof.launcher;
- import android.content.ContentProvider;
- import android.content.ContentUris;
- import android.content.ContentValues;
- import android.content.Context;
- import android.content.UriMatcher;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteException;
- import android.database.sqlite.SQLiteOpenHelper;
- import android.database.sqlite.SQLiteQueryBuilder;
- import android.net.Uri;
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import java.util.HashMap;
- import java.util.Objects;
- public class ProviderContent extends ContentProvider {
- static final String PROVIDER_NAME ="com.phehossof.launcher.ProviderContent";
- static final String URL = "content://" + PROVIDER_NAME +"/acl";
- static final Uri CONTENT_URI = Uri.parse(URL);
- static final String id = "id";
- static final String name = "name";
- static final String grade = "grade";
- static final String department = "department";
- static final int uriCode = 1;
- static final UriMatcher uriMatcher;
- private static HashMap<String, String> values;
- static {
- uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
- uriMatcher.addURI(PROVIDER_NAME, "acl", uriCode);
- uriMatcher.addURI(PROVIDER_NAME, "acl/*", uriCode);
- }
- @Override
- public boolean onCreate() {
- Context context = getContext();
- DatabaseHelper dbHelper = new DatabaseHelper(context);
- db = dbHelper.getWritableDatabase();
- return db != null;
- }
- @Nullable
- @Override
- public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
- SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
- qb.setTables(TABLE_NAME);
- if (uriMatcher.match(uri) == uriCode) {
- qb.setProjectionMap(values);
- } else {
- throw new IllegalArgumentException("Unknown URI " + uri);
- }
- if (sortOrder == null || Objects.equals(sortOrder, "")) {
- sortOrder = id;
- }
- Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, sortOrder);
- c.setNotificationUri(Objects.requireNonNull(getContext()).getContentResolver(), uri);
- return c;
- }
- @Nullable
- @Override
- public String getType(@NonNull Uri uri) {
- if (uriMatcher.match(uri) == uriCode) {
- return "vnd.android.cursor/acl";
- }
- throw new IllegalArgumentException("Unsupported URI:" + uri);
- }
- @Nullable
- @Override
- public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
- long rowID = db.insert(TABLE_NAME,"", values);
- if (rowID > 0) {
- Uri _uri = ContentUris.withAppendedId(CONTENT_URI, rowID);
- Objects.requireNonNull(getContext()).getContentResolver().notifyChange(_uri, null);
- return _uri;
- }
- throw new SQLiteException("Failed to add record into " + uri);
- }
- @Override
- public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
- int count;
- if (uriMatcher.match(uri) == uriCode) {
- count = db.delete(TABLE_NAME, selection, selectionArgs);
- } else {
- throw new IllegalArgumentException("Unknown URI " + uri);
- }
- Objects.requireNonNull(getContext()).getContentResolver().notifyChange(uri, null);
- return count;
- }
- @Override
- public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
- int count;
- if (uriMatcher.match(uri) == uriCode) {
- count = db.update(TABLE_NAME, values, selection, selectionArgs);
- } else {
- throw new IllegalArgumentException("Unknown URI " + uri);
- }
- Objects.requireNonNull(getContext()).getContentResolver().notifyChange(uri, null);
- return count;
- }
- private SQLiteDatabase db;
- static final String DATABASE_NAME = "EmpDB";
- static final String TABLE_NAME = "Employees";
- static final int DATABASE_VERSION = 1;
- static final String CREATE_DB_TABLE = " CREATE TABLE " + TABLE_NAME
- + " (id INTEGER PRIMARY KEY AUTOINCREMENT, "
- + " name TEXT NOT NULL);";
- private static class DatabaseHelper extends SQLiteOpenHelper {
- DatabaseHelper(Context context) {
- super(context, DATABASE_NAME, null, DATABASE_VERSION);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- db.execSQL(CREATE_DB_TABLE);
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
- onCreate(db);
- }
- }
- }
- My manifest:
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- package="com.phehossof.launcher">
- <uses-permission android:name="android.permission.INTERNET" />
- <application
- android:networkSecurityConfig="@xml/network_security_config"
- android:icon="@mipmap/launcher_icon"
- android:label="@string/app_name"
- android:roundIcon="@mipmap/launcher_icon_round"
- android:supportsRtl="true"
- android:theme="@style/AppTheme"
- tools:ignore="AllowBackup,GoogleAppIndexingWarning">
- <activity
- android:name=".ActivityHome"
- android:label="Phoenix Launcher"
- android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"
- android:launchMode="singleTask"
- android:stateNotNeeded="true" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.HOME" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity
- android:name="com.phehossof.launcher.ActivityApp"
- android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
- </activity>
- <provider
- android:authorities="com.phehossof.launcher.providercontent"
- android:name=".ProviderContent"
- tools:ignore="ExportedContentProvider">
- </provider>
- </application>
- </manifest>
Advertisement
Add Comment
Please, Sign In to add comment