diff --git a/app/src/main/java/org/wikipedia/login/LoginActivity.kt b/app/src/main/java/org/wikipedia/login/LoginActivity.kt index 154ef73f0ad..9c53fdfe7c6 100644 --- a/app/src/main/java/org/wikipedia/login/LoginActivity.kt +++ b/app/src/main/java/org/wikipedia/login/LoginActivity.kt @@ -298,6 +298,7 @@ class LoginActivity : BaseActivity() { const val SOURCE_SUGGESTED_EDITS = "suggestededits" const val SOURCE_TALK = "talk" const val SOURCE_ACTIVITY_TAB = "activity_tab" + const val SOURCE_YEAR_IN_REVIEW = "yir" fun newIntent(context: Context, source: String, createAccountFirst: Boolean = true): Intent { return Intent(context, LoginActivity::class.java) diff --git a/app/src/main/java/org/wikipedia/yearinreview/YearInReviewOnboardingActivity.kt b/app/src/main/java/org/wikipedia/yearinreview/YearInReviewOnboardingActivity.kt index 0c1f9bd8618..21b9fb31c71 100644 --- a/app/src/main/java/org/wikipedia/yearinreview/YearInReviewOnboardingActivity.kt +++ b/app/src/main/java/org/wikipedia/yearinreview/YearInReviewOnboardingActivity.kt @@ -4,28 +4,72 @@ import android.content.Context import android.content.Intent import android.os.Bundle import androidx.activity.compose.setContent +import androidx.activity.result.contract.ActivityResultContracts +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.res.stringResource +import org.wikipedia.R import org.wikipedia.activity.BaseActivity +import org.wikipedia.auth.AccountUtil +import org.wikipedia.compose.components.WikipediaAlertDialog import org.wikipedia.compose.theme.BaseTheme +import org.wikipedia.login.LoginActivity class YearInReviewOnboardingActivity : BaseActivity() { + private val loginLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + if (it.resultCode == LoginActivity.RESULT_LOGIN_SUCCESS) { + proceed() + } + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { BaseTheme { + var showLoginDialog by remember { mutableStateOf(false) } + if (showLoginDialog) { + WikipediaAlertDialog( + title = stringResource(R.string.year_in_review_login_dialog_title), + message = stringResource(R.string.year_in_review_login_dialog_body), + confirmButtonText = stringResource(R.string.year_in_review_login_dialog_positive), + dismissButtonText = stringResource(R.string.year_in_review_login_dialog_negative), + onDismissRequest = { + showLoginDialog = false + }, + onConfirmButtonClick = { + loginLauncher.launch(LoginActivity.newIntent(this, LoginActivity.SOURCE_YEAR_IN_REVIEW)) + showLoginDialog = false + }, + onDismissButtonClick = { + proceed() + } + ) + } + YearInReviewOnboardingScreen( onBackButtonClick = { finish() }, onGetStartedClick = { - startActivity(YearInReviewActivity.newIntent(this)) - finish() + if (!AccountUtil.isLoggedIn) { + showLoginDialog = true + } else { + proceed() + } } ) } } } + private fun proceed() { + startActivity(YearInReviewActivity.newIntent(this)) + finish() + } + companion object { fun newIntent(context: Context): Intent { return Intent(context, YearInReviewOnboardingActivity::class.java) diff --git a/app/src/main/res/values-qq/strings.xml b/app/src/main/res/values-qq/strings.xml index a593dba049e..9ece0a446ed 100644 --- a/app/src/main/res/values-qq/strings.xml +++ b/app/src/main/res/values-qq/strings.xml @@ -1887,6 +1887,10 @@ A generic error idicator with \"%s\" representing the actual error thrown The subject line for sharing the year in review Content description for the year in review globe icon + Title of a dialog asking the user to log in before accessing the Year in Review feature. + Body text of a dialog asking the user to log in before accessing the Year in Review feature. + Positive button label for a dialog asking the user to log in before accessing the Year in Review feature. + Negative button label for a dialog asking the user to log in before accessing the Year in Review feature. Title for the recommended reading list feature. Title of the onboarding card for the recommended reading list. Message on the onboarding card for the recommended reading list. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3abf8a2d760..cd8ea3c99d9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2007,6 +2007,10 @@ Could not generate screenshot: %s Year In Review Image and Link Globe Icon + Log in for personalization? + Logging in gives you access to personalized insights. You can still see collective insights without logging in. + Log in / join Wikipedia + Continue without logging in