Skip to content

Commit

Permalink
Merge pull request #99 from makeen-project/ALS-1806
Browse files Browse the repository at this point in the history
  • Loading branch information
olegfilimonov authored Sep 5, 2024
2 parents 04a2020 + 1f524d6 commit f8d3975
Show file tree
Hide file tree
Showing 16 changed files with 7 additions and 808 deletions.
41 changes: 2 additions & 39 deletions .github/workflows/build-android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ concurrency:
cancel-in-progress: true
on:
workflow_dispatch:
push:
branches: [ develop, main, master ]
jobs:
startSlackNotification:
name: Slack Starting Notification
Expand Down Expand Up @@ -53,45 +55,6 @@ jobs:
base64 -d <<< ${{ secrets.SECRETS }} > custom.properties
ls .signing
- name: e2e tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 34
arch: arm64-v8a
target: playstore
avd-name: test
force-avd-creation: false
disable-animations: true
script: |
adb uninstall com.aws.amazonlocation
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.DefaultConnectionFlowSuite
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.DefaultConnectionFlowSuite2
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.AWSConnectionSuite
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.AWSSignInSuite
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.TrackingStartTrackingTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.TrackingStopTrackingTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.TrackingDeleteTrackingHistoryTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.TrackingStartTrackingHistoryLoggedTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.TrackingStartTrackingMapDisplayTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.GeofenceAddTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.TrackingGeofenceEnterTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.TrackingGeofenceExitTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.TrackingDeleteTrackingHistoryTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.GeofenceEditTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.GeofenceDeleteTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.SettingSignOutTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.SettingSignInTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.SettingAWSDisconnectingTest
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aws.amazonlocation.ui.main.ConnectToAWSTest
- name: Upload test results
uses: actions/upload-artifact@v2
if: always()
with:
name: test-results
path: app/build/reports/androidTests/connected/
retention-days: 1

- name: Build APK
run: |
export BUILD_NUM=$((${{ github.run_number }}))
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
./gradlew testDebugUnitTest
- name: Upload test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
if: always()
with:
name: test-results
Expand Down
78 changes: 2 additions & 76 deletions app/src/main/java/com/aws/amazonlocation/ui/main/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import androidx.navigation.ui.setupWithNavController
import aws.sdk.kotlin.services.cognitoidentity.model.Credentials
import aws.sdk.kotlin.services.iot.IotClient
import aws.sdk.kotlin.services.iot.model.AttachPolicyRequest
import com.aws.amazonlocation.AmazonLocationApp
import com.aws.amazonlocation.BuildConfig
import com.aws.amazonlocation.R
import com.aws.amazonlocation.data.common.onError
Expand All @@ -50,15 +49,12 @@ import com.aws.amazonlocation.ui.main.simulation.SimulationUtils
import com.aws.amazonlocation.ui.main.welcome.WelcomeBottomSheetFragment
import com.aws.amazonlocation.utils.ABOUT_FRAGMENT
import com.aws.amazonlocation.utils.AWS_CLOUD_INFORMATION_FRAGMENT
import com.aws.amazonlocation.utils.AnalyticsAttribute
import com.aws.amazonlocation.utils.AnalyticsAttributeValue
import com.aws.amazonlocation.utils.AnalyticsHelper
import com.aws.amazonlocation.utils.AwsSignerInterceptor
import com.aws.amazonlocation.utils.ConnectivityObserveInterface
import com.aws.amazonlocation.utils.DELAY_LANGUAGE_3000
import com.aws.amazonlocation.utils.Durations.DELAY_FOR_FRAGMENT_LOAD
import com.aws.amazonlocation.utils.EnableTrackerInterface
import com.aws.amazonlocation.utils.EventType
import com.aws.amazonlocation.utils.IOT_POLICY
import com.aws.amazonlocation.utils.IOT_POLICY_UN_AUTH
import com.aws.amazonlocation.utils.IS_APP_FIRST_TIME_OPENED
Expand Down Expand Up @@ -102,7 +98,6 @@ import com.aws.amazonlocation.utils.getLanguageCode
import com.aws.amazonlocation.utils.hide
import com.aws.amazonlocation.utils.hideViews
import com.aws.amazonlocation.utils.invisible
import com.aws.amazonlocation.utils.isRunningTest
import com.aws.amazonlocation.utils.makeTransparentStatusBar
import com.aws.amazonlocation.utils.regionDisplayName
import com.aws.amazonlocation.utils.setLocale
Expand All @@ -117,17 +112,14 @@ import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
import okhttp3.OkHttpClient
import org.maplibre.android.module.http.HttpRequestUtil
import org.maplibre.android.utils.ThreadUtils.init
import software.amazon.location.auth.EncryptedSharedPreferences

// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

// SPDX-License-Identifier: MIT-0
class MainActivity :
BaseActivity(),
CrashListener {
BaseActivity() {
private var isSessionStarted: Boolean = false
var analyticsHelper: AnalyticsHelper? = null
private var isMapStyleChangeCalled: Boolean = false
private var isAppNotFirstOpened: Boolean = false
private var reStartApp: Boolean = false
Expand Down Expand Up @@ -256,14 +248,6 @@ class MainActivity :
setBottomBar()
hideProgress()
showError("Sign in failed")
val propertiesAws =
listOf(
Pair(
AnalyticsAttribute.TRIGGERED_BY,
AnalyticsAttributeValue.EXPLORER,
),
)
analyticsHelper?.recordEvent(EventType.SIGN_IN_FAILED, propertiesAws)
}

@SuppressLint("SourceLockedOrientationActivity")
Expand All @@ -273,19 +257,12 @@ class MainActivity :
window.setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN,
)
if (!isRunningTest) {
(application as AmazonLocationApp).setCrashListener(this)
}
isTablet = resources.getBoolean(R.bool.is_tablet)
if (!isTablet) {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
}
mBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(mBinding.root)
analyticsHelper =
AnalyticsHelper(this@MainActivity, mAWSLocationHelper, mPreferenceManager)
analyticsHelper?.initAnalytics()
analyticsHelper?.startSession()
checkRtl()
makeTransparentStatusBar()
checkInternetObserver()
Expand Down Expand Up @@ -475,28 +452,11 @@ class MainActivity :
}.await()
}
getTokenAndAttachPolicy()
val propertiesAws =
listOf(
Pair(
AnalyticsAttribute.TRIGGERED_BY,
AnalyticsAttributeValue.EXPLORER,
),
)
analyticsHelper?.recordEvent(EventType.SIGN_IN_SUCCESSFUL, propertiesAws)
}.onError { it ->
setBottomBar()
hideProgress()
it.messageResource?.let {
showError(it.toString())

val propertiesAws =
listOf(
Pair(
AnalyticsAttribute.TRIGGERED_BY,
AnalyticsAttributeValue.EXPLORER,
),
)
analyticsHelper?.recordEvent(EventType.SIGN_IN_FAILED, propertiesAws)
}
}
}
Expand Down Expand Up @@ -636,27 +596,15 @@ class MainActivity :

fun setSelectedScreen(screen: String) {
currentPage = screen
val properties =
listOf(
Pair(AnalyticsAttribute.SCREEN_NAME, screen),
)
analyticsHelper?.recordEvent(EventType.SCREEN_OPEN, properties)
}

fun exitScreen() {
currentPage?.let {
val properties =
listOf(
Pair(AnalyticsAttribute.SCREEN_NAME, it),
)
analyticsHelper?.recordEvent(EventType.SCREEN_CLOSE, properties)
}
currentPage?.let {}
}

override fun onDestroy() {
super.onDestroy()
KeyBoardUtils.detachKeyboardListeners(mBinding.root)
analyticsHelper?.stopSession()
}

