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


Java Optional类代码示例

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


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

示例1: createSignalServiceMessage

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
private SignalServiceDataMessage createSignalServiceMessage(SignalServiceEnvelope envelope, DataMessage content) {
  SignalServiceGroup            groupInfo        = createGroupInfo(envelope, content);
  List<SignalServiceAttachment> attachments      = new LinkedList<>();
  boolean                       endSession       = ((content.getFlags() & DataMessage.Flags.END_SESSION_VALUE) != 0);
  boolean                       expirationUpdate = ((content.getFlags() & DataMessage.Flags.EXPIRATION_TIMER_UPDATE_VALUE) != 0);

  for (AttachmentPointer pointer : content.getAttachmentsList()) {
    attachments.add(new SignalServiceAttachmentPointer(pointer.getId(),
                                                       pointer.getContentType(),
                                                       pointer.getFilename(),
                                                       pointer.getKey().toByteArray(),
                                                       envelope.getRelay(),
                                                       pointer.hasSize() ? Optional.of(pointer.getSize()) : Optional.<Integer>absent(),
                                                       pointer.hasThumbnail() ? Optional.of(pointer.getThumbnail().toByteArray()): Optional.<byte[]>absent(),
                                                       pointer.hasDigest() ? Optional.of(pointer.getDigest().toByteArray()) : Optional.<byte[]>absent()));
  }

  return new SignalServiceDataMessage(envelope.getTimestamp(), groupInfo, attachments,
                                      content.getBody(), endSession, content.getExpireTimer(),
                                      expirationUpdate);
}
 
开发者ID:XecureIT,项目名称:PeSanKita-lib,代码行数:22,代码来源:SignalServiceCipher.java

示例2: handleExpirationUpdate

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
private void handleExpirationUpdate(@NonNull MasterSecretUnion masterSecret,
                                    @NonNull SignalServiceEnvelope envelope,
                                    @NonNull SignalServiceDataMessage message,
                                    @NonNull Optional<Long> smsMessageId)
    throws MmsException
{
  MmsDatabase          database     = DatabaseFactory.getMmsDatabase(context);
  String               localNumber  = TextSecurePreferences.getLocalNumber(context);
  Recipients           recipients   = getMessageDestination(envelope, message);
  IncomingMediaMessage mediaMessage = new IncomingMediaMessage(masterSecret, envelope.getSource(),
                                                               localNumber, message.getTimestamp(), -1,
                                                               message.getExpiresInSeconds() * 1000, true,
                                                               Optional.fromNullable(envelope.getRelay()),
                                                               Optional.<String>absent(), message.getGroupInfo(),
                                                               Optional.<List<SignalServiceAttachment>>absent());



  database.insertSecureDecryptedMessageInbox(masterSecret, mediaMessage, -1);

  DatabaseFactory.getRecipientPreferenceDatabase(context).setExpireMessages(recipients, message.getExpiresInSeconds());

  if (smsMessageId.isPresent()) {
    DatabaseFactory.getSmsDatabase(context).deleteMessage(smsMessageId.get());
  }
}
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:27,代码来源:PushDecryptJob.java

示例3: insert

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
public long insert(@NonNull SignalServiceEnvelope envelope) {
  Optional<Long> messageId = find(envelope);

  if (messageId.isPresent()) {
    return messageId.get();
  } else {
    ContentValues values = new ContentValues();
    values.put(TYPE, envelope.getType());
    values.put(SOURCE, envelope.getSource());
    values.put(DEVICE_ID, envelope.getSourceDevice());
    values.put(LEGACY_MSG, envelope.hasLegacyMessage() ? Base64.encodeBytes(envelope.getLegacyMessage()) : "");
    values.put(CONTENT, envelope.hasContent() ? Base64.encodeBytes(envelope.getContent()) : "");
    values.put(TIMESTAMP, envelope.getTimestamp());

    return databaseHelper.getWritableDatabase().insert(TABLE_NAME, null, values);
  }
}
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:18,代码来源:PushDatabase.java

示例4: doInBackground

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
@Override
protected Void doInBackground(String... numbers) {
  final Context context = getContext();
  if (context == null) return null;

  for (String number : numbers) {
    Recipients recipients = RecipientFactory.getRecipientsFromString(context, number, false);

    if (recipients.getPrimaryRecipient() != null) {
      Optional<RecipientsPreferences> preferences    = DatabaseFactory.getRecipientPreferenceDatabase(context).getRecipientsPreferences(recipients.getIds());
      int                             subscriptionId = preferences.isPresent() ? preferences.get().getDefaultSubscriptionId().or(-1) : -1;

      MessageSender.send(context, masterSecret, new OutgoingTextMessage(recipients, message, subscriptionId), -1L, true, null);

      if (recipients.getPrimaryRecipient().getContactUri() != null) {
        DatabaseFactory.getRecipientPreferenceDatabase(context).setSeenInviteReminder(recipients, true);
      }
    }
  }
  return null;
}
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:22,代码来源:InviteActivity.java

