tlmarker1968

Untitled

Dec 11th, 2019
718
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.91 KB | None | 0 0
  1. package com.phehossof.phoenixinstall;
  2.  
  3. import android.content.ContentProvider;
  4. import android.content.ContentUris;
  5. import android.content.ContentValues;
  6. import android.content.Context;
  7. import android.content.UriMatcher;
  8. import android.database.Cursor;
  9. import android.database.sqlite.SQLiteDatabase;
  10. import android.database.sqlite.SQLiteException;
  11. import android.database.sqlite.SQLiteOpenHelper;
  12. import android.database.sqlite.SQLiteQueryBuilder;
  13. import android.net.Uri;
  14. import androidx.annotation.NonNull;
  15. import androidx.annotation.Nullable;
  16. import java.util.HashMap;
  17. import java.util.Objects;
  18.  
  19. public class ProviderSettings extends ContentProvider {
  20.     static final String PROVIDER_NAME ="com.phehossof.phoenixinstall.ProviderSettings";
  21.     static final String URL = "content://" + PROVIDER_NAME +"/settings";
  22.     static final Uri CONTENT_URI = Uri.parse(URL);
  23.  
  24.     static final String id = "id";
  25.     static final String coname = "coname";
  26.     static final String coaddress = "coaddress";
  27.     static final String cocity = "cocity";
  28.     static final String costate = "costate";
  29.     static final String cszip = "cozip";
  30.     static final String apiurl = "apiurl";
  31.     static final int uriCode = 1;
  32.     static final UriMatcher uriMatcher;
  33.     private static HashMap<String, String> values;
  34.  
  35.     static {
  36.         uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
  37.         uriMatcher.addURI(PROVIDER_NAME, "settings", uriCode);
  38.         uriMatcher.addURI(PROVIDER_NAME, "settings/*", uriCode);
  39.     }
  40.  
  41.     @Override
  42.     public boolean onCreate() {
  43.         Context context = getContext();
  44.         DatabaseHelper dbHelper = new DatabaseHelper(context);
  45.         db = dbHelper.getWritableDatabase();
  46.         return db != null;
  47.     }
  48.  
  49.     @Nullable
  50.     @Override
  51.     public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
  52.         SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
  53.         qb.setTables(TABLE_NAME);
  54.         qb.setStrict(true);
  55.         qb.setProjectionMap(null);
  56.         if (uriMatcher.match(uri) == uriCode) qb.setProjectionMap(values);
  57.         else throw new IllegalArgumentException("Unknown URI " + uri);
  58.         if (sortOrder == null || Objects.equals(sortOrder, "")) sortOrder = id;
  59.         Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, sortOrder);
  60.         c.setNotificationUri(Objects.requireNonNull(getContext()).getContentResolver(), uri);
  61.         return c;
  62.     }
  63.  
  64.     @Nullable
  65.     @Override
  66.     public String getType(@NonNull Uri uri) {
  67.         if (uriMatcher.match(uri) == uriCode) return "vnd.android.cursor/settings";
  68.         throw new IllegalArgumentException("Unsupported URI:" + uri);
  69.     }
  70.  
  71.     @Nullable
  72.     @Override
  73.     public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
  74.         long rowID = db.insert(TABLE_NAME,"", values);
  75.         if (rowID > 0) {
  76.             Uri _uri = ContentUris.withAppendedId(CONTENT_URI, rowID);
  77.             Objects.requireNonNull(getContext()).getContentResolver().notifyChange(_uri, null);
  78.             return _uri;
  79.         }
  80.         throw new SQLiteException("Failed to add record into " + uri);
  81.     }
  82.  
  83.     @Override
  84.     public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
  85.         int count;
  86.         if (uriMatcher.match(uri) == uriCode) {
  87.             count = db.delete(TABLE_NAME,null, null);
  88.         } else {
  89.             throw new IllegalArgumentException("Unknown URI " + uri);
  90.         }
  91.         Objects.requireNonNull(getContext()).getContentResolver().notifyChange(uri, null);
  92.         return count;
  93.     }
  94.  
  95.     @Override
  96.     public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
  97.         return 0;
  98.     }
  99.  
  100.     private SQLiteDatabase db;
  101.     static final String DATABASE_NAME = "Phoenix";
  102.     static final String TABLE_NAME = "Settings";
  103.     static final int DATABASE_VERSION = 1;
  104.     static final String CREATE_DB_TABLE = " CREATE TABLE " + TABLE_NAME
  105.             + " (id INTEGER PRIMARY KEY AUTOINCREMENT, "
  106.             + " coname TEXT NOT NULL, "
  107.             + " coaddress TEXT NOT NULL, "
  108.             + " cocity TEXT NOT NULL,"
  109.             + " costate TEXT NOT NULL,"
  110.             + " cozip TEXT NOT NULL,"
  111.             + " apiurl TEXT NOT NULL);";
  112.  
  113.     private static class DatabaseHelper extends SQLiteOpenHelper {
  114.         DatabaseHelper(Context context) {
  115.             super(context, DATABASE_NAME, null, DATABASE_VERSION);
  116.         }
  117.  
  118.         @Override
  119.         public void onCreate(SQLiteDatabase db) {
  120.             db.execSQL(CREATE_DB_TABLE);
  121.         }
  122.  
  123.         @Override
  124.         public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  125.             db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
  126.             onCreate(db);
  127.         }
  128.     }
  129. }
Advertisement
Add Comment
Please, Sign In to add comment