Android Open Source - irssi-Fusion Irssi Fusion Provider






From Project

Back to project page irssi-Fusion.

License

The source code is released under:

GNU General Public License

If you think the Android project irssi-Fusion listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.platinummonkey.irssifusion;
/*from ww w.jav  a2s .  c  o  m*/
import static android.provider.BaseColumns._ID;
import static com.platinummonkey.irssifusion.Constants.AUTHORITY;
import static com.platinummonkey.irssifusion.Constants.CONTENT_URI;
import static com.platinummonkey.irssifusion.Constants.TABLE_NAME;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.text.TextUtils;

public class IrssiFusionProvider extends ContentProvider {
  private static final int MESSAGES = 1;
  private static final int MESSAGES_ID = 2;
  
  /* MIME type of a directory of messages */
  private static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.irssifusion.message";
  /* MIME type of a single message */
  private static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.irssifusion.message";
  
  private MessagesData messages;
  private UriMatcher uriMatcher;
  
     @Override
     public boolean onCreate() {
        uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
        uriMatcher.addURI(AUTHORITY, "messages", MESSAGES);
        uriMatcher.addURI(AUTHORITY, "messages/#", MESSAGES_ID);
        messages = new MessagesData(getContext());
        return true;
     }
     

     @Override
     public Cursor query(Uri uri, String[] projection,
           String selection, String[] selectionArgs, String orderBy) {
        if (uriMatcher.match(uri) == MESSAGES_ID) {
           long id = Long.parseLong(uri.getPathSegments().get(1));
           selection = appendRowId(selection, id);
        }

        // Get the database and run the query
        SQLiteDatabase db = messages.getReadableDatabase();
        Cursor cursor = db.query(TABLE_NAME, projection, selection,
              selectionArgs, null, null, orderBy);

        // Tell the cursor what uri to watch, so it knows when its
        // source data changes
        cursor.setNotificationUri(getContext().getContentResolver(),
              uri);
        return cursor;
     }
     

     
     @Override
     public String getType(Uri uri) {
        switch (uriMatcher.match(uri)) {
        case MESSAGES:
           return CONTENT_TYPE;
        case MESSAGES_ID:
           return CONTENT_ITEM_TYPE;
        default:
           throw new IllegalArgumentException("Unknown URI " + uri);
        }
     }
     

     
     @Override
     public Uri insert(Uri uri, ContentValues values) {
        SQLiteDatabase db = messages.getWritableDatabase();

        // Validate the requested uri
        if (uriMatcher.match(uri) != MESSAGES) {
           throw new IllegalArgumentException("Unknown URI " + uri);
        }

        // Insert into database
        long id = db.insertOrThrow(TABLE_NAME, null, values);

        // Notify any watchers of the change
        Uri newUri = ContentUris.withAppendedId(CONTENT_URI, id);
        getContext().getContentResolver().notifyChange(newUri, null);
        return newUri;
     }
     

     
     @Override
     public int delete(Uri uri, String selection,
           String[] selectionArgs) {
        SQLiteDatabase db = messages.getWritableDatabase();
        int count;
        switch (uriMatcher.match(uri)) {
        case MESSAGES:
           count = db.delete(TABLE_NAME, selection, selectionArgs);
           break;
        case MESSAGES_ID:
           long id = Long.parseLong(uri.getPathSegments().get(1));
           count = db.delete(TABLE_NAME, appendRowId(selection, id),
                 selectionArgs);
           break;
        default:
           throw new IllegalArgumentException("Unknown URI " + uri);
        }

        // Notify any watchers of the change
        getContext().getContentResolver().notifyChange(uri, null);
        return count;
     }
     

     
     @Override
     public int update(Uri uri, ContentValues values,
           String selection, String[] selectionArgs) {
        SQLiteDatabase db = messages.getWritableDatabase();
        int count;
        switch (uriMatcher.match(uri)) {
        case MESSAGES:
           count = db.update(TABLE_NAME, values, selection,
                 selectionArgs);
           break;
        case MESSAGES_ID:
           long id = Long.parseLong(uri.getPathSegments().get(1));
           count = db.update(TABLE_NAME, values, appendRowId(
                 selection, id), selectionArgs);
           break;
        default:
           throw new IllegalArgumentException("Unknown URI " + uri);
        }

        // Notify any watchers of the change
        getContext().getContentResolver().notifyChange(uri, null);
        return count;
     }
     

     
     /** Append an id test to a SQL selection expression */
     private String appendRowId(String selection, long id) {
        return _ID + "=" + id
              + (!TextUtils.isEmpty(selection)
                    ? " AND (" + selection + ')'
                    : "");
     }
  
}




Java Source Code List

.SocketClient1.java
.SocketClient.java
com.platinummonkey.irssifusion.Constants.java
com.platinummonkey.irssifusion.IrssiFusionProvider.java
com.platinummonkey.irssifusion.IrssiFusionService.java
com.platinummonkey.irssifusion.MessagesData.java
com.platinummonkey.irssifusion.MessagesProvider.java
com.platinummonkey.irssifusion.channel.java
com.platinummonkey.irssifusion.irssifusion.java
com.platinummonkey.irssifusion.query.java