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


Java MessageSender类代码示例

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


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

示例1: doInBackground

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的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

示例2: doInBackground

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的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

示例3: handlePushOperation

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
private Pair<Long, Recipients> handlePushOperation(byte[] groupId, String groupName, byte[] avatar,
                                                   Set<String> e164numbers)
    throws InvalidNumberException
{

  try {
    String     groupRecipientId = GroupUtil.getEncodedId(groupId);
    Recipients groupRecipient   = RecipientFactory.getRecipientsFromString(this, groupRecipientId, false);

    GroupContext context = GroupContext.newBuilder()
                                       .setId(ByteString.copyFrom(groupId))
                                       .setType(GroupContext.Type.UPDATE)
                                       .setName(groupName)
                                       .addAllMembers(e164numbers)
                                       .build();

    OutgoingGroupMediaMessage outgoingMessage = new OutgoingGroupMediaMessage(this, groupRecipient, context, avatar);
    long                      threadId        = MessageSender.send(this, masterSecret, outgoingMessage, -1, false);

    return new Pair<>(threadId, groupRecipient);
  } catch (RecipientFormattingException e) {
    throw new AssertionError(e);
  }
}
 
开发者ID:redcracker,项目名称:TextSecure,代码行数:25,代码来源:GroupCreateActivity.java

示例4: initiateKeyExchange

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
private static void initiateKeyExchange(Context context, MasterSecret masterSecret, Recipient recipient) {
  SessionStore      sessionStore      = new TextSecureSessionStore(context, masterSecret);
  PreKeyStore       preKeyStore       = new TextSecurePreKeyStore(context, masterSecret);
  SignedPreKeyStore signedPreKeyStore = new TextSecurePreKeyStore(context, masterSecret);
  IdentityKeyStore  identityKeyStore  = new TextSecureIdentityKeyStore(context, masterSecret);

  SessionBuilder    sessionBuilder    = new SessionBuilder(sessionStore, preKeyStore, signedPreKeyStore,
                                                           identityKeyStore, recipient.getRecipientId(),
                                                           PushAddress.DEFAULT_DEVICE_ID);

  KeyExchangeMessage         keyExchangeMessage = sessionBuilder.process();
  String                     serializedMessage  = Base64.encodeBytesWithoutPadding(keyExchangeMessage.serialize());
  OutgoingKeyExchangeMessage textMessage        = new OutgoingKeyExchangeMessage(recipient, serializedMessage);

  MessageSender.send(context, masterSecret, textMessage, -1, false);
}
 
开发者ID:redcracker,项目名称:TextSecure,代码行数:17,代码来源:KeyExchangeInitiator.java

