Skip to content

Commit

Permalink
Merge pull request #100 from makeen-project/ALS-1806
Browse files Browse the repository at this point in the history
  • Loading branch information
olegfilimonov authored Sep 6, 2024
2 parents f8d3975 + d3412ad commit 57017f3
Show file tree
Hide file tree
Showing 6 changed files with 67 additions and 45 deletions.
31 changes: 21 additions & 10 deletions app/src/main/java/com/aws/amazonlocation/ui/main/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ class MainActivity :
)
}
?: getString(R.string.map_esri)
fragment.mapStyleChange(false, mapNameSelected, mapStyleNameDisplay)
changeMapStyle(mapNameSelected, mapStyleNameDisplay)
}

is AWSCloudInformationFragment -> {
Expand Down Expand Up @@ -444,11 +444,7 @@ class MainActivity :
} ?: getString(R.string.map_esri)
isMapStyleChangeCalled = true
async {
fragment.mapStyleChange(
false,
mapNameSelected,
mapStyleNameDisplay,
)
changeMapStyle(mapNameSelected, mapStyleNameDisplay)
}.await()
}
getTokenAndAttachPolicy()
Expand All @@ -463,6 +459,20 @@ class MainActivity :
}
}

fun changeMapStyle(
mapNameSelected: String,
mapStyleNameDisplay: String,
) {
val fragment = mNavHostFragment.childFragmentManager.fragments[0]
if (fragment is ExploreFragment) {
fragment.mapStyleChange(
false,
mapNameSelected,
mapStyleNameDisplay,
)
}
}

