Advertisement
Guest User

Untitled

a guest
May 19th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.21 KB | None | 0 0
  1. package com.example.student.telefony;
  2.  
  3. import android.content.ContentProvider;
  4. import android.content.ContentValues;
  5. import android.content.UriMatcher;
  6. import android.database.Cursor;
  7. import android.database.sqlite.SQLiteDatabase;
  8. import android.net.Uri;
  9. import android.support.annotation.NonNull;
  10.  
  11. public class TelefonyProvider extends ContentProvider
  12. {
  13.     private PomocnikBD mPomocnikBD;
  14.     private static final String IDENTYFIKATOR = "com.example.student.telefony.TelefonyProvider";
  15.     public static final Uri URI_ZAWARTOSCI = Uri.parse("content://" + IDENTYFIKATOR + "/" + PomocnikBD.NAZWA_TABELI);
  16.     private static final int CALA_TABELA = 1;
  17.     private static final int WYBRANY_WIERSZ = 2;
  18.     private static final UriMatcher sDopasowanieUri = new UriMatcher(UriMatcher.NO_MATCH);
  19.  
  20.     static
  21.     {
  22.         sDopasowanieUri.addURI(IDENTYFIKATOR, PomocnikBD.NAZWA_TABELI, CALA_TABELA);
  23.         sDopasowanieUri.addURI(IDENTYFIKATOR, PomocnikBD.NAZWA_TABELI + "/#", WYBRANY_WIERSZ);
  24.     }
  25.  
  26.     @Override
  27.     public String getType(@NonNull Uri uri)
  28.     {
  29.         return null;
  30.     }
  31.  
  32.     /**
  33.      * Metoda usuwa dane z bazy danych
  34.      */
  35.     @Override
  36.     public int delete(@NonNull Uri uri, String selection, String[] selectionArgs)
  37.     {
  38.         int typUri = sDopasowanieUri.match(uri);
  39.         SQLiteDatabase baza = mPomocnikBD.getWritableDatabase();
  40.         int liczbaUsunietych = 0;
  41.  
  42.         switch(typUri)
  43.         {
  44.             case CALA_TABELA:
  45.                 liczbaUsunietych = baza.delete(PomocnikBD.NAZWA_TABELI, selection, selectionArgs);
  46.                 break;
  47.  
  48.             case WYBRANY_WIERSZ:
  49.                 liczbaUsunietych = baza.delete(PomocnikBD.NAZWA_TABELI, dodajIdDoSelekcji(selection, uri), selectionArgs);
  50.                 break;
  51.  
  52.             default:
  53.                 throw new IllegalArgumentException("Nieznane URI: " + uri);
  54.         }
  55.  
  56.         getContext().getContentResolver().notifyChange(uri, null);
  57.         return liczbaUsunietych;
  58.     }
  59.  
  60.     /**
  61.      * Metoda wstawia dane do bazy danych
  62.      */
  63.     @Override
  64.     public Uri insert(@NonNull Uri uri, ContentValues values)
  65.     {
  66.         int typUri = sDopasowanieUri.match(uri);
  67.         SQLiteDatabase baza = mPomocnikBD.getWritableDatabase();
  68.         long idDodanego = 0;
  69.  
  70.         switch(typUri)
  71.         {
  72.             case CALA_TABELA:
  73.                 idDodanego = baza.insert(PomocnikBD.NAZWA_TABELI, null, values);
  74.                 break;
  75.  
  76.             default:
  77.                 throw new IllegalArgumentException("Nieznane Uri : "+uri);
  78.         }
  79.  
  80.         getContext().getContentResolver().notifyChange( uri, null);
  81.         return Uri.parse(PomocnikBD.NAZWA_TABELI + "/" + idDodanego);
  82.     }
  83.  
  84.     @Override
  85.     public boolean onCreate()
  86.     {
  87.         mPomocnikBD = new PomocnikBD(getContext());
  88.         return false;
  89.     }
  90.  
  91.     /**
  92.      * Metoda wysyła zapytanie do bazy danych
  93.      */
  94.     @Override
  95.     public Cursor query(@NonNull Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
  96.     {
  97.         int typUri = sDopasowanieUri.match(uri);
  98.         SQLiteDatabase baza = mPomocnikBD.getWritableDatabase();
  99.         Cursor kursorTel = null;
  100.  
  101.         switch (typUri)
  102.         {
  103.             case CALA_TABELA:
  104.                 kursorTel = baza.query(false, PomocnikBD.NAZWA_TABELI, projection, selection, selectionArgs, null, null, sortOrder, null, null);
  105.                 break;
  106.  
  107.             case WYBRANY_WIERSZ:
  108.                 kursorTel = baza.query(false, PomocnikBD.NAZWA_TABELI, projection, dodajIdDoSelekcji(selection, uri), selectionArgs, null, null, sortOrder, null, null);
  109.                 break;
  110.  
  111.             default:
  112.                 throw new IllegalArgumentException("Nieznane URI: " + uri);
  113.         }
  114.  
  115.         kursorTel.setNotificationUri(getContext().getContentResolver(), uri);
  116.         return kursorTel;
  117.     }
  118.  
  119.     private String dodajIdDoSelekcji(String selekcja, Uri uri)
  120.     {
  121.         if(selekcja != null && !selekcja.equals(""))
  122.         {
  123.             selekcja = selekcja + " and " + PomocnikBD.ID + "=" + uri.getLastPathSegment();
  124.         }
  125.  
  126.         else
  127.         {
  128.             selekcja = PomocnikBD.ID + "=" + uri.getLastPathSegment();
  129.         }
  130.  
  131.         return selekcja;
  132.     }
  133.  
  134.     /**
  135.      * Metoda aktualizuje dane w bazie danych
  136.      */
  137.     @Override
  138.     public int update(@NonNull Uri uri, ContentValues values, String selection, String[] selectionArgs)
  139.     {
  140.         int typUri = sDopasowanieUri.match(uri);
  141.         SQLiteDatabase baza = mPomocnikBD.getWritableDatabase();
  142.         int liczbaZaktualizowanych = 0;
  143.  
  144.         switch (typUri)
  145.         {
  146.             case CALA_TABELA:
  147.                 liczbaZaktualizowanych = baza.update(PomocnikBD.NAZWA_TABELI, values, selection, selectionArgs);
  148.                 break;
  149.  
  150.             case WYBRANY_WIERSZ:
  151.                 liczbaZaktualizowanych = baza.update(PomocnikBD.NAZWA_TABELI, values, dodajIdDoSelekcji(selection, uri), selectionArgs);
  152.                 break;
  153.  
  154.             default:
  155.                 throw new IllegalArgumentException("Nieznane URI: " + uri);
  156.         }
  157.  
  158.         getContext().getContentResolver().notifyChange(uri, null);
  159.         return liczbaZaktualizowanych;
  160.     }
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement