当前位置: 首页>>代码示例>>Java>>正文


Java TrimThreadJob类代码示例

本文整理汇总了Java中org.thoughtcrime.securesms.jobs.TrimThreadJob的典型用法代码示例。如果您正苦于以下问题:Java TrimThreadJob类的具体用法?Java TrimThreadJob怎么用?Java TrimThreadJob使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


TrimThreadJob类属于org.thoughtcrime.securesms.jobs包,在下文中一共展示了TrimThreadJob类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: insertCallLog

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
private @NonNull Pair<Long, Long> insertCallLog(@NonNull String number, long type, boolean unread) {
  Recipients recipients = RecipientFactory.getRecipientsFromString(context, number, true);
  long       threadId   = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(recipients);

  ContentValues values = new ContentValues(6);
  values.put(ADDRESS, number);
  values.put(ADDRESS_DEVICE_ID,  1);
  values.put(DATE_RECEIVED, System.currentTimeMillis());
  values.put(DATE_SENT, System.currentTimeMillis());
  values.put(READ, unread ? 0 : 1);
  values.put(TYPE, type);
  values.put(THREAD_ID, threadId);

  SQLiteDatabase db = databaseHelper.getWritableDatabase();
  long messageId    = db.insert(TABLE_NAME, null, values);

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

  if (unread) {
    DatabaseFactory.getThreadDatabase(context).setUnread(threadId);
  }

  return new Pair<>(messageId, threadId);
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:27,代码来源:SmsDatabase.java

示例2: copyMessageInbox

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
public Pair<Long, Long> copyMessageInbox(long messageId) {
  Reader           reader = readerFor(getMessage(messageId));
  SmsMessageRecord record = reader.getNext();

  ContentValues contentValues = new ContentValues();
  contentValues.put(TYPE, (record.getType() & ~Types.BASE_TYPE_MASK) | Types.BASE_INBOX_TYPE);
  contentValues.put(ADDRESS, record.getIndividualRecipient().getNumber());
  contentValues.put(ADDRESS_DEVICE_ID, record.getRecipientDeviceId());
  contentValues.put(DATE_RECEIVED, System.currentTimeMillis());
  contentValues.put(DATE_SENT, record.getDateSent());
  contentValues.put(PROTOCOL, 31337);
  contentValues.put(READ, 0);
  contentValues.put(BODY, record.getBody().getBody());
  contentValues.put(THREAD_ID, record.getThreadId());

  SQLiteDatabase db           = databaseHelper.getWritableDatabase();
  long           newMessageId = db.insert(TABLE_NAME, null, contentValues);

  DatabaseFactory.getThreadDatabase(context).update(record.getThreadId());
  notifyConversationListeners(record.getThreadId());

  jobManager.add(new TrimThreadJob(context, record.getThreadId()));
  reader.close();
  
  return new Pair<>(newMessageId, record.getThreadId());
}
 
开发者ID:redcracker,项目名称:TextSecure,代码行数:27,代码来源:SmsDatabase.java

示例3: markIncomingNotificationReceived

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
public void markIncomingNotificationReceived(long threadId) {
  notifyConversationListeners(threadId);
  DatabaseFactory.getThreadDatabase(context).update(threadId, true);

  if (org.thoughtcrime.securesms.util.Util.isDefaultSmsProvider(context)) {
    DatabaseFactory.getThreadDatabase(context).setUnread(threadId);
  }

  jobManager.add(new TrimThreadJob(context, threadId));
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:11,代码来源:MmsDatabase.java

示例4: copyMessageInbox

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
public Pair<Long, Long> copyMessageInbox(long messageId) {
  Reader           reader = readerFor(getMessage(messageId));
  SmsMessageRecord record = reader.getNext();

  ContentValues contentValues = new ContentValues();
  contentValues.put(TYPE, (record.getType() & ~Types.BASE_TYPE_MASK) | Types.BASE_INBOX_TYPE);
  contentValues.put(ADDRESS, record.getIndividualRecipient().getNumber());
  contentValues.put(ADDRESS_DEVICE_ID, record.getRecipientDeviceId());
  contentValues.put(DATE_RECEIVED, System.currentTimeMillis());
  contentValues.put(DATE_SENT, record.getDateSent());
  contentValues.put(PROTOCOL, 31337);
  contentValues.put(READ, 0);
  contentValues.put(BODY, record.getBody().getBody());
  contentValues.put(THREAD_ID, record.getThreadId());
  contentValues.put(EXPIRES_IN, record.getExpiresIn());

  SQLiteDatabase db           = databaseHelper.getWritableDatabase();
  long           newMessageId = db.insert(TABLE_NAME, null, contentValues);

  DatabaseFactory.getThreadDatabase(context).update(record.getThreadId(), true);
  notifyConversationListeners(record.getThreadId());

  jobManager.add(new TrimThreadJob(context, record.getThreadId()));
  reader.close();
  
  return new Pair<>(newMessageId, record.getThreadId());
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:28,代码来源:SmsDatabase.java

示例5: insertMessageOutbox

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
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;
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:38,代码来源:SmsDatabase.java

示例6: markIncomingNotificationReceived

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
public void markIncomingNotificationReceived(long threadId) {
  notifyConversationListeners(threadId);
  DatabaseFactory.getThreadDatabase(context).update(threadId);

  if (org.thoughtcrime.securesms.util.Util.isDefaultSmsProvider(context)) {
    DatabaseFactory.getThreadDatabase(context).setUnread(threadId);
  }

  jobManager.add(new TrimThreadJob(context, threadId));
}
 
开发者ID:redcracker,项目名称:TextSecure,代码行数:11,代码来源:MmsDatabase.java

示例7: insertMessageOutbox

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
protected long insertMessageOutbox(long threadId, OutgoingTextMessage message,
                                   long type, boolean forceSms)
{
  if      (message.isKeyExchange())   type |= Types.KEY_EXCHANGE_BIT;
  else if (message.isSecureMessage()) type |= Types.SECURE_MESSAGE_BIT;
  else if (message.isEndSession())    type |= Types.END_SESSION_BIT;
  if      (forceSms)                  type |= Types.MESSAGE_FORCE_SMS_BIT;

  long date = System.currentTimeMillis();

  ContentValues contentValues = new ContentValues(6);
  contentValues.put(ADDRESS, PhoneNumberUtils.formatNumber(message.getRecipients().getPrimaryRecipient().getNumber()));
  contentValues.put(THREAD_ID, threadId);
  contentValues.put(BODY, message.getMessageBody());
  contentValues.put(DATE_RECEIVED, date);
  contentValues.put(DATE_SENT, date);
  contentValues.put(READ, 1);
  contentValues.put(TYPE, type);

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

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

  return messageId;
}
 
开发者ID:redcracker,项目名称:TextSecure,代码行数:29,代码来源:SmsDatabase.java

示例8: insertMessageInbox

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
private Optional<InsertResult> insertMessageInbox(MasterSecretUnion masterSecret,
                                                  IncomingMediaMessage retrieved,
                                                  String contentLocation,
                                                  long threadId, long mailbox)
    throws MmsException
{
  if (threadId == -1 || retrieved.isGroupMessage()) {
    try {
      threadId = getThreadIdFor(retrieved);
    } catch (RecipientFormattingException e) {
      Log.w("MmsDatabase", e);
      if (threadId == -1)
        throw new MmsException(e);
    }
  }

  ContentValues contentValues = new ContentValues();

  contentValues.put(DATE_SENT, retrieved.getSentTimeMillis());
  contentValues.put(ADDRESS, retrieved.getAddresses().getFrom());

  contentValues.put(MESSAGE_BOX, mailbox);
  contentValues.put(MESSAGE_TYPE, PduHeaders.MESSAGE_TYPE_RETRIEVE_CONF);
  contentValues.put(THREAD_ID, threadId);
  contentValues.put(CONTENT_LOCATION, contentLocation);
  contentValues.put(STATUS, Status.DOWNLOAD_INITIALIZED);
  contentValues.put(DATE_RECEIVED, generatePduCompatTimestamp());
  contentValues.put(PART_COUNT, retrieved.getAttachments().size());
  contentValues.put(SUBSCRIPTION_ID, retrieved.getSubscriptionId());
  contentValues.put(EXPIRES_IN, retrieved.getExpiresIn());
  contentValues.put(READ, retrieved.isExpirationUpdate() ? 1 : 0);

  if (!contentValues.containsKey(DATE_SENT)) {
    contentValues.put(DATE_SENT, contentValues.getAsLong(DATE_RECEIVED));
  }

  if (retrieved.isPushMessage() && isDuplicate(retrieved, threadId)) {
    Log.w(TAG, "Ignoring duplicate media message (" + retrieved.getSentTimeMillis() + ")");
    return Optional.absent();
  }

  long messageId = insertMediaMessage(masterSecret, retrieved.getAddresses(),
                                      retrieved.getBody(), retrieved.getAttachments(),
                                      contentValues);

  if (!Types.isExpirationTimerUpdate(mailbox)) {
    DatabaseFactory.getThreadDatabase(context).setUnread(threadId);
    DatabaseFactory.getThreadDatabase(context).update(threadId, true);
  }

  notifyConversationListeners(threadId);
  jobManager.add(new TrimThreadJob(context, threadId));

  return Optional.of(new InsertResult(messageId, threadId));
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:56,代码来源:MmsDatabase.java

示例9: insertMessageOutbox

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
public long insertMessageOutbox(@NonNull MasterSecretUnion masterSecret,
                                @NonNull OutgoingMediaMessage message,
                                long threadId, boolean forceSms)
    throws MmsException
{
  long type = Types.BASE_SENDING_TYPE;

  if (masterSecret.getMasterSecret().isPresent()) type |= Types.ENCRYPTION_SYMMETRIC_BIT;
  else                                            type |= Types.ENCRYPTION_ASYMMETRIC_BIT;

  if (message.isSecure()) type |= (Types.SECURE_MESSAGE_BIT | Types.PUSH_MESSAGE_BIT);
  if (forceSms)           type |= Types.MESSAGE_FORCE_SMS_BIT;

  if (message.isGroup()) {
    if      (((OutgoingGroupMediaMessage)message).isGroupUpdate()) type |= Types.GROUP_UPDATE_BIT;
    else if (((OutgoingGroupMediaMessage)message).isGroupQuit())   type |= Types.GROUP_QUIT_BIT;
  }

  if (message.isExpirationUpdate()) {
    type |= Types.EXPIRATION_TIMER_UPDATE_BIT;
  }

  List<String> recipientNumbers = message.getRecipients().toNumberStringList(true);

  MmsAddresses addresses;

  if (!message.getRecipients().isSingleRecipient() &&
              message.getDistributionType() == ThreadDatabase.DistributionTypes.BROADCAST)
  {
    addresses = MmsAddresses.forBcc(recipientNumbers);
  } else {
    addresses = MmsAddresses.forTo(recipientNumbers);
  }

  ContentValues contentValues = new ContentValues();
  contentValues.put(DATE_SENT, message.getSentTimeMillis());
  contentValues.put(MESSAGE_TYPE, PduHeaders.MESSAGE_TYPE_SEND_REQ);

  contentValues.put(MESSAGE_BOX, type);
  contentValues.put(THREAD_ID, threadId);
  contentValues.put(READ, 1);
  contentValues.put(DATE_RECEIVED, System.currentTimeMillis());
  contentValues.put(SUBSCRIPTION_ID, message.getSubscriptionId());
  contentValues.put(EXPIRES_IN, message.getExpiresIn());

  if (message.getRecipients().isSingleRecipient()) {
    try {
      contentValues.put(RECEIPT_COUNT, earlyReceiptCache.remove(message.getSentTimeMillis(),
                                                                canonicalizeNumber(context, message.getRecipients().getPrimaryRecipient().getNumber())));
    } catch (InvalidNumberException e) {
      Log.w(TAG, e);
    }
  }

  contentValues.remove(ADDRESS);

  long messageId = insertMediaMessage(masterSecret, addresses, message.getBody(),
                                      message.getAttachments(), contentValues);

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

  return messageId;
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:65,代码来源:MmsDatabase.java

示例10: insertMessageInbox

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
private Optional<InsertResult> insertMessageInbox(MasterSecretUnion masterSecret,
                                                  IncomingMediaMessage retrieved,
                                                  String contentLocation,
                                                  long threadId, long mailbox)
    throws MmsException
{
  if (threadId == -1 || retrieved.isGroupMessage()) {
    try {
      threadId = getThreadIdFor(retrieved);
    } catch (RecipientFormattingException e) {
      Log.w("MmsDatabase", e);
      if (threadId == -1)
        throw new MmsException(e);
    }
  }

  ContentValues contentValues = new ContentValues();

  contentValues.put(DATE_SENT, retrieved.getSentTimeMillis());
  contentValues.put(ADDRESS, retrieved.getAddresses().getFrom());

  contentValues.put(MESSAGE_BOX, mailbox);
  contentValues.put(MESSAGE_TYPE, PduHeaders.MESSAGE_TYPE_RETRIEVE_CONF);
  contentValues.put(THREAD_ID, threadId);
  contentValues.put(CONTENT_LOCATION, contentLocation);
  contentValues.put(STATUS, Status.DOWNLOAD_INITIALIZED);
  contentValues.put(DATE_RECEIVED, generatePduCompatTimestamp());
  contentValues.put(PART_COUNT, retrieved.getAttachments().size());
  contentValues.put(SUBSCRIPTION_ID, retrieved.getSubscriptionId());
  contentValues.put(EXPIRES_IN, retrieved.getExpiresIn());
  contentValues.put(READ, retrieved.isExpirationUpdate() ? 1 : 0);

  if (!contentValues.containsKey(DATE_SENT)) {
    contentValues.put(DATE_SENT, contentValues.getAsLong(DATE_RECEIVED));
  }

  if (retrieved.isPushMessage() && isDuplicate(retrieved, threadId)) {
    Log.w(TAG, "Ignoring duplicate media message (" + retrieved.getSentTimeMillis() + ")");
    return Optional.absent();
  }

  long messageId = insertMediaMessage(masterSecret, retrieved.getAddresses(),
                                      retrieved.getBody(), retrieved.getAttachments(),
                                      contentValues, null);

  if (!Types.isExpirationTimerUpdate(mailbox)) {
    DatabaseFactory.getThreadDatabase(context).setUnread(threadId);
    DatabaseFactory.getThreadDatabase(context).update(threadId, true);
  }

  notifyConversationListeners(threadId);
  jobManager.add(new TrimThreadJob(context, threadId));

  return Optional.of(new InsertResult(messageId, threadId));
}
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:56,代码来源:MmsDatabase.java

示例11: insertMessageOutbox

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
public long insertMessageOutbox(@NonNull MasterSecretUnion masterSecret,
                                @NonNull OutgoingMediaMessage message,
                                long threadId, boolean forceSms,
                                SmsDatabase.InsertListener insertListener)
    throws MmsException
{
  long type = Types.BASE_SENDING_TYPE;

  if (masterSecret.getMasterSecret().isPresent()) type |= Types.ENCRYPTION_SYMMETRIC_BIT;
  else                                            type |= Types.ENCRYPTION_ASYMMETRIC_BIT;

  if (message.isSecure()) type |= (Types.SECURE_MESSAGE_BIT | Types.PUSH_MESSAGE_BIT);
  if (forceSms)           type |= Types.MESSAGE_FORCE_SMS_BIT;

  if (message.isGroup()) {
    if      (((OutgoingGroupMediaMessage)message).isGroupUpdate()) type |= Types.GROUP_UPDATE_BIT;
    else if (((OutgoingGroupMediaMessage)message).isGroupQuit())   type |= Types.GROUP_QUIT_BIT;
  }

  if (message.isExpirationUpdate()) {
    type |= Types.EXPIRATION_TIMER_UPDATE_BIT;
  }

  List<String> recipientNumbers = message.getRecipients().toNumberStringList(true);

  MmsAddresses addresses;

  if (!message.getRecipients().isSingleRecipient() &&
              message.getDistributionType() == ThreadDatabase.DistributionTypes.BROADCAST)
  {
    addresses = MmsAddresses.forBcc(recipientNumbers);
  } else {
    addresses = MmsAddresses.forTo(recipientNumbers);
  }

  ContentValues contentValues = new ContentValues();
  contentValues.put(DATE_SENT, message.getSentTimeMillis());
  contentValues.put(MESSAGE_TYPE, PduHeaders.MESSAGE_TYPE_SEND_REQ);

  contentValues.put(MESSAGE_BOX, type);
  contentValues.put(THREAD_ID, threadId);
  contentValues.put(READ, 1);
  contentValues.put(DATE_RECEIVED, System.currentTimeMillis());
  contentValues.put(SUBSCRIPTION_ID, message.getSubscriptionId());
  contentValues.put(EXPIRES_IN, message.getExpiresIn());

  if (message.getRecipients().isSingleRecipient()) {
    try {
      contentValues.put(RECEIPT_COUNT, earlyReceiptCache.remove(message.getSentTimeMillis(),
                                                                canonicalizeNumber(context, message.getRecipients().getPrimaryRecipient().getNumber())));
    } catch (InvalidNumberException e) {
      Log.w(TAG, e);
    }
  }

  contentValues.remove(ADDRESS);

  long messageId = insertMediaMessage(masterSecret, addresses, message.getBody(),
                                      message.getAttachments(), contentValues, insertListener);

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

  return messageId;
}
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:66,代码来源:MmsDatabase.java

示例12: insertMessageOutbox

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
protected long insertMessageOutbox(long threadId, OutgoingTextMessage message,
                                   long type, boolean forceSms, long date,
                                   InsertListener insertListener)
{
  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;

  if      (message.isIdentityVerified()) type |= Types.KEY_EXCHANGE_IDENTITY_VERIFIED_BIT;
  else if (message.isIdentityDefault())  type |= Types.KEY_EXCHANGE_IDENTITY_DEFAULT_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);

  if (insertListener != null) {
    insertListener.onComplete();
  }

  if (!message.isIdentityVerified() && !message.isIdentityDefault()) {
    DatabaseFactory.getThreadDatabase(context).update(threadId, true);
    DatabaseFactory.getThreadDatabase(context).setLastSeen(threadId);
  }

  notifyConversationListeners(threadId);

  if (!message.isIdentityVerified() && !message.isIdentityDefault()) {
    jobManager.add(new TrimThreadJob(context, threadId));
  }

  return messageId;
}
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:52,代码来源:SmsDatabase.java

示例13: insertMessageInbox

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
private Pair<Long, Long> insertMessageInbox(MasterSecret masterSecret, IncomingMediaMessage retrieved,
                                            String contentLocation, long threadId, long mailbox)
    throws MmsException
{
  PduHeaders    headers       = retrieved.getPduHeaders();
  ContentValues contentValues = getContentValuesFromHeader(headers);
  boolean       unread        = org.thoughtcrime.securesms.util.Util.isDefaultSmsProvider(context) ||
                                ((mailbox & Types.SECURE_MESSAGE_BIT) != 0);

  if (threadId == -1 || retrieved.isGroupMessage()) {
    try {
      threadId = getThreadIdFor(retrieved);
    } catch (RecipientFormattingException e) {
      Log.w("MmsDatabase", e);
      if (threadId == -1)
        throw new MmsException(e);
    }
  }

  contentValues.put(MESSAGE_BOX, mailbox);
  contentValues.put(THREAD_ID, threadId);
  contentValues.put(CONTENT_LOCATION, contentLocation);
  contentValues.put(STATUS, Status.DOWNLOAD_INITIALIZED);
  contentValues.put(DATE_RECEIVED, System.currentTimeMillis() / 1000);
  contentValues.put(READ, unread ? 0 : 1);

  if (!contentValues.containsKey(DATE_SENT)) {
    contentValues.put(DATE_SENT, contentValues.getAsLong(DATE_RECEIVED));
  }

  long messageId = insertMediaMessage(masterSecret, retrieved.getPduHeaders(),
                                      retrieved.getBody(), contentValues);

  if (unread) {
    DatabaseFactory.getThreadDatabase(context).setUnread(threadId);
  }

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

  return new Pair<>(messageId, threadId);
}
 
开发者ID:redcracker,项目名称:TextSecure,代码行数:44,代码来源:MmsDatabase.java

示例14: insertMessageOutbox

import org.thoughtcrime.securesms.jobs.TrimThreadJob; //导入依赖的package包/类
public long insertMessageOutbox(MasterSecret masterSecret, OutgoingMediaMessage message,
                                long threadId, boolean forceSms)
    throws MmsException
{
  long type = Types.BASE_OUTBOX_TYPE | Types.ENCRYPTION_SYMMETRIC_BIT;

  if (message.isSecure()) type |= Types.SECURE_MESSAGE_BIT;
  if (forceSms)           type |= Types.MESSAGE_FORCE_SMS_BIT;

  if (message.isGroup()) {
    if      (((OutgoingGroupMediaMessage)message).isGroupUpdate()) type |= Types.GROUP_UPDATE_BIT;
    else if (((OutgoingGroupMediaMessage)message).isGroupQuit())   type |= Types.GROUP_QUIT_BIT;
  }

  SendReq sendRequest = new SendReq();
  sendRequest.setDate(System.currentTimeMillis() / 1000L);
  sendRequest.setBody(message.getPduBody());
  sendRequest.setContentType(ContentType.MULTIPART_MIXED.getBytes());

  String[]             recipientsArray = message.getRecipients().toNumberStringArray(true);
  EncodedStringValue[] encodedNumbers  = EncodedStringValue.encodeStrings(recipientsArray);

  if (message.getRecipients().isSingleRecipient()) {
    sendRequest.setTo(encodedNumbers);
  } else if (message.getDistributionType() == ThreadDatabase.DistributionTypes.BROADCAST) {
    sendRequest.setBcc(encodedNumbers);
  } else if (message.getDistributionType() == ThreadDatabase.DistributionTypes.CONVERSATION  ||
             message.getDistributionType() == 0)
  {
    sendRequest.setTo(encodedNumbers);
  }

  PduHeaders    headers       = sendRequest.getPduHeaders();
  ContentValues contentValues = getContentValuesFromHeader(headers);

  contentValues.put(MESSAGE_BOX, type);
  contentValues.put(THREAD_ID, threadId);
  contentValues.put(READ, 1);
  contentValues.put(DATE_RECEIVED, contentValues.getAsLong(DATE_SENT));
  contentValues.remove(ADDRESS);

  long messageId = insertMediaMessage(masterSecret, sendRequest.getPduHeaders(),
                                      sendRequest.getBody(), contentValues);
  jobManager.add(new TrimThreadJob(context, threadId));

  return messageId;
}
 
开发者ID:redcracker,项目名称:TextSecure,代码行数:48,代码来源:MmsDatabase.java


注:本文中的org.thoughtcrime.securesms.jobs.TrimThreadJob类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。