Androd app shortcuts intent flags
Работаю над добавлением шорткатов в приложение, пробую использовать для них реализованный функционал для диплинков. В приложении есть функциональность авторизации пользователей, поэтому если юзер зашел по диплинку/шорткату в приложение и при этом сессия пользователя не открыта, то приложение должно сначала перейти на экран авторизации. Для этого в ApplinkActivity, отвечающей за прием диплинов/шорткатов - реализована логика типа:
if (isTaskRoot) {
startActivity(StartupActivity.createIntent(this))
}
Получается, если ApplinkActivity первая в стеке, то должна произойти навигация на активити авторизации. Диплинки работают как положено, но с шорткатами проблема. Я использую статические шорткаты и задаю интент в xml. Проблема в том, что по нажатию на шорткат открывается ApplinkActivity всегда в качестве root активити. Судя по всему интент из шортката по умолчанию задан с флагами типа FLAG_ACTIVITY_NEW_TASK и FLAG_ACTIVITY_CLEAR_TASK. Есть ли возможность каким то образом изменить это поведение? Или проблема вообще в другом? Пример статического шортката:
<shortcut
android:shortcutId="shortcut_open_smth"
android:icon="@drawable/ic_open_smth_shortcut"
android:shortcutShortLabel="@string/shortcut_open_smth_title">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.shortcutapp"
android:targetClass="com.shortcutapp.activities.applink.ApplinkActivity"
android:data="shortcutapp.com/applink/open_smth" />
</shortcut>