kopia lustrzana https://github.com/ryukoposting/Signal-Android
Re-enable internal sharing to SMS users.
rodzic
f89daefd43
commit
56f7564ce4
|
@ -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)
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -100,6 +100,7 @@ public class ShareViewModel extends ViewModel {
|
|||
}
|
||||
|
||||
void onNonExternalShare() {
|
||||
shareData.setValue(Optional.absent());
|
||||
externalShare = false;
|
||||
}
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue