Skip to content

Commit

Permalink
add more context to dialog title shown after sendToChat()
Browse files Browse the repository at this point in the history
  • Loading branch information
adbenitez committed Sep 25, 2023
1 parent 6bda2b2 commit 1603035
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 3 deletions.
12 changes: 11 additions & 1 deletion src/org/thoughtcrime/securesms/ConversationListActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import static org.thoughtcrime.securesms.map.MapDataManager.ALL_CHATS_GLOBAL_MAP;
import static org.thoughtcrime.securesms.util.RelayUtil.acquireRelayMessageContent;
import static org.thoughtcrime.securesms.util.RelayUtil.getDirectSharingChatId;
import static org.thoughtcrime.securesms.util.RelayUtil.getSharedTitle;
import static org.thoughtcrime.securesms.util.RelayUtil.isDirectSharing;
import static org.thoughtcrime.securesms.util.RelayUtil.isForwarding;
import static org.thoughtcrime.securesms.util.RelayUtil.isRelayingMessageContent;
Expand Down Expand Up @@ -215,7 +216,16 @@ private void refresh() {

public void refreshTitle() {
if (isRelayingMessageContent(this)) {
title.setText(isForwarding(this) ? R.string.forward_to : R.string.chat_share_with_title);
if (isForwarding(this)) {
title.setText(R.string.forward_to);
} else {
String titleStr = getSharedTitle(this);
if (titleStr != null) { // sharing from sendToChat
title.setText(titleStr);
} else { // normal sharing
title.setText(R.string.chat_share_with_title);
}
}
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} else {
title.setText(DcHelper.getConnectivitySummary(this, R.string.app_name));
Expand Down
8 changes: 8 additions & 0 deletions src/org/thoughtcrime/securesms/ShareActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
package org.thoughtcrime.securesms;

import static org.thoughtcrime.securesms.util.RelayUtil.setSharedText;
import static org.thoughtcrime.securesms.util.RelayUtil.setSharedTitle;

import android.Manifest;
import android.content.Intent;
Expand Down Expand Up @@ -57,6 +58,7 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity implement
private static final String TAG = ShareActivity.class.getSimpleName();

public static final String EXTRA_CHAT_ID = "chat_id";
public static final String EXTRA_TITLE = "extra_title";

private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme();
private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
Expand Down Expand Up @@ -274,6 +276,12 @@ private void handleResolvedMedia(Intent intent) {

private Intent getBaseShareIntent(final @NonNull Class<?> target) {
final Intent intent = new Intent(this, target);

String title = getIntent().getStringExtra(EXTRA_TITLE);
if (title != null) {
setSharedTitle(intent, title);
}

String text = getIntent().getStringExtra(Intent.EXTRA_TEXT);
if (text==null) {
CharSequence cs = getIntent().getCharSequenceExtra(Intent.EXTRA_TEXT);
Expand Down
2 changes: 1 addition & 1 deletion src/org/thoughtcrime/securesms/WebxdcActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ public String sendToChat(String message) {
return "provided file is invalid, you need to set both name and base64 content";
}

DcHelper.share(WebxdcActivity.this, data, "application/octet-stream", name, text);
DcHelper.sendToChat(WebxdcActivity.this, data, "application/octet-stream", name, text);
return null;
} catch (Exception e) {
e.printStackTrace();
Expand Down
6 changes: 5 additions & 1 deletion src/org/thoughtcrime/securesms/connect/DcHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -313,18 +313,22 @@ public static void openForViewOrShare(Context activity, int msg_id, String cmd)
}
}

public static void share(Context activity, byte[] data, String mimeType, String fileName, String text) {
public static void sendToChat(Context activity, byte[] data, String mimeType, String fileName, String text) {
Intent intent = new Intent(activity, ShareActivity.class);
intent.setAction(Intent.ACTION_SEND);

if (data != null) {
Uri uri = PersistentBlobProvider.getInstance().create(activity, data, mimeType, fileName);
intent.setType(mimeType);
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.putExtra(ShareActivity.EXTRA_TITLE, activity.getString(R.string.send_file_to, fileName));
}

if (text != null) {
intent.putExtra(Intent.EXTRA_TEXT, text);
if (data == null) {
intent.putExtra(ShareActivity.EXTRA_TITLE, activity.getString(R.string.send_message_to));
}
}

activity.startActivity(intent);
Expand Down
13 changes: 13 additions & 0 deletions src/org/thoughtcrime/securesms/util/RelayUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public class RelayUtil {
private static final String FORWARDED_MESSAGE_IDS = "forwarded_message_ids";
private static final String SHARED_URIS = "shared_uris";
private static final String IS_SHARING = "is_sharing";
private static final String SHARING_TITLE = "sharing_title";
private static final String DIRECT_SHARING_CHAT_ID = "direct_sharing_chat_id";

public static boolean isRelayingMessageContent(Activity activity) {
Expand Down Expand Up @@ -79,6 +80,14 @@ public static String getSharedText(Activity activity) {
}
}

public static String getSharedTitle(Activity activity) {
try {
return activity.getIntent().getStringExtra(SHARING_TITLE);
} catch (NullPointerException npe) {
return null;
}
}


public static void resetRelayingMessageContent(Activity activity) {
try {
Expand Down Expand Up @@ -123,6 +132,10 @@ public static void setSharedText(Intent composeIntent, String text) {
composeIntent.putExtra(IS_SHARING, true);
}

public static void setSharedTitle(Intent composeIntent, String text) {
composeIntent.putExtra(SHARING_TITLE, text);
}

public static void setDirectSharing(Intent composeIntent, int chatId) {
composeIntent.putExtra(DIRECT_SHARING_CHAT_ID, chatId);
}
Expand Down

0 comments on commit 1603035

Please sign in to comment.