diff --git a/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml b/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml index 658b15ffa0..931badb5ae 100644 --- a/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml +++ b/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml @@ -300,10 +300,14 @@ + android:layout_width="@dimen/dp_172" + android:layout_height="@dimen/dp_172" + app:layout_constraintBottom_toBottomOf="@id/module_mogo_och_badcase_rl" + app:layout_constraintLeft_toRightOf="@id/module_mogo_och_badcase_rl" + app:layout_constraintTop_toTopOf="@id/module_mogo_och_badcase_rl" + app:roma_open_bg="@drawable/bus_operation_status_select_bg" + app:roma_close_bg="@drawable/bus_operation_status_bg" + /> + android:layout_width="@dimen/module_mogo_och_operation_status_bg_height" + android:layout_height="@dimen/module_mogo_och_operation_status_bg_height" + app:layout_constraintBottom_toBottomOf="@id/module_och_taxi_badcase_ll" + app:layout_constraintLeft_toRightOf="@id/module_och_taxi_badcase_ll" + app:layout_constraintTop_toTopOf="@id/module_och_taxi_badcase_ll" + app:roma_open_bg="@drawable/taxi_operation_status_select_bg" + app:roma_close_bg="@drawable/taxi_operation_status_bg" + android:layout_marginStart="40dp" + /> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaView.kt index e1ca186a4f..810deabf03 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaView.kt @@ -3,6 +3,7 @@ package com.mogo.eagle.core.function.hmi.ui.widget import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater +import androidx.appcompat.content.res.AppCompatResources import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.function.api.map.roma.IMoGoRomaListener import com.mogo.eagle.core.function.call.map.CallerMapIdentifyManager.romaTrigger @@ -26,8 +27,30 @@ class RomaView @JvmOverloads constructor( @Volatile private var click = true + private val normalRes: Int + private val openRes: Int + init { LayoutInflater.from(context).inflate(R.layout.view_roma_bg, this, true) + val a = context.obtainStyledAttributes( + attrs, + R.styleable.RomaView, + defStyleAttr, + 0 + ) + normalRes = a.getResourceId( + R.styleable.RomaView_roma_close_bg, + R.drawable.romabg_normal_select + ) + openRes = a.getResourceId( + R.styleable.RomaView_roma_open_bg, + R.drawable.romabg_press_select_bg + ) + a.recycle() + if(normalRes!=0){ + ll_roma_bg.background = AppCompatResources.getDrawable(context, normalRes) + } + setOnClickListener { if(!click){ return@setOnClickListener @@ -44,11 +67,19 @@ class RomaView @JvmOverloads constructor( click = true if (status) { romaMode = true - ll_roma_bg.setBackgroundResource(R.drawable.romabg_press_select_bg) + if(openRes!=0){ + ll_roma_bg.setBackgroundResource(openRes) + }else{ + ll_roma_bg.setBackgroundResource(R.drawable.romabg_press_select_bg) + } ivRomaView.setBackgroundResource(R.drawable.roma_press_select_bg) } else { romaMode = false - ll_roma_bg.setBackgroundResource(R.drawable.roma_bg_selector) + if(normalRes!=0){ + ll_roma_bg.setBackgroundResource(normalRes) + }else{ + ll_roma_bg.setBackgroundResource(R.drawable.roma_bg_selector) + } ivRomaView.setBackgroundResource(R.drawable.romafront_select_bg) } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_acceleration_drag.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_acceleration_drag.png new file mode 100644 index 0000000000..305f239505 Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_acceleration_drag.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_acceleration_float.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_acceleration_float.xml index 8629837b9f..06a839f6fc 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_acceleration_float.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_acceleration_float.xml @@ -8,7 +8,7 @@ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_roma_bg.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_roma_bg.xml index 30bd940a0f..ec6a9f2a2d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_roma_bg.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_roma_bg.xml @@ -1,28 +1,24 @@ + android:layout_height="match_parent" + android:background="@drawable/roma_bg_selector" + android:elevation="@dimen/dp_10" + android:gravity="center" + android:orientation="vertical"> - + app:layout_constraintRight_toRightOf="parent" + /> - - \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml index 9426bad2a8..71ab960a6e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml @@ -88,4 +88,10 @@ + + + + + + \ No newline at end of file diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/PermissionUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/PermissionUtils.java index 5998a82b72..903e1240bb 100755 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/PermissionUtils.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/PermissionUtils.java @@ -1,5 +1,7 @@ package com.mogo.eagle.core.utilcode.util; +import static android.Manifest.permission.ACCESS_FINE_LOCATION; + import android.Manifest; import android.annotation.TargetApi; import android.app.Activity; @@ -25,6 +27,7 @@ import java.util.Set; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; +import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import com.mogo.eagle.core.utilcode.constant.PermissionConstants; @@ -156,7 +159,7 @@ public final class PermissionUtils { public static void requestAccessFineLocation(final SimpleCallback callback) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (isGranted(Manifest.permission.ACCESS_FINE_LOCATION)) { + if (isGranted(ACCESS_FINE_LOCATION)) { if (callback != null) { callback.onGranted(); } @@ -499,7 +502,10 @@ public final class PermissionUtils { } else if (type == TYPE_DRAW_OVERLAYS) { currentRequestCode = TYPE_DRAW_OVERLAYS; startOverlayPermissionActivity(activity, TYPE_DRAW_OVERLAYS); - } else { + } else if (type == TYPE_ACCESS_FINE_LOCATION) { + currentRequestCode = TYPE_ACCESS_FINE_LOCATION; + ActivityCompat.requestPermissions(activity, new String[] { ACCESS_FINE_LOCATION }, currentRequestCode); + } else { activity.finish(); Log.e("PermissionUtils", "type is wrong."); } @@ -523,8 +529,23 @@ public final class PermissionUtils { @NonNull String[] permissions, @NonNull int[] grantResults) { activity.finish(); - if (sInstance != null && sInstance.mPermissionsRequest != null) { - sInstance.onRequestPermissionsResult(activity); + if (requestCode == TYPE_ACCESS_FINE_LOCATION) { + for (int result : grantResults) { + if (result == PackageManager.PERMISSION_GRANTED) { + if (sSimpleCallback4AccessFineLocation != null) { + sSimpleCallback4AccessFineLocation.onGranted(); + } + } + if (result == PackageManager.PERMISSION_DENIED) { + if (sSimpleCallback4AccessFineLocation != null) { + sSimpleCallback4AccessFineLocation.onDenied(); + } + } + } + } else { + if (sInstance != null && sInstance.mPermissionsRequest != null) { + sInstance.onRequestPermissionsResult(activity); + } } } @@ -570,7 +591,7 @@ public final class PermissionUtils { if (sSimpleCallback4AccessFineLocation == null) { return; } - if (isGranted(Manifest.permission.ACCESS_FINE_LOCATION)) { + if (isGranted(ACCESS_FINE_LOCATION)) { sSimpleCallback4AccessFineLocation.onGranted(); } else { sSimpleCallback4AccessFineLocation.onDenied();