示例5: createAttachmentPointers

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
private List<AttachmentPointer> createAttachmentPointers(Optional<List<SignalServiceAttachment>> attachments) throws IOException {
  List<AttachmentPointer> pointers = new LinkedList<>();

  if (!attachments.isPresent() || attachments.get().isEmpty()) {
    Log.w(TAG, "No attachments present...");
    return pointers;
  }

  for (SignalServiceAttachment attachment : attachments.get()) {
    if (attachment.isStream()) {
      Log.w(TAG, "Found attachment, creating pointer...");
      pointers.add(createAttachmentPointer(attachment.asStream()));
    }
  }

  return pointers;
}
 
开发者ID:XecureIT,项目名称:PeSanKita-lib,代码行数:18,代码来源:SignalServiceMessageSender.java

示例6: doInBackground

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
@Override
protected Void doInBackground(String... numbers) {
  final Context context = getContext();
  if (context == null) return null;

  for (String number : numbers) {
    Recipients recipients = RecipientFactory.getRecipientsFromString(context, number, false);

    if (recipients.getPrimaryRecipient() != null) {
      Optional<RecipientsPreferences> preferences    = DatabaseFactory.getRecipientPreferenceDatabase(context).getRecipientsPreferences(recipients.getIds());
      int                             subscriptionId = preferences.isPresent() ? preferences.get().getDefaultSubscriptionId().or(-1) : -1;

      MessageSender.send(context, masterSecret, new OutgoingTextMessage(recipients, message, subscriptionId), -1L, true);

      if (recipients.getPrimaryRecipient().getContactUri() != null) {
        DatabaseFactory.getRecipientPreferenceDatabase(context).setSeenInviteReminder(recipients, true);
      }
    }
  }
  return null;
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:22,代码来源:InviteActivity.java

示例7: TransportOption

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
public TransportOption(@NonNull  Type type,
                       @DrawableRes int drawable,
                       int backgroundColor,
                       @NonNull String text,
                       @NonNull String composeHint,
                       @NonNull CharacterCalculator characterCalculator,
                       @NonNull Optional<CharSequence> simName,
                       @NonNull Optional<Integer> simSubscriptionId)
{
  this.type                = type;
  this.drawable            = drawable;
  this.backgroundColor     = backgroundColor;
  this.text                = text;
  this.composeHint         = composeHint;
  this.characterCalculator = characterCalculator;
  this.simName             = simName;
  this.simSubscriptionId   = simSubscriptionId;
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:19,代码来源:TransportOption.java

示例8: getTransportOptionsForSimCards

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
private @NonNull List<TransportOption> getTransportOptionsForSimCards(@NonNull String text,
                                                                      @NonNull String composeHint,
                                                                      @NonNull CharacterCalculator characterCalculator)
{
  List<TransportOption>        results             = new LinkedList<>();
  SubscriptionManagerCompat    subscriptionManager = new SubscriptionManagerCompat(context);
  List<SubscriptionInfoCompat> subscriptions       = subscriptionManager.getActiveSubscriptionInfoList();

  if (subscriptions.size() < 2) {
    results.add(new TransportOption(Type.SMS, R.drawable.ic_send_sms_white_24dp,
                                    context.getResources().getColor(R.color.grey_600),
                                    text, composeHint, characterCalculator));
  } else {
    for (SubscriptionInfoCompat subscriptionInfo : subscriptions) {
      results.add(new TransportOption(Type.SMS, R.drawable.ic_send_sms_white_24dp,
                                      context.getResources().getColor(R.color.grey_600),
                                      text, composeHint, characterCalculator,
                                      Optional.of(subscriptionInfo.getDisplayName()),
                                      Optional.of(subscriptionInfo.getSubscriptionId())));
    }
  }

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

示例9: sendMessage

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
/**
 * Send a message to a group.
 *
 * @param recipients The group members.
 * @param message The group message.
 * @throws IOException
 * @throws EncapsulatedExceptions
 */
public void sendMessage(List<SignalServiceAddress> recipients, SignalServiceDataMessage message)
    throws IOException, EncapsulatedExceptions
{
  byte[]                  content   = createMessageContent(message);
  long                    timestamp = message.getTimestamp();
  SendMessageResponseList response  = sendMessage(recipients, timestamp, content, true);

  try {
    if (response.getNeedsSync()) {
      byte[] syncMessage = createMultiDeviceSentTranscriptContent(content, Optional.<SignalServiceAddress>absent(), timestamp);
      sendMessage(localAddress, timestamp, syncMessage, false, false);
    }
  } catch (UntrustedIdentityException e) {
    response.addException(e);
  }

  if (response.hasExceptions()) {
    throw new EncapsulatedExceptions(response.getUntrustedIdentities(), response.getUnregisteredUsers(), response.getNetworkExceptions());
  }
}
 
开发者ID:XecureIT,项目名称:PeSanKita-lib,代码行数:29,代码来源:SignalServiceMessageSender.java

示例10: getVerifiedMessage

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
private Optional<VerifiedMessage> getVerifiedMessage(Recipient recipient, Optional<IdentityDatabase.IdentityRecord> identity) throws InvalidNumberException {
  if (!identity.isPresent()) return Optional.absent();

  String      destination = Util.canonicalizeNumber(context, recipient.getNumber());
  IdentityKey identityKey = identity.get().getIdentityKey();

  VerifiedMessage.VerifiedState state;

  switch (identity.get().getVerifiedStatus()) {
    case VERIFIED:   state = VerifiedMessage.VerifiedState.VERIFIED;   break;
    case UNVERIFIED: state = VerifiedMessage.VerifiedState.UNVERIFIED; break;
    case DEFAULT:    state = VerifiedMessage.VerifiedState.DEFAULT;    break;
    default: throw new AssertionError("Unknown state: " + identity.get().getVerifiedStatus());
  }

  return Optional.of(new VerifiedMessage(destination, identityKey, state, System.currentTimeMillis()));
}
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:18,代码来源:MultiDeviceContactUpdateJob.java

示例11: getNotification

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
public Optional<Pair<NotificationInd, Integer>> getNotification(long messageId) {
  Cursor cursor = null;

  try {
    cursor = rawQuery(RAW_ID_WHERE, new String[] {String.valueOf(messageId)});

    if (cursor != null && cursor.moveToNext()) {
      PduHeaders        headers = new PduHeaders();
      PduHeadersBuilder builder = new PduHeadersBuilder(headers, cursor);
      builder.addText(CONTENT_LOCATION, PduHeaders.CONTENT_LOCATION);
      builder.addLong(NORMALIZED_DATE_SENT, PduHeaders.DATE);
      builder.addLong(EXPIRY, PduHeaders.EXPIRY);
      builder.addLong(MESSAGE_SIZE, PduHeaders.MESSAGE_SIZE);
      builder.addText(TRANSACTION_ID, PduHeaders.TRANSACTION_ID);

      return Optional.of(new Pair<>(new NotificationInd(headers),
                                    cursor.getInt(cursor.getColumnIndexOrThrow(SUBSCRIPTION_ID))));
    } else {
      return Optional.absent();
    }
  } finally {
    if (cursor != null)
      cursor.close();
  }
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:26,代码来源:MmsDatabase.java

示例12: insertMessageInbox

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
public Optional<InsertResult> insertMessageInbox(MasterSecretUnion masterSecret,
                                                 IncomingMediaMessage retrieved,
                                                 String contentLocation, long threadId)
    throws MmsException
{
  long type = Types.BASE_INBOX_TYPE;

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

  if (retrieved.isPushMessage()) {
    type |= Types.PUSH_MESSAGE_BIT;
  }

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

  return insertMessageInbox(masterSecret, retrieved, contentLocation, threadId, type);
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:24,代码来源:MmsDatabase.java

示例13: insertSecureDecryptedMessageInbox

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
public Optional<InsertResult> insertSecureDecryptedMessageInbox(MasterSecretUnion masterSecret,
                                                                IncomingMediaMessage retrieved,
                                                                long threadId)
    throws MmsException
{
  long type = Types.BASE_INBOX_TYPE | Types.SECURE_MESSAGE_BIT;

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

  if (retrieved.isPushMessage()) {
    type |= Types.PUSH_MESSAGE_BIT;
  }

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

  return insertMessageInbox(masterSecret, retrieved, "", threadId, type);
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:24,代码来源:MmsDatabase.java

示例14: getApn

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
public static Apn getApn(Context context) throws ApnUnavailableException {

    try {
      Optional<Apn> params = ApnDatabase.getInstance(context)
                                        .getMmsConnectionParameters(TelephonyUtil.getMccMnc(context),
                                                                    TelephonyUtil.getApn(context));

      if (!params.isPresent()) {
        throw new ApnUnavailableException("No parameters available from ApnDefaults.");
      }

      return params.get();
    } catch (IOException ioe) {
      throw new ApnUnavailableException("ApnDatabase threw an IOException", ioe);
    }
  }
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:17,代码来源:LegacyMmsConnection.java

示例15: forPointers

import org.whispersystems.libsignal.util.guava.Optional; //导入依赖的package包/类
public static List<Attachment> forPointers(@NonNull MasterSecretUnion masterSecret, Optional<List<SignalServiceAttachment>> pointers) {
  List<Attachment> results = new LinkedList<>();

  if (pointers.isPresent()) {
    for (SignalServiceAttachment pointer : pointers.get()) {
      if (pointer.isPointer()) {
        String encryptedKey = MediaKey.getEncrypted(masterSecret, pointer.asPointer().getKey());
        results.add(new PointerAttachment(pointer.getContentType(),
                                          AttachmentDatabase.TRANSFER_PROGRESS_AUTO_PENDING,
                                          pointer.asPointer().getSize().or(0),
                                          pointer.asPointer().getFileName().orNull(),
                                          String.valueOf(pointer.asPointer().getId()),
                                          encryptedKey, pointer.asPointer().getRelay().orNull(),
                                          pointer.asPointer().getDigest().orNull(),
                                          pointer.asPointer().getVoiceNote()));
      }
    }
  }

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


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