Commit 3b0c1282d3b9b9080a66612ae7538012502d408e
1 parent
53bc7184
1.修改UI
Showing
11 changed files
with
98 additions
and
41 deletions
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunRaceDetailFragmentView.java
| @@ -103,7 +103,7 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { | @@ -103,7 +103,7 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { | ||
| 103 | 103 | ||
| 104 | private String startPoint = "首都师范大学南门"; | 104 | private String startPoint = "首都师范大学南门"; |
| 105 | private String endPoint = "首都师范大学篮球场"; | 105 | private String endPoint = "首都师范大学篮球场"; |
| 106 | - private String test = "[{\"latitude\":39.933889208848,\"latitudeE6\":3.9933889208848E7,\"longitude\":116.30900265517,\"longitudeE6\":1.1630900265517001E8},{\"latitude\":39.933868507347,\"latitudeE6\":3.9933868507347E7,\"longitude\":116.30865416508,\"longitudeE6\":1.1630865416508E8},{\"latitude\":39.934756505077,\"latitudeE6\":3.9934756505077E7,\"longitude\":116.30860516469,\"longitudeE6\":1.1630860516468999E8},{\"latitude\":39.934781620502,\"latitudeE6\":3.9934781620502E7,\"longitude\":116.30961013007,\"longitudeE6\":1.1630961013007E8},{\"latitude\":39.934881620374,\"latitudeE6\":3.9934881620374E7,\"longitude\":116.30960513008,\"longitudeE6\":1.1630960513008E8},{\"latitude\":39.934077623132,\"latitudeE6\":3.9934077623132E7,\"longitude\":116.30965812942,\"longitudeE6\":1.1630965812942E8},{\"latitude\":39.933972618463,\"latitudeE6\":3.9933972618463E7,\"longitude\":116.30962113087,\"longitudeE6\":1.1630962113087E8},{\"latitude\":39.933932608856,\"latitudeE6\":3.9933932608856E7,\"longitude\":116.30953913383,\"longitudeE6\":1.1630953913383E8},{\"latitude\":39.933903844942,\"latitudeE6\":3.9933903844942E7,\"longitude\":116.30918357649,\"longitudeE6\":1.1630918357649E8}]"; | 106 | + private String test = "[{\"latitude\":39.933889208848,\"latitudeE6\":3.9933889208848E7,\"longitude\":116.30900265517,\"longitudeE6\":1.1630900265517001E8},{\"latitude\":39.933868507347,\"latitudeE6\":3.9933868507347E7,\"longitude\":116.30865416508,\"longitudeE6\":1.1630865416508E8},{\"latitude\":39.934756505077,\"latitudeE6\":3.9934756505077E7,\"longitude\":116.30860516469,\"longitudeE6\":1.1630860516468999E8},{\"latitude\":39.934781620502,\"latitudeE6\":3.9934781620502E7,\"longitude\":116.30961013007,\"longitudeE6\":1.1630961013007E8},{\"latitude\":39.934881620374,\"latitudeE6\":3.9934881620374E7,\"longitude\":116.30960513008,\"longitudeE6\":1.1630960513008E8},{\"latitude\":39.934077623132,\"latitudeE6\":3.9934077623132E7,\"longitude\":116.30965812942,\"longitudeE6\":1.1630965812942E8},{\"latitude\":39.933972618463,\"latitudeE6\":3.9933972618463E7,\"longitude\":116.30962113087,\"longitudeE6\":1.1630962113087E8},{\"latitude\":39.933932608856,\"latitudeE6\":3.9933932608856E7,\"longitude\":116.30953913383,\"longitudeE6\":1.1630953913383E8}]"; |
| 107 | private LinkedList<LatLng> importLatLngs;//关键点 | 107 | private LinkedList<LatLng> importLatLngs;//关键点 |
| 108 | private LatLng startLatLng = new LatLng(39.934733, 116.308646);//起始点 | 108 | private LatLng startLatLng = new LatLng(39.934733, 116.308646);//起始点 |
| 109 | private List<LatLng> trackPoints; | 109 | private List<LatLng> trackPoints; |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunningMapFragmentView.java
| @@ -240,7 +240,6 @@ public class RunningMapFragmentView implements MvpView, SensorEventListener { | @@ -240,7 +240,6 @@ public class RunningMapFragmentView implements MvpView, SensorEventListener { | ||
| 240 | 240 | ||
| 241 | @Override | 241 | @Override |
| 242 | public void onReceiveLocation(BDLocation location) { | 242 | public void onReceiveLocation(BDLocation location) { |
| 243 | - Log.e(TAG, "onReceiveLocation: 状态" + location.getGpsAccuracyStatus()); | ||
| 244 | // map view 销毁后不在处理新接收的位置 | 243 | // map view 销毁后不在处理新接收的位置 |
| 245 | if (location == null || mMapView == null) { | 244 | if (location == null || mMapView == null) { |
| 246 | return; | 245 | return; |
| @@ -319,7 +318,7 @@ public class RunningMapFragmentView implements MvpView, SensorEventListener { | @@ -319,7 +318,7 @@ public class RunningMapFragmentView implements MvpView, SensorEventListener { | ||
| 319 | return; | 318 | return; |
| 320 | } | 319 | } |
| 321 | MapStatus.Builder builder = new MapStatus.Builder(); | 320 | MapStatus.Builder builder = new MapStatus.Builder(); |
| 322 | - //不是第一次定位 | 321 | + //不是第一次定位状态 |
| 323 | if (!isFirstLoc) { | 322 | if (!isFirstLoc) { |
| 324 | if (currentPoints.size() > 0) { | 323 | if (currentPoints.size() > 0) { |
| 325 | //进行判断 | 324 | //进行判断 |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/fragment/RunningMapFragment.java
| @@ -50,7 +50,7 @@ public class RunningMapFragment extends QMUIFragment<RunningMapFragmentView, Run | @@ -50,7 +50,7 @@ public class RunningMapFragment extends QMUIFragment<RunningMapFragmentView, Run | ||
| 50 | private static final String TAG = "RunningMapFragment"; | 50 | private static final String TAG = "RunningMapFragment"; |
| 51 | private RunningMapBean runningMapBean; | 51 | private RunningMapBean runningMapBean; |
| 52 | private SensorManager mSensorManager; | 52 | private SensorManager mSensorManager; |
| 53 | - private String test = "[{\"latitude\":39.933889208848,\"latitudeE6\":3.9933889208848E7,\"longitude\":116.30900265517,\"longitudeE6\":1.1630900265517001E8},{\"latitude\":39.933868507347,\"latitudeE6\":3.9933868507347E7,\"longitude\":116.30865416508,\"longitudeE6\":1.1630865416508E8},{\"latitude\":39.934756505077,\"latitudeE6\":3.9934756505077E7,\"longitude\":116.30860516469,\"longitudeE6\":1.1630860516468999E8},{\"latitude\":39.934781620502,\"latitudeE6\":3.9934781620502E7,\"longitude\":116.30961013007,\"longitudeE6\":1.1630961013007E8},{\"latitude\":39.934881620374,\"latitudeE6\":3.9934881620374E7,\"longitude\":116.30960513008,\"longitudeE6\":1.1630960513008E8},{\"latitude\":39.934077623132,\"latitudeE6\":3.9934077623132E7,\"longitude\":116.30965812942,\"longitudeE6\":1.1630965812942E8},{\"latitude\":39.933972618463,\"latitudeE6\":3.9933972618463E7,\"longitude\":116.30962113087,\"longitudeE6\":1.1630962113087E8},{\"latitude\":39.933932608856,\"latitudeE6\":3.9933932608856E7,\"longitude\":116.30953913383,\"longitudeE6\":1.1630953913383E8},{\"latitude\":39.933903844942,\"latitudeE6\":3.9933903844942E7,\"longitude\":116.30918357649,\"longitudeE6\":1.1630918357649E8}]"; | 53 | + private String test = "[{\"latitude\":39.933889208848,\"latitudeE6\":3.9933889208848E7,\"longitude\":116.30900265517,\"longitudeE6\":1.1630900265517001E8},{\"latitude\":39.933868507347,\"latitudeE6\":3.9933868507347E7,\"longitude\":116.30865416508,\"longitudeE6\":1.1630865416508E8},{\"latitude\":39.934756505077,\"latitudeE6\":3.9934756505077E7,\"longitude\":116.30860516469,\"longitudeE6\":1.1630860516468999E8},{\"latitude\":39.934781620502,\"latitudeE6\":3.9934781620502E7,\"longitude\":116.30961013007,\"longitudeE6\":1.1630961013007E8},{\"latitude\":39.934881620374,\"latitudeE6\":3.9934881620374E7,\"longitude\":116.30960513008,\"longitudeE6\":1.1630960513008E8},{\"latitude\":39.934077623132,\"latitudeE6\":3.9934077623132E7,\"longitude\":116.30965812942,\"longitudeE6\":1.1630965812942E8},{\"latitude\":39.933972618463,\"latitudeE6\":3.9933972618463E7,\"longitude\":116.30962113087,\"longitudeE6\":1.1630962113087E8},{\"latitude\":39.933932608856,\"latitudeE6\":3.9933932608856E7,\"longitude\":116.30953913383,\"longitudeE6\":1.1630953913383E8}]"; |
| 54 | //创建震动服务对象 | 54 | //创建震动服务对象 |
| 55 | private Vibrator mVibrator; | 55 | private Vibrator mVibrator; |
| 56 | private TipDialog tipDialog; | 56 | private TipDialog tipDialog; |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/MyMapUtil.java
| @@ -14,6 +14,7 @@ import com.baidu.mapapi.model.LatLng; | @@ -14,6 +14,7 @@ import com.baidu.mapapi.model.LatLng; | ||
| 14 | import com.baidu.mapapi.utils.DistanceUtil; | 14 | import com.baidu.mapapi.utils.DistanceUtil; |
| 15 | import com.baidu.trace.model.SortType; | 15 | import com.baidu.trace.model.SortType; |
| 16 | import com.cnlive.moudle.pedometer.model.RoutePoint; | 16 | import com.cnlive.moudle.pedometer.model.RoutePoint; |
| 17 | +import com.example.moudle_pedometer.R; | ||
| 17 | 18 | ||
| 18 | import java.util.ArrayList; | 19 | import java.util.ArrayList; |
| 19 | import java.util.List; | 20 | import java.util.List; |
| @@ -96,17 +97,23 @@ public class MyMapUtil { | @@ -96,17 +97,23 @@ public class MyMapUtil { | ||
| 96 | /** | 97 | /** |
| 97 | * 绘制服务器传过来的轨迹 | 98 | * 绘制服务器传过来的轨迹 |
| 98 | */ | 99 | */ |
| 99 | - public static Overlay drawServerLineTrack(Context context, BaiduMap baiduMap, List<LatLng> points, SortType sortType, int lineColor, int startIconRes, int endIconRes) { | 100 | + public static List<Overlay> drawServerLineTrack(Context context, BaiduMap baiduMap, List<LatLng> points, SortType sortType, int lineColor, int startIconRes, int endIconRes) { |
| 100 | // 绘制新覆盖物前,清空之前的覆盖物 | 101 | // 绘制新覆盖物前,清空之前的覆盖物 |
| 101 | if (points == null || points.size() == 0) { | 102 | if (points == null || points.size() == 0) { |
| 102 | return null; | 103 | return null; |
| 103 | } | 104 | } |
| 105 | + List<Overlay> resultOverlays = new ArrayList<>(); | ||
| 104 | //只有一个点 | 106 | //只有一个点 |
| 105 | if (points.size() == 1) { | 107 | if (points.size() == 1) { |
| 106 | - Bitmap pointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), startIconRes), 10, 16); | ||
| 107 | - OverlayOptions startOptions = new MarkerOptions().position(points.get(0)).icon(BitmapDescriptorFactory.fromBitmap(pointBitmap)); | ||
| 108 | -// .zIndex(9).draggable(true); | ||
| 109 | - return baiduMap.addOverlay(startOptions); | 108 | + Bitmap pointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), startIconRes), 24, 30); |
| 109 | + OverlayOptions startOptions = null; | ||
| 110 | + if (pointBitmap != null) { | ||
| 111 | + startOptions = new MarkerOptions().position(points.get(0)).icon(BitmapDescriptorFactory.fromBitmap(pointBitmap)); | ||
| 112 | + if (startOptions != null) { | ||
| 113 | + resultOverlays.add(baiduMap.addOverlay(startOptions)); | ||
| 114 | + } | ||
| 115 | + return resultOverlays; | ||
| 116 | + } | ||
| 110 | } | 117 | } |
| 111 | 118 | ||
| 112 | LatLng startPoint; | 119 | LatLng startPoint; |
| @@ -120,31 +127,73 @@ public class MyMapUtil { | @@ -120,31 +127,73 @@ public class MyMapUtil { | ||
| 120 | } | 127 | } |
| 121 | 128 | ||
| 122 | // 添加起点图标 | 129 | // 添加起点图标 |
| 123 | - Bitmap startPointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), startIconRes), 30, 36); | ||
| 124 | - OverlayOptions startOptions = new MarkerOptions() | ||
| 125 | - .position(startPoint) | ||
| 126 | - .icon(BitmapDescriptorFactory.fromBitmap(startPointBitmap)) | ||
| 127 | - .perspective(false) | ||
| 128 | - .animateType(MarkerOptions.MarkerAnimateType.grow) | ||
| 129 | - ; | ||
| 130 | -// .zIndex(9).draggable(true); | 130 | + Bitmap startPointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), startIconRes), 24, 30); |
| 131 | + OverlayOptions startOptions = null; | ||
| 132 | + if (startPointBitmap != null) { | ||
| 133 | + startOptions = new MarkerOptions() | ||
| 134 | + .position(startPoint) | ||
| 135 | + .icon(BitmapDescriptorFactory.fromBitmap(startPointBitmap)) | ||
| 136 | + .perspective(false) | ||
| 137 | + .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 138 | + } | ||
| 131 | // 添加终点图标 | 139 | // 添加终点图标 |
| 132 | - Bitmap endPointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), endIconRes), 30, 36); | ||
| 133 | - OverlayOptions endOptions = new MarkerOptions() | ||
| 134 | - .position(endPoint) | ||
| 135 | - .icon(BitmapDescriptorFactory.fromBitmap(endPointBitmap)) | ||
| 136 | - .perspective(false) | ||
| 137 | - .anchor(0.6f,0.96f) | ||
| 138 | - .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 139 | -// .zIndex(9).draggable(true); | ||
| 140 | - | 140 | + Bitmap endPointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), endIconRes), 24, 30); |
| 141 | + OverlayOptions endOptions = null; | ||
| 142 | + if (endPointBitmap != null) { | ||
| 143 | + endOptions = new MarkerOptions() | ||
| 144 | + .position(endPoint) | ||
| 145 | + .icon(BitmapDescriptorFactory.fromBitmap(endPointBitmap)) | ||
| 146 | + .perspective(false) | ||
| 147 | + .anchor(0.6f, 0.96f) | ||
| 148 | + .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 149 | + } | ||
| 150 | + // 添加圆形范围 | ||
| 151 | + Bitmap startCircleBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), R.drawable.circle_point_raduis), 60, 60); | ||
| 152 | + OverlayOptions startCircleOptions = null; | ||
| 153 | + OverlayOptions endCircleOptions = null; | ||
| 154 | + if (startCircleBitmap != null) { | ||
| 155 | + startCircleOptions = new MarkerOptions() | ||
| 156 | + .position(startPoint) | ||
| 157 | + .icon(BitmapDescriptorFactory.fromBitmap(startCircleBitmap)) | ||
| 158 | + .perspective(false) | ||
| 159 | + .anchor(0.5f, 0.6f) | ||
| 160 | + .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 161 | + | ||
| 162 | + endCircleOptions = new MarkerOptions() | ||
| 163 | + .position(endPoint) | ||
| 164 | + .icon(BitmapDescriptorFactory.fromBitmap(startCircleBitmap)) | ||
| 165 | + .perspective(false) | ||
| 166 | + .anchor(0.5f, 0.6f) | ||
| 167 | + .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 168 | + } | ||
| 141 | // 添加路线(轨迹) | 169 | // 添加路线(轨迹) |
| 142 | - OverlayOptions polylineOptions = new PolylineOptions().width(10) | ||
| 143 | - .color(context.getResources().getColor(lineColor)).points(points); | 170 | + OverlayOptions polylineOptions = null; |
| 171 | + if (points != null && points.size() > 1) { | ||
| 172 | + polylineOptions = new PolylineOptions().width(10) | ||
| 173 | + .color(context.getResources().getColor(lineColor)).points(points); | ||
| 174 | + } | ||
| 175 | + if (endCircleOptions != null) { | ||
| 176 | + resultOverlays.add(baiduMap.addOverlay(endCircleOptions)); | ||
| 177 | + } | ||
| 178 | + if (startCircleOptions != null) { | ||
| 179 | + resultOverlays.add(baiduMap.addOverlay(startCircleOptions)); | ||
| 180 | + } | ||
| 181 | + if (startOptions != null) { | ||
| 182 | + resultOverlays.add(baiduMap.addOverlay(startOptions)); | ||
| 144 | 183 | ||
| 145 | - baiduMap.addOverlay(startOptions); | ||
| 146 | - baiduMap.addOverlay(endOptions); | ||
| 147 | - return baiduMap.addOverlay(polylineOptions); | 184 | + } |
| 185 | + if (endOptions != null) { | ||
| 186 | + resultOverlays.add(baiduMap.addOverlay(endOptions)); | ||
| 187 | + } | ||
| 188 | + if (polylineOptions != null) { | ||
| 189 | + resultOverlays.add(baiduMap.addOverlay(polylineOptions)); | ||
| 190 | + | ||
| 191 | + } | ||
| 192 | + if (resultOverlays != null) { | ||
| 193 | + return resultOverlays; | ||
| 194 | + } else { | ||
| 195 | + return null; | ||
| 196 | + } | ||
| 148 | } | 197 | } |
| 149 | 198 | ||
| 150 | 199 |
moudle_pedometer/src/main/res/drawable-hdpi/circle_point_raduis.png
0 → 100644
2.73 KB
moudle_pedometer/src/main/res/drawable-xhdpi/circle_point_raduis.png
0 → 100644
3.11 KB
moudle_pedometer/src/main/res/drawable-xxhdpi/circle_point_raduis.png
0 → 100644
6.3 KB
moudle_pedometer/src/main/res/drawable/shape_circle_green_25.xml
0 → 100644
moudle_pedometer/src/main/res/layout/fragment_run_main.xml
| @@ -164,7 +164,7 @@ | @@ -164,7 +164,7 @@ | ||
| 164 | android:text="配速" | 164 | android:text="配速" |
| 165 | android:textColor="@color/text_gray99" | 165 | android:textColor="@color/text_gray99" |
| 166 | android:textSize="15sp" | 166 | android:textSize="15sp" |
| 167 | - android:textStyle="bold" /> | 167 | + /> |
| 168 | </LinearLayout> | 168 | </LinearLayout> |
| 169 | <!--用时--> | 169 | <!--用时--> |
| 170 | <LinearLayout | 170 | <LinearLayout |
| @@ -197,7 +197,7 @@ | @@ -197,7 +197,7 @@ | ||
| 197 | android:text="用时" | 197 | android:text="用时" |
| 198 | android:textColor="@color/text_gray99" | 198 | android:textColor="@color/text_gray99" |
| 199 | android:textSize="15sp" | 199 | android:textSize="15sp" |
| 200 | - android:textStyle="bold" /> | 200 | + /> |
| 201 | </LinearLayout> | 201 | </LinearLayout> |
| 202 | <!--热量--> | 202 | <!--热量--> |
| 203 | <LinearLayout | 203 | <LinearLayout |
| @@ -231,7 +231,7 @@ | @@ -231,7 +231,7 @@ | ||
| 231 | android:text="步" | 231 | android:text="步" |
| 232 | android:textColor="@color/text_gray99" | 232 | android:textColor="@color/text_gray99" |
| 233 | android:textSize="15sp" | 233 | android:textSize="15sp" |
| 234 | - android:textStyle="bold" /> | 234 | + /> |
| 235 | </LinearLayout> | 235 | </LinearLayout> |
| 236 | </LinearLayout> | 236 | </LinearLayout> |
| 237 | 237 |
moudle_pedometer/src/main/res/layout/fragment_running_map.xml
| @@ -42,13 +42,13 @@ | @@ -42,13 +42,13 @@ | ||
| 42 | android:layout_width="wrap_content" | 42 | android:layout_width="wrap_content" |
| 43 | android:layout_height="wrap_content" | 43 | android:layout_height="wrap_content" |
| 44 | android:layout_gravity="top|right" | 44 | android:layout_gravity="top|right" |
| 45 | - android:layout_marginTop="20dp" | 45 | + android:layout_marginTop="15dp" |
| 46 | android:layout_marginRight="10dp" | 46 | android:layout_marginRight="10dp" |
| 47 | android:orientation="vertical"> | 47 | android:orientation="vertical"> |
| 48 | 48 | ||
| 49 | <LinearLayout | 49 | <LinearLayout |
| 50 | - android:layout_width="75dp" | ||
| 51 | - android:layout_height="30dp" | 50 | + android:layout_width="80dp" |
| 51 | + android:layout_height="35dp" | ||
| 52 | android:layout_gravity="right" | 52 | android:layout_gravity="right" |
| 53 | android:background="@drawable/gps_white_shadow" | 53 | android:background="@drawable/gps_white_shadow" |
| 54 | android:gravity="center"> | 54 | android:gravity="center"> |
| @@ -72,14 +72,16 @@ | @@ -72,14 +72,16 @@ | ||
| 72 | <!----> | 72 | <!----> |
| 73 | <TextView | 73 | <TextView |
| 74 | android:id="@+id/tv_gps_pop_bg" | 74 | android:id="@+id/tv_gps_pop_bg" |
| 75 | - android:layout_width="150dp" | ||
| 76 | - android:layout_height="40dp" | 75 | + android:layout_width="wrap_content" |
| 76 | + android:layout_height="45dp" | ||
| 77 | android:layout_marginTop="-5dp" | 77 | android:layout_marginTop="-5dp" |
| 78 | android:background="@drawable/gps_tip_bg" | 78 | android:background="@drawable/gps_tip_bg" |
| 79 | android:gravity="center" | 79 | android:gravity="center" |
| 80 | + android:paddingLeft="15dp" | ||
| 81 | + android:paddingRight="15dp" | ||
| 80 | android:textColor="@color/text_black" | 82 | android:textColor="@color/text_black" |
| 81 | - android:textSize="10sp" | ||
| 82 | - android:visibility="gone" /> | 83 | + android:textSize="12sp" |
| 84 | + android:visibility="gone"/> | ||
| 83 | <!----> | 85 | <!----> |
| 84 | </LinearLayout> | 86 | </LinearLayout> |
| 85 | 87 |
moudle_pedometer/src/main/res/values/colors.xml
| @@ -24,6 +24,8 @@ | @@ -24,6 +24,8 @@ | ||
| 24 | 24 | ||
| 25 | <color name="green">#23D026</color> | 25 | <color name="green">#23D026</color> |
| 26 | <color name="green_50">#8023D026</color> | 26 | <color name="green_50">#8023D026</color> |
| 27 | + <color name="green_25">#4023D41E</color> | ||
| 28 | + | ||
| 27 | 29 | ||
| 28 | <color name="red">#EF5544</color> | 30 | <color name="red">#EF5544</color> |
| 29 | <color name="bg">#012648</color> | 31 | <color name="bg">#012648</color> |