mirror of
https://github.com/oxen-io/session-android.git
synced 2023-12-14 02:53:01 +01:00
79 lines
2.9 KiB
Java
79 lines
2.9 KiB
Java
package org.thoughtcrime.securesms.util;
|
|
|
|
import android.Manifest;
|
|
import android.app.Activity;
|
|
import android.content.ActivityNotFoundException;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.net.Uri;
|
|
import android.os.AsyncTask;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.core.app.TaskStackBuilder;
|
|
import android.text.TextUtils;
|
|
import android.widget.Toast;
|
|
|
|
import org.thoughtcrime.securesms.conversation.ConversationActivity;
|
|
import network.loki.messenger.R;
|
|
|
|
import org.session.libsession.messaging.threads.Address;
|
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
|
import org.thoughtcrime.securesms.permissions.Permissions;
|
|
import org.session.libsession.messaging.threads.recipients.Recipient;
|
|
|
|
public class CommunicationActions {
|
|
|
|
public static void startConversation(@NonNull Context context, @NonNull Recipient recipient, @Nullable String text) {
|
|
startConversation(context, recipient, text, null);
|
|
}
|
|
|
|
public static void startConversation(@NonNull Context context,
|
|
@NonNull Recipient recipient,
|
|
@Nullable String text,
|
|
@Nullable TaskStackBuilder backStack)
|
|
{
|
|
new AsyncTask<Void, Void, Long>() {
|
|
@Override
|
|
protected Long doInBackground(Void... voids) {
|
|
return DatabaseFactory.getThreadDatabase(context).getOrCreateThreadIdFor(recipient);
|
|
}
|
|
|
|
@Override
|
|
protected void onPostExecute(Long threadId) {
|
|
Intent intent = new Intent(context, ConversationActivity.class);
|
|
intent.putExtra(ConversationActivity.ADDRESS_EXTRA, recipient.getAddress());
|
|
intent.putExtra(ConversationActivity.THREAD_ID_EXTRA, threadId);
|
|
intent.putExtra(ConversationActivity.TIMING_EXTRA, System.currentTimeMillis());
|
|
|
|
if (!TextUtils.isEmpty(text)) {
|
|
intent.putExtra(ConversationActivity.TEXT_EXTRA, text);
|
|
}
|
|
|
|
if (backStack != null) {
|
|
backStack.addNextIntent(intent);
|
|
backStack.startActivities();
|
|
} else {
|
|
context.startActivity(intent);
|
|
}
|
|
}
|
|
}.execute();
|
|
}
|
|
|
|
public static void composeSmsThroughDefaultApp(@NonNull Context context, @NonNull Address address, @Nullable String text) {
|
|
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + address.serialize()));
|
|
if (text != null) {
|
|
intent.putExtra("sms_body", text);
|
|
}
|
|
context.startActivity(intent);
|
|
}
|
|
|
|
public static void openBrowserLink(@NonNull Context context, @NonNull String link) {
|
|
try {
|
|
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(link));
|
|
context.startActivity(intent);
|
|
} catch (ActivityNotFoundException e) {
|
|
Toast.makeText(context, R.string.CommunicationActions_no_browser_found, Toast.LENGTH_SHORT).show();
|
|
}
|
|
}
|
|
}
|