mirror of
https://github.com/deltachat/deltachat-android.git
synced 2025-10-03 17:59:39 +02:00
share to single contacts (#900)
This commit is contained in:
parent
89866ec121
commit
6af9d59829
6 changed files with 77 additions and 169 deletions
|
@ -92,10 +92,9 @@
|
||||||
<data android:mimeType="text/*"/>
|
<data android:mimeType="text/*"/>
|
||||||
<data android:mimeType="*/*"/>
|
<data android:mimeType="*/*"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.service.chooser.chooser_target_service"
|
android:name="android.service.chooser.chooser_target_service"
|
||||||
android:value=".service.DirectShareService" />
|
android:value="org.thoughtcrime.securesms.service.DirectShareService" />
|
||||||
|
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,6 @@ import android.view.View.OnFocusChangeListener;
|
||||||
import android.view.View.OnKeyListener;
|
import android.view.View.OnKeyListener;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
import android.webkit.MimeTypeMap;
|
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
|
@ -45,6 +45,8 @@ import static org.thoughtcrime.securesms.ConversationActivity.STARTING_POSITION_
|
||||||
import static org.thoughtcrime.securesms.map.MapDataManager.ALL_CHATS_GLOBAL_MAP;
|
import static org.thoughtcrime.securesms.map.MapDataManager.ALL_CHATS_GLOBAL_MAP;
|
||||||
import static org.thoughtcrime.securesms.util.RelayUtil.REQUEST_RELAY;
|
import static org.thoughtcrime.securesms.util.RelayUtil.REQUEST_RELAY;
|
||||||
import static org.thoughtcrime.securesms.util.RelayUtil.acquireRelayMessageContent;
|
import static org.thoughtcrime.securesms.util.RelayUtil.acquireRelayMessageContent;
|
||||||
|
import static org.thoughtcrime.securesms.util.RelayUtil.getDirectSharingChatId;
|
||||||
|
import static org.thoughtcrime.securesms.util.RelayUtil.isDirectSharing;
|
||||||
import static org.thoughtcrime.securesms.util.RelayUtil.isForwarding;
|
import static org.thoughtcrime.securesms.util.RelayUtil.isForwarding;
|
||||||
import static org.thoughtcrime.securesms.util.RelayUtil.isRelayingMessageContent;
|
import static org.thoughtcrime.securesms.util.RelayUtil.isRelayingMessageContent;
|
||||||
import static org.thoughtcrime.securesms.util.RelayUtil.resetRelayingMessageContent;
|
import static org.thoughtcrime.securesms.util.RelayUtil.resetRelayingMessageContent;
|
||||||
|
@ -90,6 +92,9 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
|
||||||
if (isRelayingMessageContent(this)) {
|
if (isRelayingMessageContent(this)) {
|
||||||
title.setText(isForwarding(this) ? R.string.forward_to : R.string.chat_share_with_title);
|
title.setText(isForwarding(this) ? R.string.forward_to : R.string.chat_share_with_title);
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
|
if (isDirectSharing(this)) {
|
||||||
|
openConversation(getDirectSharingChatId(this), -1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,26 +18,19 @@
|
||||||
package org.thoughtcrime.securesms;
|
package org.thoughtcrime.securesms;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.AsyncTask;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Parcel;
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v7.app.ActionBar;
|
import android.support.v7.app.ActionBar;
|
||||||
import android.support.v7.app.AlertDialog;
|
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.b44t.messenger.DcMsg;
|
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.connect.ApplicationDcContext;
|
import org.thoughtcrime.securesms.connect.ApplicationDcContext;
|
||||||
import org.thoughtcrime.securesms.connect.DcHelper;
|
import org.thoughtcrime.securesms.connect.DcHelper;
|
||||||
import org.thoughtcrime.securesms.database.Address;
|
|
||||||
import org.thoughtcrime.securesms.mms.PartAuthority;
|
import org.thoughtcrime.securesms.mms.PartAuthority;
|
||||||
import org.thoughtcrime.securesms.permissions.Permissions;
|
import org.thoughtcrime.securesms.permissions.Permissions;
|
||||||
import org.thoughtcrime.securesms.util.DynamicLanguage;
|
import org.thoughtcrime.securesms.util.DynamicLanguage;
|
||||||
|
@ -45,11 +38,7 @@ import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
|
||||||
import org.thoughtcrime.securesms.util.DynamicTheme;
|
import org.thoughtcrime.securesms.util.DynamicTheme;
|
||||||
import org.thoughtcrime.securesms.util.MediaUtil;
|
import org.thoughtcrime.securesms.util.MediaUtil;
|
||||||
import org.thoughtcrime.securesms.util.RelayUtil;
|
import org.thoughtcrime.securesms.util.RelayUtil;
|
||||||
import org.thoughtcrime.securesms.util.Util;
|
|
||||||
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -65,8 +54,6 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity implement
|
||||||
private static final String TAG = ShareActivity.class.getSimpleName();
|
private static final String TAG = ShareActivity.class.getSimpleName();
|
||||||
|
|
||||||
public static final String EXTRA_CHAT_ID = "chat_id";
|
public static final String EXTRA_CHAT_ID = "chat_id";
|
||||||
public static final String EXTRA_ADDRESS_MARSHALLED = "address_marshalled";
|
|
||||||
public static final String EXTRA_DISTRIBUTION_TYPE = "distribution_type";
|
|
||||||
|
|
||||||
private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme();
|
private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme();
|
||||||
private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
|
private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
|
||||||
|
@ -214,104 +201,14 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity implement
|
||||||
|
|
||||||
private void handleResolvedMedia(Intent intent) {
|
private void handleResolvedMedia(Intent intent) {
|
||||||
int chatId = intent.getIntExtra(EXTRA_CHAT_ID, -1);
|
int chatId = intent.getIntExtra(EXTRA_CHAT_ID, -1);
|
||||||
int distributionType = intent.getIntExtra(EXTRA_DISTRIBUTION_TYPE, -1);
|
|
||||||
Address address = null;
|
|
||||||
|
|
||||||
if (intent.hasExtra(EXTRA_ADDRESS_MARSHALLED)) {
|
|
||||||
Parcel parcel = Parcel.obtain();
|
|
||||||
byte[] marshalled = intent.getByteArrayExtra(EXTRA_ADDRESS_MARSHALLED);
|
|
||||||
parcel.unmarshall(marshalled, 0, marshalled.length);
|
|
||||||
parcel.setDataPosition(0);
|
|
||||||
address = parcel.readParcelable(getClassLoader());
|
|
||||||
parcel.recycle();
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean hasResolvedDestination = chatId != -1 && address != null && distributionType != -1;
|
|
||||||
|
|
||||||
if (hasResolvedDestination) {
|
|
||||||
createConversation(chatId);
|
|
||||||
} else {
|
|
||||||
Intent composeIntent = getBaseShareIntent(ConversationListActivity.class);
|
Intent composeIntent = getBaseShareIntent(ConversationListActivity.class);
|
||||||
RelayUtil.setSharedUris(composeIntent, resolvedExtras);
|
RelayUtil.setSharedUris(composeIntent, resolvedExtras);
|
||||||
|
if (chatId != -1) {
|
||||||
|
RelayUtil.setDirectSharing(composeIntent, chatId);
|
||||||
|
}
|
||||||
startActivity(composeIntent);
|
startActivity(composeIntent);
|
||||||
finish();
|
finish();
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createConversation(int chatId) {
|
|
||||||
if (resolvedExtras.size() > 1) {
|
|
||||||
String message = String.format(getString(R.string.share_multiple_attachments), resolvedExtras.size());
|
|
||||||
new AlertDialog.Builder(this)
|
|
||||||
.setMessage(message)
|
|
||||||
.setCancelable(false)
|
|
||||||
.setNegativeButton(android.R.string.cancel, ((dialog, which) -> {
|
|
||||||
finish();
|
|
||||||
}))
|
|
||||||
.setPositiveButton(R.string.menu_send, (dialog, which) -> sendMultipleAttachmentsAndCreateConversation(chatId))
|
|
||||||
.show();
|
|
||||||
} else {
|
|
||||||
openConversation(chatId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendMultipleAttachmentsAndCreateConversation(int chatId) {
|
|
||||||
for(Uri uri : resolvedExtras) {
|
|
||||||
DcMsg message = createMessage(uri);
|
|
||||||
dcContext.sendMsg(chatId, message);
|
|
||||||
}
|
|
||||||
openConversation(chatId);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void openConversation(int chatId) {
|
|
||||||
final Intent intent = getBaseShareIntent(ConversationActivity.class);
|
|
||||||
intent.putExtra(ConversationActivity.CHAT_ID_EXTRA, chatId);
|
|
||||||
startActivity(intent);
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
|
|
||||||
private DcMsg createMessage(Uri uri) {
|
|
||||||
DcMsg message;
|
|
||||||
String mimeType = MediaUtil.getMimeType(this, uri);
|
|
||||||
if (MediaUtil.isImageType(mimeType)) {
|
|
||||||
message = new DcMsg(dcContext, DcMsg.DC_MSG_IMAGE);
|
|
||||||
}
|
|
||||||
else if (MediaUtil.isAudioType(mimeType)) {
|
|
||||||
message = new DcMsg(dcContext,DcMsg.DC_MSG_AUDIO);
|
|
||||||
}
|
|
||||||
else if (MediaUtil.isVideoType(mimeType)) {
|
|
||||||
message = new DcMsg(dcContext, DcMsg.DC_MSG_VIDEO);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
message = new DcMsg(dcContext, DcMsg.DC_MSG_FILE);
|
|
||||||
}
|
|
||||||
message.setFile(getRealPathFromUri(uri), mimeType);
|
|
||||||
return message;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getRealPathFromUri(Uri uri) {
|
|
||||||
try {
|
|
||||||
String filename = uri.getPathSegments().get(2); // Get real file name from Uri
|
|
||||||
String ext = "";
|
|
||||||
int i = filename.lastIndexOf(".");
|
|
||||||
if(i>=0) {
|
|
||||||
ext = filename.substring(i);
|
|
||||||
filename = filename.substring(0, i);
|
|
||||||
}
|
|
||||||
String path = dcContext.getBlobdirFile(filename, ext);
|
|
||||||
|
|
||||||
// copy content to this file
|
|
||||||
if(path!=null) {
|
|
||||||
InputStream inputStream = PartAuthority.getAttachmentStream(this, uri);
|
|
||||||
OutputStream outputStream = new FileOutputStream(path);
|
|
||||||
Util.copy(inputStream, outputStream);
|
|
||||||
}
|
|
||||||
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
catch(Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Intent getBaseShareIntent(final @NonNull Class<?> target) {
|
private Intent getBaseShareIntent(final @NonNull Class<?> target) {
|
||||||
|
|
|
@ -3,23 +3,27 @@ package org.thoughtcrime.securesms.service;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.database.Cursor;
|
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Parcel;
|
|
||||||
import android.service.chooser.ChooserTarget;
|
import android.service.chooser.ChooserTarget;
|
||||||
import android.service.chooser.ChooserTargetService;
|
import android.service.chooser.ChooserTargetService;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.RequiresApi;
|
import android.support.annotation.RequiresApi;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.b44t.messenger.DcChat;
|
||||||
|
import com.b44t.messenger.DcChatlist;
|
||||||
|
import com.b44t.messenger.DcContext;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ShareActivity;
|
import org.thoughtcrime.securesms.ShareActivity;
|
||||||
|
import org.thoughtcrime.securesms.connect.ApplicationDcContext;
|
||||||
|
import org.thoughtcrime.securesms.connect.DcHelper;
|
||||||
|
import org.thoughtcrime.securesms.mms.GlideApp;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
import org.thoughtcrime.securesms.util.BitmapUtil;
|
import org.thoughtcrime.securesms.util.BitmapUtil;
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
@ -33,58 +37,39 @@ public class DirectShareService extends ChooserTargetService {
|
||||||
public List<ChooserTarget> onGetChooserTargets(ComponentName targetActivityName,
|
public List<ChooserTarget> onGetChooserTargets(ComponentName targetActivityName,
|
||||||
IntentFilter matchedFilter)
|
IntentFilter matchedFilter)
|
||||||
{
|
{
|
||||||
// TODO: return the first 10 entries of the chat List here.
|
List<ChooserTarget> results = new LinkedList<>();
|
||||||
return Collections.EMPTY_LIST;
|
ComponentName componentName = new ComponentName(this, ShareActivity.class);
|
||||||
// List<ChooserTarget> results = new LinkedList<>();
|
ApplicationDcContext dcContext = DcHelper.getContext(this);
|
||||||
// ComponentName componentName = new ComponentName(this, ShareActivity.class);
|
|
||||||
// ThreadDatabase threadDatabase = DatabaseFactory.getThreadDatabase(this);
|
DcChatlist chatlist = dcContext.getChatlist(DcContext.DC_GCL_ADD_ALLDONE_HINT, null, 0);
|
||||||
// Cursor cursor = threadDatabase.getDirectShareList();
|
int max = 4;
|
||||||
//
|
if (chatlist.getCnt() < max) {
|
||||||
// try {
|
max = chatlist.getCnt();
|
||||||
// ThreadDatabase.Reader reader = threadDatabase.readerFor(cursor);
|
}
|
||||||
// ThreadRecord record;
|
for (int i = 0; i <= max; i++) {
|
||||||
//
|
DcChat chat = chatlist.getChat(i);
|
||||||
// while ((record = reader.getNext()) != null && results.size() < 10) {
|
|
||||||
// Recipient recipient = Recipient.from(this, record.getRecipient().getAddress(), false);
|
Bundle bundle = new Bundle();
|
||||||
// String name = recipient.toShortString();
|
bundle.putInt(ShareActivity.EXTRA_CHAT_ID, chat.getId());
|
||||||
//
|
bundle.setClassLoader(getClassLoader());
|
||||||
// Bitmap avatar;
|
Recipient recipient = DcHelper.getContext(this).getRecipient(chat);
|
||||||
//
|
Bitmap avatar;
|
||||||
// if (recipient.getContactPhoto(getApplicationContext()) != null) {
|
try {
|
||||||
// try {
|
avatar = GlideApp.with(this)
|
||||||
// avatar = GlideApp.with(this)
|
.asBitmap()
|
||||||
// .asBitmap()
|
.load(recipient.getContactPhoto(this).getUri(this))
|
||||||
// .load(recipient.getContactPhoto(getApplicationContext()))
|
.circleCrop()
|
||||||
// .circleCrop()
|
.submit(getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_width),
|
||||||
// .submit(getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_width),
|
getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_width))
|
||||||
// getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_width))
|
.get();
|
||||||
// .get();
|
} catch (InterruptedException | ExecutionException | NullPointerException e) {
|
||||||
// } catch (InterruptedException | ExecutionException e) {
|
Log.w(TAG, e);
|
||||||
// Log.w(TAG, e);
|
avatar = getFallbackDrawable(recipient);
|
||||||
// avatar = getFallbackDrawable(recipient);
|
}
|
||||||
// }
|
results.add(new ChooserTarget(chat.getName(), Icon.createWithBitmap(avatar), 1.0f, componentName, bundle));
|
||||||
// } else {
|
}
|
||||||
// avatar = getFallbackDrawable(recipient);
|
|
||||||
// }
|
return results;
|
||||||
//
|
|
||||||
// Parcel parcel = Parcel.obtain();
|
|
||||||
// parcel.writeParcelable(recipient.getAddress(), 0);
|
|
||||||
//
|
|
||||||
// Bundle bundle = new Bundle();
|
|
||||||
// bundle.putLong(ShareActivity.EXTRA_CHAT_ID, record.getChatId());
|
|
||||||
// bundle.putByteArray(ShareActivity.EXTRA_ADDRESS_MARSHALLED, parcel.marshall());
|
|
||||||
// bundle.putInt(ShareActivity.EXTRA_DISTRIBUTION_TYPE, record.getDistributionType());
|
|
||||||
// bundle.setClassLoader(getClassLoader());
|
|
||||||
//
|
|
||||||
// results.add(new ChooserTarget(name, Icon.createWithBitmap(avatar), 1.0f, componentName, bundle));
|
|
||||||
// parcel.recycle();
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return results;
|
|
||||||
// } finally {
|
|
||||||
// if (cursor != null) cursor.close();
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Bitmap getFallbackDrawable(@NonNull Recipient recipient) {
|
private Bitmap getFallbackDrawable(@NonNull Recipient recipient) {
|
||||||
|
|
|
@ -5,8 +5,6 @@ import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ConversationActivity;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import static org.thoughtcrime.securesms.ConversationActivity.TEXT_EXTRA;
|
import static org.thoughtcrime.securesms.ConversationActivity.TEXT_EXTRA;
|
||||||
|
@ -16,6 +14,7 @@ public class RelayUtil {
|
||||||
private static final String SHARED_URIS = "shared_uris";
|
private static final String SHARED_URIS = "shared_uris";
|
||||||
private static final String IS_SHARING = "is_sharing";
|
private static final String IS_SHARING = "is_sharing";
|
||||||
public static final int REQUEST_RELAY = 100;
|
public static final int REQUEST_RELAY = 100;
|
||||||
|
private static final String DIRECT_SHARING_CHAT_ID = "direct_sharing_chat_id";
|
||||||
|
|
||||||
public static boolean isRelayingMessageContent(Activity activity) {
|
public static boolean isRelayingMessageContent(Activity activity) {
|
||||||
return isForwarding(activity) || isSharing(activity);
|
return isForwarding(activity) || isSharing(activity);
|
||||||
|
@ -37,6 +36,22 @@ public class RelayUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isDirectSharing(Activity activity) {
|
||||||
|
try {
|
||||||
|
return activity.getIntent().getIntExtra(DIRECT_SHARING_CHAT_ID, -1) != -1;
|
||||||
|
} catch (NullPointerException npe) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getDirectSharingChatId(Activity activity) {
|
||||||
|
try {
|
||||||
|
return activity.getIntent().getIntExtra(DIRECT_SHARING_CHAT_ID, -1);
|
||||||
|
} catch (NullPointerException npe) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static int[] getForwardedMessageIDs(Activity activity) {
|
public static int[] getForwardedMessageIDs(Activity activity) {
|
||||||
try {
|
try {
|
||||||
return activity.getIntent().getIntArrayExtra(FORWARDED_MESSAGE_IDS);
|
return activity.getIntent().getIntArrayExtra(FORWARDED_MESSAGE_IDS);
|
||||||
|
@ -66,6 +81,7 @@ public class RelayUtil {
|
||||||
activity.getIntent().removeExtra(FORWARDED_MESSAGE_IDS);
|
activity.getIntent().removeExtra(FORWARDED_MESSAGE_IDS);
|
||||||
activity.getIntent().removeExtra(SHARED_URIS);
|
activity.getIntent().removeExtra(SHARED_URIS);
|
||||||
activity.getIntent().removeExtra(IS_SHARING);
|
activity.getIntent().removeExtra(IS_SHARING);
|
||||||
|
activity.getIntent().removeExtra(DIRECT_SHARING_CHAT_ID);
|
||||||
activity.getIntent().removeExtra(TEXT_EXTRA);
|
activity.getIntent().removeExtra(TEXT_EXTRA);
|
||||||
} catch (NullPointerException npe) {
|
} catch (NullPointerException npe) {
|
||||||
npe.printStackTrace();
|
npe.printStackTrace();
|
||||||
|
@ -77,6 +93,9 @@ public class RelayUtil {
|
||||||
newActivityIntent.putExtra(FORWARDED_MESSAGE_IDS, getForwardedMessageIDs(currentActivity));
|
newActivityIntent.putExtra(FORWARDED_MESSAGE_IDS, getForwardedMessageIDs(currentActivity));
|
||||||
} else if (isSharing(currentActivity)) {
|
} else if (isSharing(currentActivity)) {
|
||||||
newActivityIntent.putExtra(IS_SHARING, true);
|
newActivityIntent.putExtra(IS_SHARING, true);
|
||||||
|
if (isDirectSharing(currentActivity)) {
|
||||||
|
newActivityIntent.putExtra(DIRECT_SHARING_CHAT_ID, getDirectSharingChatId(currentActivity));
|
||||||
|
}
|
||||||
if (getSharedUris(currentActivity) != null) {
|
if (getSharedUris(currentActivity) != null) {
|
||||||
newActivityIntent.putParcelableArrayListExtra(SHARED_URIS, getSharedUris(currentActivity));
|
newActivityIntent.putParcelableArrayListExtra(SHARED_URIS, getSharedUris(currentActivity));
|
||||||
}
|
}
|
||||||
|
@ -100,5 +119,9 @@ public class RelayUtil {
|
||||||
composeIntent.putExtra(IS_SHARING, true);
|
composeIntent.putExtra(IS_SHARING, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setDirectSharing(Intent composeIntent, int chatId) {
|
||||||
|
composeIntent.putExtra(DIRECT_SHARING_CHAT_ID, chatId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue