SmsDatabase.java 文件源码

java
阅读 25 收藏 0 点赞 0 评论 0

项目:PeSanKita-android 作者:
protected long insertMessageOutbox(long threadId, OutgoingTextMessage message,
                                   long type, boolean forceSms, long date)
{
  if      (message.isKeyExchange())   type |= Types.KEY_EXCHANGE_BIT;
  else if (message.isSecureMessage()) type |= (Types.SECURE_MESSAGE_BIT | Types.PUSH_MESSAGE_BIT);
  else if (message.isEndSession())    type |= Types.END_SESSION_BIT;
  if      (forceSms)                  type |= Types.MESSAGE_FORCE_SMS_BIT;

  String address = message.getRecipients().getPrimaryRecipient().getNumber();

  ContentValues contentValues = new ContentValues(6);
  contentValues.put(ADDRESS, PhoneNumberUtils.formatNumber(address));
  contentValues.put(THREAD_ID, threadId);
  contentValues.put(BODY, message.getMessageBody());
  contentValues.put(DATE_RECEIVED, System.currentTimeMillis());
  contentValues.put(DATE_SENT, date);
  contentValues.put(READ, 1);
  contentValues.put(TYPE, type);
  contentValues.put(SUBSCRIPTION_ID, message.getSubscriptionId());
  contentValues.put(EXPIRES_IN, message.getExpiresIn());

  try {
    contentValues.put(RECEIPT_COUNT, earlyReceiptCache.remove(date, canonicalizeNumber(context, address)));
  } catch (InvalidNumberException e) {
    Log.w(TAG, e);
  }

  SQLiteDatabase db        = databaseHelper.getWritableDatabase();
  long           messageId = db.insert(TABLE_NAME, ADDRESS, contentValues);

  DatabaseFactory.getThreadDatabase(context).update(threadId, true);
  DatabaseFactory.getThreadDatabase(context).setLastSeen(threadId);
  notifyConversationListeners(threadId);
  jobManager.add(new TrimThreadJob(context, threadId));

  return messageId;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号