/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.widget; import android.app.IntentService; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.net.Uri; import android.text.TextUtils; import android.util.Log; import android.widget.RemoteViews; import com.galaxy.meetup.client.android.R; import com.galaxy.meetup.client.android.StreamAdapter; import com.galaxy.meetup.client.android.content.DbEmbedMedia; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.content.EsAccountsData; import com.galaxy.meetup.client.android.content.EsPostsData; import com.galaxy.meetup.client.android.content.EsProvider; import com.galaxy.meetup.client.android.content.MediaImageRequest; import com.galaxy.meetup.client.android.service.EsSyncAdapterService; import com.galaxy.meetup.client.util.EsLog; /*8 * */ public class EsWidgetService extends IntentService { private static final int TEXT_ONLY_VIEW_IDS[]; private static Bitmap sAuthorBitmap; private static int sAutoTextColor; private static int sContentColor; private static boolean sInitialized; public static int sWidgetImageFetchSize; static { int ai[] = new int[3]; ai[0] = R.id.text_only_content_1; ai[1] = R.id.text_only_content_2; ai[2] = R.id.text_only_content_3; TEXT_ONLY_VIEW_IDS = ai; } public EsWidgetService() { super("EsWidgetService"); } private static void fetchActivities(Context context, EsAccount esaccount, int i, String s) { int j; j = 1; s = null; if(EsLog.isLoggable("EsWidget", 3)) Log.d("EsWidget", (new StringBuilder("[")).append(i).append("] loadActivities").toString()); if(!TextUtils.equals("v.whatshot", s)) { boolean flag = TextUtils.equals("v.all.circles", s); j = 0; if(flag) { j = 0; s = null; } } EsSyncAdapterService.SyncState syncstate; String s1; syncstate = new EsSyncAdapterService.SyncState(); try { syncstate.setFullSync(true); syncstate.onSyncStart((new StringBuilder("Get activities for widget circleId: ")).append(s).append(" view: ").append(j).toString()); syncstate.onStart("Activities:SyncStream"); s1 = s; EsPostsData.doActivityStreamSync(context, esaccount, j, s1, null, null, true, null, 20, null, syncstate); } catch (Exception e) { if(EsLog.isLoggable("EsWidget", 5)) Log.w("EsWidget", (new StringBuilder("[")).append(i).append("] loadActivities failed: ").append(e).toString()); } finally { syncstate.onFinish(); syncstate.onSyncFinish(); } } private static String getAutoText(Context context, long l) { int i = EsPostsData.getDefaultText(l); String s; if(i != 0) s = context.getString(i); else s = null; return s; } private Cursor loadCursor(EsAccount esaccount, int i, String s) { if(EsLog.isLoggable("EsWidget", 3)) Log.d("EsWidget", (new StringBuilder("[")).append(i).append("] loadCursor").toString()); Uri uri; Uri uri1; if(TextUtils.isEmpty(s) || TextUtils.equals(s, "v.all.circles")) uri = EsProvider.buildStreamUri(esaccount, EsPostsData.buildActivitiesStreamKey(null, null, null, true, 0)); else if(TextUtils.equals("v.whatshot", s)) uri = EsProvider.buildStreamUri(esaccount, EsPostsData.buildActivitiesStreamKey(null, null, null, true, 1)); else uri = EsProvider.buildStreamUri(esaccount, EsPostsData.buildActivitiesStreamKey(null, s, null, true, 0)); uri1 = uri.buildUpon().appendQueryParameter("limit", Integer.toString(10)).build(); return getContentResolver().query(uri1, StreamAdapter.StreamQuery.PROJECTION_STREAM, "content_flags&32933!=0 AND content_flags&16=0", null, "sort_index ASC"); } private static MediaContent readMediaContent(Cursor cursor) { MediaContent mediacontent = new MediaContent(); byte abyte0[] = cursor.getBlob(22); if(abyte0 != null) { DbEmbedMedia dbembedmedia = DbEmbedMedia.deserialize(abyte0); if(dbembedmedia != null && !TextUtils.isEmpty(dbembedmedia.getImageUrl())) { String s = (new StringBuilder()).append(dbembedmedia.getImageUrl()).append("&google_plus:widget").toString(); byte byte0; if(dbembedmedia.isVideo()) byte0 = 2; else byte0 = 3; mediacontent.imageRequest = new MediaImageRequest(s, byte0, sWidgetImageFetchSize, sWidgetImageFetchSize, true); if(!TextUtils.isEmpty(dbembedmedia.getTitle())) { String s1 = dbembedmedia.getTitle(); if(s1 != null) mediacontent.linkTitle = s1.trim(); } } } return mediacontent; } private static void showText(RemoteViews remoteviews, int i, String s, int j) { remoteviews.setViewVisibility(i, 0); remoteviews.setTextViewText(i, s.trim()); remoteviews.setTextColor(i, j); } private static void showTextLayoutContent(Context context, RemoteViews remoteviews, String s, String s1, String s2, long l) { int i = TEXT_ONLY_VIEW_IDS.length; boolean flag = TextUtils.isEmpty(s); int j = 0; if(!flag) { j = 0; if(i > 0) { int ai4[] = TEXT_ONLY_VIEW_IDS; j = 0 + 1; showText(remoteviews, ai4[0], s, sContentColor); } } if(!TextUtils.isEmpty(s1) && j < i) { int ai3[] = TEXT_ONLY_VIEW_IDS; int k1 = j + 1; showText(remoteviews, ai3[j], s1, sContentColor); j = k1; } int k; if(!TextUtils.isEmpty(s2) && j < i) { int ai2[] = TEXT_ONLY_VIEW_IDS; k = j + 1; showText(remoteviews, ai2[j], s2, sContentColor); } else { k = j; } if(k == 0) { String s3 = getAutoText(context, l); if(!TextUtils.isEmpty(s3)) { int ai1[] = TEXT_ONLY_VIEW_IDS; int j1 = k + 1; showText(remoteviews, ai1[k], s3, sAutoTextColor); k = j1; } } int i1; for(; k < i; k = i1) { int ai[] = TEXT_ONLY_VIEW_IDS; i1 = k + 1; remoteviews.setViewVisibility(ai[k], 8); } } protected void onHandleIntent(Intent intent) { // TODO } public void onStart(Intent intent, int i) { super.onStart(intent, i); int j = intent.getIntExtra("appWidgetId", 0); if(j != 0) { String s = EsWidgetUtils.loadCircleId(this, j); if(EsAccountsData.getActiveAccount(this) == null) EsWidgetProvider.showTapToConfigure(this, j); else if(TextUtils.isEmpty(s)) EsWidgetProvider.showLoadingView(this, j); else EsWidgetProvider.showProgressIndicator(this, j, intent.getBooleanExtra("refresh", false)); } } private static final class MediaContent { public MediaImageRequest imageRequest; public String linkTitle; MediaContent() { } } }