Skip to content

Commit

Permalink
Merge branch 'trunk' into merge/release-21.6-into-trunk
Browse files Browse the repository at this point in the history
  • Loading branch information
samiuelson authored Feb 7, 2025
2 parents 970a960 + eef0488 commit e800c58
Show file tree
Hide file tree
Showing 1,534 changed files with 240,519 additions and 362 deletions.
16 changes: 13 additions & 3 deletions .buildkite/schedules/dependency-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,21 @@ agents:
steps:
- label: "dependency analysis"
command: |
.buildkite/commands/restore-cache.sh
echo "--- 📊 Analyzing"
./gradlew buildHealth
plugins: [$CI_TOOLKIT]
artifact_paths:
- "build/reports/dependency-analysis/build-health-report.*"
notify:
- slack: "#android-core-notifs"
if: build.state == "failed"

notify:
- slack:
channels:
- "#android-core-notifs"
message: "Dependency analysis succeeded."
if: build.state == "passed"
- slack:
channels:
- "#android-core-notifs"
message: "Dependency analysis failed."
if: build.state == "failed"
2 changes: 1 addition & 1 deletion .buildkite/shared-pipeline-vars
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
# This file is `source`'d before calling `buildkite-agent pipeline upload`, and can be used
# to set up some variables that will be interpolated in the `.yml` pipeline before uploading it.

export CI_TOOLKIT="automattic/a8c-ci-toolkit#3.9.1"
export CI_TOOLKIT="automattic/a8c-ci-toolkit#3.10.1"
export TEST_COLLECTOR="test-collector#v1.10.1"
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@


<h1 align="center"><img src="docs/images/logo-woocommerce.svg" width="300"><br>for Android</h1>
<h1 align="center"><img src="https://github.com/user-attachments/assets/00bcaf7b-570b-41cd-9faa-187ed15beb40" width="300"><br>for Android</h1>

<p align="center">A Jetpack-powered mobile app for WooCommerce.</p>

Expand Down
11 changes: 3 additions & 8 deletions WooCommerce-Wear/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ plugins {
alias(libs.plugins.google.dagger.hilt)
alias(libs.plugins.ksp)
alias(libs.plugins.sentry)
alias(libs.plugins.dependency.analysis)
}

