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