@Override public void onNotificationDataChanged(@NonNull OpenNotification notification, int event) { Check.getInstance().isInMainThread(); switch (event) { case OpenNotification.EVENT_ICON: updateIcons(); break; } }
/** @param n */ public void setNotification(@Nullable OpenNotification n) { Check.getInstance().isInMainThread(); unregisterNotificationListener(); mNotification = n; registerNotificationListener(); synchronized (NotificationPresenter.getInstance().monitor) { // Update everything updateTitle(); updateTimestamp(); updateSubtitle(); updateMessage(); updateActions(); updateIcons(); } }
public void resume() { Check.getInstance().isInMainThread(); mResumed = true; synchronized (NotificationPresenter.getInstance().monitor) { if (Operator.bitAnd(mPendingUpdates, PENDING_UPDATE_TITLE)) updateTitle(); if (Operator.bitAnd(mPendingUpdates, PENDING_UPDATE_SUBTITLE)) updateSubtitle(); if (Operator.bitAnd(mPendingUpdates, PENDING_UPDATE_TIMESTAMP)) updateTimestamp(); if (Operator.bitAnd(mPendingUpdates, PENDING_UPDATE_MESSAGE)) updateMessage(); if (Operator.bitAnd(mPendingUpdates, PENDING_UPDATE_ACTIONS)) updateActions(); if (Operator.bitAnd(mPendingUpdates, PENDING_UPDATE_ICONS)) updateIcons(); } mPendingUpdates = 0; registerNotificationListener(); }
/** * Updates message from the current {@link #mNotification notificiation}. * * @see #setMessages(CharSequence[]) * @see #isMessageSecret() */ private void updateMessage() { if (isPendingUpdate(PENDING_UPDATE_MESSAGE)) return; if (mNotification == null) { setMessages(null); return; } final boolean secret = isMessageSecret(); // Get message text if (secret) { CharSequence[] messages; if (sSecureContentLabelRef == null || (messages = sSecureContentLabelRef.get()) == null) { final CharSequence cs = mContext.getString(R.string.privacy_mode_hidden_content); final SpannableString ss = new SpannableString(cs); Check.getInstance().isTrue(ss.length()); ss.setSpan( new StyleSpan(Typeface.ITALIC), 0 /* start */, ss.length() /* end */, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); messages = new CharSequence[] {ss}; sSecureContentLabelRef = new SoftReference<>(messages); } setMessages(messages); } else { CharSequence message; if (mBig) { if (mNotification.messageTextLines != null) { setMessages(mNotification.messageTextLines); return; } message = NullUtils.whileNotNull(mNotification.messageBigText, mNotification.messageText); } else { message = mNotification.messageText; } setMessages(TextUtils.isEmpty(message) ? null : new CharSequence[] {message}); } }
public void pause() { Check.getInstance().isInMainThread(); unregisterNotificationListener(); mResumed = false; }
/** {@inheritDoc} */ @Override public void requestCheckout() { Check.getInstance().isFalse(mCheckoutRequest); Check.getInstance().isFalse(mCreated); // not created yet. mCheckoutRequest = true; }
public PermissionNotificationListener(@NonNull Context context) { super(context); Check.getInstance().isTrue(Device.hasJellyBeanMR2Api()); mComponentString = new ComponentName(mContext, MediaService.class).flattenToString(); }