sentry {
Expand Down Expand Up @@ -124,14 +125,8 @@ android {
dependencies {
// Project
implementation project(":libs:commons")
implementation("${gradle.ext.fluxCBinaryPath}:${libs.versions.wordpress.fluxc.get()}") {
exclude group: "com.android.support"
exclude group: "org.wordpress", module: "utils"
}
implementation("${gradle.ext.fluxCWooCommercePluginBinaryPath}:${libs.versions.wordpress.fluxc.get()}") {
exclude group: "com.android.support"
exclude group: "org.wordpress", module: "utils"
}
implementation(project(":libs:fluxc"))
implementation(project(":libs:fluxc-plugin"))
implementation(libs.wordpress.utils) {
exclude group: "com.mcxiaoke.volley"
exclude group: "com.android.support"
Expand Down
19 changes: 5 additions & 14 deletions WooCommerce/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ plugins {
alias(libs.plugins.ksp)
alias(libs.plugins.google.protobuf)
alias(libs.plugins.fladle)
alias(libs.plugins.dependency.analysis)
}

fladle {
Expand Down Expand Up @@ -245,19 +246,9 @@ dependencies {
implementation(libs.automattic.tracks.android)
implementation(libs.automattic.tracks.crashlogging)

implementation("${gradle.ext.fluxCBinaryPath}:${libs.versions.wordpress.fluxc.get()}") {
exclude group: "com.android.support"
exclude group: "org.wordpress", module: "utils"
}
implementation("${gradle.ext.fluxCWooCommercePluginBinaryPath}:${libs.versions.wordpress.fluxc.get()}") {
exclude group: "com.android.support"
exclude group: "org.wordpress", module: "utils"
}

implementation("$gradle.ext.loginFlowBinaryPath:${libs.versions.wordpress.login.get()}") {
exclude group: "org.wordpress", module: "utils"
exclude group: "org.wordpress", module: "fluxc"
}
implementation(project(":libs:fluxc"))
implementation(project(":libs:fluxc-plugin"))
implementation(project(":libs:login"))

implementation(libs.wordpress.aztec.main) {
exclude group: "com.android.volley"
Expand Down Expand Up @@ -348,7 +339,7 @@ dependencies {
exclude group: "com.google.protobuf", module: "protobuf-lite"
}
androidTestImplementation(libs.google.dagger.hilt.android.testing)
kspAndroidTest(libs.google.dagger.hilt.android.compiler)
kspAndroidTest(libs.google.dagger.hilt.compiler)
androidTestImplementation(libs.androidx.test.uiautomator)

// Dependencies for screenshots
Expand Down
57 changes: 1 addition & 56 deletions WooCommerce/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -85,63 +85,8 @@
}
###### SavedStateHandleExt - end

# This is generated automatically by the Android Gradle plugin. (8.1.0)
-dontwarn com.google.auto.service.AutoService
-dontwarn com.squareup.kotlinpoet.FileSpec
-dontwarn com.squareup.kotlinpoet.OriginatingElementsHolder
-dontwarn com.squareup.kotlinpoet.OriginatingElementsHolder$Builder
-dontwarn com.squareup.kotlinpoet.javapoet.J2kInteropKt
-dontwarn com.squareup.kotlinpoet.javapoet.K2jInteropKt
# This is generated automatically by the Android Gradle plugin.
-dontwarn java.beans.ConstructorProperties
-dontwarn java.beans.Transient
-dontwarn javax.lang.model.SourceVersion
-dontwarn javax.lang.model.element.AnnotationMirror
-dontwarn javax.lang.model.element.AnnotationValue
-dontwarn javax.lang.model.element.AnnotationValueVisitor
-dontwarn javax.lang.model.element.Element
-dontwarn javax.lang.model.element.ElementKind
-dontwarn javax.lang.model.element.ElementVisitor
-dontwarn javax.lang.model.element.ExecutableElement
-dontwarn javax.lang.model.element.Modifier
-dontwarn javax.lang.model.element.Name
-dontwarn javax.lang.model.element.NestingKind
-dontwarn javax.lang.model.element.PackageElement
-dontwarn javax.lang.model.element.QualifiedNameable
-dontwarn javax.lang.model.element.TypeElement
-dontwarn javax.lang.model.element.TypeParameterElement
-dontwarn javax.lang.model.element.VariableElement
-dontwarn javax.lang.model.type.ArrayType
-dontwarn javax.lang.model.type.DeclaredType
-dontwarn javax.lang.model.type.ErrorType
-dontwarn javax.lang.model.type.ExecutableType
-dontwarn javax.lang.model.type.IntersectionType
-dontwarn javax.lang.model.type.NoType
-dontwarn javax.lang.model.type.NullType
-dontwarn javax.lang.model.type.PrimitiveType
-dontwarn javax.lang.model.type.TypeKind
-dontwarn javax.lang.model.type.TypeMirror
-dontwarn javax.lang.model.type.TypeVariable
-dontwarn javax.lang.model.type.TypeVisitor
-dontwarn javax.lang.model.type.UnionType
-dontwarn javax.lang.model.type.WildcardType
-dontwarn javax.lang.model.util.AbstractAnnotationValueVisitor8
-dontwarn javax.lang.model.util.AbstractElementVisitor8
-dontwarn javax.lang.model.util.AbstractTypeVisitor8
-dontwarn javax.lang.model.util.ElementFilter
-dontwarn javax.lang.model.util.Elements
-dontwarn javax.lang.model.util.SimpleAnnotationValueVisitor6
-dontwarn javax.lang.model.util.SimpleAnnotationValueVisitor7
-dontwarn javax.lang.model.util.SimpleAnnotationValueVisitor8
-dontwarn javax.lang.model.util.SimpleElementVisitor8
-dontwarn javax.lang.model.util.SimpleTypeVisitor7
-dontwarn javax.lang.model.util.SimpleTypeVisitor8
-dontwarn javax.lang.model.util.Types
-dontwarn javax.tools.Diagnostic$Kind
-dontwarn javax.tools.FileObject
-dontwarn javax.tools.JavaFileManager$Location
-dontwarn javax.tools.JavaFileObject
-dontwarn javax.tools.JavaFileObject$Kind
-dontwarn javax.tools.SimpleJavaFileObject
-dontwarn javax.tools.StandardLocation
-dontwarn org.slf4j.impl.StaticLoggerBinder
-dontwarn org.slf4j.impl.StaticMDCBinder
4 changes: 0 additions & 4 deletions WooCommerce/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -160,10 +160,6 @@
android:name="org.wordpress.android.mediapicker.ui.MediaPickerActivity"
android:theme="@style/Theme.Woo.DayNight" />
<!-- Make sure portrait screen orientation is not required for the installation of the app -->
<activity
android:name="com.google.mlkit.vision.codescanner.internal.GmsBarcodeScanningDelegateActivity"
android:screenOrientation="unspecified"
tools:replace="android:screenOrientation" />
<activity
android:name="com.woocommerce.android.ui.woopos.root.WooPosActivity"
android:theme="@style/Theme.WooPos"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,6 @@ enum class AnalyticsEvent(override val siteless: Boolean = false) : IAnalyticsEv
DASHBOARD_STATS_CUSTOM_RANGE_ADD_BUTTON_TAPPED,
DASHBOARD_STATS_CUSTOM_RANGE_CONFIRMED,
DASHBOARD_STATS_CUSTOM_RANGE_EDIT_BUTTON_TAPPED,
DASHBOARD_STATS_CUSTOM_RANGE_INTERACTED,
DYNAMIC_DASHBOARD_EDIT_LAYOUT_BUTTON_TAPPED,
DYNAMIC_DASHBOARD_HIDE_CARD_TAPPED,
DYNAMIC_DASHBOARD_EDITOR_SAVE_TAPPED,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package com.woocommerce.android.extensions

import android.app.Activity
import android.app.Activity.OVERRIDE_TRANSITION_CLOSE
import android.app.Activity.OVERRIDE_TRANSITION_OPEN
import androidx.annotation.AnimRes
import androidx.fragment.app.FragmentActivity
import com.woocommerce.android.support.help.HelpActivity
import com.woocommerce.android.support.help.HelpOrigin
import com.woocommerce.android.util.SystemVersionUtils

/**
* Used for starting the HelpActivity in a wrapped way whenever a troubleshooting URL click happens
Expand All @@ -22,3 +26,20 @@ var Activity.currentScreenBrightness: Float
set(value) {
window.attributes = window.attributes.apply { screenBrightness = value }
}

fun Activity.adjustActivityTransition(
overrideTransitionOpen: Boolean = true,
@AnimRes enterAnim: Int,
@AnimRes exitAnim: Int,
) {
if (SystemVersionUtils.isAtLeastU()) {
overrideActivityTransition(
if (overrideTransitionOpen) OVERRIDE_TRANSITION_OPEN else OVERRIDE_TRANSITION_CLOSE,
enterAnim,
exitAnim
)
} else {
@Suppress("DEPRECATION")
overridePendingTransition(enterAnim, exitAnim)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package com.woocommerce.android.support.requests

import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import android.view.MenuItem
import androidx.activity.viewModels
Expand All @@ -13,6 +12,7 @@ import com.woocommerce.android.R
import com.woocommerce.android.analytics.AnalyticsEvent
import com.woocommerce.android.analytics.AnalyticsTracker
import com.woocommerce.android.databinding.ActivitySupportRequestFormBinding
import com.woocommerce.android.extensions.adjustActivityTransition
import com.woocommerce.android.extensions.serializable
import com.woocommerce.android.support.SupportHelper
import com.woocommerce.android.support.help.HelpOrigin
Expand All @@ -22,7 +22,6 @@ import com.woocommerce.android.support.requests.SupportRequestFormViewModel.Show
import com.woocommerce.android.support.zendesk.TicketType
import com.woocommerce.android.support.zendesk.ZendeskSettings
import com.woocommerce.android.ui.dialog.WooDialog
import com.woocommerce.android.util.SystemVersionUtils
import com.woocommerce.android.widgets.CustomProgressDialog
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
Expand Down Expand Up @@ -58,43 +57,24 @@ class SupportRequestFormActivity : AppCompatActivity() {
}
viewModel.onViewCreated()

adjustActivityTransitions()
if (isPOS()) {
adjustActivityTransition(
overrideTransitionOpen = true,
enterAnim = R.anim.woopos_slide_in_right,
exitAnim = R.anim.woopos_slide_out_left,
)
}
}

override fun finish() {
super.finish()
adjustExitTransition()
}

private fun SupportRequestFormActivity.adjustActivityTransitions() {
if (isPOS()) {
if (SystemVersionUtils.isAtLeastU()) {
overrideActivityTransition(
OVERRIDE_TRANSITION_CLOSE,
R.anim.woopos_slide_in_left,
R.anim.woopos_slide_out_right,
Color.TRANSPARENT
)
overrideActivityTransition(
OVERRIDE_TRANSITION_OPEN,
R.anim.woopos_slide_in_right,
R.anim.woopos_slide_out_left,
Color.TRANSPARENT
)
} else {
@Suppress("DEPRECATION")
overridePendingTransition(
R.anim.woopos_slide_in_right,
R.anim.woopos_slide_out_left
)
}
}
}

private fun adjustExitTransition() {
if (isPOS() && SystemVersionUtils.isAtMostT()) {
@Suppress("DEPRECATION")
overridePendingTransition(
if (isPOS()) {
adjustActivityTransition(
overrideTransitionOpen = false,
R.anim.woopos_slide_in_left,
R.anim.woopos_slide_out_right
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,21 @@ interface UIMessageResolver {
anchorViewId?.let { setAnchorView(it) }
}

/**
* Create and return a snackbar with the provided [UiString].
*
* @param [stringResId] The string resource id of the base message
* @param [stringArgs] Optional. One or more format argument stringArgs
*/
fun getUiStringSnack(message: UiString) = when (message) {
is UiString.UiStringRes ->
Snackbar.make(snackbarRoot, message.stringRes, BaseTransientBottomBar.LENGTH_LONG)

is UiString.UiStringText -> Snackbar.make(snackbarRoot, message.text, BaseTransientBottomBar.LENGTH_LONG)
}.apply {
anchorViewId?.let { setAnchorView(it) }
}

/**
* Display a snackbar with the provided message.
*
Expand Down Expand Up @@ -265,6 +280,7 @@ interface UIMessageResolver {
val snackbar = when (message) {
is UiString.UiStringRes ->
Snackbar.make(snackbarRoot, message.stringRes, BaseTransientBottomBar.LENGTH_LONG)

is UiString.UiStringText -> Snackbar.make(snackbarRoot, message.text, BaseTransientBottomBar.LENGTH_LONG)
}.apply {
anchorViewId?.let { setAnchorView(it) }
Expand Down Expand Up @@ -296,6 +312,7 @@ interface UIMessageResolver {
snackbar.show()
}
}

private fun getIndefiniteSnackbarWithAction(
view: View,
msg: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,4 @@ class DashboardStatsUsageTracksEventEmitter @Inject constructor(
firstInteractionTime = null
lastInteractionTime = null
}

fun interactedWithCustomRange() {
analyticsTrackerWrapper.track(AnalyticsEvent.DASHBOARD_STATS_CUSTOM_RANGE_INTERACTED)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ fun DashboardStatsCard(
dateUtils = viewModel.dateUtils,
currencyFormatter = viewModel.currencyFormatter,
usageTracksEventEmitter = viewModel.usageTracksEventEmitter,
onAddCustomRangeClick = viewModel::onAddCustomRangeClicked,
onAddCustomRangeClick = viewModel::onEditCustomRangeTapped,
onTabSelected = viewModel::onRangeChanged,
onChartDateSelected = viewModel::onChartDateSelected
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,14 @@ import com.github.mikephil.charting.listener.OnChartValueSelectedListener
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.woocommerce.android.R
import com.woocommerce.android.analytics.AnalyticsEvent
import com.woocommerce.android.analytics.AnalyticsEvent.DYNAMIC_DASHBOARD_CARD_INTERACTED
import com.woocommerce.android.analytics.AnalyticsTracker
import com.woocommerce.android.analytics.AnalyticsTracker.Companion.KEY_DATE
import com.woocommerce.android.analytics.AnalyticsTracker.Companion.KEY_GRANULARITY
import com.woocommerce.android.analytics.AnalyticsTracker.Companion.KEY_RANGE
import com.woocommerce.android.databinding.MyStoreStatsBinding
import com.woocommerce.android.extensions.convertedFrom
import com.woocommerce.android.model.DashboardWidget
import com.woocommerce.android.ui.analytics.ranges.StatsTimeRangeSelection
import com.woocommerce.android.ui.analytics.ranges.StatsTimeRangeSelection.SelectionType
import com.woocommerce.android.ui.analytics.ranges.myStoreTrackingGranularityString
Expand Down Expand Up @@ -180,10 +182,10 @@ class DashboardStatsView @JvmOverloads constructor(
.debounce(EVENT_EMITTER_INTERACTION_DEBOUNCE)
.collect {
usageTracksEventEmitter.interacted()

if (statsTimeRangeSelection.selectionType == SelectionType.CUSTOM) {
usageTracksEventEmitter.interactedWithCustomRange()
}
AnalyticsTracker.track(
DYNAMIC_DASHBOARD_CARD_INTERACTED,
mapOf(AnalyticsTracker.KEY_TYPE to DashboardWidget.Type.STATS.trackingIdentifier)
)
}
}
}
Expand Down
Loading

0 comments on commit e800c58

Please sign in to comment.