diff --git a/res/drawable-hdpi/ic_send_sms_white_24dp.png b/res/drawable-hdpi/ic_send_sms_white_24dp.png index 129a0235c..6e3e2e69d 100644 Binary files a/res/drawable-hdpi/ic_send_sms_white_24dp.png and b/res/drawable-hdpi/ic_send_sms_white_24dp.png differ diff --git a/res/drawable-mdpi/ic_send_sms_white_24dp.png b/res/drawable-mdpi/ic_send_sms_white_24dp.png index 74ac8833e..834c579c0 100644 Binary files a/res/drawable-mdpi/ic_send_sms_white_24dp.png and b/res/drawable-mdpi/ic_send_sms_white_24dp.png differ diff --git a/res/drawable-xhdpi/ic_send_sms_white_24dp.png b/res/drawable-xhdpi/ic_send_sms_white_24dp.png index c8680adb2..68dafe27a 100644 Binary files a/res/drawable-xhdpi/ic_send_sms_white_24dp.png and b/res/drawable-xhdpi/ic_send_sms_white_24dp.png differ diff --git a/res/drawable-xxhdpi/ic_send_sms_white_24dp.png b/res/drawable-xxhdpi/ic_send_sms_white_24dp.png index c0d1416c9..6ad518c70 100644 Binary files a/res/drawable-xxhdpi/ic_send_sms_white_24dp.png and b/res/drawable-xxhdpi/ic_send_sms_white_24dp.png differ diff --git a/res/drawable-xxxhdpi/ic_send_sms_white_24dp.png b/res/drawable-xxxhdpi/ic_send_sms_white_24dp.png index 0976f95f7..7346365c4 100644 Binary files a/res/drawable-xxxhdpi/ic_send_sms_white_24dp.png and b/res/drawable-xxxhdpi/ic_send_sms_white_24dp.png differ diff --git a/res/layout/conversation_input_panel.xml b/res/layout/conversation_input_panel.xml index 041b19e1f..43df1f5dd 100644 --- a/res/layout/conversation_input_panel.xml +++ b/res/layout/conversation_input_panel.xml @@ -211,7 +211,7 @@ android:layout_height="match_parent" android:layout_gravity="center" android:background="@drawable/circle_touch_highlight_background" - android:src="@drawable/ic_add_white_24dp" + android:src="@drawable/ic_attach_white_24dp" android:contentDescription="@string/ConversationActivity_add_attachment" android:nextFocusLeft="@+id/embedded_text_editor" /> diff --git a/res/values/strings.xml b/res/values/strings.xml index 44e8df630..5b785e194 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -757,6 +757,7 @@ Show Contacts + Message Delta Chat message Unsecured SMS Unsecured MMS diff --git a/src/org/thoughtcrime/securesms/ConversationActivity.java b/src/org/thoughtcrime/securesms/ConversationActivity.java index fa5f81ff1..8d290baa0 100644 --- a/src/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationActivity.java @@ -873,15 +873,8 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity this.isDefaultSms = isDefaultSms; this.isSecurityInitialized = true; - boolean isMediaMessage = recipient.isMmsGroupRecipient() || attachmentManager.isAttachmentPresent(); - - sendButton.resetAvailableTransports(isMediaMessage); - - if (!isSecureText && !isPushGroupConversation()) sendButton.disableTransport(Type.TEXTSECURE); - if (recipient.isPushGroupRecipient()) sendButton.disableTransport(Type.SMS); - - if (isSecureText || isPushGroupConversation()) sendButton.setDefaultTransport(Type.TEXTSECURE); - else sendButton.setDefaultTransport(Type.SMS); + sendButton.resetAvailableTransports(); + sendButton.setDefaultTransport(Type.TEXTSECURE); calculateCharactersRemaining(); supportInvalidateOptionsMenu(); @@ -1003,7 +996,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity private void onSecurityUpdated() { Log.w(TAG, "onSecurityUpdated()"); updateReminders(); - updateDefaultSubscriptionId(recipient.getDefaultSubscriptionId()); } protected void updateReminders() { @@ -1014,11 +1006,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } } - private void updateDefaultSubscriptionId(Optional defaultSubscriptionId) { - Log.w(TAG, "updateDefaultSubscriptionId(" + defaultSubscriptionId.orNull() + ")"); - sendButton.setDefaultSubscriptionId(defaultSubscriptionId); - } - private void initializeViews() { ActionBar supportActionBar = getSupportActionBar(); if (supportActionBar == null) throw new AssertionError(); @@ -1123,7 +1110,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity setBlockedUserState(recipient, isSecureText, isDefaultSms); setGroupShareProfileReminder(recipient); updateReminders(); - updateDefaultSubscriptionId(recipient.getDefaultSubscriptionId()); initializeSecurity(isSecureText, isDefaultSms); invalidateOptionsMenu(); }); diff --git a/src/org/thoughtcrime/securesms/TransportOptions.java b/src/org/thoughtcrime/securesms/TransportOptions.java index 26eb16efc..e2ae76282 100644 --- a/src/org/thoughtcrime/securesms/TransportOptions.java +++ b/src/org/thoughtcrime/securesms/TransportOptions.java @@ -1,17 +1,10 @@ package org.thoughtcrime.securesms; -import android.Manifest; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import org.thoughtcrime.securesms.util.CharacterCalculator; -import org.thoughtcrime.securesms.util.MmsCharacterCalculator; -import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.util.PushCharacterCalculator; -import org.thoughtcrime.securesms.util.SmsCharacterCalculator; -import org.thoughtcrime.securesms.util.dualsim.SubscriptionInfoCompat; -import org.thoughtcrime.securesms.util.dualsim.SubscriptionManagerCompat; import org.whispersystems.libsignal.util.guava.Optional; import java.util.LinkedList; @@ -27,18 +20,16 @@ public class TransportOptions { private final Context context; private final List enabledTransports; - private Type defaultTransportType = Type.SMS; - private Optional defaultSubscriptionId = Optional.absent(); + private Type defaultTransportType = Type.TEXTSECURE; private Optional selectedOption = Optional.absent(); - public TransportOptions(Context context, boolean media) { + public TransportOptions(Context context) { this.context = context; - this.enabledTransports = initializeAvailableTransports(media); - this.defaultSubscriptionId = new SubscriptionManagerCompat(context).getPreferredSubscriptionId(); + this.enabledTransports = initializeAvailableTransports(); } - public void reset(boolean media) { - List transportOptions = initializeAvailableTransports(media); + public void reset() { + List transportOptions = initializeAvailableTransports(); this.enabledTransports.clear(); this.enabledTransports.addAll(transportOptions); @@ -46,8 +37,7 @@ public class TransportOptions { if (selectedOption.isPresent() && !isEnabled(selectedOption.get())) { setSelectedTransport(null); } else { - this.defaultTransportType = Type.SMS; - this.defaultSubscriptionId = Optional.absent(); + this.defaultTransportType = Type.TEXTSECURE; notifyTransportChangeListeners(); } @@ -61,14 +51,6 @@ public class TransportOptions { } } - public void setDefaultSubscriptionId(Optional subscriptionId) { - this.defaultSubscriptionId = subscriptionId; - - if (!selectedOption.isPresent()) { - notifyTransportChangeListeners(); - } - } - public void setSelectedTransport(@Nullable TransportOption transportOption) { this.selectedOption = Optional.fromNullable(transportOption); notifyTransportChangeListeners(); @@ -81,16 +63,6 @@ public class TransportOptions { public @NonNull TransportOption getSelectedTransport() { if (selectedOption.isPresent()) return selectedOption.get(); - if (defaultSubscriptionId.isPresent()) { - for (TransportOption transportOption : enabledTransports) { - if (transportOption.getType() == defaultTransportType && - (int)defaultSubscriptionId.get() == transportOption.getSimSubscriptionId().or(-1)) - { - return transportOption; - } - } - } - for (TransportOption transportOption : enabledTransports) { if (transportOption.getType() == defaultTransportType) { return transportOption; @@ -120,59 +92,18 @@ public class TransportOptions { this.listeners.add(listener); } - private List initializeAvailableTransports(boolean isMediaMessage) { + private List initializeAvailableTransports() { List results = new LinkedList<>(); - if (isMediaMessage) { - results.addAll(getTransportOptionsForSimCards(context.getString(R.string.ConversationActivity_transport_insecure_mms), - context.getString(R.string.conversation_activity__type_message_mms_insecure), - new MmsCharacterCalculator())); - } else { - results.addAll(getTransportOptionsForSimCards(context.getString(R.string.ConversationActivity_transport_insecure_sms), - context.getString(R.string.conversation_activity__type_message_sms_insecure), - new SmsCharacterCalculator())); - } - - results.add(new TransportOption(Type.TEXTSECURE, R.drawable.ic_send_push_white_24dp, + results.add(new TransportOption(Type.TEXTSECURE, R.drawable.ic_send_sms_white_24dp, context.getResources().getColor(R.color.textsecure_primary), context.getString(R.string.ConversationActivity_transport_signal), - context.getString(R.string.conversation_activity__type_message_push), + context.getString(R.string.conversation_activity__type_message), new PushCharacterCalculator())); return results; } - private @NonNull List getTransportOptionsForSimCards(@NonNull String text, - @NonNull String composeHint, - @NonNull CharacterCalculator characterCalculator) - { - List results = new LinkedList<>(); - SubscriptionManagerCompat subscriptionManager = new SubscriptionManagerCompat(context); - List subscriptions; - - if (Permissions.hasAll(context, Manifest.permission.READ_PHONE_STATE)) { - subscriptions = subscriptionManager.getActiveSubscriptionInfoList(); - } else { - subscriptions = new LinkedList<>(); - } - - 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; - } - private void notifyTransportChangeListeners() { for (OnTransportChangedListener listener : listeners) { listener.onChange(getSelectedTransport(), selectedOption.isPresent()); diff --git a/src/org/thoughtcrime/securesms/components/SendButton.java b/src/org/thoughtcrime/securesms/components/SendButton.java index 9ef421d2b..8d4bffbe4 100644 --- a/src/org/thoughtcrime/securesms/components/SendButton.java +++ b/src/org/thoughtcrime/securesms/components/SendButton.java @@ -25,26 +25,26 @@ public class SendButton extends ImageButton @SuppressWarnings("unused") public SendButton(Context context) { super(context); - this.transportOptions = initializeTransportOptions(false); + this.transportOptions = initializeTransportOptions(); ViewUtil.mirrorIfRtl(this, getContext()); } @SuppressWarnings("unused") public SendButton(Context context, AttributeSet attrs) { super(context, attrs); - this.transportOptions = initializeTransportOptions(false); + this.transportOptions = initializeTransportOptions(); ViewUtil.mirrorIfRtl(this, getContext()); } @SuppressWarnings("unused") public SendButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); - this.transportOptions = initializeTransportOptions(false); + this.transportOptions = initializeTransportOptions(); ViewUtil.mirrorIfRtl(this, getContext()); } - private TransportOptions initializeTransportOptions(boolean media) { - TransportOptions transportOptions = new TransportOptions(getContext(), media); + private TransportOptions initializeTransportOptions() { + TransportOptions transportOptions = new TransportOptions(getContext()); transportOptions.addOnTransportChangedListener(this); setOnLongClickListener(this); @@ -71,8 +71,8 @@ public class SendButton extends ImageButton return transportOptions.getSelectedTransport(); } - public void resetAvailableTransports(boolean isMediaMessage) { - transportOptions.reset(isMediaMessage); + public void resetAvailableTransports() { + transportOptions.reset(); } public void disableTransport(TransportOption.Type type) { @@ -83,10 +83,6 @@ public class SendButton extends ImageButton transportOptions.setDefaultTransport(type); } - public void setDefaultSubscriptionId(Optional subscriptionId) { - transportOptions.setDefaultSubscriptionId(subscriptionId); - } - @Override public void onSelected(TransportOption option) { transportOptions.setSelectedTransport(option);