mirror of
https://github.com/oxen-io/session-android.git
synced 2025-08-25 18:29:01 +00:00
Reopen properly when we select launcher icon.
* Reopen properly when we select launcher icon. * Reduce noise
This commit is contained in:
@@ -225,6 +225,17 @@
|
||||
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data android:name="com.sec.minimode.icon.portrait.normal"
|
||||
android:resource="@mipmap/ic_launcher" />
|
||||
<meta-data android:name="com.sec.minimode.icon.landscape.normal"
|
||||
android:resource="@mipmap/ic_launcher" />
|
||||
|
||||
</activity-alias>
|
||||
|
||||
<activity android:name=".deeplinks.DeepLinkEntryActivity"
|
||||
android:noHistory="true"
|
||||
android:theme="@style/Signal.Transparent">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
@@ -241,13 +252,7 @@
|
||||
<data android:scheme="https"
|
||||
android:host="signal.group"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data android:name="com.sec.minimode.icon.portrait.normal"
|
||||
android:resource="@mipmap/ic_launcher" />
|
||||
<meta-data android:name="com.sec.minimode.icon.landscape.normal"
|
||||
android:resource="@mipmap/ic_launcher" />
|
||||
|
||||
</activity-alias>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".conversation.ConversationActivity"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
@@ -504,7 +509,6 @@
|
||||
|
||||
<activity android:name=".MainActivity"
|
||||
android:theme="@style/Theme.Signal.DayNight.NoActionBar"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize" />
|
||||
|
||||
<activity android:name=".pin.PinRestoreActivity"
|
||||
|
@@ -150,7 +150,7 @@ public class DatabaseMigrationActivity extends PassphraseRequiredActivity {
|
||||
startActivity((Intent)getIntent().getParcelableExtra("next_intent"));
|
||||
} else {
|
||||
// TODO [greyson] Navigation
|
||||
startActivity(new Intent(this, MainActivity.class));
|
||||
startActivity(MainActivity.clearTop(this));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package org.thoughtcrime.securesms;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
@@ -22,6 +23,16 @@ public class MainActivity extends PassphraseRequiredActivity {
|
||||
private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme();
|
||||
private final MainNavigator navigator = new MainNavigator(this);
|
||||
|
||||
public static @NonNull Intent clearTop(@NonNull Context context) {
|
||||
Intent intent = new Intent(context, MainActivity.class);
|
||||
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
|
||||
Intent.FLAG_ACTIVITY_NEW_TASK |
|
||||
Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||
|
||||
return intent;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState, boolean ready) {
|
||||
super.onCreate(savedInstanceState, ready);
|
||||
|
@@ -221,7 +221,7 @@ public abstract class PassphraseRequiredActivity extends BaseActivity implements
|
||||
|
||||
private Intent getConversationListIntent() {
|
||||
// TODO [greyson] Navigation
|
||||
return new Intent(this, MainActivity.class);
|
||||
return MainActivity.clearTop(this);
|
||||
}
|
||||
|
||||
private void initializeClearKeyReceiver() {
|
||||
|
@@ -35,7 +35,7 @@ public class ShortcutLauncherActivity extends AppCompatActivity {
|
||||
if (rawId == null) {
|
||||
Toast.makeText(this, R.string.ShortcutLauncherActivity_invalid_shortcut, Toast.LENGTH_SHORT).show();
|
||||
// TODO [greyson] Navigation
|
||||
startActivity(new Intent(this, MainActivity.class));
|
||||
startActivity(MainActivity.clearTop(this));
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
@@ -43,7 +43,7 @@ public class ShortcutLauncherActivity extends AppCompatActivity {
|
||||
Recipient recipient = Recipient.live(RecipientId.from(rawId)).get();
|
||||
// TODO [greyson] Navigation
|
||||
TaskStackBuilder backStack = TaskStackBuilder.create(this)
|
||||
.addNextIntent(new Intent(this, MainActivity.class));
|
||||
.addNextIntent(MainActivity.clearTop(this));
|
||||
|
||||
CommunicationActions.startConversation(this, recipient, null, backStack);
|
||||
finish();
|
||||
|
@@ -22,7 +22,7 @@ public class SystemSmsImportReminder extends Reminder {
|
||||
context.startService(intent);
|
||||
|
||||
// TODO [greyson] Navigation
|
||||
Intent nextIntent = new Intent(context, MainActivity.class);
|
||||
Intent nextIntent = MainActivity.clearTop(context);
|
||||
Intent activityIntent = new Intent(context, DatabaseMigrationActivity.class);
|
||||
activityIntent.putExtra("next_intent", nextIntent);
|
||||
context.startActivity(activityIntent);
|
||||
|
@@ -409,7 +409,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
|
||||
if (ConversationIntents.isInvalid(getIntent())) {
|
||||
Log.w(TAG, "[onCreate] Missing recipientId!");
|
||||
// TODO [greyson] Navigation
|
||||
startActivity(new Intent(this, MainActivity.class));
|
||||
startActivity(MainActivity.clearTop(this));
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
@@ -488,7 +488,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
|
||||
if (ConversationIntents.isInvalid(intent)) {
|
||||
Log.w(TAG, "[onNewIntent] Missing recipientId!");
|
||||
// TODO [greyson] Navigation
|
||||
startActivity(new Intent(this, MainActivity.class));
|
||||
startActivity(MainActivity.clearTop(this));
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
@@ -1982,7 +1982,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
|
||||
|
||||
if (isInBubble()) {
|
||||
supportActionBar.setHomeAsUpIndicator(ContextCompat.getDrawable(this, R.drawable.ic_notification));
|
||||
toolbar.setNavigationOnClickListener(unused -> startActivity(new Intent(Intent.ACTION_MAIN).setClass(this, MainActivity.class)));
|
||||
toolbar.setNavigationOnClickListener(unused -> startActivity(MainActivity.clearTop(this)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -0,0 +1,18 @@
|
||||
package org.thoughtcrime.securesms.deeplinks;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import org.thoughtcrime.securesms.MainActivity;
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity;
|
||||
|
||||
public class DeepLinkEntryActivity extends PassphraseRequiredActivity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState, boolean ready) {
|
||||
Intent intent = MainActivity.clearTop(this);
|
||||
Uri data = getIntent().getData();
|
||||
intent.setData(data);
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
@@ -112,7 +112,7 @@ public final class ChooseNewAdminActivity extends PassphraseRequiredActivity {
|
||||
if (updateResult.isSuccess()) {
|
||||
String title = Recipient.externalGroupExact(this, groupId).getDisplayName(this);
|
||||
Toast.makeText(this, getString(R.string.ChooseNewAdminActivity_you_left, title), Toast.LENGTH_LONG).show();
|
||||
startActivity(new Intent(this, MainActivity.class));
|
||||
startActivity(MainActivity.clearTop(this));
|
||||
finish();
|
||||
} else {
|
||||
done.setClickable(true);
|
||||
|
@@ -264,7 +264,7 @@ public class ManageGroupFragment extends LoggingFragment {
|
||||
});
|
||||
|
||||
leaveGroup.setVisibility(groupId.isPush() ? View.VISIBLE : View.GONE);
|
||||
leaveGroup.setOnClickListener(v -> LeaveGroupDialog.handleLeavePushGroup(requireActivity(), groupId.requirePush(), () -> startActivity(new Intent(requireActivity(), MainActivity.class))));
|
||||
leaveGroup.setOnClickListener(v -> LeaveGroupDialog.handleLeavePushGroup(requireActivity(), groupId.requirePush(), () -> startActivity(MainActivity.clearTop(context))));
|
||||
|
||||
viewModel.getDisappearingMessageTimer().observe(getViewLifecycleOwner(), string -> disappearingMessages.setText(string));
|
||||
|
||||
|
@@ -146,7 +146,7 @@ public final class PushDecryptMessageJob extends BaseJob {
|
||||
.setCategory(NotificationCompat.CATEGORY_MESSAGE)
|
||||
.setContentTitle(context.getString(R.string.PushDecryptJob_new_locked_message))
|
||||
.setContentText(context.getString(R.string.PushDecryptJob_unlock_to_view_pending_messages))
|
||||
.setContentIntent(PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), 0))
|
||||
.setContentIntent(PendingIntent.getActivity(context, 0, MainActivity.clearTop(context), 0))
|
||||
.setDefaults(NotificationCompat.DEFAULT_SOUND | NotificationCompat.DEFAULT_VIBRATE)
|
||||
.build());
|
||||
|
||||
|
@@ -30,7 +30,7 @@ public class MultipleRecipientNotificationBuilder extends AbstractNotificationBu
|
||||
setSmallIcon(R.drawable.ic_notification);
|
||||
setContentTitle(context.getString(R.string.app_name));
|
||||
// TODO [greyson] Navigation
|
||||
setContentIntent(PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), 0));
|
||||
setContentIntent(PendingIntent.getActivity(context, 0, MainActivity.clearTop(context), 0));
|
||||
setCategory(NotificationCompat.CATEGORY_MESSAGE);
|
||||
setGroupSummary(true);
|
||||
|
||||
|
@@ -18,9 +18,6 @@ public class PendingMessageNotificationBuilder extends AbstractNotificationBuild
|
||||
public PendingMessageNotificationBuilder(Context context, NotificationPrivacyPreference privacy) {
|
||||
super(context, privacy);
|
||||
|
||||
// TODO [greyson] Navigation
|
||||
Intent intent = new Intent(context, MainActivity.class);
|
||||
|
||||
setSmallIcon(R.drawable.ic_notification);
|
||||
setColor(context.getResources().getColor(R.color.core_ultramarine));
|
||||
setCategory(NotificationCompat.CATEGORY_MESSAGE);
|
||||
@@ -29,7 +26,8 @@ public class PendingMessageNotificationBuilder extends AbstractNotificationBuild
|
||||
setContentText(context.getString(R.string.MessageNotifier_open_signal_to_check_for_recent_notifications));
|
||||
setTicker(context.getString(R.string.MessageNotifier_open_signal_to_check_for_recent_notifications));
|
||||
|
||||
setContentIntent(PendingIntent.getActivity(context, 0, intent, 0));
|
||||
// TODO [greyson] Navigation
|
||||
setContentIntent(PendingIntent.getActivity(context, 0, MainActivity.clearTop(context), 0));
|
||||
setAutoCancel(true);
|
||||
setAlarms(null, RecipientDatabase.VibrateState.DEFAULT);
|
||||
|
||||
|
@@ -29,7 +29,7 @@ public final class PinRestoreActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
void navigateToPinCreation() {
|
||||
final Intent main = new Intent(this, MainActivity.class);
|
||||
final Intent main = MainActivity.clearTop(this);
|
||||
final Intent createPin = CreateKbsPinActivity.getIntentForPinCreate(this);
|
||||
final Intent chained = PassphraseRequiredActivity.chainIntent(createPin, main);
|
||||
|
||||
|
@@ -231,7 +231,7 @@ public class PinRestoreEntryFragment extends LoggingFragment {
|
||||
Activity activity = requireActivity();
|
||||
|
||||
if (Recipient.self().getProfileName().isEmpty() || !AvatarHelper.hasAvatar(activity, Recipient.self().getId())) {
|
||||
final Intent main = new Intent(activity, MainActivity.class);
|
||||
final Intent main = MainActivity.clearTop(activity);
|
||||
final Intent profile = EditProfileActivity.getIntentForUserProfile(activity);
|
||||
|
||||
profile.putExtra("next_intent", main);
|
||||
@@ -239,7 +239,7 @@ public class PinRestoreEntryFragment extends LoggingFragment {
|
||||
} else {
|
||||
RegistrationUtil.maybeMarkRegistrationComplete(requireContext());
|
||||
ApplicationDependencies.getJobManager().add(new ProfileUploadJob());
|
||||
startActivity(new Intent(activity, MainActivity.class));
|
||||
startActivity(MainActivity.clearTop(activity));
|
||||
}
|
||||
|
||||
activity.finish();
|
||||
|
@@ -35,7 +35,7 @@ public final class RegistrationCompleteFragment extends BaseRegistrationFragment
|
||||
if (SignalStore.storageServiceValues().needsAccountRestore()) {
|
||||
activity.startActivity(new Intent(activity, PinRestoreActivity.class));
|
||||
} else if (!isReregister()) {
|
||||
final Intent main = new Intent(activity, MainActivity.class);
|
||||
final Intent main = MainActivity.clearTop(activity);
|
||||
final Intent profile = EditProfileActivity.getIntentForUserProfile(activity);
|
||||
|
||||
Intent kbs = CreateKbsPinActivity.getIntentForPinCreate(requireContext());
|
||||
|
@@ -136,7 +136,7 @@ public class ApplicationMigrationService extends Service
|
||||
builder.setOngoing(true);
|
||||
builder.setProgress(100, 0, false);
|
||||
// TODO [greyson] Navigation
|
||||
builder.setContentIntent(PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), 0));
|
||||
builder.setContentIntent(PendingIntent.getActivity(this, 0, MainActivity.clearTop(this), 0));
|
||||
|
||||
stopForeground(true);
|
||||
startForeground(NotificationIds.APPLICATION_MIGRATION, builder.build());
|
||||
@@ -188,7 +188,7 @@ public class ApplicationMigrationService extends Service
|
||||
builder.setContentTitle(context.getString(R.string.ApplicationMigrationService_import_complete));
|
||||
builder.setContentText(context.getString(R.string.ApplicationMigrationService_system_database_import_is_complete));
|
||||
// TODO [greyson] Navigation
|
||||
builder.setContentIntent(PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), 0));
|
||||
builder.setContentIntent(PendingIntent.getActivity(context, 0, MainActivity.clearTop(context), 0));
|
||||
builder.setWhen(System.currentTimeMillis());
|
||||
builder.setDefaults(Notification.DEFAULT_VIBRATE);
|
||||
builder.setAutoCancel(true);
|
||||
|
@@ -108,7 +108,7 @@ public final class GenericForegroundService extends Service {
|
||||
.setSmallIcon(active.iconRes)
|
||||
.setContentTitle(active.title)
|
||||
.setProgress(active.progressMax, active.progress, active.indeterminate)
|
||||
.setContentIntent(PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), 0))
|
||||
.setContentIntent(PendingIntent.getActivity(this, 0, MainActivity.clearTop(this), 0))
|
||||
.build());
|
||||
}
|
||||
|
||||
|
@@ -287,9 +287,7 @@ public class KeyCachingService extends Service {
|
||||
|
||||
private PendingIntent buildLaunchIntent() {
|
||||
// TODO [greyson] Navigation
|
||||
Intent intent = new Intent(this, MainActivity.class);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
return PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);
|
||||
return PendingIntent.getActivity(getApplicationContext(), 0, MainActivity.clearTop(this), 0);
|
||||
}
|
||||
|
||||
private static PendingIntent buildExpirationPendingIntent(@NonNull Context context) {
|
||||
|
@@ -2,6 +2,15 @@
|
||||
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<style name="Signal.Transparent" parent="Theme.AppCompat">
|
||||
<item name="android:windowIsTranslucent">true</item>
|
||||
<item name="android:windowBackground">@android:color/transparent</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="android:windowIsFloating">true</item>
|
||||
<item name="android:backgroundDimEnabled">false</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Signal.DayNight.NoActionBar" parent="TextSecure.LightNoActionBar">
|
||||
</style>
|
||||
|
||||
|
Reference in New Issue
Block a user