diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-02 22:54:46 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-02 22:54:46 -0800 |
commit | 117b33c8a0bbf5d193efee437e14637d397133ec (patch) | |
tree | 1412bba05e02c845778a82f7f8ab8e5d4e0847ab /src/com | |
parent | 7b6b27ec766158b8d5fe8e6a29ee19e6bf3ac94a (diff) | |
download | ImProvider-117b33c8a0bbf5d193efee437e14637d397133ec.tar.gz |
auto import from //depot/cupcake/@137055
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/providers/im/ImProvider.java | 47 | ||||
-rw-r--r-- | src/com/android/providers/im/ProviderListItem.java | 17 |
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); |