List of usage examples for android.content.res Resources getDimensionPixelSize
public int getDimensionPixelSize(@DimenRes int id) throws NotFoundException
From source file:com.tct.mail.browse.ConversationItemView.java
private static synchronized void getItemViewResources(Context context) { if (sConfigurationChangedReceiver == null) { sConfigurationChangedReceiver = new BroadcastReceiver() { @Override/* w w w .j a va 2 s. co m*/ public void onReceive(Context context, Intent intent) { STAR_OFF = null; //[BUGFIX]-Mod-BEGIN by TCTNB.caixia.chen,01/07/2015,PR 893304 getItemViewResources(context.getApplicationContext()); //[BUGFIX]-Mod-END by TCTNB.caixia.chen } }; context.registerReceiver(sConfigurationChangedReceiver, new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED)); } if (STAR_OFF == null) { final Resources res = context.getResources(); // Initialize static bitmaps. //TS: junwei-xu 2015-09-02 EMAIL BUGFIX-546917 MOD-S // star off will not show in list item. //STAR_OFF = BitmapFactory.decodeResource(res, R.drawable.ic_star_outline_20dp); STAR_OFF = BitmapFactory.decodeResource(res, R.drawable.ic_importance_normal); //TS: junwei-xu 2015-09-02 EMAIL BUGFIX-546917 MOD-S STAR_ON = BitmapFactory.decodeResource(res, R.drawable.ic_star_20dp); ATTACHMENT = BitmapFactory.decodeResource(res, R.drawable.ic_attach_file_20dp); ONLY_TO_ME = BitmapFactory.decodeResource(res, R.drawable.ic_email_caret_double); TO_ME_AND_OTHERS = BitmapFactory.decodeResource(res, R.drawable.ic_email_caret_single); IMPORTANT_ONLY_TO_ME = BitmapFactory.decodeResource(res, R.drawable.ic_email_caret_double_important_unread); IMPORTANT_TO_ME_AND_OTHERS = BitmapFactory.decodeResource(res, R.drawable.ic_email_caret_single_important_unread); IMPORTANT = BitmapFactory.decodeResource(res, R.drawable.ic_email_caret_none_important_unread); STATE_REPLIED = BitmapFactory.decodeResource(res, R.drawable.ic_badge_reply_holo_light); STATE_FORWARDED = BitmapFactory.decodeResource(res, R.drawable.ic_badge_forward_holo_light); STATE_REPLIED_AND_FORWARDED = BitmapFactory.decodeResource(res, R.drawable.ic_badge_reply_forward_holo_light); STATE_CALENDAR_INVITE = BitmapFactory.decodeResource(res, R.drawable.ic_badge_invite_holo_light); VISIBLE_CONVERSATION_HIGHLIGHT = res.getDrawable(R.drawable.visible_conversation_highlight); RIGHT_EDGE_TABLET = res.getDrawable(R.drawable.list_edge_tablet); //[FEATURE]-Add-BEGIN by TSCD.chao zhang,04/17/2014,FR 631895(porting from FR514398) sHighPriorityIcon = BitmapFactory.decodeResource(res, R.drawable.ic_high_priority); sLowPriorityIcon = BitmapFactory.decodeResource(res, R.drawable.ic_low_priority); sNormalPriorityIcon = BitmapFactory.decodeResource(res, R.drawable.ic_importance_normal); //[FEATURE]-Add-END by TSCD.chao zhang // Initialize colors. sActivatedTextSpan = CharacterStyle .wrap(new ForegroundColorSpan(res.getColor(R.color.senders_text_color))); sSendersTextColor = res.getColor(R.color.senders_text_color); sSubjectTextUnreadSpan = new TextAppearanceSpan(context, R.style.SubjectAppearanceUnreadStyle); sSubjectTextReadSpan = new TextAppearanceSpan(context, R.style.SubjectAppearanceReadStyle); sBadgeTextSpan = new TextAppearanceSpan(context, R.style.BadgeTextStyle); sBadgeBackgroundSpan = new BackgroundColorSpan(res.getColor(R.color.badge_background_color)); sDateTextColorRead = res.getColor(R.color.date_text_color_read); sDateTextColorUnread = res.getColor(R.color.date_text_color_unread); sStarTouchSlop = res.getDimensionPixelSize(R.dimen.star_touch_slop); sSenderImageTouchSlop = res.getDimensionPixelSize(R.dimen.sender_image_touch_slop); sShrinkAnimationDuration = res.getInteger(R.integer.shrink_animation_duration); sSlideAnimationDuration = res.getInteger(R.integer.slide_animation_duration); // Initialize static color. sSendersSplitToken = res.getString(R.string.senders_split_token); sElidedPaddingToken = res.getString(R.string.elided_padding_token); sScrollSlop = res.getInteger(R.integer.swipeScrollSlop); sFoldersStartPadding = res.getDimensionPixelOffset(R.dimen.folders_start_padding); sFoldersInnerPadding = res.getDimensionPixelOffset(R.dimen.folder_cell_content_padding); sFoldersMaxCount = res.getInteger(R.integer.conversation_list_max_folder_count); sFoldersOverflowGradientPadding = res.getDimensionPixelOffset(R.dimen.folders_gradient_padding); sCabAnimationDuration = res.getInteger(R.integer.conv_item_view_cab_anim_duration); sBadgePaddingExtraWidth = res.getDimensionPixelSize(R.dimen.badge_padding_extra_width); sBadgeRoundedCornerRadius = res.getDimensionPixelSize(R.dimen.badge_rounded_corner_radius); sFolderRoundedCornerRadius = res.getDimensionPixelOffset(R.dimen.folder_rounded_corner_radius); sDividerColor = res.getColor(R.color.conversation_list_divider_color); sDividerInset = res.getDimensionPixelSize(R.dimen.conv_list_divider_inset); sDividerHeight = res.getDimensionPixelSize(R.dimen.divider_height); } }
From source file:com.phonemetra.turbo.launcher.Workspace.java
float getOverviewModeScaleY() { float childHeight = getNormalChildHeight(); int viewPortHeight = getViewportHeight(); Resources res = getResources(); int top = res.getDimensionPixelSize(R.dimen.overview_panel_top_padding); top += res.getDimensionPixelSize(R.dimen.sliding_panel_padding); top += res.getDimensionPixelSize(R.dimen.overview_scaling_padding); float scaledChildHeight = viewPortHeight - top; float scale = scaledChildHeight / childHeight; return scale; }
From source file:com.tr4android.support.extension.picker.time.RadialTimePickerView.java
public RadialTimePickerView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs); // Pull disabled alpha from theme. final TypedValue outValue = new TypedValue(); context.getTheme().resolveAttribute(android.R.attr.disabledAlpha, outValue, true); mDisabledAlpha = outValue.getFloat(); // process style attributes final Resources res = getResources(); final TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.TimePickerDialog, defStyleAttr, defStyleRes);//from w w w . j a va 2s. co m mTypeface = Typeface.create("sans-serif", Typeface.NORMAL); // Initialize all alpha values to opaque. for (int i = 0; i < mAlpha.length; i++) { mAlpha[i] = new IntHolder(ALPHA_OPAQUE); } mTextColor[HOURS] = a.getColorStateList(R.styleable.TimePickerDialog_numbersTextColor); if (mTextColor[HOURS] == null) { mTextColor[HOURS] = PickerThemeUtils.getTextColorPrimaryActivatedStateList(context); } mTextColor[HOURS_INNER] = a.getColorStateList(R.styleable.TimePickerDialog_numbersInnerTextColor); if (mTextColor[HOURS_INNER] == null) { mTextColor[HOURS_INNER] = PickerThemeUtils.getTextColorSecondaryActivatedStateList(context); } mTextColor[MINUTES] = mTextColor[HOURS]; mPaint[HOURS] = new Paint(); mPaint[HOURS].setAntiAlias(true); mPaint[HOURS].setTextAlign(Paint.Align.CENTER); mPaint[MINUTES] = new Paint(); mPaint[MINUTES].setAntiAlias(true); mPaint[MINUTES].setTextAlign(Paint.Align.CENTER); final int[] selectedStateSet = new int[] { android.R.attr.state_enabled, android.R.attr.state_selected }; // Set up number selected color, if available. final ColorStateList numbersSelectorColor; if (a.hasValue(R.styleable.TimePickerDialog_numbersSelectorColor)) { numbersSelectorColor = a.getColorStateList(R.styleable.TimePickerDialog_numbersSelectorColor); } else { final TypedArray ta = context.obtainStyledAttributes(new int[] { R.attr.colorControlActivated }); numbersSelectorColor = ta.getColorStateList(0); ta.recycle(); } final int selectorActivatedColor = numbersSelectorColor.getColorForState(selectedStateSet, 0); mPaintCenter.setColor(selectorActivatedColor); mPaintCenter.setAntiAlias(true); mSelectorColor = selectorActivatedColor; mSelectorDotColor = mTextColor[HOURS].getColorForState(selectedStateSet, 0); mPaintSelector[HOURS][SELECTOR_CIRCLE] = new Paint(); mPaintSelector[HOURS][SELECTOR_CIRCLE].setAntiAlias(true); mPaintSelector[HOURS][SELECTOR_DOT] = new Paint(); mPaintSelector[HOURS][SELECTOR_DOT].setAntiAlias(true); mPaintSelector[HOURS][SELECTOR_LINE] = new Paint(); mPaintSelector[HOURS][SELECTOR_LINE].setAntiAlias(true); mPaintSelector[HOURS][SELECTOR_LINE].setStrokeWidth(2); mPaintSelector[MINUTES][SELECTOR_CIRCLE] = new Paint(); mPaintSelector[MINUTES][SELECTOR_CIRCLE].setAntiAlias(true); mPaintSelector[MINUTES][SELECTOR_DOT] = new Paint(); mPaintSelector[MINUTES][SELECTOR_DOT].setAntiAlias(true); mPaintSelector[MINUTES][SELECTOR_LINE] = new Paint(); mPaintSelector[MINUTES][SELECTOR_LINE].setAntiAlias(true); mPaintSelector[MINUTES][SELECTOR_LINE].setStrokeWidth(2); mPaintBackground.setColor(a.getColor(R.styleable.TimePickerDialog_numbersBackgroundColor, ContextCompat.getColor(context, android.R.color.transparent))); mPaintBackground.setAntiAlias(true); mSelectorRadius = res.getDimensionPixelSize(R.dimen.timepicker_selector_radius); mSelectorStroke = res.getDimensionPixelSize(R.dimen.timepicker_selector_stroke); mSelectorDotRadius = res.getDimensionPixelSize(R.dimen.timepicker_selector_dot_radius); mCenterDotRadius = res.getDimensionPixelSize(R.dimen.timepicker_center_dot_radius); mTextSize[HOURS] = res.getDimensionPixelSize(R.dimen.timepicker_text_size_normal); mTextSize[MINUTES] = res.getDimensionPixelSize(R.dimen.timepicker_text_size_normal); mTextSize[HOURS_INNER] = res.getDimensionPixelSize(R.dimen.timepicker_text_size_inner); mTextInset[HOURS] = res.getDimensionPixelSize(R.dimen.timepicker_text_inset_normal); mTextInset[MINUTES] = res.getDimensionPixelSize(R.dimen.timepicker_text_inset_normal); mTextInset[HOURS_INNER] = res.getDimensionPixelSize(R.dimen.timepicker_text_inset_inner); mShowHours = true; mIs24HourMode = false; mAmOrPm = AM; // Set up accessibility components. mTouchHelper = new RadialPickerTouchHelper(); ViewCompat.setAccessibilityDelegate(this, mTouchHelper); if (ViewCompat.getImportantForAccessibility(this) == ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_AUTO) { ViewCompat.setImportantForAccessibility(this, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES); } initHoursAndMinutesText(); initData(); a.recycle(); // Initial values final Calendar calendar = Calendar.getInstance(Locale.getDefault()); final int currentHour = calendar.get(Calendar.HOUR_OF_DAY); final int currentMinute = calendar.get(Calendar.MINUTE); setCurrentHourInternal(currentHour, false, false); setCurrentMinuteInternal(currentMinute, false); setHapticFeedbackEnabled(true); }
From source file:com.bang.launcher3.Workspace.java
/** * Used to inflate the Workspace from XML. * * @param context The application's context. * @param attrs The attributes set containing the Workspace's customization values. * @param defStyle Unused./*w w w . j a v a 2 s . co m*/ */ public Workspace(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mContentIsRefreshable = false; mOutlineHelper = HolographicOutlineHelper.obtain(context); mDragEnforcer = new DropTarget.DragEnforcer(context); // With workspace, data is available straight from the get-go setDataIsReady(); mLauncher = (Launcher) context; final Resources res = getResources(); mWorkspaceFadeInAdjacentScreens = res.getBoolean(R.bool.config_workspaceFadeAdjacentScreens); mFadeInAdjacentScreens = false; mWallpaperManager = WallpaperManager.getInstance(context); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Workspace, defStyle, 0); mSpringLoadedShrinkFactor = res.getInteger(R.integer.config_workspaceSpringLoadShrinkPercentage) / 100.0f; mOverviewModeShrinkFactor = res.getInteger(R.integer.config_workspaceOverviewShrinkPercentage) / 100.0f; mOverviewModePageOffset = res.getDimensionPixelSize(R.dimen.overview_mode_page_offset); mCameraDistance = res.getInteger(R.integer.config_cameraDistance); mOriginalDefaultPage = mDefaultPage = a.getInt(R.styleable.Workspace_defaultScreen, 1); a.recycle(); setOnHierarchyChangeListener(this); setHapticFeedbackEnabled(false); initWorkspace(); // Disable multitouch across the workspace/all apps/customize tray setMotionEventSplittingEnabled(true); setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES); }
From source file:cc.flydev.launcher.Workspace.java
/** * Used to inflate the Workspace from XML. * * @param context The application's context. * @param attrs The attributes set containing the Workspace's customization values. * @param defStyle Unused./* w w w . j a v a 2s.c o m*/ */ public Workspace(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mContentIsRefreshable = false; mOutlineHelper = HolographicOutlineHelper.obtain(context); mDragEnforcer = new DropTarget.DragEnforcer(context); // With workspace, data is available straight from the get-go setDataIsReady(); mLauncher = (Launcher) context; final Resources res = getResources(); mWorkspaceFadeInAdjacentScreens = res.getBoolean(R.bool.config_workspaceFadeAdjacentScreens); mFadeInAdjacentScreens = false; mWallpaperManager = WallpaperManager.getInstance(context); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Workspace, defStyle, 0); mSpringLoadedShrinkFactor = res.getInteger(R.integer.config_workspaceSpringLoadShrinkPercentage) / 100.0f; mOverviewModeShrinkFactor = res.getInteger(R.integer.config_workspaceOverviewShrinkPercentage) / 100.0f; mOverviewModePageOffset = res.getDimensionPixelSize(R.dimen.overview_mode_page_offset); mCameraDistance = res.getInteger(R.integer.config_cameraDistance); mOriginalDefaultPage = mDefaultPage = a.getInt(R.styleable.Workspace_defaultScreen, 1); a.recycle(); setOnHierarchyChangeListener(this); setHapticFeedbackEnabled(false); initWorkspace(); // Disable multitouch across the workspace/all apps/customize tray setMotionEventSplittingEnabled(true); setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); }
From source file:com.android.soma.Launcher.java
private void updateAppMarketIcon(Drawable.ConstantState d) { if (!DISABLE_MARKET_BUTTON) { // Ensure that the new drawable we are creating has the approprate toolbar icon bounds Resources r = getResources(); Drawable marketIconDrawable = d.newDrawable(r); int w = r.getDimensionPixelSize(R.dimen.toolbar_external_icon_width); int h = r.getDimensionPixelSize(R.dimen.toolbar_external_icon_height); marketIconDrawable.setBounds(0, 0, w, h); updateTextButtonWithDrawable(R.id.market_button, marketIconDrawable); }// w w w . j av a 2s. co m }
From source file:com.android.launcher2.Workspace.java
/** * Used to inflate the Workspace from XML. * * @param context The application's context. * @param attrs The attributes set containing the Workspace's customization values. * @param defStyle Unused./* w w w. j a v a 2s . c o m*/ */ public Workspace(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mContentIsRefreshable = false; mOriginalPageSpacing = mPageSpacing; mDragEnforcer = new DropTarget.DragEnforcer(context); // With workspace, data is available straight from the get-go setDataIsReady(); mLauncher = (Launcher) context; final Resources res = getResources(); mWorkspaceFadeInAdjacentScreens = res.getBoolean(R.bool.config_workspaceFadeAdjacentScreens); mFadeInAdjacentScreens = false; mWallpaperManager = WallpaperManager.getInstance(context); int cellCountX = DEFAULT_CELL_COUNT_X; int cellCountY = DEFAULT_CELL_COUNT_Y; TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Workspace, defStyle, 0); if (LauncherApplication.isScreenLarge()) { // Determine number of rows/columns dynamically // TODO: This code currently fails on tablets with an aspect ratio < 1.3. // Around that ratio we should make cells the same size in portrait and // landscape TypedArray actionBarSizeTypedArray = context .obtainStyledAttributes(new int[] { android.R.attr.actionBarSize }); final float actionBarHeight = actionBarSizeTypedArray.getDimension(0, 0f); Point minDims = new Point(); Point maxDims = new Point(); DisplayCompt.getCurrentSizeRange(mLauncher.getWindowManager().getDefaultDisplay(), minDims, maxDims); cellCountX = 1; while (CellLayout.widthInPortrait(res, cellCountX + 1) <= minDims.x) { cellCountX++; } cellCountY = 1; while (actionBarHeight + CellLayout.heightInLandscape(res, cellCountY + 1) <= minDims.y) { cellCountY++; } } mSpringLoadedShrinkFactor = res.getInteger(R.integer.config_workspaceSpringLoadShrinkPercentage) / 100.0f; mSpringLoadedPageSpacing = res.getDimensionPixelSize(R.dimen.workspace_spring_loaded_page_spacing); mCameraDistance = res.getInteger(R.integer.config_cameraDistance); // if the value is manually specified, use that instead cellCountX = a.getInt(R.styleable.Workspace_cellCountX, cellCountX); cellCountY = a.getInt(R.styleable.Workspace_cellCountY, cellCountY); mDefaultPage = a.getInt(R.styleable.Workspace_defaultScreen, 1); a.recycle(); setOnHierarchyChangeListener(this); LauncherModel.updateWorkspaceLayoutCells(cellCountX, cellCountY); setHapticFeedbackEnabled(false); initWorkspace(); // Disable multitouch across the workspace/all apps/customize tray setMotionEventSplittingEnabled(true); // Unless otherwise specified this view is important for accessibility. if (ViewCompat.getImportantForAccessibility(this) == View.IMPORTANT_FOR_ACCESSIBILITY_AUTO) { ViewCompat.setImportantForAccessibility(this, View.IMPORTANT_FOR_ACCESSIBILITY_YES); } }
From source file:org.mariotaku.twidere.provider.TweetStoreProvider.java
private void onNewItemsInserted(final Uri uri, final int count, final ContentValues... values) { if (uri == null || values == null || values.length == 0 || count == 0) return;//from w w w.java 2 s .c o m if ("false".equals(uri.getQueryParameter(QUERY_PARAM_NOTIFY))) return; final Context context = getContext(); final Resources res = context.getResources(); final NotificationCompat.Builder builder = new NotificationCompat.Builder(context); final boolean display_screen_name = NAME_DISPLAY_OPTION_SCREEN_NAME .equals(mPreferences.getString(PREFERENCE_KEY_NAME_DISPLAY_OPTION, NAME_DISPLAY_OPTION_BOTH)); final boolean display_hires_profile_image = res.getBoolean(R.bool.hires_profile_image); switch (getTableId(uri)) { case URI_STATUSES: { if (!mPreferences.getBoolean(PREFERENCE_KEY_NOTIFICATION_ENABLE_HOME_TIMELINE, false)) return; final String message = res.getQuantityString(R.plurals.Ntweets, mNewStatusesCount, mNewStatusesCount); final Intent delete_intent = new Intent(BROADCAST_NOTIFICATION_CLEARED); final Bundle delete_extras = new Bundle(); delete_extras.putInt(INTENT_KEY_NOTIFICATION_ID, NOTIFICATION_ID_HOME_TIMELINE); delete_intent.putExtras(delete_extras); final Intent content_intent = new Intent(context, HomeActivity.class); content_intent.setAction(Intent.ACTION_MAIN); content_intent.addCategory(Intent.CATEGORY_LAUNCHER); final Bundle content_extras = new Bundle(); content_extras.putInt(INTENT_KEY_INITIAL_TAB, HomeActivity.TAB_POSITION_HOME); content_intent.putExtras(content_extras); builder.setOnlyAlertOnce(true); final Notification notification = buildNotification(builder, res.getString(R.string.new_notifications), message, message, R.drawable.ic_stat_tweet, null, content_intent, delete_intent); mNotificationManager.notify(NOTIFICATION_ID_HOME_TIMELINE, notification); break; } case URI_MENTIONS: { if (!mPreferences.getBoolean(PREFERENCE_KEY_NOTIFICATION_ENABLE_MENTIONS, false)) return; if (mNewMentionsCount > 1) { builder.setNumber(mNewMentionsCount); } final Intent delete_intent = new Intent(BROADCAST_NOTIFICATION_CLEARED); final Bundle delete_extras = new Bundle(); delete_extras.putInt(INTENT_KEY_NOTIFICATION_ID, NOTIFICATION_ID_MENTIONS); delete_intent.putExtras(delete_extras); final Intent content_intent; final List<String> screen_names = new NoDuplicatesArrayList<String>(); ContentValues notification_value = null; int notified_count = 0; for (final ContentValues value : values) { final String screen_name = value.getAsString(Statuses.SCREEN_NAME); if (!isFiltered(mDatabase, screen_name, value.getAsString(Statuses.SOURCE), value.getAsString(Statuses.TEXT_PLAIN))) { if (notification_value == null) { notification_value = value; } screen_names.add(screen_name); notified_count++; } } if (notified_count == 1) { final Uri.Builder uri_builder = new Uri.Builder(); uri_builder.scheme(SCHEME_TWIDERE); uri_builder.authority(AUTHORITY_STATUS); uri_builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_ID, notification_value.getAsString(Statuses.ACCOUNT_ID)); uri_builder.appendQueryParameter(QUERY_PARAM_STATUS_ID, notification_value.getAsString(Statuses.STATUS_ID)); content_intent = new Intent(Intent.ACTION_VIEW, uri_builder.build()); } else { content_intent = new Intent(context, HomeActivity.class); content_intent.setAction(Intent.ACTION_MAIN); content_intent.addCategory(Intent.CATEGORY_LAUNCHER); final Bundle content_extras = new Bundle(); content_extras.putInt(INTENT_KEY_INITIAL_TAB, HomeActivity.TAB_POSITION_MENTIONS); content_intent.putExtras(content_extras); } if (notification_value == null) return; final String title; if (screen_names.size() > 1) { title = res.getString(R.string.notification_mention_multiple, display_screen_name ? notification_value.getAsString(Statuses.SCREEN_NAME) : notification_value.getAsString(Statuses.NAME), screen_names.size() - 1); } else { title = res.getString(R.string.notification_mention, display_screen_name ? notification_value.getAsString(Statuses.SCREEN_NAME) : notification_value.getAsString(Statuses.NAME)); } final String message = notification_value.getAsString(Statuses.TEXT_PLAIN); final String profile_image_url_string = notification_value.getAsString(Statuses.PROFILE_IMAGE_URL); final File profile_image_file = mProfileImageLoader.getCachedImageFile( display_hires_profile_image ? getBiggerTwitterProfileImage(profile_image_url_string) : profile_image_url_string); final int w = res.getDimensionPixelSize(R.dimen.notification_large_icon_width); final int h = res.getDimensionPixelSize(R.dimen.notification_large_icon_height); builder.setLargeIcon(Bitmap.createScaledBitmap(profile_image_file != null && profile_image_file.isFile() ? BitmapFactory.decodeFile(profile_image_file.getPath()) : BitmapFactory.decodeResource(res, R.drawable.ic_profile_image_default), w, h, true)); final Notification notification = buildNotification(builder, title, title, message, R.drawable.ic_stat_mention, null, content_intent, delete_intent); mNotificationManager.notify(NOTIFICATION_ID_MENTIONS, notification); break; } case URI_DIRECT_MESSAGES_INBOX: { if (!mPreferences.getBoolean(PREFERENCE_KEY_NOTIFICATION_ENABLE_DIRECT_MESSAGES, false)) return; if (mNewMessagesCount > 1) { builder.setNumber(mNewMessagesCount); } final List<String> screen_names = new NoDuplicatesArrayList<String>(); final ContentValues notification_value = values[0]; for (final ContentValues value : values) { screen_names.add(value.getAsString(DirectMessages.SENDER_SCREEN_NAME)); } if (notification_value == null) return; final String title; if (screen_names.size() > 1) { title = res.getString(R.string.notification_direct_message_multiple, display_screen_name ? notification_value.getAsString(DirectMessages.SENDER_SCREEN_NAME) : notification_value.getAsString(DirectMessages.SENDER_NAME), screen_names.size() - 1); } else { title = res.getString(R.string.notification_direct_message, display_screen_name ? notification_value.getAsString(DirectMessages.SENDER_SCREEN_NAME) : notification_value.getAsString(DirectMessages.SENDER_NAME)); } final String message = notification_value.getAsString(DirectMessages.TEXT_PLAIN); final String profile_image_url_string = notification_value .getAsString(DirectMessages.SENDER_PROFILE_IMAGE_URL); final File profile_image_file = mProfileImageLoader.getCachedImageFile( display_hires_profile_image ? getBiggerTwitterProfileImage(profile_image_url_string) : profile_image_url_string); final int w = res.getDimensionPixelSize(R.dimen.notification_large_icon_width); final int h = res.getDimensionPixelSize(R.dimen.notification_large_icon_height); builder.setLargeIcon(Bitmap.createScaledBitmap(profile_image_file != null && profile_image_file.isFile() ? BitmapFactory.decodeFile(profile_image_file.getPath()) : BitmapFactory.decodeResource(res, R.drawable.ic_profile_image_default), w, h, true)); final Intent delete_intent = new Intent(BROADCAST_NOTIFICATION_CLEARED); final Bundle delete_extras = new Bundle(); delete_extras.putInt(INTENT_KEY_NOTIFICATION_ID, NOTIFICATION_ID_DIRECT_MESSAGES); delete_intent.putExtras(delete_extras); final Intent content_intent; if (values.length == 1) { final Uri.Builder uri_builder = new Uri.Builder(); final long account_id = notification_value.getAsLong(DirectMessages.ACCOUNT_ID); final long conversation_id = notification_value.getAsLong(DirectMessages.SENDER_ID); uri_builder.scheme(SCHEME_TWIDERE); uri_builder.authority(AUTHORITY_DIRECT_MESSAGES_CONVERSATION); uri_builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_ID, String.valueOf(account_id)); uri_builder.appendQueryParameter(QUERY_PARAM_CONVERSATION_ID, String.valueOf(conversation_id)); content_intent = new Intent(Intent.ACTION_VIEW, uri_builder.build()); } else { content_intent = new Intent(context, HomeActivity.class); content_intent.setAction(Intent.ACTION_MAIN); content_intent.addCategory(Intent.CATEGORY_LAUNCHER); final Bundle content_extras = new Bundle(); content_extras.putInt(INTENT_KEY_INITIAL_TAB, HomeActivity.TAB_POSITION_MESSAGES); content_intent.putExtras(content_extras); } final Notification notification = buildNotification(builder, title, title, message, R.drawable.ic_stat_direct_message, null, content_intent, delete_intent); mNotificationManager.notify(NOTIFICATION_ID_DIRECT_MESSAGES, notification); break; } } }
From source file:com.android.messaging.ui.conversationlist.ConversationListItemView.java
/** * Fills in the data associated with this view. * * @param cursor The cursor from a ConversationList that this view is in, pointing to its * entry./*from w w w. ja v a 2 s .c o m*/ */ public void bind(final Cursor cursor, final HostInterface hostInterface) { // Update our UI model mHostInterface = hostInterface; mData.bind(cursor); resetAnimatingState(); mSwipeableContainer.setOnClickListener(this); mSwipeableContainer.setOnLongClickListener(this); final Resources resources = getContext().getResources(); int color; final int maxLines; final Typeface typeface; final int typefaceStyle = mData.getShowDraft() ? Typeface.ITALIC : Typeface.NORMAL; final String snippetText = getSnippetText(); if (mData.getIsRead() || mData.getShowDraft()) { maxLines = TextUtils.isEmpty(snippetText) ? 0 : NO_UNREAD_SNIPPET_LINE_COUNT; color = mListItemReadColor; typeface = mListItemReadTypeface; } else { maxLines = TextUtils.isEmpty(snippetText) ? 0 : UNREAD_SNIPPET_LINE_COUNT; color = mListItemUnreadColor; typeface = mListItemUnreadTypeface; } mSnippetTextView.setMaxLines(maxLines); mSnippetTextView.setTextColor(color); mSnippetTextView.setTypeface(typeface, typefaceStyle); mSubjectTextView.setTextColor(color); mSubjectTextView.setTypeface(typeface, typefaceStyle); setSnippet(); setConversationName(); setSubject(); setContentDescription(buildContentDescription(resources, mData, mConversationNameView.getPaint())); final boolean isDefaultSmsApp = PhoneUtils.getDefault().isDefaultSmsApp(); // don't show the error state unless we're the default sms app if (mData.getIsFailedStatus() && isDefaultSmsApp) { mTimestampTextView.setTextColor(resources.getColor(R.color.conversation_list_error)); mTimestampTextView.setTypeface(mListItemReadTypeface, typefaceStyle); int failureMessageId = R.string.message_status_download_failed; if (mData.getIsMessageTypeOutgoing()) { failureMessageId = MmsUtils.mapRawStatusToErrorResourceId(mData.getMessageStatus(), mData.getMessageRawTelephonyStatus()); } mTimestampTextView.setText(resources.getString(failureMessageId)); } else if (mData.getShowDraft() || mData.getMessageStatus() == MessageData.BUGLE_STATUS_OUTGOING_DRAFT // also check for unknown status which we get because sometimes the conversation // row is left with a latest_message_id of a no longer existing message and // therefore the join values come back as null (or in this case zero). || mData.getMessageStatus() == MessageData.BUGLE_STATUS_UNKNOWN) { mTimestampTextView.setTextColor(mListItemReadColor); mTimestampTextView.setTypeface(mListItemReadTypeface, typefaceStyle); mTimestampTextView.setText(resources.getString(R.string.conversation_list_item_view_draft_message)); } else { mTimestampTextView.setTextColor(mListItemReadColor); mTimestampTextView.setTypeface(mListItemReadTypeface, typefaceStyle); final String formattedTimestamp = mData.getFormattedTimestamp(); if (mData.getIsSendRequested()) { mTimestampTextView.setText(R.string.message_status_sending); } else { mTimestampTextView.setText(formattedTimestamp); } } final boolean isSelected = mHostInterface.isConversationSelected(mData.getConversationId()); setSelected(isSelected); Uri iconUri = null; int contactIconVisibility = GONE; int checkmarkVisiblity = GONE; int failStatusVisiblity = GONE; if (isSelected) { checkmarkVisiblity = VISIBLE; } else { contactIconVisibility = VISIBLE; // Only show the fail icon if it is not a group conversation. // And also require that we be the default sms app. if (mData.getIsFailedStatus() && !mData.getIsGroup() && isDefaultSmsApp) { failStatusVisiblity = VISIBLE; } } if (mData.getIcon() != null) { iconUri = Uri.parse(mData.getIcon()); } mContactIconView.setImageResourceUri(iconUri, mData.getParticipantContactId(), mData.getParticipantLookupKey(), mData.getOtherParticipantNormalizedDestination()); mContactIconView.setVisibility(contactIconVisibility); mContactIconView.setOnLongClickListener(this); mContactIconView.setClickable(!mHostInterface.isSelectionMode()); mContactIconView.setLongClickable(!mHostInterface.isSelectionMode()); mContactCheckmarkView.setVisibility(checkmarkVisiblity); mFailedStatusIconView.setVisibility(failStatusVisiblity); final Uri previewUri = mData.getShowDraft() ? mData.getDraftPreviewUri() : mData.getPreviewUri(); final String previewContentType = mData.getShowDraft() ? mData.getDraftPreviewContentType() : mData.getPreviewContentType(); OnClickListener previewClickListener = null; Uri previewImageUri = null; int previewImageVisibility = GONE; int audioPreviewVisiblity = GONE; if (previewUri != null && !TextUtils.isEmpty(previewContentType)) { if (ContentType.isAudioType(previewContentType)) { boolean incoming = !(mData.getShowDraft() || mData.getIsMessageTypeOutgoing()); mAudioAttachmentView.bind(previewUri, incoming, false); audioPreviewVisiblity = VISIBLE; } else if (ContentType.isVideoType(previewContentType)) { previewImageUri = UriUtil.getUriForResourceId(getContext(), R.drawable.ic_preview_play); previewClickListener = fullScreenPreviewClickListener; previewImageVisibility = VISIBLE; } else if (ContentType.isImageType(previewContentType)) { previewImageUri = previewUri; previewClickListener = fullScreenPreviewClickListener; previewImageVisibility = VISIBLE; } } final int imageSize = resources.getDimensionPixelSize(R.dimen.conversation_list_image_preview_size); mImagePreviewView.setImageResourceId(new UriImageRequestDescriptor(previewImageUri, imageSize, imageSize, true /* allowCompression */, false /* isStatic */, false /*cropToCircle*/, ImageUtils.DEFAULT_CIRCLE_BACKGROUND_COLOR /* circleBackgroundColor */, ImageUtils.DEFAULT_CIRCLE_STROKE_COLOR /* circleStrokeColor */)); mImagePreviewView.setOnLongClickListener(this); mImagePreviewView.setVisibility(previewImageVisibility); mImagePreviewView.setOnClickListener(previewClickListener); mAudioAttachmentView.setOnLongClickListener(this); mAudioAttachmentView.setVisibility(audioPreviewVisiblity); final int notificationBellVisiblity = mData.getNotificationEnabled() ? GONE : VISIBLE; mNotificationBellView.setVisibility(notificationBellVisiblity); }
From source file:io.plaidapp.ui.DribbbleShot.java
void bindShot(final boolean postponeEnterTransition) { final Resources res = getResources(); // load the main image final int[] imageSize = shot.images.bestSize(); Glide.with(this).load(shot.images.best()).listener(shotLoadListener) .diskCacheStrategy(DiskCacheStrategy.SOURCE).priority(Priority.IMMEDIATE) .override(imageSize[0], imageSize[1]).into(imageView); imageView.setOnClickListener(shotClick); shotSpacer.setOnClickListener(shotClick); if (postponeEnterTransition) postponeEnterTransition();//from ww w .jav a2 s . com imageView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { imageView.getViewTreeObserver().removeOnPreDrawListener(this); calculateFabPosition(); if (postponeEnterTransition) startPostponedEnterTransition(); return true; } }); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { ((FabOverlapTextView) title).setText(shot.title); } else { ((TextView) title).setText(shot.title); } if (!TextUtils.isEmpty(shot.description)) { final Spanned descText = shot.getParsedDescription( ContextCompat.getColorStateList(this, R.color.dribbble_links), ContextCompat.getColor(this, R.color.dribbble_link_highlight)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { ((FabOverlapTextView) description).setText(descText); } else { HtmlUtils.setTextWithNiceLinks((TextView) description, descText); } } else { description.setVisibility(View.GONE); } NumberFormat nf = NumberFormat.getInstance(); likeCount.setText( res.getQuantityString(R.plurals.likes, (int) shot.likes_count, nf.format(shot.likes_count))); likeCount.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ((AnimatedVectorDrawable) likeCount.getCompoundDrawables()[1]).start(); if (shot.likes_count > 0) { PlayerSheet.start(DribbbleShot.this, shot); } } }); if (shot.likes_count == 0) { likeCount.setBackground(null); // clear touch ripple if doesn't do anything } viewCount.setText( res.getQuantityString(R.plurals.views, (int) shot.views_count, nf.format(shot.views_count))); viewCount.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ((AnimatedVectorDrawable) viewCount.getCompoundDrawables()[1]).start(); } }); share.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ((AnimatedVectorDrawable) share.getCompoundDrawables()[1]).start(); new ShareDribbbleImageTask(DribbbleShot.this, shot).execute(); } }); if (shot.user != null) { playerName.setText(shot.user.name.toLowerCase()); Glide.with(this).load(shot.user.getHighQualityAvatarUrl()).transform(circleTransform) .placeholder(R.drawable.avatar_placeholder).override(largeAvatarSize, largeAvatarSize) .into(playerAvatar); View.OnClickListener playerClick = new View.OnClickListener() { @Override public void onClick(View v) { Intent player = new Intent(DribbbleShot.this, PlayerActivity.class); if (shot.user.shots_count > 0) { // legit user object player.putExtra(PlayerActivity.EXTRA_PLAYER, shot.user); } else { // search doesn't fully populate the user object, // in this case send the ID not the full user player.putExtra(PlayerActivity.EXTRA_PLAYER_NAME, shot.user.username); player.putExtra(PlayerActivity.EXTRA_PLAYER_ID, shot.user.id); } ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(DribbbleShot.this, playerAvatar, getString(R.string.transition_player_avatar)); startActivity(player, options.toBundle()); } }; playerAvatar.setOnClickListener(playerClick); playerName.setOnClickListener(playerClick); if (shot.created_at != null) { shotTimeAgo .setText( DateUtils .getRelativeTimeSpanString(shot.created_at.getTime(), System.currentTimeMillis(), DateUtils.SECOND_IN_MILLIS) .toString().toLowerCase()); } } else { playerName.setVisibility(View.GONE); playerAvatar.setVisibility(View.GONE); shotTimeAgo.setVisibility(View.GONE); } commentAnimator = new CommentAnimator(); commentsList.setItemAnimator(commentAnimator); adapter = new CommentsAdapter(shotDescription, commentFooter, shot.comments_count, getResources().getInteger(R.integer.comment_expand_collapse_duration)); commentsList.setAdapter(adapter); commentsList.addItemDecoration(new InsetDividerDecoration(CommentViewHolder.class, res.getDimensionPixelSize(R.dimen.divider_height), res.getDimensionPixelSize(R.dimen.keyline_1), ContextCompat.getColor(this, R.color.divider))); if (shot.comments_count != 0) { loadComments(); } checkLiked(); }