summaryrefslogtreecommitdiff
path: root/src/com
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:46 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:46 -0800
commit117b33c8a0bbf5d193efee437e14637d397133ec (patch)
tree1412bba05e02c845778a82f7f8ab8e5d4e0847ab /src/com
parent7b6b27ec766158b8d5fe8e6a29ee19e6bf3ac94a (diff)
downloadImProvider-117b33c8a0bbf5d193efee437e14637d397133ec.tar.gz
auto import from //depot/cupcake/@137055
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/providers/im/ImProvider.java47
-rw-r--r--src/com/android/providers/im/ProviderListItem.java17
2 files changed, 63 insertions, 1 deletions
diff --git a/src/com/android/providers/im/ImProvider.java b/src/com/android/providers/im/ImProvider.java
index f77a2e2..9a23cc8 100644
--- a/src/com/android/providers/im/ImProvider.java
+++ b/src/com/android/providers/im/ImProvider.java
@@ -71,9 +71,10 @@ public class ImProvider extends ContentProvider {
private static final String TABLE_OUTGOING_RMQ_MESSAGES = "outgoingRmqMessages";
private static final String TABLE_LAST_RMQ_ID = "lastrmqid";
private static final String TABLE_ACCOUNT_STATUS = "accountStatus";
+ private static final String TABLE_BRANDING_RESOURCE_MAP_CACHE = "brandingResMapCache";
private static final String DATABASE_NAME = "im.db";
- private static final int DATABASE_VERSION = 46;
+ private static final int DATABASE_VERSION = 47;
protected static final int MATCH_PROVIDERS = 1;
protected static final int MATCH_PROVIDERS_BY_ID = 2;
@@ -132,6 +133,7 @@ public class ImProvider extends ContentProvider {
protected static final int MATCH_LAST_RMQ_ID = 113;
protected static final int MATCH_ACCOUNTS_STATUS = 114;
protected static final int MATCH_ACCOUNT_STATUS = 115;
+ protected static final int MATCH_BRANDING_RESOURCE_MAP_CACHE = 120;
protected final UriMatcher mUrlMatcher = new UriMatcher(UriMatcher.NO_MATCH);
@@ -256,6 +258,13 @@ public class ImProvider extends ContentProvider {
"rmq_id INTEGER" +
");");
+ db.execSQL("create TABLE " + TABLE_BRANDING_RESOURCE_MAP_CACHE + " (" +
+ "_id INTEGER PRIMARY KEY," +
+ "provider_id INTEGER," +
+ "app_res_id INTEGER," +
+ "plugin_res_id INTEGER" +
+ ");");
+
// clean up account specific data when an account is deleted.
db.execSQL("CREATE TRIGGER account_cleanup " +
"DELETE ON " + TABLE_ACCOUNTS +
@@ -321,6 +330,28 @@ public class ImProvider extends ContentProvider {
db.endTransaction();
}
+ case 46:
+ if (newVersion <= 46) {
+ return;
+ }
+
+ db.beginTransaction();
+ try {
+ // add branding resource map cache table
+ db.execSQL("create TABLE " + TABLE_BRANDING_RESOURCE_MAP_CACHE + " (" +
+ "_id INTEGER PRIMARY KEY," +
+ "provider_id INTEGER," +
+ "app_res_id INTEGER," +
+ "plugin_res_id INTEGER" +
+ ");");
+ db.setTransactionSuccessful();
+ } catch (Throwable ex) {
+ Log.e(LOG_TAG, ex.getMessage(), ex);
+ break; // force to destroy all old data;
+ } finally {
+ db.endTransaction();
+ }
+
return;
}
@@ -339,6 +370,7 @@ public class ImProvider extends ContentProvider {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_PROVIDER_SETTINGS);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_OUTGOING_RMQ_MESSAGES);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_LAST_RMQ_ID);
+ db.execSQL("DROP TABLE IF EXISTS " + TABLE_BRANDING_RESOURCE_MAP_CACHE);
}
private void createContactsTables(SQLiteDatabase db) {
@@ -739,6 +771,8 @@ public class ImProvider extends ContentProvider {
mUrlMatcher.addURI(authority, "accountStatus", MATCH_ACCOUNTS_STATUS);
mUrlMatcher.addURI(authority, "accountStatus/#", MATCH_ACCOUNT_STATUS);
+
+ mUrlMatcher.addURI(authority, "brandingResMapCache", MATCH_BRANDING_RESOURCE_MAP_CACHE);
}
@Override
@@ -1086,6 +1120,10 @@ public class ImProvider extends ContentProvider {
url.getPathSegments().get(1));
break;
+ case MATCH_BRANDING_RESOURCE_MAP_CACHE:
+ qb.setTables(TABLE_BRANDING_RESOURCE_MAP_CACHE);
+ break;
+
default:
throw new IllegalArgumentException("Unknown URL " + url);
}
@@ -1926,6 +1964,13 @@ public class ImProvider extends ContentProvider {
notifyProviderAccountContentUri = true;
break;
+ case MATCH_BRANDING_RESOURCE_MAP_CACHE:
+ rowID = db.insert(TABLE_BRANDING_RESOURCE_MAP_CACHE, null, initialValues);
+ if (rowID > 0) {
+ resultUri = Uri.parse(Im.BrandingResourceMapCache.CONTENT_URI + "/" + rowID);
+ }
+ break;
+
default:
throw new UnsupportedOperationException("Cannot insert into URL: " + url);
}
diff --git a/src/com/android/providers/im/ProviderListItem.java b/src/com/android/providers/im/ProviderListItem.java
index 69c0d0d..f2f0da8 100644
--- a/src/com/android/providers/im/ProviderListItem.java
+++ b/src/com/android/providers/im/ProviderListItem.java
@@ -26,6 +26,7 @@ import android.content.res.Resources;
import android.database.Cursor;
import android.im.BrandingResourceIDs;
import android.provider.Im;
+import android.content.res.ColorStateList;
import android.view.View;
import android.util.Log;
import com.android.providers.im.R;
@@ -49,6 +50,10 @@ public class ProviderListItem extends LinearLayout {
private int mActiveAccountUserNameColumn;
private int mAccountPresenceStatusColumn;
private int mAccountConnectionStatusColumn;
+
+ private ColorStateList mProviderNameColors;
+ private ColorStateList mLoginNameColors;
+ private ColorStateList mChatViewColors;
public ProviderListItem(Context context, LandingPage activity) {
super(context);
@@ -75,6 +80,10 @@ public class ProviderListItem extends LinearLayout {
Im.Provider.ACCOUNT_PRESENCE_STATUS);
mAccountConnectionStatusColumn = c.getColumnIndexOrThrow(
Im.Provider.ACCOUNT_CONNECTION_STATUS);
+
+ mProviderNameColors = mProviderName.getTextColors();
+ mLoginNameColors = mLoginName.getTextColors();
+ mChatViewColors = mChatView.getTextColors();
}
public void bindView(Cursor cursor) {
@@ -95,6 +104,10 @@ public class ProviderListItem extends LinearLayout {
mUnderBubble.setBackgroundDrawable(mDefaultBackground);
statusIcon.setVisibility(View.GONE);
+ providerName.setTextColor(mProviderNameColors);
+ loginName.setTextColor(mLoginNameColors);
+ chatView.setTextColor(mChatViewColors);
+
if (!cursor.isNull(mActiveAccountIdColumn)) {
mLoginName.setVisibility(View.VISIBLE);
providerName.setVisibility(View.VISIBLE);
@@ -124,6 +137,10 @@ public class ProviderListItem extends LinearLayout {
mUnderBubble.setBackgroundDrawable(mBubbleDrawable);
chatView.setVisibility(View.VISIBLE);
chatView.setText(r.getString(R.string.conversations, count));
+
+ providerName.setTextColor(0xff000000);
+ loginName.setTextColor(0xff000000);
+ chatView.setTextColor(0xff000000);
}
secondRowText = cursor.getString(mActiveAccountUserNameColumn);