Re-enable internal sharing to SMS users.

fork-5.53.8
Alex Hart 2021-04-26 15:45:25 -03:00
rodzic f89daefd43
commit 56f7564ce4
3 zmienionych plików z 24 dodań i 10 usunięć

Wyświetl plik

@ -100,7 +100,8 @@ public class ShareActivity extends PassphraseRequiredActivity
private ShareSelectionAdapter adapter;
private boolean disallowMultiShare;
private ShareViewModel viewModel;
private ShareIntents.Args args;
private ShareViewModel viewModel;
@Override
protected void onPreCreate() {
@ -112,6 +113,7 @@ public class ShareActivity extends PassphraseRequiredActivity
protected void onCreate(Bundle icicle, boolean ready) {
setContentView(R.layout.share_activity);
initializeArgs();
initializeViewModel();
initializeMedia();
initializeIntent();
@ -211,7 +213,7 @@ public class ShareActivity extends PassphraseRequiredActivity
if (!getIntent().hasExtra(ContactSelectionListFragment.DISPLAY_MODE)) {
int mode = DisplayMode.FLAG_PUSH | DisplayMode.FLAG_ACTIVE_GROUPS | DisplayMode.FLAG_SELF | DisplayMode.FLAG_HIDE_NEW;
if (TextSecurePreferences.isSmsEnabled(this) && viewModel.isExternalShare()) {
if (TextSecurePreferences.isSmsEnabled(this)) {
mode |= DisplayMode.FLAG_SMS;
}
@ -289,7 +291,7 @@ public class ShareActivity extends PassphraseRequiredActivity
return;
}
if (TextSecurePreferences.isSmsEnabled(this) && viewModel.isExternalShare() && (displayMode & DisplayMode.FLAG_SMS) == 0) {
if (TextSecurePreferences.isSmsEnabled(this) && (displayMode & DisplayMode.FLAG_SMS) == 0) {
getIntent().putExtra(ContactSelectionListFragment.DISPLAY_MODE, displayMode | DisplayMode.FLAG_SMS);
contactsFragment.setQueryFilter(null);
}
@ -310,9 +312,15 @@ public class ShareActivity extends PassphraseRequiredActivity
disallowMultiShare = true;
break;
}
validateAvailableRecipients();
});
}
private void initializeArgs() {
this.args = ShareIntents.Args.from(getIntent());
}
private void initializeViewModel() {
this.viewModel = ViewModelProviders.of(this, new ShareViewModel.Factory()).get(ShareViewModel.class);
}
@ -374,8 +382,6 @@ public class ShareActivity extends PassphraseRequiredActivity
contactsFragment.getView().setVisibility(View.GONE);
}
onSingleDestinationChosen(threadId, recipientId);
} else if (viewModel.isExternalShare()) {
validateAvailableRecipients();
}
}
@ -430,7 +436,9 @@ public class ShareActivity extends PassphraseRequiredActivity
if (mode == -1) return;
mode = data.isMmsOrSmsSupported() ? mode | DisplayMode.FLAG_SMS : mode & ~DisplayMode.FLAG_SMS;
boolean isMmsOrSmsSupported = data != null ? data.isMmsOrSmsSupported() : TextSecurePreferences.isSmsEnabled(this);
mode = isMmsOrSmsSupported ? mode | DisplayMode.FLAG_SMS : mode & ~DisplayMode.FLAG_SMS;
getIntent().putExtra(ContactSelectionListFragment.DISPLAY_MODE, mode);
contactsFragment.reset();
@ -452,14 +460,14 @@ public class ShareActivity extends PassphraseRequiredActivity
progressWheel.set(null);
}
if (!data.isPresent()) {
if (!data.isPresent() && args.isEmpty()) {
Log.w(TAG, "No data to share!");
Toast.makeText(this, R.string.ShareActivity_multiple_attachments_are_only_supported, Toast.LENGTH_LONG).show();
finish();
return;
}
onResolved.accept(data.get());
onResolved.accept(data.orNull());
});
}
@ -482,7 +490,6 @@ public class ShareActivity extends PassphraseRequiredActivity
}
private void openConversation(long threadId, @NonNull RecipientId recipientId, @Nullable ShareData shareData) {
ShareIntents.Args args = ShareIntents.Args.from(getIntent());
ConversationIntents.Builder builder = ConversationIntents.createBuilder(this, recipientId, threadId)
.withMedia(args.getExtraMedia())
.withDraftText(args.getExtraText() != null ? args.getExtraText().toString() : null)
@ -510,7 +517,6 @@ public class ShareActivity extends PassphraseRequiredActivity
}
private void openInterstitial(@NonNull Set<ShareContactAndThread> shareContactAndThreads, @Nullable ShareData shareData) {
ShareIntents.Args args = ShareIntents.Args.from(getIntent());
MultiShareArgs.Builder builder = new MultiShareArgs.Builder(shareContactAndThreads)
.withMedia(args.getExtraMedia())
.withDraftText(args.getExtraText() != null ? args.getExtraText().toString() : null)

Wyświetl plik

@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.sharing;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@ -63,6 +64,12 @@ public final class ShareIntents {
public boolean isBorderless() {
return isBorderless;
}
public boolean isEmpty() {
return extraSticker == null &&
(extraMedia == null || extraMedia.isEmpty()) &&
TextUtils.isEmpty(extraText);
}
}
public static final class Builder {

Wyświetl plik

@ -100,6 +100,7 @@ public class ShareViewModel extends ViewModel {
}
void onNonExternalShare() {
shareData.setValue(Optional.absent());
externalShare = false;
}