mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-25 09:17:44 +00:00
c49b0348bd
Some launchers may create broken shortcuts, so we just want to have a smooth fallback in that scenario. Fixes #8109
52 lines
1.9 KiB
Java
52 lines
1.9 KiB
Java
package org.thoughtcrime.securesms;
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.support.annotation.NonNull;
|
|
import android.support.annotation.Nullable;
|
|
import android.support.v4.app.TaskStackBuilder;
|
|
import android.support.v7.app.AppCompatActivity;
|
|
import android.widget.Toast;
|
|
|
|
import org.thoughtcrime.securesms.database.Address;
|
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
|
import org.thoughtcrime.securesms.util.CommunicationActions;
|
|
|
|
public class ShortcutLauncherActivity extends AppCompatActivity {
|
|
|
|
private static final String KEY_SERIALIZED_ADDRESS = "serialized_address";
|
|
|
|
public static Intent createIntent(@NonNull Context context, @NonNull Address address) {
|
|
Intent intent = new Intent(context, ShortcutLauncherActivity.class);
|
|
intent.setAction(Intent.ACTION_MAIN);
|
|
intent.putExtra(KEY_SERIALIZED_ADDRESS, address.serialize());
|
|
|
|
return intent;
|
|
}
|
|
|
|
@SuppressLint("StaticFieldLeak")
|
|
@Override
|
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
|
|
String serializedAddress = getIntent().getStringExtra(KEY_SERIALIZED_ADDRESS);
|
|
|
|
if (serializedAddress == null) {
|
|
Toast.makeText(this, R.string.ShortcutLauncherActivity_invalid_shortcut, Toast.LENGTH_SHORT).show();
|
|
startActivity(new Intent(this, ConversationListActivity.class));
|
|
finish();
|
|
return;
|
|
}
|
|
|
|
Address address = Address.fromSerialized(serializedAddress);
|
|
Recipient recipient = Recipient.from(this, address, true);
|
|
TaskStackBuilder backStack = TaskStackBuilder.create(this)
|
|
.addNextIntent(new Intent(this, ConversationListActivity.class));
|
|
|
|
CommunicationActions.startConversation(this, recipient, null, backStack);
|
|
finish();
|
|
}
|
|
}
|