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();