List of usage examples for android.widget RemoteViews setTextViewText
public void setTextViewText(int viewId, CharSequence text)
From source file:br.com.bioscada.apps.biotracks.widgets.TrackWidgetProvider.java
/** * Updates recording status.//from w w w .j a v a 2 s. c o m * * @param context the context * @param remoteViews the remote views * @param isRecording true if recording * @param recordingTrackPaused true if recording track is paused */ private static void updateRecordStatus(Context context, RemoteViews remoteViews, boolean isRecording, boolean recordingTrackPaused) { String status; int colorId; if (isRecording) { status = context.getString(recordingTrackPaused ? R.string.generic_paused : R.string.generic_recording); colorId = recordingTrackPaused ? android.R.color.white : R.color.recording_text; } else { status = ""; colorId = android.R.color.white; } remoteViews.setTextColor(R.id.track_widget_record_status, context.getResources().getColor(colorId)); remoteViews.setTextViewText(R.id.track_widget_record_status, status); }
From source file:io.teak.sdk.NotificationBuilder.java
public static Notification createNativeNotification(final Context context, Bundle bundle, TeakNotification teakNotificaton) { NotificationCompat.Builder builder = new NotificationCompat.Builder(context); // Rich text message Spanned richMessageText = Html.fromHtml(teakNotificaton.message); // Configure notification behavior builder.setPriority(NotificationCompat.PRIORITY_MAX); builder.setDefaults(NotificationCompat.DEFAULT_ALL); builder.setOnlyAlertOnce(true);// ww w . ja v a 2s . c o m builder.setAutoCancel(true); builder.setTicker(richMessageText); // Set small view image try { PackageManager pm = context.getPackageManager(); ApplicationInfo ai = pm.getApplicationInfo(context.getPackageName(), 0); builder.setSmallIcon(ai.icon); } catch (Exception e) { Log.e(LOG_TAG, "Unable to load icon resource for Notification."); return null; } Random rng = new Random(); // Create intent to fire if/when notification is cleared Intent pushClearedIntent = new Intent( context.getPackageName() + TeakNotification.TEAK_NOTIFICATION_CLEARED_INTENT_ACTION_SUFFIX); pushClearedIntent.putExtras(bundle); PendingIntent pushClearedPendingIntent = PendingIntent.getBroadcast(context, rng.nextInt(), pushClearedIntent, PendingIntent.FLAG_ONE_SHOT); builder.setDeleteIntent(pushClearedPendingIntent); // Create intent to fire if/when notification is opened, attach bundle info Intent pushOpenedIntent = new Intent( context.getPackageName() + TeakNotification.TEAK_NOTIFICATION_OPENED_INTENT_ACTION_SUFFIX); pushOpenedIntent.putExtras(bundle); PendingIntent pushOpenedPendingIntent = PendingIntent.getBroadcast(context, rng.nextInt(), pushOpenedIntent, PendingIntent.FLAG_ONE_SHOT); builder.setContentIntent(pushOpenedPendingIntent); // Because we can't be certain that the R class will line up with what is at SDK build time // like in the case of Unity et. al. class IdHelper { public int id(String identifier) { int ret = context.getResources().getIdentifier(identifier, "id", context.getPackageName()); if (ret == 0) { throw new Resources.NotFoundException("Could not find R.id." + identifier); } return ret; } public int layout(String identifier) { int ret = context.getResources().getIdentifier(identifier, "layout", context.getPackageName()); if (ret == 0) { throw new Resources.NotFoundException("Could not find R.layout." + identifier); } return ret; } } IdHelper R = new IdHelper(); // Declaring local as 'R' ensures we don't accidentally use the other R // Configure notification small view RemoteViews smallView = new RemoteViews(context.getPackageName(), Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? R.layout("teak_notif_no_title_v21") : R.layout("teak_notif_no_title")); // Set small view image try { PackageManager pm = context.getPackageManager(); ApplicationInfo ai = pm.getApplicationInfo(context.getPackageName(), 0); smallView.setImageViewResource(R.id("left_image"), ai.icon); builder.setSmallIcon(ai.icon); } catch (Exception e) { Log.e(LOG_TAG, "Unable to load icon resource for Notification."); return null; } // Set small view text smallView.setTextViewText(R.id("text"), richMessageText); // Check for Jellybean (API 16, 4.1)+ for expanded view RemoteViews bigView = null; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN && teakNotificaton.longText != null && !teakNotificaton.longText.isEmpty()) { bigView = new RemoteViews(context.getPackageName(), Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? R.layout("teak_big_notif_image_text_v21") : R.layout("teak_big_notif_image_text")); // Set big view text bigView.setTextViewText(R.id("text"), Html.fromHtml(teakNotificaton.longText)); URI imageAssetA = null; try { imageAssetA = new URI(teakNotificaton.imageAssetA); } catch (Exception ignored) { } Bitmap topImageBitmap = null; if (imageAssetA != null) { try { URL aURL = new URL(imageAssetA.toString()); URLConnection conn = aURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); topImageBitmap = BitmapFactory.decodeStream(bis); bis.close(); is.close(); } catch (Exception ignored) { } } if (topImageBitmap == null) { try { InputStream istr = context.getAssets().open("teak_notif_large_image_default.png"); topImageBitmap = BitmapFactory.decodeStream(istr); } catch (Exception ignored) { } } if (topImageBitmap != null) { // Set large bitmap bigView.setImageViewBitmap(R.id("top_image"), topImageBitmap); } else { Log.e(LOG_TAG, "Unable to load image asset for Notification."); // Hide pulldown smallView.setViewVisibility(R.id("pulldown_layout"), View.INVISIBLE); } } else { // Hide pulldown smallView.setViewVisibility(R.id("pulldown_layout"), View.INVISIBLE); } // Voodoo from http://stackoverflow.com/questions/28169474/notification-background-in-android-lollipop-is-white-can-we-change-it int topId = Resources.getSystem().getIdentifier("status_bar_latest_event_content", "id", "android"); int topBigLayout = Resources.getSystem().getIdentifier("notification_template_material_big_media_narrow", "layout", "android"); int topSmallLayout = Resources.getSystem().getIdentifier("notification_template_material_media", "layout", "android"); RemoteViews topBigView = null; if (bigView != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // This is invisible inner view - to have media_actions in hierarchy RemoteViews innerTopView = new RemoteViews("android", topBigLayout); bigView.addView(android.R.id.empty, innerTopView); // This should be on top - we need status_bar_latest_event_content as top layout topBigView = new RemoteViews("android", topBigLayout); topBigView.removeAllViews(topId); topBigView.addView(topId, bigView); } else if (bigView != null) { topBigView = bigView; } // This should be on top - we need status_bar_latest_event_content as top layout RemoteViews topSmallView; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { topSmallView = new RemoteViews("android", topSmallLayout); topSmallView.removeAllViews(topId); topSmallView.addView(topId, smallView); } else { topSmallView = smallView; } builder.setContent(topSmallView); Notification n = builder.build(); if (topBigView != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { // Use reflection to avoid compile-time issues, we check minimum API version above try { Field bigContentViewField = n.getClass().getField("bigContentView"); bigContentViewField.set(n, topBigView); } catch (Exception ignored) { } } return n; }
From source file:com.commonsware.android.hcnotify.SillyService.java
private RemoteViews buildTicker() { RemoteViews ticker = new RemoteViews(this.getPackageName(), R.layout.ticker); ticker.setTextViewText(R.id.ticker_text, getString(R.string.ticker)); return (ticker); }
From source file:com.oryx.notifications.NotificationService.java
private RemoteViews getNotiView(PendingIntent pi, PendingIntent pi2) { RemoteViews remoteViews = new RemoteViews(this.getPackageName(), R.layout.noti_custom); remoteViews.setTextViewText(R.id.notiURL, this.url); remoteViews.setOnClickPendingIntent(R.id.notipause, pi); remoteViews.setOnClickPendingIntent(R.id.notiplay, pi2); return remoteViews; }
From source file:me.sandrin.xkcdwidget.XKCDAppWidgetProvider.java
private void updateRemoteViews(Context context, RemoteViews views) { if (title != null) { views.setTextViewText(R.id.title, title); }/*from w ww .j a va 2s. c o m*/ if (image != null) { views.setImageViewBitmap(R.id.image, image); } else { views.setImageViewBitmap(R.id.image, null); } Intent goToSiteIntent = new Intent(Intent.ACTION_VIEW); goToSiteIntent.setData(Uri.parse("http://xkcd.com")); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, goToSiteIntent, 0); views.setOnClickPendingIntent(R.id.image, pendingIntent); if (altText != null) { views.setTextViewText(R.id.alt_text, altText); } Intent intent = new Intent(context, getClass()); intent.setAction(UPDATE); views.setOnClickPendingIntent(R.id.sync, PendingIntent.getBroadcast(context, 0, intent, 0)); }
From source file:com.ratusapparatus.tapsaff.TapsAff.java
@Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { super.onUpdate(context, appWidgetManager, appWidgetIds); ComponentName thisWidget = new ComponentName(context, TapsAff.class); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout); views.setTextViewText(R.id.main, "ehh..."); appWidgetManager.updateAppWidget(thisWidget, views); RetreiveFeedTask task = new RetreiveFeedTask(); task.context = context;//from w w w . j ava 2s. c o m task.appWidgetManager = appWidgetManager; task.execute("http://www.taps-aff.co.uk/taps.json"); }
From source file:com.commonsware.android.okhttp3.progress.Downloader.java
private NotificationCompat.Builder buildForeground(String filename) { NotificationCompat.Builder b = new NotificationCompat.Builder(this); RemoteViews content = new RemoteViews(getPackageName(), R.layout.notif_content); content.setTextViewText(android.R.id.title, "Downloading: " + filename); b.setOngoing(true).setContent(content).setSmallIcon(android.R.drawable.stat_sys_download); return (b);//from w w w .j av a 2s . c om }
From source file:com.calendaridex.widget.WidgetViewsFactory.java
@Override public RemoteViews getViewAt(int position) { RemoteViews row = new RemoteViews(ctxt.getPackageName(), R.layout.widget_list_item); Event event = items.get(position); row.setTextViewText(R.id.text1, event.getTitle()); if (event.getAdminEvent()) { row.setTextColor(R.id.text1, ContextCompat.getColor(ctxt, R.color.colorPrimaryDark)); } else {/* w ww.j a va 2s . c om*/ row.setTextColor(R.id.text1, ContextCompat.getColor(ctxt, android.R.color.holo_green_dark)); } // Intent i=new Intent(); // Bundle extras=new Bundle(); // // extras.putString(CalendarWidget.EXTRA_WORD, event.getTitle()); // i.putExtras(extras); // row.setOnClickFillInIntent(android.R.id.text1, i); return row; }
From source file:com.google.android.vending.expansion.downloader.impl.V4CustomNotificationBuilder.java
@Override public Notification build() { if (android.os.Build.VERSION.SDK_INT > 10) { // only matters for Honeycomb setOnlyAlertOnce(true);//from www .jav a2s . c o m } // Build the RemoteView object RemoteViews expandedView = new RemoteViews(mContext.getPackageName(), R.layout.status_bar_ongoing_event_progress_bar); expandedView.setTextViewText(R.id.title, mContentTitle); // look at strings expandedView.setViewVisibility(R.id.description, View.VISIBLE); expandedView.setTextViewText(R.id.description, Helpers.getDownloadProgressString(this.mCurrentBytes, mTotalBytes)); expandedView.setViewVisibility(R.id.progress_bar_frame, View.VISIBLE); expandedView.setProgressBar(R.id.progress_bar, (int) (mTotalBytes >> 8), (int) (mCurrentBytes >> 8), mTotalBytes <= 0); expandedView.setViewVisibility(R.id.time_remaining, View.VISIBLE); expandedView.setTextViewText(R.id.time_remaining, mContentInfo); expandedView.setTextViewText(R.id.progress_text, Helpers.getDownloadProgressPercent(mCurrentBytes, mTotalBytes)); expandedView.setImageViewResource(R.id.appIcon, mIcon); Notification n = super.build(); n.contentView = expandedView; return n; }
From source file:dk.cafeanalog.AnalogWidget.java
private void handleIsOpen(final Context mContext, final OpeningStatus openingStatus) { final AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(mContext); final int[] appWidgetIds = appWidgetManager .getAppWidgetIds(new ComponentName(mContext, AnalogWidget.class)); final RemoteViews views = new RemoteViews(mContext.getPackageName(), R.layout.analog_widget); views.setTextViewText(R.id.appwidget_text, mContext.getText(R.string.refreshing_analog)); views.setTextColor(R.id.appwidget_text, ContextCompat.getColor(mContext, android.R.color.primary_text_dark)); // Instruct the widget manager to update the widget for (int appWidgetId : appWidgetIds) { appWidgetManager.updateAppWidget(appWidgetId, views); }//from ww w. j a v a 2 s .c o m CharSequence widgetText; if (openingStatus.open) { widgetText = mContext.getString(R.string.widget_open_analog); views.setTextColor(R.id.appwidget_text, ContextCompat.getColor(mContext, R.color.openColor)); } else { widgetText = mContext.getString(R.string.widget_closed_analog); views.setTextColor(R.id.appwidget_text, ContextCompat.getColor(mContext, R.color.closedColor)); } views.setTextViewText(R.id.appwidget_text, widgetText); views.setOnClickPendingIntent(R.id.appwidget_text, getPendingSelfIntent(mContext)); // Instruct the widget manager to update the widget for (int appWidgetId : appWidgetIds) { appWidgetManager.updateAppWidget(appWidgetId, views); } }