@SuppressLint("SetJavaScriptEnabled")
private fun setSignInOutWebView() {
mBinding.signInWebView.settings.javaScriptEnabled = true
Expand All @@ -477,19 +487,20 @@ class MainActivity :
view: WebView?,
request: WebResourceRequest?,
): Boolean {
hideViews(mBinding.signInWebView, mBinding.ivBackMain, mBinding.viewBottom, mBinding.appCompatTextView)
showViews(mBinding.bottomNavigationMain, mBinding.navHostFragment, mBinding.imgAmazonLogo, mBinding.ivAmazonInfo)
when (request?.url?.host) {
SIGN_OUT -> {
handleAuthorizationCode(SIGN_OUT, null)
hideViews(mBinding.signInWebView, mBinding.ivBackMain, mBinding.viewBottom, mBinding.appCompatTextView)
showViews(mBinding.bottomNavigationMain, mBinding.navHostFragment, mBinding.imgAmazonLogo, mBinding.ivAmazonInfo)
}
SIGN_IN -> {
val authorizationCode = request.url?.getQueryParameter(KEY_CODE)
handleAuthorizationCode(SIGN_IN, authorizationCode)
hideViews(mBinding.signInWebView, mBinding.ivBackMain, mBinding.viewBottom, mBinding.appCompatTextView)
showViews(mBinding.bottomNavigationMain, mBinding.navHostFragment, mBinding.imgAmazonLogo, mBinding.ivAmazonInfo)
}
else -> {
mBottomSheetDialog?.show()
return false
mBinding.signInWebView.loadUrl(request?.url.toString())
}
}
return true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4917,7 +4917,7 @@ class ExploreFragment :
showViews(
mBinding.cardMap,
)
if (mBaseActivity?.mSimulationUtils?.isSimulationBottomSheetVisible() != true) {
if (mBaseActivity?.mSimulationUtils?.isSimulationBottomSheetVisible() != true && mBaseActivity?.mTrackingUtils?.isChangeDataProviderClicked != true && mBaseActivity?.mGeofenceUtils?.isChangeDataProviderClicked != true) {
mBinding.cardGeofenceMap.show()
mBaseActivity?.isTablet?.let {
if (!it) {
Expand All @@ -4928,7 +4928,7 @@ class ExploreFragment :
}
clearMapLineMarker()
clearSearchList()
if (!mBottomSheetHelper.isMapStyleVisible() && mBaseActivity?.mSimulationUtils?.isSimulationBottomSheetVisible() != true) {
if (!mBottomSheetHelper.isMapStyleVisible() && (mBaseActivity?.mSimulationUtils?.isSimulationBottomSheetVisible() != true && mBaseActivity?.mTrackingUtils?.isChangeDataProviderClicked != true && mBaseActivity?.mGeofenceUtils?.isChangeDataProviderClicked != true)) {
mBaseActivity?.bottomNavigationVisibility(true)
mBottomSheetHelper.hideSearchBottomSheet(false)
}
Expand All @@ -4938,7 +4938,7 @@ class ExploreFragment :
mMapHelper.moveCameraToLocation(it1)
}
mBaseActivity?.isTablet?.let {
if (mBaseActivity?.mSimulationUtils?.isSimulationBottomSheetVisible() == true) {
if (mBaseActivity?.mSimulationUtils?.isSimulationBottomSheetVisible() == true && mBaseActivity?.mTrackingUtils?.isChangeDataProviderClicked == true && mBaseActivity?.mGeofenceUtils?.isChangeDataProviderClicked == true) {
return@let
}
if (it) {
Expand Down Expand Up @@ -6311,7 +6311,7 @@ class ExploreFragment :
showViews(
cardMap,
)
if (mBaseActivity?.mSimulationUtils?.isSimulationBottomSheetVisible() != true) {
if (mBaseActivity?.mSimulationUtils?.isSimulationBottomSheetVisible() != true && mBaseActivity?.mTrackingUtils?.isChangeDataProviderClicked != true && mBaseActivity?.mGeofenceUtils?.isChangeDataProviderClicked != true) {
cardGeofenceMap.show()
mBaseActivity?.isTablet?.let {
if (!it) {
Expand All @@ -6323,10 +6323,12 @@ class ExploreFragment :
}
}
clearNavigationData()
if (activity is MainActivity) {
(activity as MainActivity).moveToExploreScreen()
(activity as MainActivity).mGeofenceUtils?.hideAllGeofenceBottomSheet()
(activity as MainActivity).mTrackingUtils?.hideTrackingBottomSheet()
if (mBaseActivity?.mSimulationUtils?.isSimulationBottomSheetVisible() != true && mBaseActivity?.mTrackingUtils?.isChangeDataProviderClicked != true && mBaseActivity?.mGeofenceUtils?.isChangeDataProviderClicked != true) {
if (activity is MainActivity) {
(activity as MainActivity).moveToExploreScreen()
(activity as MainActivity).mGeofenceUtils?.hideAllGeofenceBottomSheet()
(activity as MainActivity).mTrackingUtils?.hideTrackingBottomSheet()
}
}
} catch (e: Exception) {
e.printStackTrace()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ import org.maplibre.android.plugins.annotation.OnSymbolDragListener
@SuppressLint("NotifyDataSetChanged")
class GeofenceUtils {

var isChangeDataProviderClicked: Boolean = false
private var mBottomSheetGeofenceListBehavior: BottomSheetBehavior<ConstraintLayout>? = null
private var mBottomSheetAddGeofenceBehavior: BottomSheetBehavior<ConstraintLayout>? = null

Expand Down Expand Up @@ -356,29 +357,30 @@ class GeofenceUtils {
}
cardTrackerGeofenceSimulation.hide()
btnTryGeofence.setOnClickListener {
preferenceManager?.let {
if (isGrabMapSelected(it, btnTryGeofence.context)) {
preferenceManager?.let { manager ->
if (isGrabMapSelected(manager, btnTryGeofence.context)) {
mActivity?.changeDataProviderDialog(object : ChangeDataProviderInterface {
override fun changeDataProvider(dialog: DialogInterface) {
mActivity?.getString(R.string.map_light)?.let { it1 ->
it.setValue(
manager.setValue(
KEY_MAP_STYLE_NAME,
it1
)
}
mActivity?.getString(R.string.esri)?.let { it1 ->
it.setValue(
manager.setValue(
KEY_MAP_NAME,
it1
)
}
(mActivity as MainActivity).mAWSLocationHelper.locationCredentialsProvider?.clear()
(mActivity as MainActivity).lifecycleScope.launch {
if (!isRunningTest) {
delay(RESTART_DELAY) // Need delay for preference manager to set default config before restarting
mFragmentActivity?.restartApplication()
}
isChangeDataProviderClicked = true
mActivity?.let {
(it as MainActivity).changeMapStyle(
it.getString(R.string.esri),
it.getString(R.string.map_light),
)
}
isChangeDataProviderClicked = false
}
})
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -561,7 +561,7 @@ class SimulationUtils(
}
})

mActivity?.let {
mFragmentActivity?.let {
if (encryptedSharedPreferences == null) {
encryptedSharedPreferences = EncryptedSharedPreferences(
it.applicationContext,
Expand Down Expand Up @@ -808,6 +808,14 @@ class SimulationUtils(

private fun startMqttManager() {
if (mqttClient != null) stopMqttManager()
mActivity?.let {
if (encryptedSharedPreferences == null) {
encryptedSharedPreferences = EncryptedSharedPreferences(
it.applicationContext,
PREFS_NAME_AUTH
).apply { initEncryptedSharedPreferences() }
}
}
val identityId = encryptedSharedPreferences?.get(PREFS_KEY_IDENTITY_ID)
val defaultIdentityPoolId: String = Units.getDefaultIdentityPoolId(
mPreferenceManager?.getValue(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ import com.aws.amazonlocation.utils.LANGUAGE_CODE_HEBREW_1
import com.aws.amazonlocation.utils.MapHelper
import com.aws.amazonlocation.utils.MessageInterface
import com.aws.amazonlocation.utils.PreferenceManager
import com.aws.amazonlocation.utils.RESTART_DELAY
import com.aws.amazonlocation.utils.TIME_OUT
import com.aws.amazonlocation.utils.WEB_SOCKET_URL
import com.aws.amazonlocation.utils.changeDataProviderDialog
Expand All @@ -61,9 +60,7 @@ import com.aws.amazonlocation.utils.geofence_helper.turf.TurfTransformation
import com.aws.amazonlocation.utils.getLanguageCode
import com.aws.amazonlocation.utils.hide
import com.aws.amazonlocation.utils.isGrabMapSelected
import com.aws.amazonlocation.utils.isRunningTest
import com.aws.amazonlocation.utils.messageDialog
import com.aws.amazonlocation.utils.restartApplication
import com.aws.amazonlocation.utils.show
import com.aws.amazonlocation.utils.stickyHeaders.StickyHeaderDecoration
import com.aws.amazonlocation.utils.validateIdentityPoolId
Expand All @@ -75,7 +72,6 @@ import java.util.Date
import java.util.Locale
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.maplibre.android.camera.CameraUpdateFactory
import org.maplibre.android.geometry.LatLng
Expand All @@ -98,6 +94,7 @@ class TrackingUtils(
val activity: Activity?,
val mAWSLocationHelper: AWSLocationHelper
) {
var isChangeDataProviderClicked: Boolean = false
private var imageId: Int = 0
private var headerIdsToRemove = arrayListOf<String>()
private var sourceIdsToRemove = arrayListOf<String>()
Expand Down Expand Up @@ -244,29 +241,30 @@ class TrackingUtils(
}
cardTrackerGeofenceSimulation.hide()
btnTryTracker.setOnClickListener {
mPreferenceManager?.let {
if (isGrabMapSelected(it, btnTryTracker.context)) {
mPreferenceManager?.let { manager ->
if (isGrabMapSelected(manager, btnTryTracker.context)) {
mActivity?.changeDataProviderDialog(object : ChangeDataProviderInterface {
override fun changeDataProvider(dialog: DialogInterface) {
mActivity?.getString(R.string.map_light)?.let { it1 ->
mPreferenceManager.setValue(
manager.setValue(
KEY_MAP_STYLE_NAME,
it1
)
}
mActivity?.getString(R.string.esri)?.let { it1 ->
mPreferenceManager.setValue(
manager.setValue(
KEY_MAP_NAME,
it1
)
}
mAWSLocationHelper.locationCredentialsProvider?.clear()
(activity as MainActivity).lifecycleScope.launch {
if (!isRunningTest) {
delay(RESTART_DELAY) // Need delay for preference manager to set default config before restarting
activity.restartApplication()
}
isChangeDataProviderClicked = true
mActivity?.let {
(it as MainActivity).changeMapStyle(
it.getString(R.string.esri),
it.getString(R.string.map_light)
)
}
isChangeDataProviderClicked = false
}
})
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,9 @@ val Int.px: Int

val isRunningTest: Boolean by lazy {
try {
Class.forName("androidx.test.espresso.Espresso")
true
val testProperty = System.getProperty("robolectric") != null ||
System.getProperty("android.injected.invoked.from.ide") == "true"
testProperty
} catch (e: ClassNotFoundException) {
false
}
Expand Down

0 comments on commit 57017f3

Please sign in to comment.