private fun initClick() {
Expand Down Expand Up @@ -1180,11 +1128,6 @@ class MainActivity :
SignInConnectInterface {
override fun signIn(dialog: Dialog?) {
mBottomSheetDialog = dialog
val propertiesAws =
listOf(
Pair(AnalyticsAttribute.TRIGGERED_BY, AnalyticsAttributeValue.EXPLORER),
)
analyticsHelper?.recordEvent(EventType.SIGN_IN_STARTED, propertiesAws)
openSingIn()
}

Expand All @@ -1198,11 +1141,6 @@ class MainActivity :
object : SignInRequiredInterface {
override fun signInClick(dialog: Dialog?) {
mBottomSheetDialog = dialog
val propertiesAws =
listOf(
Pair(AnalyticsAttribute.TRIGGERED_BY, AnalyticsAttributeValue.EXPLORER),
)
analyticsHelper?.recordEvent(EventType.SIGN_IN_STARTED, propertiesAws)
openSingIn()
}

Expand Down Expand Up @@ -1324,18 +1262,6 @@ class MainActivity :

fun isAppNotFirstOpened(): Boolean = isAppNotFirstOpened

override fun notifyAppCrash(message: String?) {
if (!isDestroyed) {
message?.let {
val properties =
listOf(
Pair(AnalyticsAttribute.ERROR, it),
)
analyticsHelper?.recordEvent(EventType.APPLICATION_ERROR, properties)
}
}
}

fun showSignInRequiredSheet() {
reStartApp = true
if (mGeofenceUtils?.isGeofenceListExpandedOrHalfExpand() == true) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@ import com.aws.amazonlocation.BuildConfig
import com.aws.amazonlocation.R
import com.aws.amazonlocation.databinding.FragmentDataProviderBinding
import com.aws.amazonlocation.ui.base.BaseFragment
import com.aws.amazonlocation.ui.main.MainActivity
import com.aws.amazonlocation.utils.AnalyticsAttribute
import com.aws.amazonlocation.utils.AnalyticsAttributeValue
import com.aws.amazonlocation.utils.EventType
import com.aws.amazonlocation.utils.KEY_GRAB_DONT_ASK
import com.aws.amazonlocation.utils.KEY_MAP_NAME
import com.aws.amazonlocation.utils.KEY_MAP_STYLE_NAME
Expand Down Expand Up @@ -108,14 +104,6 @@ class DataProviderFragment : BaseFragment() {
}

private fun changeDataProviderEsri() {
val properties = listOf(
Pair(AnalyticsAttribute.PROVIDER, resources.getString(R.string.esri)),
Pair(AnalyticsAttribute.TRIGGERED_BY, AnalyticsAttributeValue.SETTINGS)
)
(activity as MainActivity).analyticsHelper?.recordEvent(
EventType.MAP_PROVIDER_CHANGE,
properties
)
changeDataProvider(isEsri = true)
val mapStyle = mPreferenceManager.getValue(
KEY_MAP_STYLE_NAME,
Expand All @@ -138,14 +126,6 @@ class DataProviderFragment : BaseFragment() {
}

private fun changeDataProviderHere() {
val properties = listOf(
Pair(AnalyticsAttribute.PROVIDER, resources.getString(R.string.here)),
Pair(AnalyticsAttribute.TRIGGERED_BY, AnalyticsAttributeValue.SETTINGS)
)
(activity as MainActivity).analyticsHelper?.recordEvent(
EventType.MAP_PROVIDER_CHANGE,
properties
)
changeDataProvider(isHere = true)
val mapStyle = mPreferenceManager.getValue(
KEY_MAP_STYLE_NAME,
Expand All @@ -166,14 +146,6 @@ class DataProviderFragment : BaseFragment() {
}

private fun changeDataProviderOpenData() {
val properties = listOf(
Pair(AnalyticsAttribute.PROVIDER, resources.getString(R.string.open_data)),
Pair(AnalyticsAttribute.TRIGGERED_BY, AnalyticsAttributeValue.SETTINGS)
)
(activity as MainActivity).analyticsHelper?.recordEvent(
EventType.MAP_PROVIDER_CHANGE,
properties
)
changeDataProvider(isOpenData = true)
val mapStyle = mPreferenceManager.getValue(
KEY_MAP_STYLE_NAME,
Expand Down Expand Up @@ -277,14 +249,6 @@ class DataProviderFragment : BaseFragment() {
}
}
private fun changeDataProviderGrab() {
val properties = listOf(
Pair(AnalyticsAttribute.PROVIDER, resources.getString(R.string.grab)),
Pair(AnalyticsAttribute.TRIGGERED_BY, AnalyticsAttributeValue.SETTINGS)
)
(activity as MainActivity).analyticsHelper?.recordEvent(
EventType.MAP_PROVIDER_CHANGE,
properties
)
changeDataProvider(isGrab = true)
val mapStyle = mPreferenceManager.getValue(
KEY_MAP_STYLE_NAME,
Expand Down
Loading

0 comments on commit f8d3975

Please sign in to comment.