Skip to content

Commit 05371b4

Browse files
committed
Merge branch 'trunk' into issue/17214-final-design-touces
2 parents 6172601 + 6dce4e3 commit 05371b4

15 files changed

Lines changed: 136 additions & 20 deletions

File tree

RELEASE-NOTES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
21.0
44
-----
55
* [*] Updates splash screen for Android 12+ [https://github.com/wordpress-mobile/WordPress-Android/pull/17273]
6+
* [*] Fix text color of success messages in the QR code login flow [https://github.com/wordpress-mobile/WordPress-Android/pull/17286]
67

78
20.9
89
-----

WordPress/src/jetpack/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
<data
3838
android:host="notifications"
3939
android:scheme="jetpack" />
40+
<data
41+
android:host="home"
42+
android:scheme="jetpack" />
4043
</intent-filter>
4144
</activity>
4245

WordPress/src/main/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,9 @@
400400
<data
401401
android:host="notifications"
402402
android:scheme="wordpress" />
403+
<data
404+
android:host="home"
405+
android:scheme="wordpress" />
403406
</intent-filter>
404407

405408
<intent-filter android:autoVerify="true">

WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1751,4 +1751,9 @@ public static void startQRCodeAuthFlowInNewStack(@NonNull Context context, @NonN
17511751

17521752
taskStackBuilder.startActivities();
17531753
}
1754+
1755+
public static void showLoginPrologue(@NonNull Context context) {
1756+
Intent intent = new Intent(context, LoginActivity.class);
1757+
context.startActivity(intent);
1758+
}
17541759
}

WordPress/src/main/java/org/wordpress/android/ui/deeplinks/DeepLinkNavigator.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.Login
88
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenEditor
99
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenEditorForPost
1010
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenEditorForSite
11+
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenMySite
1112
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenInBrowser
1213
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenInReader
14+
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenLoginPrologue
1315
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenNotifications
1416
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenPages
1517
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenPagesForSite
@@ -74,6 +76,8 @@ class DeepLinkNavigator
7476
is OpenPagesForSite -> ActivityLauncher.viewPagesInNewStack(activity, navigateAction.site)
7577
OpenPages -> ActivityLauncher.viewPagesInNewStack(activity)
7678
is OpenQRCodeAuthFlow -> ActivityLauncher.startQRCodeAuthFlowInNewStack(activity, navigateAction.uri)
79+
OpenMySite -> ActivityLauncher.viewMySiteInNewStack(activity)
80+
OpenLoginPrologue -> ActivityLauncher.showLoginPrologue(activity)
7781
}
7882
if (navigateAction != LoginForResult) {
7983
activity.finish()
@@ -101,5 +105,7 @@ class DeepLinkNavigator
101105
data class OpenPagesForSite(val site: SiteModel) : NavigateAction()
102106
object OpenPages : NavigateAction()
103107
data class OpenQRCodeAuthFlow(val uri: String) : NavigateAction()
108+
object OpenMySite : NavigateAction()
109+
object OpenLoginPrologue : NavigateAction()
104110
}
105111
}

WordPress/src/main/java/org/wordpress/android/ui/deeplinks/DeepLinkingIntentReceiverViewModel.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import org.wordpress.android.modules.UI_THREAD
99
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction
1010
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.LoginForResult
1111
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenInBrowser
12+
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenLoginPrologue
1213
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.ShowSignInFlow
1314
import org.wordpress.android.ui.deeplinks.handlers.DeepLinkHandlers
1415
import org.wordpress.android.ui.deeplinks.handlers.ServerTrackingHandler
@@ -69,14 +70,21 @@ class DeepLinkingIntentReceiverViewModel
6970
if (action != null) {
7071
deepLinkTrackingUtils.track(action, it, uriWrapper)
7172
}
72-
if (accountStore.hasAccessToken() || it is OpenInBrowser || it is ShowSignInFlow) {
73+
if (loginIsUnnecessary(it)) {
7374
_navigateAction.value = Event(it)
7475
} else {
7576
_navigateAction.value = Event(LoginForResult)
7677
}
7778
} != null
7879
}
7980

