Do not always start MainActivity first when launching HomeActivity
This commit is contained in:
parent
0bedfc8087
commit
b294c9a1fd
@ -300,7 +300,7 @@ class MainActivity : VectorBaseActivity<ActivityMainBinding>(), UnlockedActivity
|
||||
// We have a session.
|
||||
// Check it can be opened
|
||||
if (sessionHolder.getActiveSession().isOpenable) {
|
||||
HomeActivity.newIntent(this, existingSession = true)
|
||||
HomeActivity.newIntent(this, firstStartMainActivity = false, existingSession = true)
|
||||
} else {
|
||||
// The token is still invalid
|
||||
navigator.softLogout(this)
|
||||
|
@ -611,6 +611,7 @@ class HomeActivity :
|
||||
companion object {
|
||||
fun newIntent(
|
||||
context: Context,
|
||||
firstStartMainActivity: Boolean,
|
||||
clearNotification: Boolean = false,
|
||||
authenticationDescription: AuthenticationDescription? = null,
|
||||
existingSession: Boolean = false,
|
||||
@ -628,7 +629,11 @@ class HomeActivity :
|
||||
putExtra(Mavericks.KEY_ARG, args)
|
||||
}
|
||||
|
||||
return MainActivity.getIntentWithNextIntent(context, intent)
|
||||
return if (firstStartMainActivity) {
|
||||
MainActivity.getIntentWithNextIntent(context, intent)
|
||||
} else {
|
||||
intent
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -221,7 +221,7 @@ open class LoginActivity : VectorBaseActivity<ActivityLoginBinding>(), UnlockedA
|
||||
analyticsScreenName = MobileScreen.ScreenName.Register
|
||||
}
|
||||
val authDescription = inferAuthDescription(loginViewState)
|
||||
val intent = HomeActivity.newIntent(this, authenticationDescription = authDescription)
|
||||
val intent = HomeActivity.newIntent(this, firstStartMainActivity = false, authenticationDescription = authDescription)
|
||||
startActivity(intent)
|
||||
finish()
|
||||
return
|
||||
|
@ -240,7 +240,7 @@ class NotificationUtils @Inject constructor(
|
||||
@SuppressLint("NewApi")
|
||||
fun buildForegroundServiceNotification(@StringRes subTitleResId: Int, withProgress: Boolean = true): Notification {
|
||||
// build the pending intent go to the home screen if this is clicked.
|
||||
val i = HomeActivity.newIntent(context)
|
||||
val i = HomeActivity.newIntent(context, firstStartMainActivity = false)
|
||||
i.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
|
||||
val mainIntent = MainActivity.getIntentWithNextIntent(context, i)
|
||||
val pi = PendingIntent.getActivity(context, 0, mainIntent, PendingIntentCompat.FLAG_IMMUTABLE)
|
||||
@ -346,7 +346,7 @@ class NotificationUtils @Inject constructor(
|
||||
)
|
||||
|
||||
val answerCallPendingIntent = TaskStackBuilder.create(context)
|
||||
.addNextIntentWithParentStack(HomeActivity.newIntent(context))
|
||||
.addNextIntentWithParentStack(HomeActivity.newIntent(context, firstStartMainActivity = false))
|
||||
.addNextIntent(
|
||||
VectorCallActivity.newIntent(
|
||||
context = context,
|
||||
@ -470,7 +470,7 @@ class NotificationUtils @Inject constructor(
|
||||
)
|
||||
|
||||
val contentPendingIntent = TaskStackBuilder.create(context)
|
||||
.addNextIntentWithParentStack(HomeActivity.newIntent(context))
|
||||
.addNextIntentWithParentStack(HomeActivity.newIntent(context, firstStartMainActivity = false))
|
||||
.addNextIntent(VectorCallActivity.newIntent(context, call, null))
|
||||
.getPendingIntent(clock.epochMillis().toInt(), PendingIntent.FLAG_UPDATE_CURRENT or PendingIntentCompat.FLAG_IMMUTABLE)
|
||||
|
||||
@ -532,7 +532,7 @@ class NotificationUtils @Inject constructor(
|
||||
.setCategory(NotificationCompat.CATEGORY_CALL)
|
||||
|
||||
val contentPendingIntent = TaskStackBuilder.create(context)
|
||||
.addNextIntentWithParentStack(HomeActivity.newIntent(context))
|
||||
.addNextIntentWithParentStack(HomeActivity.newIntent(context, firstStartMainActivity = false))
|
||||
.addNextIntent(RoomDetailActivity.newIntent(context, TimelineArgs(callInformation.nativeRoomId), true))
|
||||
.getPendingIntent(clock.epochMillis().toInt(), PendingIntent.FLAG_UPDATE_CURRENT or PendingIntentCompat.FLAG_IMMUTABLE)
|
||||
|
||||
@ -767,7 +767,11 @@ class NotificationUtils @Inject constructor(
|
||||
joinIntentPendingIntent
|
||||
)
|
||||
|
||||
val contentIntent = HomeActivity.newIntent(context, inviteNotificationRoomId = inviteNotifiableEvent.roomId)
|
||||
val contentIntent = HomeActivity.newIntent(
|
||||
context,
|
||||
firstStartMainActivity = true,
|
||||
inviteNotificationRoomId = inviteNotifiableEvent.roomId
|
||||
)
|
||||
contentIntent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
|
||||
// pending intent get reused by system, this will mess up the extra params, so put unique info to avoid that
|
||||
contentIntent.data = createIgnoredUri(inviteNotifiableEvent.eventId)
|
||||
@ -808,7 +812,7 @@ class NotificationUtils @Inject constructor(
|
||||
.setColor(accentColor)
|
||||
.setAutoCancel(true)
|
||||
.apply {
|
||||
val contentIntent = HomeActivity.newIntent(context)
|
||||
val contentIntent = HomeActivity.newIntent(context, firstStartMainActivity = true)
|
||||
contentIntent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
|
||||
// pending intent get reused by system, this will mess up the extra params, so put unique info to avoid that
|
||||
contentIntent.data = createIgnoredUri(simpleNotifiableEvent.eventId)
|
||||
@ -837,7 +841,7 @@ class NotificationUtils @Inject constructor(
|
||||
|
||||
// Recreate the back stack
|
||||
return TaskStackBuilder.create(context)
|
||||
.addNextIntentWithParentStack(HomeActivity.newIntent(context))
|
||||
.addNextIntentWithParentStack(HomeActivity.newIntent(context, firstStartMainActivity = false))
|
||||
.addNextIntent(roomIntentTap)
|
||||
.getPendingIntent(
|
||||
clock.epochMillis().toInt(),
|
||||
@ -846,7 +850,7 @@ class NotificationUtils @Inject constructor(
|
||||
}
|
||||
|
||||
private fun buildOpenHomePendingIntentForSummary(): PendingIntent {
|
||||
val intent = HomeActivity.newIntent(context, clearNotification = true)
|
||||
val intent = HomeActivity.newIntent(context, firstStartMainActivity = false, clearNotification = true)
|
||||
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
|
||||
intent.data = createIgnoredUri("tapSummary")
|
||||
val mainIntent = MainActivity.getIntentWithNextIntent(context, intent)
|
||||
|
@ -302,7 +302,8 @@ class Login2Variant(
|
||||
|
||||
private fun terminate() {
|
||||
val intent = HomeActivity.newIntent(
|
||||
activity
|
||||
activity,
|
||||
firstStartMainActivity = false,
|
||||
)
|
||||
activity.startActivity(intent)
|
||||
activity.finish()
|
||||
|
@ -482,7 +482,11 @@ class FtueAuthVariant(
|
||||
|
||||
private fun navigateToHome() {
|
||||
withState(onboardingViewModel) {
|
||||
val intent = HomeActivity.newIntent(activity, authenticationDescription = it.selectedAuthenticationState.description)
|
||||
val intent = HomeActivity.newIntent(
|
||||
activity,
|
||||
firstStartMainActivity = false,
|
||||
authenticationDescription = it.selectedAuthenticationState.description
|
||||
)
|
||||
activity.startActivity(intent)
|
||||
activity.finish()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user