use of org.qii.weiciyuan.bean.MessageBean in project weiciyuan by qii.
the class DestroyStatusDao method destroy.
public boolean destroy() throws WeiboException {
String url = URLHelper.STATUSES_DESTROY;
Map<String, String> map = new HashMap<String, String>();
map.put("access_token", access_token);
map.put("id", id);
String jsonData = HttpUtility.getInstance().executeNormalTask(HttpMethod.Post, url, map);
Gson gson = new Gson();
try {
MessageBean value = gson.fromJson(jsonData, MessageBean.class);
} catch (JsonSyntaxException e) {
AppLogger.e(e.getMessage());
return false;
}
return true;
}
use of org.qii.weiciyuan.bean.MessageBean in project weiciyuan by qii.
the class JBMentionsWeiboNotificationServiceHelper method buildNotification.
private void buildNotification() {
// int count = (data.getSize() >= Integer.valueOf(SettingUtility.getMsgCount()) ? unreadBean
// .getMention_status() : data.getSize());
int count = Math.min(unreadBean.getMention_status(), data.getSize());
if (count == 0) {
return;
}
Notification.Builder builder = new Notification.Builder(getBaseContext()).setTicker(ticker).setContentText(accountBean.getUsernick()).setSmallIcon(R.drawable.ic_notification).setAutoCancel(true).setContentIntent(getPendingIntent()).setOnlyAlertOnce(true);
builder.setContentTitle(String.format(GlobalContext.getInstance().getString(R.string.new_mentions_weibo), String.valueOf(count)));
if (count > 1) {
builder.setNumber(count);
}
if (clearNotificationEventReceiver.get(accountBean.getUid()) != null) {
Utility.unregisterReceiverIgnoredReceiverNotRegisteredException(GlobalContext.getInstance(), clearNotificationEventReceiver.get(accountBean.getUid()));
JBMentionsWeiboNotificationServiceHelper.clearNotificationEventReceiver.put(accountBean.getUid(), null);
}
RecordOperationAppBroadcastReceiver receiver = new RecordOperationAppBroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
new Thread(new Runnable() {
@Override
public void run() {
try {
// new ClearUnreadDao(accountBean.getAccess_token())
// .clearMentionStatusUnread(unreadBean, accountBean.getUid());
ArrayList<String> ids = new ArrayList<String>();
for (MessageBean msg : data.getItemList()) {
ids.add(msg.getId());
}
NotificationDBTask.addUnreadNotification(accountBean.getUid(), ids, NotificationDBTask.UnreadDBType.mentionsWeibo);
// } catch (WeiboException ignored) {
} finally {
Utility.unregisterReceiverIgnoredReceiverNotRegisteredException(GlobalContext.getInstance(), clearNotificationEventReceiver.get(accountBean.getUid()));
JBMentionsWeiboNotificationServiceHelper.clearNotificationEventReceiver.put(accountBean.getUid(), null);
}
}
}).start();
}
};
clearNotificationEventReceiver.put(accountBean.getUid(), receiver);
IntentFilter intentFilter = new IntentFilter(RESET_UNREAD_MENTIONS_WEIBO_ACTION);
GlobalContext.getInstance().registerReceiver(clearNotificationEventReceiver.get(accountBean.getUid()), intentFilter);
Intent broadcastIntent = new Intent(RESET_UNREAD_MENTIONS_WEIBO_ACTION);
PendingIntent deletedPendingIntent = PendingIntent.getBroadcast(GlobalContext.getInstance(), 0, broadcastIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setDeleteIntent(deletedPendingIntent);
Intent intent = WriteCommentActivity.newIntentFromNotification(getApplicationContext(), accountBean, data.getItem(currentIndex));
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.addAction(R.drawable.comment_light, getApplicationContext().getString(R.string.comments), pendingIntent);
if (count > 1) {
Intent nextIntent = new Intent(JBMentionsWeiboNotificationServiceHelper.this, JBMentionsWeiboNotificationServiceHelper.class);
nextIntent.putExtra(NotificationServiceHelper.ACCOUNT_ARG, accountBean);
nextIntent.putExtra(NotificationServiceHelper.MENTIONS_WEIBO_ARG, data);
nextIntent.putExtra(NotificationServiceHelper.UNREAD_ARG, unreadBean);
nextIntent.putExtra(NotificationServiceHelper.PENDING_INTENT_INNER_ARG, clickToOpenAppPendingIntentInner);
nextIntent.putExtra(NotificationServiceHelper.TICKER, ticker);
String actionName;
int nextIndex;
int actionDrawable;
if (currentIndex < count - 1) {
nextIndex = currentIndex + 1;
actionName = getString(R.string.next_message);
actionDrawable = R.drawable.notification_action_next;
} else {
nextIndex = 0;
actionName = getString(R.string.first_message);
actionDrawable = R.drawable.notification_action_previous;
}
nextIntent.putExtra(NotificationServiceHelper.CURRENT_INDEX_ARG, nextIndex);
PendingIntent retrySendIntent = PendingIntent.getService(JBMentionsWeiboNotificationServiceHelper.this, 0, nextIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.addAction(actionDrawable, actionName, retrySendIntent);
}
Notification.BigTextStyle bigTextStyle = new Notification.BigTextStyle(builder);
if (data.getItem(currentIndex).getText().contains(accountBean.getUsernick())) {
// mentioned you
bigTextStyle.setBigContentTitle("@" + data.getItem(currentIndex).getUser().getScreen_name() + getString(R.string.weibo_at_to_you));
} else {
// retweeted your weibo
bigTextStyle.setBigContentTitle("@" + data.getItem(currentIndex).getUser().getScreen_name() + getString(R.string.retweeted_your_weibo));
}
bigTextStyle.bigText(data.getItem(currentIndex).getText());
String summaryText;
if (count > 1) {
summaryText = accountBean.getUsernick() + "(" + (currentIndex + 1) + "/" + count + ")";
} else {
summaryText = accountBean.getUsernick();
}
bigTextStyle.setSummaryText(summaryText);
builder.setStyle(bigTextStyle);
Utility.configVibrateLedRingTone(builder);
NotificationManager notificationManager = (NotificationManager) getApplicationContext().getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(getMentionsWeiboNotificationId(accountBean), builder.build());
}
use of org.qii.weiciyuan.bean.MessageBean in project weiciyuan by qii.
the class BigTextNotificationService method buildNotification.
private void buildNotification(String uid) {
final ValueWrapper valueWrapper = valueBagHashMap.get(uid);
if (valueWrapper == null) {
return;
}
final AccountBean accountBean = valueWrapper.accountBean;
final MessageListBean mentionsWeibo = valueWrapper.mentionsWeibo;
final CommentListBean mentionsComment = valueWrapper.mentionsComment;
final CommentListBean commentsToMe = valueWrapper.commentsToMe;
final UnreadBean unreadBean = valueWrapper.unreadBean;
int currentIndex = valueWrapper.currentIndex;
Intent clickToOpenAppPendingIntentInner = valueWrapper.clickToOpenAppPendingIntentInner;
String ticker = valueWrapper.ticker;
ArrayList<Parcelable> notificationItems = valueWrapper.notificationItems;
// int count = Math.min(unreadBean.getMention_status(), data.getSize());
int count = notificationItems.size();
if (count == 0) {
return;
}
Parcelable itemBean = notificationItems.get(currentIndex);
Notification.Builder builder = new Notification.Builder(getBaseContext()).setTicker(ticker).setContentText(ticker).setSubText(accountBean.getUsernick()).setSmallIcon(R.drawable.ic_notification).setAutoCancel(true).setContentIntent(getPendingIntent(clickToOpenAppPendingIntentInner, itemBean, accountBean)).setOnlyAlertOnce(true);
builder.setContentTitle(getString(R.string.app_name));
if (count > 1) {
builder.setNumber(count);
}
Utility.unregisterReceiverIgnoredReceiverNotRegisteredException(GlobalContext.getInstance(), valueWrapper.clearNotificationEventReceiver);
valueWrapper.clearNotificationEventReceiver = new RecordOperationAppBroadcastReceiver() {
//mark these messages as read, write to database
@Override
public void onReceive(Context context, Intent intent) {
new Thread(new Runnable() {
@Override
public void run() {
try {
ArrayList<String> ids = new ArrayList<String>();
if (mentionsWeibo != null) {
for (MessageBean msg : mentionsWeibo.getItemList()) {
ids.add(msg.getId());
}
NotificationDBTask.addUnreadNotification(accountBean.getUid(), ids, NotificationDBTask.UnreadDBType.mentionsWeibo);
}
ids.clear();
if (commentsToMe != null) {
for (CommentBean msg : commentsToMe.getItemList()) {
ids.add(msg.getId());
}
NotificationDBTask.addUnreadNotification(accountBean.getUid(), ids, NotificationDBTask.UnreadDBType.commentsToMe);
}
ids.clear();
if (mentionsComment != null) {
for (CommentBean msg : mentionsComment.getItemList()) {
ids.add(msg.getId());
}
NotificationDBTask.addUnreadNotification(accountBean.getUid(), ids, NotificationDBTask.UnreadDBType.mentionsComment);
}
} finally {
Utility.unregisterReceiverIgnoredReceiverNotRegisteredException(GlobalContext.getInstance(), valueWrapper.clearNotificationEventReceiver);
if (Utility.isDebugMode()) {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "weiciyuan:remove notification items" + System.currentTimeMillis(), Toast.LENGTH_SHORT).show();
}
});
}
}
}
}).start();
}
};
IntentFilter intentFilter = new IntentFilter(RESET_UNREAD_MENTIONS_WEIBO_ACTION);
Utility.registerReceiverIgnoredReceiverHasRegisteredHereException(GlobalContext.getInstance(), valueWrapper.clearNotificationEventReceiver, intentFilter);
Intent broadcastIntent = new Intent(RESET_UNREAD_MENTIONS_WEIBO_ACTION);
PendingIntent deletedPendingIntent = PendingIntent.getBroadcast(GlobalContext.getInstance(), accountBean.getUid().hashCode(), broadcastIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setDeleteIntent(deletedPendingIntent);
if (itemBean instanceof MessageBean) {
MessageBean msg = (MessageBean) itemBean;
Intent intent = WriteCommentActivity.newIntentFromNotification(getApplicationContext(), accountBean, msg);
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.addAction(R.drawable.comment_light, getApplicationContext().getString(R.string.comments), pendingIntent);
} else if (itemBean instanceof CommentBean) {
CommentBean commentBean = (CommentBean) itemBean;
Intent intent = WriteReplyToCommentActivity.newIntentFromNotification(getApplicationContext(), accountBean, commentBean);
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.addAction(R.drawable.reply_to_comment_light, getApplicationContext().getString(R.string.reply_to_comment), pendingIntent);
}
String avatar = ((ItemBean) itemBean).getUser().getAvatar_large();
String avatarPath = FileManager.getFilePathFromUrl(avatar, FileLocationMethod.avatar_large);
if (ImageUtility.isThisBitmapCanRead(avatarPath) && TaskCache.isThisUrlTaskFinished(avatar)) {
Bitmap bitmap = BitmapFactory.decodeFile(avatarPath, new BitmapFactory.Options());
if (bitmap != null) {
builder.setLargeIcon(bitmap);
}
}
if (count > 1) {
String actionName;
int nextIndex;
int actionDrawable;
if (currentIndex < count - 1) {
nextIndex = currentIndex + 1;
actionName = getString(R.string.next_message);
actionDrawable = R.drawable.notification_action_next;
} else {
nextIndex = 0;
actionName = getString(R.string.first_message);
actionDrawable = R.drawable.notification_action_previous;
}
Intent nextIntent = BigTextNotificationService.newIntent(accountBean, mentionsWeibo, commentsToMe, mentionsComment, unreadBean, clickToOpenAppPendingIntentInner, ticker, nextIndex);
PendingIntent retrySendIntent = PendingIntent.getService(BigTextNotificationService.this, accountBean.getUid().hashCode(), nextIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.addAction(actionDrawable, actionName, retrySendIntent);
}
Notification.BigTextStyle bigTextStyle = new Notification.BigTextStyle(builder);
bigTextStyle.setBigContentTitle(getItemBigContentTitle(accountBean, notificationItems, currentIndex));
bigTextStyle.bigText(getItemBigText(notificationItems, currentIndex));
String summaryText;
if (count > 1) {
summaryText = accountBean.getUsernick() + "(" + (currentIndex + 1) + "/" + count + ")";
} else {
summaryText = accountBean.getUsernick();
}
bigTextStyle.setSummaryText(summaryText);
builder.setStyle(bigTextStyle);
Utility.configVibrateLedRingTone(builder);
NotificationManager notificationManager = (NotificationManager) getApplicationContext().getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(getMentionsWeiboNotificationId(accountBean), builder.build());
}
use of org.qii.weiciyuan.bean.MessageBean in project weiciyuan by qii.
the class StatusesTimeLineDao method getGSONMsgList.
public MessageListBean getGSONMsgList() throws WeiboException {
String url = URLHelper.STATUSES_TIMELINE_BY_ID;
Map<String, String> map = new HashMap<String, String>();
map.put("access_token", access_token);
map.put("uid", uid);
map.put("since_id", since_id);
map.put("max_id", max_id);
map.put("count", count);
map.put("page", page);
map.put("screen_name", screen_name);
map.put("base_app", base_app);
map.put("feature", feature);
map.put("trim_user", trim_user);
String jsonData = HttpUtility.getInstance().executeNormalTask(HttpMethod.Get, url, map);
Gson gson = new Gson();
MessageListBean value = null;
try {
value = gson.fromJson(jsonData, MessageListBean.class);
} catch (JsonSyntaxException e) {
AppLogger.e(e.getMessage());
}
if (value != null && value.getSize() > 0) {
for (MessageBean b : value.getItemList()) {
TimeUtility.dealMills(b);
TimeLineUtility.addJustHighLightLinks(b);
}
}
return value;
}
use of org.qii.weiciyuan.bean.MessageBean in project weiciyuan by qii.
the class UnreadMsgReceiver method showNotification.
private void showNotification(Context context, AccountBean accountBean, MessageListBean mentionsWeiboData, CommentListBean commentsToMeData, CommentListBean mentionsCommentData, UnreadBean unreadBean) {
Intent clickNotificationToOpenAppPendingIntentInner = MainTimeLineActivity.newIntent(accountBean, mentionsWeiboData, mentionsCommentData, commentsToMeData, unreadBean);
clickNotificationToOpenAppPendingIntentInner.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
String accountId = accountBean.getUid();
Set<String> dbUnreadMentionsWeibo = NotificationDBTask.getUnreadMsgIds(accountId, NotificationDBTask.UnreadDBType.mentionsWeibo);
Set<String> dbUnreadMentionsComment = NotificationDBTask.getUnreadMsgIds(accountId, NotificationDBTask.UnreadDBType.mentionsComment);
Set<String> dbUnreadCommentsToMe = NotificationDBTask.getUnreadMsgIds(accountId, NotificationDBTask.UnreadDBType.commentsToMe);
if (mentionsWeiboData != null && mentionsWeiboData.getSize() > 0) {
List<MessageBean> msgList = mentionsWeiboData.getItemList();
Iterator<MessageBean> iterator = msgList.iterator();
while (iterator.hasNext()) {
MessageBean msg = iterator.next();
if (dbUnreadMentionsWeibo.contains(msg.getId())) {
iterator.remove();
}
}
}
if (mentionsCommentData != null && mentionsCommentData.getSize() > 0) {
List<CommentBean> msgList = mentionsCommentData.getItemList();
Iterator<CommentBean> iterator = msgList.iterator();
while (iterator.hasNext()) {
CommentBean msg = iterator.next();
if (dbUnreadMentionsComment.contains(msg.getId())) {
iterator.remove();
}
}
}
if (commentsToMeData != null && commentsToMeData.getSize() > 0) {
List<CommentBean> msgList = commentsToMeData.getItemList();
Iterator<CommentBean> iterator = msgList.iterator();
while (iterator.hasNext()) {
CommentBean msg = iterator.next();
if (dbUnreadCommentsToMe.contains(msg.getId())) {
iterator.remove();
}
}
}
boolean mentionsWeibo = (mentionsWeiboData != null && mentionsWeiboData.getSize() > 0);
boolean mentionsComment = (mentionsCommentData != null && mentionsCommentData.getSize() > 0);
boolean commentsToMe = (commentsToMeData != null && commentsToMeData.getSize() > 0);
if (!mentionsWeibo && !mentionsComment && !commentsToMe) {
return;
}
// boolean commentsToMeDataSizeIsLarge = (commentsToMeData != null) && (
// commentsToMeData.getSize() >= Integer.valueOf(
// SettingUtility.getMsgCount()));
//
// boolean mentionsWeiboDataSizeIsLarge = (mentionsWeiboData != null) && (
// mentionsWeiboData.getSize() >= Integer.valueOf(
// SettingUtility.getMsgCount()));
//
// boolean mentionsCommentDataSizeIsLarge = (mentionsCommentData != null) && (
// mentionsCommentData.getSize() >= Integer.valueOf(
// SettingUtility.getMsgCount()));
//
// boolean showSimpleTextNotification = commentsToMeDataSizeIsLarge
// || mentionsWeiboDataSizeIsLarge || mentionsCommentDataSizeIsLarge;
// if (showSimpleTextNotification) {
// String ticker = NotificationUtility
// .getTicker(unreadBean);
// Intent intent = new Intent(context,
// SimpleTextNotificationService.class);
//
// intent.putExtra(NotificationServiceHelper.ACCOUNT_ARG, accountBean);
// intent.putExtra(NotificationServiceHelper.UNREAD_ARG, unreadBean);
// intent.putExtra(NotificationServiceHelper.PENDING_INTENT_INNER_ARG,
// clickNotificationToOpenAppPendingIntentInner);
// intent.putExtra(NotificationServiceHelper.TICKER, ticker);
// context.startService(intent);
//
// } else {
String ticker = NotificationUtility.getTicker(unreadBean, mentionsWeiboData, mentionsCommentData, commentsToMeData);
Intent intent = BigTextNotificationService.newIntent(accountBean, mentionsWeiboData, commentsToMeData, mentionsCommentData, unreadBean, clickNotificationToOpenAppPendingIntentInner, ticker, 0);
context.startService(intent);
}
Aggregations