81+
private fun loginIsUnnecessary(action: NavigateAction): Boolean {
82+
return accountStore.hasAccessToken() ||
83+
action is OpenInBrowser ||
84+
action is ShowSignInFlow ||
85+
action is OpenLoginPrologue
86+
}
87+
8088
private fun buildNavigateAction(uri: UriWrapper, rootUri: UriWrapper = uri): NavigateAction? {
8189
return when {
8290
deepLinkUriUtils.isTrackingUrl(uri) -> getRedirectUriAndBuildNavigateAction(uri, rootUri)

WordPress/src/main/java/org/wordpress/android/ui/deeplinks/handlers/DeepLinkHandlers.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ class DeepLinkHandlers
1515
readerLinkHandler: ReaderLinkHandler,
1616
pagesLinkHandler: PagesLinkHandler,
1717
notificationsLinkHandler: NotificationsLinkHandler,
18-
qrCodeAuthLinkHandler: QRCodeAuthLinkHandler
18+
qrCodeAuthLinkHandler: QRCodeAuthLinkHandler,
19+
homeLinkHandler: HomeLinkHandler
1920
) {
2021
private val handlers = listOf(
2122
editorLinkHandler,
@@ -24,7 +25,8 @@ class DeepLinkHandlers
2425
readerLinkHandler,
2526
pagesLinkHandler,
2627
notificationsLinkHandler,
27-
qrCodeAuthLinkHandler
28+
qrCodeAuthLinkHandler,
29+
homeLinkHandler
2830
)
2931

3032
private val _toast by lazy {
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package org.wordpress.android.ui.deeplinks.handlers
2+
3+
import org.wordpress.android.fluxc.store.AccountStore
4+
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction
5+
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenMySite
6+
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenLoginPrologue
7+
import org.wordpress.android.ui.deeplinks.DeepLinkingIntentReceiverViewModel
8+
import org.wordpress.android.util.UriWrapper
9+
import javax.inject.Inject
10+
11+
class HomeLinkHandler
12+
@Inject constructor(private val accountStore: AccountStore) : DeepLinkHandler {
13+
/**
14+
* Returns true if the URI looks like `wordpress://home`
15+
*/
16+
override fun shouldHandleUrl(uri: UriWrapper): Boolean {
17+
return uri.host == HOME_PATH
18+
}
19+
20+
override fun buildNavigateAction(uri: UriWrapper): NavigateAction {
21+
return if (accountStore.hasAccessToken()) {
22+
OpenMySite
23+
} else {
24+
OpenLoginPrologue
25+
}
26+
}
27+
28+
override fun stripUrl(uri: UriWrapper): String {
29+
return buildString {
30+
if (uri.host == HOME_PATH) {
31+
append(DeepLinkingIntentReceiverViewModel.APPLINK_SCHEME)
32+
}
33+
append(HOME_PATH)
34+
}
35+
}
36+
37+
companion object {
38+
private const val HOME_PATH = "home"
39+
}
40+
}

WordPress/src/main/java/org/wordpress/android/ui/qrcodeauth/QRCodeAuthUiState.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,17 @@ const val BLURRED_ALPHA = 0.75f
3131

3232
sealed class QRCodeAuthUiState {
3333
open val type: QRCodeAuthUiStateType? = null
34-
open val scanningVisibility = false
35-
open val loadingVisibility = false
36-
open val errorVisibility = false
37-
open val contentVisibility = false
3834

3935
object Scanning : QRCodeAuthUiState() {
4036
override val type = SCANNING
41-
override val scanningVisibility = true
4237
}
4338

4439
object Loading : QRCodeAuthUiState() {
4540
override val type = LOADING
46-
override val loadingVisibility = true
4741
}
4842

4943
sealed class Error : QRCodeAuthUiState() {
5044
override val type = ERROR
51-
override val errorVisibility = true
5245
abstract val title: UiString
5346
abstract val subtitle: UiString
5447
abstract val image: Int
@@ -98,7 +91,6 @@ sealed class QRCodeAuthUiState {
9891

9992
sealed class Content : QRCodeAuthUiState() {
10093
override val type = CONTENT
101-
override val contentVisibility: Boolean = true
10294
open val title: UiString? = null
10395
open val subtitle: UiString? = null
10496
@DrawableRes open val image: Int? = null

WordPress/src/main/java/org/wordpress/android/ui/qrcodeauth/compose/components/Subtitle.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,25 @@ package org.wordpress.android.ui.qrcodeauth.compose.components
22

33
import androidx.compose.foundation.layout.padding
44
import androidx.compose.foundation.layout.wrapContentSize
5-
import androidx.compose.material.MaterialTheme
65
import androidx.compose.material.Text
76
import androidx.compose.runtime.Composable
87
import androidx.compose.ui.Modifier
8+
import androidx.compose.ui.graphics.Color
99
import androidx.compose.ui.text.style.TextAlign
1010
import org.wordpress.android.ui.compose.unit.FontSize
1111
import org.wordpress.android.ui.compose.unit.Margin
1212

1313
@Composable
1414
fun Subtitle(
1515
text: String,
16+
color: Color,
1617
modifier: Modifier = Modifier
1718
) {
1819
Text(
1920
text = text,
2021
textAlign = TextAlign.Center,
2122
fontSize = FontSize.Large.value,
22-
color = MaterialTheme.colors.error,
23+
color = color,
2324
modifier = modifier
2425
.wrapContentSize()
2526
.padding(

0 commit comments

Comments
 (0)