/* * private static boolean isPushMediaSend(Context context, Recipients recipients) * { * try * { * if (!TextSecurePreferences.isPushRegistered(context)) * { * return false; * } * * if (recipients.getRecipientsList().size() > 1) * { * return false; * } * * Recipient recipient = recipients.getPrimaryRecipient(); * String destination = Util.canonicalizeNumber(context, recipient.getNumber()); * * return isPushDestination(context, destination); * } * catch (InvalidNumberException e) * { * Log.w(TAG, e); * return false; * } * } * * private static boolean isGroupPushSend(Recipients recipients) * { * return GroupUtil.isEncodedGroup(recipients.getPrimaryRecipient().getNumber()); * }*/ private static bool isSelfSend(Recipients recipients) { try { if (!TextSecurePreferences.isPushRegistered()) { return(false); } if (!recipients.IsSingleRecipient) { return(false); } if (recipients.IsGroupRecipient) { return(false); } String e164number = Utils.canonicalizeNumber(recipients.getPrimaryRecipient().getNumber()); return(TextSecurePreferences.getLocalNumber().Equals(e164number)); } catch (InvalidNumberException e) { //Log.w("MessageSender", e); return(false); } }
public static TextSecureAccountManager createManager() { return(new TextSecureAccountManager(PUSH_URL, new TextSecurePushTrustStore(), TextSecurePreferences.getLocalNumber(), TextSecurePreferences.getPushServerPassword(), USER_AGENT)); }
public async Task <Recipients> getGroupMembers(byte[] groupId, bool includeSelf) { String localNumber = TextSecurePreferences.getLocalNumber(); List <String> members = await getCurrentMembers(groupId); List <Recipient> recipients = new List <Recipient>(); foreach (String member in members) { if (!includeSelf && member.Equals(localNumber)) { continue; } recipients.AddRange(RecipientFactory.getRecipientsFromString(member, false) .getRecipientsList()); } return(RecipientFactory.getRecipientsFor(recipients, false)); }
private bool IsFirstLaunch() { return(TextSecurePreferences.getLocalNumber() == String.Empty); }
public String GetUser() { return(TextSecurePreferences.getLocalNumber()); }
public static SignalServiceAccountManager createManager() { return(new SignalServiceAccountManager(PUSH_URLS, TextSecurePreferences.getLocalNumber(), TextSecurePreferences.getPushServerPassword(), USER_AGENT)); }
public static String canonicalizeNumber(String number) { String localNumber = TextSecurePreferences.getLocalNumber(); return(PhoneNumberFormatter.formatNumber(number, localNumber)); }
/// <summary> /// Invoked when the application is launched normally by the end user. Other entry points /// will be used such as when the application is launched to open a specific file. /// </summary> /// <param name="e">Details about the launch request and process.</param> protected override async void OnLaunched(LaunchActivatedEventArgs e) { #if DEBUG if (System.Diagnostics.Debugger.IsAttached) { this.DebugSettings.EnableFrameRateCounter = false; } #endif DispatcherHelper.Initialize(); if (TextSecurePreferences.getLocalNumber() == string.Empty) { Debug.WriteLine("Launching first launch experience"); OnFirstLaunched(e); return; } Debug.WriteLine("Launching..."); /*if (TextSecurePreferences.isPushRegistered() == true) * { * TaskHelper.getInstance().RegisterPushReceiver(); * * if (channel == null) * { * var response = await PushHelper.getInstance().OpenChannelAndUpload(); * channel = response.Channel; * } * * }*/ accountManager = TextSecureCommunicationFactory.createManager(); Worker = new TaskWorker(); Worker.Start(); //await DirectoryHelper.refreshDirectory(); // var task = new EchoActivity("ASDFFDSA"); var websocketTask = new WebsocketTask(); Task.Factory.StartNew(() => { try { var messageReceiver = TextSecureCommunicationFactory.createReceiver(); var pipe = messageReceiver.createMessagePipe(); pipe.MessageReceived += OnMessageRecevied; } catch (Exception ex) { Debug.WriteLine("Failed asd:" + ex.Message); } }); //Worker.AddTaskActivities(websocketTask); /*if (rootFrame.Content == null) * { * // When the navigation stack isn't restored navigate to the first page, * // configuring the new page by passing required information as a navigation * // parameter * rootFrame.Navigate(typeof(MainPage), e.Arguments); * }*/ // Ensure the current window is active Frame rootFrame = Window.Current.Content as Frame; _frame = rootFrame; if (rootFrame == null) { rootFrame = new Frame(); } rootFrame.Navigate(typeof(ExtendedSplash), e.Arguments); Window.Current.Content = rootFrame; Window.Current.Activate(); BackButtonManager.RegisterFrame(rootFrame, true, true, true); }
private void handleMessage(/*MasterSecretUnion masterSecret, */ TextSecureEnvelope envelope /*, Optional<Long> smsMessageId*/) { try { AxolotlStore axolotlStore = new TextSecureAxolotlStore(); TextSecureAddress localAddress = new TextSecureAddress(TextSecurePreferences.getLocalNumber()); TextSecureCipher cipher = new TextSecureCipher(localAddress, axolotlStore); TextSecureContent content = cipher.decrypt(envelope); if (content.getDataMessage().HasValue) { TextSecureDataMessage message = content.getDataMessage().ForceGetValue(); if (message.isEndSession()) { handleEndSessionMessage(/*masterSecret, */ envelope, message /*, smsMessageId*/); } //else if (message.isGroupUpdate()) handleGroupMessage(masterSecret, envelope, message, smsMessageId); //else if (message.getAttachments().isPresent()) handleMediaMessage(masterSecret, envelope, message, smsMessageId); else { handleTextMessage(/*masterSecret, */ envelope, message /*, smsMessageId*/); } } /*else if (content.getSyncMessage().HasValue) TODO: SYNC enable * { * TextSecureSyncMessage syncMessage = content.getSyncMessage().ForceGetValue(); * * if (syncMessage.getSent().HasValue) handleSynchronizeSentMessage(masterSecret, syncMessage.getSent().ForceGetValue(), smsMessageId); * else if (syncMessage.getRequest().HasValue) handleSynchronizeRequestMessage(masterSecret, syncMessage.getRequest().ForceGetValue()); * }*/ if (envelope.isPreKeyWhisperMessage()) { App.Current.Worker.AddTaskActivities(new RefreshPreKeysTask()); //ApplicationContext.getInstance(context).getJobManager().add(new RefreshPreKeysJob(context)); } } catch (InvalidVersionException e) { //Log.w(TAG, e); //handleInvalidVersionMessage(masterSecret, envelope, smsMessageId); } /* catch (InvalidMessageException | InvalidKeyIdException | InvalidKeyException | MmsException e) { * Log.w(TAG, e); * handleCorruptMessage(masterSecret, envelope, smsMessageId); * } catch (NoSessionException e) * { * Log.w(TAG, e); * handleNoSessionMessage(masterSecret, envelope, smsMessageId); * } * catch (LegacyMessageException e) * { * Log.w(TAG, e); * handleLegacyMessage(masterSecret, envelope, smsMessageId); * } * catch (DuplicateMessageException e) * { * Log.w(TAG, e); * handleDuplicateMessage(masterSecret, envelope, smsMessageId); * } * catch (UntrustedIdentityException e) * { * Log.w(TAG, e); * handleUntrustedIdentityMessage(masterSecret, envelope, smsMessageId); * }*/ }
private void handleMessage(SignalServiceEnvelope envelope, May <long> smsMessageId) { try { SignalProtocolStore axolotlStore = new TextSecureAxolotlStore(); SignalServiceAddress localAddress = new SignalServiceAddress(TextSecurePreferences.getLocalNumber()); SignalServiceCipher cipher = new SignalServiceCipher(localAddress, axolotlStore); SignalServiceContent content = cipher.decrypt(envelope); if (content.getDataMessage().HasValue) { SignalServiceDataMessage message = content.getDataMessage().ForceGetValue(); if (message.isEndSession()) { handleEndSessionMessage(envelope, message, smsMessageId); } else if (message.isGroupUpdate()) { handleGroupMessage(envelope, message, smsMessageId); } else if (message.getAttachments().HasValue) { handleMediaMessage(envelope, message, smsMessageId); } else { handleTextMessage(envelope, message, smsMessageId); } } /*else if (content.getSyncMessage().HasValue) TODO: SYNC enable * { * TextSecureSyncMessage syncMessage = content.getSyncMessage().ForceGetValue(); * * if (syncMessage.getSent().HasValue) handleSynchronizeSentMessage(masterSecret, syncMessage.getSent().ForceGetValue(), smsMessageId); * else if (syncMessage.getRequest().HasValue) handleSynchronizeRequestMessage(masterSecret, syncMessage.getRequest().ForceGetValue()); * }*/ if (envelope.isPreKeySignalMessage()) { App.Current.Worker.AddTaskActivities(new RefreshPreKeysTask()); //ApplicationContext.getInstance(context).getJobManager().add(new RefreshPreKeysJob(context)); } } catch (InvalidVersionException e) { Log.Warn(e); handleInvalidVersionMessage(envelope, smsMessageId); } catch (InvalidMessageException e) { Log.Warn(e); handleCorruptMessage(envelope, smsMessageId); } catch (InvalidKeyIdException e) { Log.Warn(e); handleCorruptMessage(envelope, smsMessageId); } catch (InvalidKeyException e) { Log.Warn(e); handleCorruptMessage(envelope, smsMessageId); } catch (NoSessionException e) { Log.Warn(e); handleNoSessionMessage(envelope, smsMessageId); } catch (LegacyMessageException e) { Log.Warn(e); handleLegacyMessage(envelope, smsMessageId); } catch (DuplicateMessageException e) { Log.Warn(e); handleDuplicateMessage(envelope, smsMessageId); } catch (libsignal.exceptions.UntrustedIdentityException e) { Log.Warn(e); handleUntrustedIdentityMessage(envelope, smsMessageId); } catch (Exception e) { Log.Warn($"Unexpected Exception"); } }