示例5: sendGroupUpdate

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
private static GroupActionResult sendGroupUpdate(@NonNull  Context      context,
                                                 @NonNull  MasterSecret masterSecret,
                                                 @NonNull  byte[]       groupId,
                                                 @NonNull  Set<String>  e164numbers,
                                                 @NonNull  String       ownerE164number,
                                                 @NonNull  Set<String>  adminE164numbers,
                                                 @Nullable String       groupName,
                                                 @Nullable byte[]       avatar,
                                                 @Nullable Recipients   destRecipients)
{
  Attachment avatarAttachment = null;
  String     groupRecipientId = GroupUtil.getEncodedId(groupId);
  Recipients groupRecipient   = RecipientFactory.getRecipientsFromString(context, groupRecipientId, false);

  GroupContext.Builder groupContextBuilder = GroupContext.newBuilder()
                                                         .setId(ByteString.copyFrom(groupId))
                                                         .setType(GroupContext.Type.UPDATE)
                                                         .addAllMembers(e164numbers)
                                                         .addAllAdmins(adminE164numbers);
  if (groupName != null) groupContextBuilder.setName(groupName);

  if(ownerE164number != null) {
    groupContextBuilder.setOwner(ownerE164number);
  }

  GroupContext groupContext = groupContextBuilder.build();

  if (avatar != null) {
    Uri avatarUri = SingleUseBlobProvider.getInstance().createUri(avatar);
    avatarAttachment = new UriAttachment(avatarUri, ContentType.IMAGE_PNG, AttachmentDatabase.TRANSFER_PROGRESS_DONE, avatar.length);
  }

  OutgoingGroupMediaMessage outgoingMessage = new OutgoingGroupMediaMessage(groupRecipient, groupContext, avatarAttachment, System.currentTimeMillis(), 0);
  long                      threadId        = MessageSender.send(context, masterSecret, outgoingMessage, -1, false, destRecipients);

  return new GroupActionResult(groupRecipient, threadId);
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:38,代码来源:GroupManager.java

示例6: doInBackground

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
@Override
protected Void doInBackground(Void... params) {
  MmsDatabase mmsDatabase = DatabaseFactory.getMmsDatabase(getContext());
  mmsDatabase.removeFailure(record.getId(), failure);

  if (record.getRecipients().isGroupRecipient()) {
    MessageSender.resendGroupMessage(getContext(), masterSecret, record, failure.getRecipientId());
  } else {
    MessageSender.resend(getContext(), masterSecret, record);
  }
  return null;
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:13,代码来源:MessageRecipientListItem.java

示例7: onHandleIntent

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
@Override
protected void onHandleIntent(Intent intent, @Nullable MasterSecret masterSecret) {
  if (!TelephonyManager.ACTION_RESPOND_VIA_MESSAGE.equals(intent.getAction())) {
    Log.w(TAG, "Received unknown intent: " + intent.getAction());
    return;
  }

  if (masterSecret == null) {
    Log.w(TAG, "Got quick response request when locked...");
    Toast.makeText(this, R.string.QuickResponseService_quick_response_unavailable_when_Signal_is_locked, Toast.LENGTH_LONG).show();
    return;
  }

  try {
    Rfc5724Uri uri        = new Rfc5724Uri(intent.getDataString());
    String     content    = intent.getStringExtra(Intent.EXTRA_TEXT);
    String     numbers    = uri.getPath();
    if(numbers.contains("%")){
      numbers = URLDecoder.decode(numbers);
    }

    Recipients                      recipients     = RecipientFactory.getRecipientsFromString(this, numbers, false);
    Optional<RecipientsPreferences> preferences    = DatabaseFactory.getRecipientPreferenceDatabase(this).getRecipientsPreferences(recipients.getIds());
    int                             subscriptionId = preferences.isPresent() ? preferences.get().getDefaultSubscriptionId().or(-1) : -1;
    long                            expiresIn      = preferences.isPresent() ? preferences.get().getExpireMessages() * 1000 : 0;

    if (!TextUtils.isEmpty(content)) {
      if (recipients.isSingleRecipient()) {
        MessageSender.send(this, masterSecret, new OutgoingTextMessage(recipients, content, expiresIn, subscriptionId), -1, false);
      } else {
        MessageSender.send(this, masterSecret, new OutgoingMediaMessage(recipients, new SlideDeck(), content, System.currentTimeMillis(),
                                                                        subscriptionId, expiresIn, ThreadDatabase.DistributionTypes.DEFAULT), -1, false);
      }
    }
  } catch (URISyntaxException e) {
    Toast.makeText(this, R.string.QuickResponseService_problem_sending_message, Toast.LENGTH_LONG).show();
    Log.w(TAG, e);
  }
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:40,代码来源:QuickResponseService.java

示例8: handleSelectMessageExpiration

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
private void handleSelectMessageExpiration() {
  if (isPushGroupConversation() && !isActiveGroup()) {
    return;
  }

  ExpirationDialog.show(this, recipients.getExpireMessages(), new ExpirationDialog.OnClickListener() {
    @Override
    public void onClick(final int expirationTime) {
      new AsyncTask<Void, Void, Void>() {
        @Override
        protected Void doInBackground(Void... params) {
          DatabaseFactory.getRecipientPreferenceDatabase(ConversationActivity.this)
                         .setExpireMessages(recipients, expirationTime);
          recipients.setExpireMessages(expirationTime);

          OutgoingExpirationUpdateMessage outgoingMessage = new OutgoingExpirationUpdateMessage(getRecipients(), System.currentTimeMillis(), expirationTime * 1000);
          MessageSender.send(ConversationActivity.this, masterSecret, outgoingMessage, threadId, false);

          return null;
        }

        @Override
        protected void onPostExecute(Void result) {
          invalidateOptionsMenu();
          if (fragment != null) fragment.setLastSeen(0);
        }
      }.execute();
    }
  });
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:31,代码来源:ConversationActivity.java

示例9: handleResetSecureSession

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
private void handleResetSecureSession() {
  AlertDialog.Builder builder = new AlertDialog.Builder(this);
  builder.setTitle(R.string.ConversationActivity_reset_secure_session_question);
  builder.setIconAttribute(R.attr.dialog_alert_icon);
  builder.setCancelable(true);
  builder.setMessage(R.string.ConversationActivity_this_may_help_if_youre_having_encryption_problems);
  builder.setPositiveButton(R.string.ConversationActivity_reset, new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
      if (isSingleConversation()) {
        final Context context = getApplicationContext();

        OutgoingEndSessionMessage endSessionMessage =
            new OutgoingEndSessionMessage(new OutgoingTextMessage(getRecipients(), "TERMINATE", 0, -1));

        new AsyncTask<OutgoingEndSessionMessage, Void, Long>() {
          @Override
          protected Long doInBackground(OutgoingEndSessionMessage... messages) {
            return MessageSender.send(context, masterSecret, messages[0], threadId, false);
          }

          @Override
          protected void onPostExecute(Long result) {
            sendComplete(result);
          }
        }.execute(endSessionMessage);
      }
    }
  });
  builder.setNegativeButton(android.R.string.cancel, null);
  builder.show();
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:33,代码来源:ConversationActivity.java

示例10: handleLeavePushGroup

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
private void handleLeavePushGroup() {
  if (getRecipients() == null) {
    Toast.makeText(this, getString(R.string.ConversationActivity_invalid_recipient),
                   Toast.LENGTH_LONG).show();
    return;
  }

  AlertDialog.Builder builder = new AlertDialog.Builder(this);
  builder.setTitle(getString(R.string.ConversationActivity_leave_group));
  builder.setIconAttribute(R.attr.dialog_info_icon);
  builder.setCancelable(true);
  builder.setMessage(getString(R.string.ConversationActivity_are_you_sure_you_want_to_leave_this_group));
  builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
      Context self = ConversationActivity.this;
      try {
        byte[] groupId = GroupUtil.getDecodedId(getRecipients().getPrimaryRecipient().getNumber());
        DatabaseFactory.getGroupDatabase(self).setActive(groupId, false);

        GroupContext context = GroupContext.newBuilder()
                                           .setId(ByteString.copyFrom(groupId))
                                           .setType(GroupContext.Type.QUIT)
                                           .build();

        OutgoingGroupMediaMessage outgoingMessage = new OutgoingGroupMediaMessage(getRecipients(), context, null, System.currentTimeMillis(), 0);
        MessageSender.send(self, masterSecret, outgoingMessage, threadId, false);
        DatabaseFactory.getGroupDatabase(self).remove(groupId, TextSecurePreferences.getLocalNumber(self));
        DatabaseFactory.getGroupDatabase(self).removeAdmin(groupId, TextSecurePreferences.getLocalNumber(self));
        initializeEnabledCheck();
      } catch (IOException e) {
        Log.w(TAG, e);
        Toast.makeText(self, R.string.ConversationActivity_error_leaving_group, Toast.LENGTH_LONG).show();
      }
    }
  });

  builder.setNegativeButton(R.string.no, null);
  builder.show();
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:41,代码来源:ConversationActivity.java

示例11: handleResendMessage

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
private void handleResendMessage(final MessageRecord message) {
  final Context context = getActivity().getApplicationContext();
  new AsyncTask<MessageRecord, Void, Void>() {
    @Override
    protected Void doInBackground(MessageRecord... messageRecords) {
      MessageSender.resend(context, masterSecret, messageRecords[0]);
      return null;
    }
  }.execute(message);
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:11,代码来源:ConversationFragment.java

示例12: sendGroupUpdate

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
private static GroupActionResult sendGroupUpdate(@NonNull  Context      context,
                                                 @NonNull  MasterSecret masterSecret,
                                                 @NonNull  byte[]       groupId,
                                                 @NonNull  Set<String>  e164numbers,
                                                 @Nullable String       groupName,
                                                 @Nullable byte[]       avatar)
{
  Attachment avatarAttachment = null;
  String     groupRecipientId = GroupUtil.getEncodedId(groupId);
  Recipients groupRecipient   = RecipientFactory.getRecipientsFromString(context, groupRecipientId, false);

  GroupContext.Builder groupContextBuilder = GroupContext.newBuilder()
                                                         .setId(ByteString.copyFrom(groupId))
                                                         .setType(GroupContext.Type.UPDATE)
                                                         .addAllMembers(e164numbers);
  if (groupName != null) groupContextBuilder.setName(groupName);
  GroupContext groupContext = groupContextBuilder.build();

  if (avatar != null) {
    Uri avatarUri = SingleUseBlobProvider.getInstance().createUri(avatar);
    avatarAttachment = new UriAttachment(avatarUri, MediaUtil.IMAGE_PNG, AttachmentDatabase.TRANSFER_PROGRESS_DONE, avatar.length, null, false);
  }

  OutgoingGroupMediaMessage outgoingMessage = new OutgoingGroupMediaMessage(groupRecipient, groupContext, avatarAttachment, System.currentTimeMillis(), 0);
  long                      threadId        = MessageSender.send(context, masterSecret, outgoingMessage, -1, false, null);

  return new GroupActionResult(groupRecipient, threadId);
}
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:29,代码来源:GroupManager.java

示例13: onHandleIntent

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
@Override
protected void onHandleIntent(Intent intent, @Nullable MasterSecret masterSecret) {
  if (!TelephonyManager.ACTION_RESPOND_VIA_MESSAGE.equals(intent.getAction())) {
    Log.w(TAG, "Received unknown intent: " + intent.getAction());
    return;
  }

  if (masterSecret == null) {
    Log.w(TAG, "Got quick response request when locked...");
    Toast.makeText(this, R.string.QuickResponseService_quick_response_unavailable_when_Signal_is_locked, Toast.LENGTH_LONG).show();
    return;
  }

  try {
    Rfc5724Uri uri        = new Rfc5724Uri(intent.getDataString());
    String     content    = intent.getStringExtra(Intent.EXTRA_TEXT);
    String     numbers    = uri.getPath();
    if(numbers.contains("%")){
      numbers = URLDecoder.decode(numbers);
    }

    Recipients                      recipients     = RecipientFactory.getRecipientsFromString(this, numbers, false);
    Optional<RecipientsPreferences> preferences    = DatabaseFactory.getRecipientPreferenceDatabase(this).getRecipientsPreferences(recipients.getIds());
    int                             subscriptionId = preferences.isPresent() ? preferences.get().getDefaultSubscriptionId().or(-1) : -1;
    long                            expiresIn      = preferences.isPresent() ? preferences.get().getExpireMessages() * 1000 : 0;

    if (!TextUtils.isEmpty(content)) {
      if (recipients.isSingleRecipient()) {
        MessageSender.send(this, masterSecret, new OutgoingTextMessage(recipients, content, expiresIn, subscriptionId), -1, false, null);
      } else {
        MessageSender.send(this, masterSecret, new OutgoingMediaMessage(recipients, new SlideDeck(), content, System.currentTimeMillis(),
                                                                        subscriptionId, expiresIn, ThreadDatabase.DistributionTypes.DEFAULT), -1, false, null);
      }
    }
  } catch (URISyntaxException e) {
    Toast.makeText(this, R.string.QuickResponseService_problem_sending_message, Toast.LENGTH_LONG).show();
    Log.w(TAG, e);
  }
}
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:40,代码来源:QuickResponseService.java

示例14: handleSelectMessageExpiration

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
private void handleSelectMessageExpiration() {
  if (isPushGroupConversation() && !isActiveGroup()) {
    return;
  }

  ExpirationDialog.show(this, recipients.getExpireMessages(), new ExpirationDialog.OnClickListener() {
    @Override
    public void onClick(final int expirationTime) {
      new AsyncTask<Void, Void, Void>() {
        @Override
        protected Void doInBackground(Void... params) {
          DatabaseFactory.getRecipientPreferenceDatabase(ConversationActivity.this)
                         .setExpireMessages(recipients, expirationTime);
          recipients.setExpireMessages(expirationTime);

          OutgoingExpirationUpdateMessage outgoingMessage = new OutgoingExpirationUpdateMessage(getRecipients(), System.currentTimeMillis(), expirationTime * 1000);
          MessageSender.send(ConversationActivity.this, masterSecret, outgoingMessage, threadId, false, null);

          return null;
        }

        @Override
        protected void onPostExecute(Void result) {
          invalidateOptionsMenu();
          if (fragment != null) fragment.setLastSeen(0);
        }
      }.execute();
    }
  });
}
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:31,代码来源:ConversationActivity.java

示例15: handleResetSecureSession

import org.thoughtcrime.securesms.sms.MessageSender; //导入依赖的package包/类
private void handleResetSecureSession() {
  AlertDialog.Builder builder = new AlertDialog.Builder(this);
  builder.setTitle(R.string.ConversationActivity_reset_secure_session_question);
  builder.setIconAttribute(R.attr.dialog_alert_icon);
  builder.setCancelable(true);
  builder.setMessage(R.string.ConversationActivity_this_may_help_if_youre_having_encryption_problems);
  builder.setPositiveButton(R.string.ConversationActivity_reset, new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
      if (isSingleConversation()) {
        final Context context = getApplicationContext();

        OutgoingEndSessionMessage endSessionMessage =
            new OutgoingEndSessionMessage(new OutgoingTextMessage(getRecipients(), "TERMINATE", 0, -1));

        new AsyncTask<OutgoingEndSessionMessage, Void, Long>() {
          @Override
          protected Long doInBackground(OutgoingEndSessionMessage... messages) {
            return MessageSender.send(context, masterSecret, messages[0], threadId, false, null);
          }

          @Override
          protected void onPostExecute(Long result) {
            sendComplete(result);
          }
        }.execute(endSessionMessage);
      }
    }
  });
  builder.setNegativeButton(android.R.string.cancel, null);
  builder.show();
}
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:33,代码来源:ConversationActivity.java


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