From 56685613756fae31f8c6ae03c6c971f00a648bf9 Mon Sep 17 00:00:00 2001 From: Pantelis Stampoulis Date: Tue, 30 Jan 2024 10:03:03 +0200 Subject: [PATCH 1/6] Modify colors for site monitor tabs --- .../ui/sitemonitor/SiteMonitorTabHeader.kt | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabHeader.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabHeader.kt index 1bf493f7c49d..927918afa815 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabHeader.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabHeader.kt @@ -1,9 +1,11 @@ package org.wordpress.android.ui.sitemonitor import androidx.compose.foundation.layout.Column -import androidx.compose.material3.MaterialTheme +import androidx.compose.material.MaterialTheme import androidx.compose.material3.Tab import androidx.compose.material3.TabRow +import androidx.compose.material3.TabRowDefaults +import androidx.compose.material3.TabRowDefaults.tabIndicatorOffset import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -11,8 +13,10 @@ import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp @Composable @@ -25,8 +29,16 @@ fun SiteMonitorTabHeader(navController: (String) -> Unit) { ) TabRow( selectedTabIndex = selectedTabIndex, - containerColor = MaterialTheme.colorScheme.surface, - contentColor = MaterialTheme.colorScheme.onSurface, + containerColor = MaterialTheme.colors.surface, + contentColor = MaterialTheme.colors.onSurface, + indicator = { tabPositions -> + // Customizing the indicator color and style + TabRowDefaults.Indicator( + Modifier.tabIndicatorOffset(tabPositions[selectedTabIndex]), + color = MaterialTheme.colors.onSurface, + height = 2.0.dp + ) + } ) { tabs.forEachIndexed { index, item -> Tab( From 294ac0bf4b68a4262ab86897afea4d7426303841 Mon Sep 17 00:00:00 2001 From: Pantelis Stampoulis Date: Tue, 30 Jan 2024 10:03:38 +0200 Subject: [PATCH 2/6] Add analytics for site monitor tabs --- .../android/ui/sitemonitor/SiteMonitorParentActivity.kt | 9 +++++++++ .../android/ui/sitemonitor/SiteMonitorTabViewModel.kt | 1 - .../android/ui/sitemonitor/SiteMonitorUiState.kt | 8 ++++---- .../wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt | 8 +++++++- .../wordpress/android/analytics/AnalyticsTracker.java | 1 + .../android/analytics/AnalyticsTrackerNosara.java | 2 ++ 6 files changed, 23 insertions(+), 6 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorParentActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorParentActivity.kt index c2118117baf2..9a9c52b4920b 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorParentActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorParentActivity.kt @@ -28,15 +28,22 @@ import org.wordpress.android.ui.compose.components.MainTopAppBar import org.wordpress.android.ui.compose.components.NavigationIcons import org.wordpress.android.ui.compose.theme.AppTheme import org.wordpress.android.util.extensions.getSerializableExtraCompat +import javax.inject.Inject @AndroidEntryPoint class SiteMonitorParentActivity: AppCompatActivity() { + @Inject + lateinit var siteMonitorUtils: SiteMonitorUtils + private var savedStateSparseArray = SparseArray() private var currentSelectItemId = 0 @Suppress("DEPRECATION") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + + siteMonitorUtils.trackActivityLaunched() + if (savedInstanceState != null) { savedStateSparseArray = savedInstanceState.getSparseParcelableArray( SAVED_STATE_CONTAINER_KEY @@ -98,6 +105,8 @@ class SiteMonitorParentActivity: AppCompatActivity() { it.route == selectedTab } ?: initialItem(getInitialTab()) + siteMonitorUtils.trackTabLoaded(item.siteMonitorType) + SiteMonitorFragmentContainer( modifier = Modifier.fillMaxSize(), commit = getCommitFunction( diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabViewModel.kt index aaae3507f424..6da26dbb7e77 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabViewModel.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabViewModel.kt @@ -106,7 +106,6 @@ class SiteMonitorTabViewModel @Inject constructor( } fun onUrlLoaded() { - siteMonitorUtils.trackTabLoaded(siteMonitorType) postUiState(SiteMonitorUiState.Loaded) } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUiState.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUiState.kt index 50bca3c0dec8..8b7dee5a31cc 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUiState.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUiState.kt @@ -51,8 +51,8 @@ data class SiteMonitorModel( val url: String, val addressToLoad: String ) -enum class SiteMonitorType { - METRICS, - PHP_LOGS, - WEB_SERVER_LOGS +enum class SiteMonitorType(val analyticsDescription: String) { + METRICS("metrics"), + PHP_LOGS("php_logs"), + WEB_SERVER_LOGS("server_logs") } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt index f4e7fe8c098d..d42bbe4c9fc6 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt @@ -21,6 +21,7 @@ class SiteMonitorUtils @Inject constructor( fun trackActivityLaunched() { + Log.i(javaClass.simpleName, "track Site Monitor screen shown") analyticsTrackerWrapper.track(AnalyticsTracker.Stat.SITE_MONITORING_SCREEN_SHOWN) } @@ -35,13 +36,18 @@ class SiteMonitorUtils @Inject constructor( } fun trackTabLoaded(siteMonitorType: SiteMonitorType) { - // todo: need to set this up properly with track events Log.i(javaClass.simpleName, "track TabLoaded with $siteMonitorType") + analyticsTrackerWrapper.track( + AnalyticsTracker.Stat.SITE_MONITORING_TAB_SHOWN, + mapOf( + TAB_TRACK_KEY to siteMonitorType + )) } companion object { const val HTTP_PATTERN = "(https?://)" const val PHP_LOGS_PATTERN = "/php" const val WEB_SERVER_LOGS_PATTERN = "/web" + const val TAB_TRACK_KEY = "tab" } } diff --git a/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java b/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java index ba65e2e228ea..4ecc68844c66 100644 --- a/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java +++ b/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java @@ -1103,6 +1103,7 @@ public enum Stat { DEEP_LINK_FAILED, SITE_MONITORING_SCREEN_SHOWN, OPENED_SITE_MONITORING, + SITE_MONITORING_TAB_SHOWN, } private static final List TRACKERS = new ArrayList<>(); diff --git a/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java b/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java index 6a83354fe74d..6bc51ec5bdbf 100644 --- a/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java +++ b/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTrackerNosara.java @@ -2699,6 +2699,8 @@ public static String getEventNameForStat(AnalyticsTracker.Stat stat) { return "site_monitoring_screen_shown"; case OPENED_SITE_MONITORING: return "opened_site_monitoring"; + case SITE_MONITORING_TAB_SHOWN: + return "site_monitoring_tab_shown"; } return null; } From 3a7b6d8efb42b5c3a68727782bc566ab0c49f7a9 Mon Sep 17 00:00:00 2001 From: Ajesh R Pai Date: Tue, 30 Jan 2024 15:43:52 +0530 Subject: [PATCH 3/6] - Removes: redundant logging information from the code base --- .../android/ui/sitemonitor/SiteMonitorTabViewModel.kt | 2 -- .../org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt | 3 --- 2 files changed, 5 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabViewModel.kt index 6da26dbb7e77..275c65087676 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabViewModel.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabViewModel.kt @@ -1,7 +1,6 @@ package org.wordpress.android.ui.sitemonitor import android.text.TextUtils -import android.util.Log import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.flow.MutableStateFlow @@ -32,7 +31,6 @@ class SiteMonitorTabViewModel @Inject constructor( val uiState: StateFlow = _uiState fun start(type: SiteMonitorType, urlTemplate: String, site: SiteModel) { - Log.i("Track", "TheViewModel start with $urlTemplate and $type") this.siteMonitorType = type this.urlTemplate = urlTemplate this.site = site diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt index d42bbe4c9fc6..f4322eaf7685 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt @@ -1,6 +1,5 @@ package org.wordpress.android.ui.sitemonitor -import android.util.Log import org.wordpress.android.WordPress import org.wordpress.android.analytics.AnalyticsTracker import org.wordpress.android.ui.WPWebViewActivity @@ -21,7 +20,6 @@ class SiteMonitorUtils @Inject constructor( fun trackActivityLaunched() { - Log.i(javaClass.simpleName, "track Site Monitor screen shown") analyticsTrackerWrapper.track(AnalyticsTracker.Stat.SITE_MONITORING_SCREEN_SHOWN) } @@ -36,7 +34,6 @@ class SiteMonitorUtils @Inject constructor( } fun trackTabLoaded(siteMonitorType: SiteMonitorType) { - Log.i(javaClass.simpleName, "track TabLoaded with $siteMonitorType") analyticsTrackerWrapper.track( AnalyticsTracker.Stat.SITE_MONITORING_TAB_SHOWN, mapOf( From 3116c92a9bfe52eed389ead82df1ff22da3248bc Mon Sep 17 00:00:00 2001 From: Ajesh R Pai Date: Tue, 30 Jan 2024 15:44:18 +0530 Subject: [PATCH 4/6] + Adds: tab tracking to the analytics event --- .../org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt index f4322eaf7685..8ab932a5b86c 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt @@ -37,7 +37,7 @@ class SiteMonitorUtils @Inject constructor( analyticsTrackerWrapper.track( AnalyticsTracker.Stat.SITE_MONITORING_TAB_SHOWN, mapOf( - TAB_TRACK_KEY to siteMonitorType + TAB_TRACK_KEY to siteMonitorType.analyticsDescription )) } From 849484fa790de77ab19178cbdb771090568587d9 Mon Sep 17 00:00:00 2001 From: Ajesh R Pai Date: Tue, 30 Jan 2024 15:44:57 +0530 Subject: [PATCH 5/6] - Removes: redundant function --- .../wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt | 8 -------- 1 file changed, 8 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt index 8ab932a5b86c..a4b25ed2a1c7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorUtils.kt @@ -25,14 +25,6 @@ class SiteMonitorUtils @Inject constructor( fun sanitizeSiteUrl(url: String?) = url?.replace(Regex(HTTP_PATTERN), "") ?: "" - fun urlToType(url: String): SiteMonitorType { - return when { - url.contains(PHP_LOGS_PATTERN) -> SiteMonitorType.PHP_LOGS - url.contains(WEB_SERVER_LOGS_PATTERN) -> SiteMonitorType.WEB_SERVER_LOGS - else -> SiteMonitorType.METRICS - } - } - fun trackTabLoaded(siteMonitorType: SiteMonitorType) { analyticsTrackerWrapper.track( AnalyticsTracker.Stat.SITE_MONITORING_TAB_SHOWN, From f59c5dfd27ea847c1432ec0e71ff1358c1950901 Mon Sep 17 00:00:00 2001 From: Ajesh R Pai Date: Tue, 30 Jan 2024 15:51:41 +0530 Subject: [PATCH 6/6] Updates: the tab title to default height --- .../wordpress/android/ui/sitemonitor/SiteMonitorTabHeader.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabHeader.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabHeader.kt index 927918afa815..7a15059a31fc 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabHeader.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitemonitor/SiteMonitorTabHeader.kt @@ -17,7 +17,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp @Composable fun SiteMonitorTabHeader(navController: (String) -> Unit) { @@ -46,7 +45,6 @@ fun SiteMonitorTabHeader(navController: (String) -> Unit) { Column (horizontalAlignment = Alignment.CenterHorizontally) { Text( text = stringResource(item.title), - fontSize = 12.sp, maxLines = 1, overflow = TextOverflow.Ellipsis )