forked from organicmaps/organicmaps
[android] Added speed camera view highlight
This commit is contained in:
parent
7a563534f0
commit
75e52e2010
11 changed files with 190 additions and 166 deletions
|
@ -1109,25 +1109,12 @@ Java_com_mapswithme_maps_Framework_nativeSetSpeedCamManagerMode(JNIEnv * env, jc
|
|||
static_cast<routing::SpeedCameraManagerMode>(mode));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_mapswithme_maps_Framework_nativeShouldPlayWarningSignal(JNIEnv * env, jclass)
|
||||
{
|
||||
return frm()->GetRoutingManager().GetSpeedCamManager().ShouldPlayBeepSignal();
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_com_mapswithme_maps_Framework_nativeGetSpeedCamManagerMode(JNIEnv * env, jclass)
|
||||
{
|
||||
return static_cast<jint>(frm()->GetRoutingManager().GetSpeedCamManager().GetMode());
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_mapswithme_maps_Framework_nativeIsSpeedLimitExceeded(JNIEnv * env, jclass)
|
||||
{
|
||||
auto const & rm = frm()->GetRoutingManager();
|
||||
return rm.IsRoutingActive() ? rm.IsSpeedLimitExceeded() : false;
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_com_mapswithme_maps_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jclass)
|
||||
{
|
||||
|
@ -1148,7 +1135,7 @@ Java_com_mapswithme_maps_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jcl
|
|||
"(Ljava/lang/String;Ljava/lang/String;"
|
||||
"Ljava/lang/String;Ljava/lang/String;"
|
||||
"Ljava/lang/String;Ljava/lang/String;DIIIDDII"
|
||||
"[Lcom/mapswithme/maps/routing/SingleLaneInfo;)V");
|
||||
"[Lcom/mapswithme/maps/routing/SingleLaneInfo;ZZ)V");
|
||||
|
||||
vector<location::FollowingInfo::SingleLaneInfoClient> const & lanes = info.m_lanes;
|
||||
jobjectArray jLanes = nullptr;
|
||||
|
@ -1173,12 +1160,16 @@ Java_com_mapswithme_maps_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jcl
|
|||
}
|
||||
}
|
||||
|
||||
auto const & rm = frm()->GetRoutingManager();
|
||||
auto const isSpeedLimitExceeded = rm.IsRoutingActive() ? rm.IsSpeedLimitExceeded() : false;
|
||||
auto const shouldPlaySignal = frm()->GetRoutingManager().GetSpeedCamManager().ShouldPlayBeepSignal();
|
||||
jobject const result = env->NewObject(
|
||||
klass, ctorRouteInfoID, jni::ToJavaString(env, info.m_distToTarget),
|
||||
jni::ToJavaString(env, info.m_targetUnitsSuffix), jni::ToJavaString(env, info.m_distToTurn),
|
||||
jni::ToJavaString(env, info.m_turnUnitsSuffix), jni::ToJavaString(env, info.m_sourceName),
|
||||
jni::ToJavaString(env, info.m_displayedStreetName), info.m_completionPercent, info.m_turn, info.m_nextTurn, info.m_pedestrianTurn,
|
||||
info.m_pedestrianDirectionPos.lat, info.m_pedestrianDirectionPos.lon, info.m_exitNum, info.m_time, jLanes);
|
||||
info.m_pedestrianDirectionPos.lat, info.m_pedestrianDirectionPos.lon, info.m_exitNum, info.m_time, jLanes,
|
||||
static_cast<jboolean>(isSpeedLimitExceeded), static_cast<jboolean>(shouldPlaySignal));
|
||||
ASSERT(result, (jni::DescribeException()));
|
||||
return result;
|
||||
}
|
||||
|
|
4
android/res/drawable/dark_red.xml
Normal file
4
android/res/drawable/dark_red.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/dark_red"/>
|
||||
</shape>
|
5
android/res/drawable/speed_cams_bg.xml
Normal file
5
android/res/drawable/speed_cams_bg.xml
Normal file
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@drawable/dark_red" android:state_activated="true"/>
|
||||
<item android:drawable="@drawable/transparent_bg"/>
|
||||
</selector>
|
4
android/res/drawable/transparent_bg.xml
Normal file
4
android/res/drawable/transparent_bg.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@android:color/transparent"/>
|
||||
</shape>
|
|
@ -14,7 +14,7 @@
|
|||
tools:ignore="RtlSymmetry">
|
||||
<!-- Speed -->
|
||||
<LinearLayout
|
||||
android:id="@+id/speed_frame"
|
||||
android:id="@+id/speed_view_container"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:minWidth="@dimen/nav_numbers_side_min_width"
|
||||
|
@ -23,7 +23,8 @@
|
|||
android:paddingRight="@dimen/nav_numbers_margin"
|
||||
android:paddingTop="@dimen/margin_eighth"
|
||||
android:gravity="center_horizontal"
|
||||
tools:background="#20FF0000">
|
||||
android:background="@drawable/speed_cams_bg"
|
||||
tools:background="@drawable/speed_cams_bg">
|
||||
<TextView
|
||||
android:id="@+id/speed_value"
|
||||
android:layout_width="wrap_content"
|
||||
|
@ -31,7 +32,6 @@
|
|||
android:singleLine="true"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingNumber.Navigation"
|
||||
tools:text="999"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/speed_dimen"
|
||||
android:layout_width="wrap_content"
|
||||
|
@ -148,4 +148,4 @@
|
|||
android:textAppearance="@style/MwmTextAppearance.RoutingDimension"
|
||||
tools:text="km"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/nav_menu_height"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="@dimen/nav_numbers_margin"
|
||||
android:paddingStart="@dimen/nav_numbers_margin"
|
||||
android:layout_marginRight="@dimen/nav_toggle"
|
||||
android:layout_marginEnd="@dimen/nav_toggle"
|
||||
android:background="?clickableBackground"
|
||||
|
@ -16,168 +14,153 @@
|
|||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/neg_margin_quarter"
|
||||
android:layout_marginTop="@dimen/nav_menu_top_offset">
|
||||
android:layout_height="wrap_content">
|
||||
<!-- Speed -->
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
<RelativeLayout
|
||||
android:id="@+id/speed_view_container"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/speed_cams_bg"
|
||||
android:minWidth="@dimen/nav_numbers_side_min_width"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="@dimen/nav_numbers_margin"
|
||||
android:paddingRight="@dimen/nav_numbers_margin"
|
||||
android:paddingBottom="@dimen/margin_eighth"
|
||||
android:paddingTop="@dimen/margin_eighth"
|
||||
android:gravity="center_horizontal"
|
||||
tools:background="#20FF0000">
|
||||
android:paddingLeft="@dimen/nav_numbers_margin"
|
||||
android:paddingRight="@dimen/nav_numbers_margin">
|
||||
<TextView
|
||||
android:id="@+id/speed_value"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:lines="1"
|
||||
android:includeFontPadding="false"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingNumber.Navigation"
|
||||
tools:text="999"/>
|
||||
</LinearLayout>
|
||||
|
||||
<Space android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"/>
|
||||
<!-- Speed -->
|
||||
<TextView
|
||||
android:id="@+id/speed_dimen"
|
||||
android:layout_below="@+id/speed_value"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:lines="1"
|
||||
android:includeFontPadding="false"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingDimension"
|
||||
tools:text="km/h"
|
||||
tools:background="#20FF0000"/>
|
||||
</RelativeLayout>
|
||||
|
||||
<!-- Time -->
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="@dimen/nav_numbers_center_min_width"
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:minWidth="@dimen/nav_numbers_side_min_width"
|
||||
android:paddingBottom="@dimen/margin_eighth"
|
||||
android:paddingTop="@dimen/margin_eighth"
|
||||
android:gravity="center_horizontal"
|
||||
tools:background="#20FF0000">
|
||||
<TextView
|
||||
android:id="@+id/time_hour_value"
|
||||
android:paddingLeft="@dimen/nav_numbers_margin"
|
||||
android:paddingRight="@dimen/nav_numbers_margin">
|
||||
<LinearLayout
|
||||
android:id="@+id/time_values_container"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:lines="1"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingNumber.Navigation"
|
||||
tools:text="999"/>
|
||||
android:layout_centerHorizontal="true"
|
||||
tools:background="#20FF0000">
|
||||
<TextView
|
||||
android:id="@+id/time_hour_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:lines="1"
|
||||
android:includeFontPadding="false"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingNumber.Navigation"
|
||||
tools:text="999"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time_hour_dimen"
|
||||
<TextView
|
||||
android:id="@+id/time_hour_dimen"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="@dimen/margin_quarter"
|
||||
android:layout_marginEnd="@dimen/margin_quarter"
|
||||
android:lines="1"
|
||||
android:includeFontPadding="false"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingDimension"
|
||||
tools:text="h"/>
|
||||
<TextView
|
||||
android:id="@+id/time_minute_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:lines="1"
|
||||
android:includeFontPadding="false"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingNumber.Navigation"
|
||||
tools:text="99"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time_minute_dimen"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:lines="1"
|
||||
android:includeFontPadding="false"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingNumber"
|
||||
tools:text="m"/>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_below="@+id/time_values_container"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="@dimen/margin_quarter"
|
||||
android:layout_marginEnd="@dimen/margin_quarter"
|
||||
android:lines="1"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingDimension"
|
||||
tools:text="h"/>
|
||||
android:orientation="horizontal"
|
||||
android:theme="?navigationTheme"
|
||||
android:minWidth="@dimen/nav_numbers_center_min_width"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:gravity="center"
|
||||
tools:background="#20FF0000">
|
||||
<ImageView
|
||||
android:id="@+id/dot_left"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="@dimen/margin_half"
|
||||
android:layout_marginEnd="@dimen/margin_half"
|
||||
android:src="?newsMarker"/>
|
||||
<ImageView
|
||||
android:id="@+id/dot_estimate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="?newsMarker"/>
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time_minute_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:lines="1"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingNumber.Navigation"
|
||||
tools:text="99"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/time_minute_dimen"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:lines="1"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingNumber"
|
||||
tools:text="m"/>
|
||||
</LinearLayout>
|
||||
|
||||
<Space android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"/>
|
||||
|
||||
<!-- Distance -->
|
||||
<LinearLayout
|
||||
android:id="@+id/distance_frame"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:minWidth="@dimen/nav_numbers_side_min_width"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="@dimen/nav_numbers_margin"
|
||||
android:paddingRight="@dimen/nav_numbers_margin"
|
||||
android:paddingBottom="@dimen/margin_eighth"
|
||||
android:paddingTop="@dimen/margin_eighth"
|
||||
android:gravity="center_horizontal"
|
||||
tools:background="#20FF0000">
|
||||
android:paddingLeft="@dimen/nav_numbers_margin"
|
||||
android:paddingRight="@dimen/nav_numbers_margin">
|
||||
<TextView
|
||||
android:id="@+id/distance_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:lines="1"
|
||||
android:includeFontPadding="false"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingNumber.Navigation"
|
||||
tools:text="99999"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<!-- Speed -->
|
||||
<TextView
|
||||
android:id="@+id/speed_dimen"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="@dimen/nav_numbers_side_min_width"
|
||||
android:paddingLeft="@dimen/nav_numbers_margin"
|
||||
android:paddingRight="@dimen/nav_numbers_margin"
|
||||
android:gravity="center"
|
||||
android:lines="1"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingDimension"
|
||||
tools:text="km/h"
|
||||
tools:background="#20FF0000"/>
|
||||
|
||||
<Space android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"/>
|
||||
|
||||
<!-- Time -->
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:minWidth="@dimen/nav_numbers_center_min_width"
|
||||
android:theme="?navigationTheme"
|
||||
android:gravity="center"
|
||||
android:layout_marginLeft="@dimen/margin_eighth"
|
||||
android:layout_marginStart="@dimen/margin_eighth"
|
||||
tools:background="#20FF0000">
|
||||
<ImageView
|
||||
android:id="@+id/dot_left"
|
||||
<TextView
|
||||
android:id="@+id/distance_dimen"
|
||||
android:layout_below="@id/distance_value"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="@dimen/margin_half"
|
||||
android:layout_marginEnd="@dimen/margin_half"
|
||||
android:src="?newsMarker"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/dot_estimate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="?newsMarker"/>
|
||||
</LinearLayout>
|
||||
|
||||
<Space android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"/>
|
||||
|
||||
<!-- Distance -->
|
||||
<TextView
|
||||
android:id="@+id/distance_dimen"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="@dimen/nav_numbers_side_min_width"
|
||||
android:paddingLeft="@dimen/nav_numbers_margin"
|
||||
android:paddingRight="@dimen/nav_numbers_margin"
|
||||
android:gravity="center"
|
||||
android:lines="1"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingDimension"
|
||||
tools:text="km"
|
||||
tools:background="#20FF0000"/>
|
||||
android:lines="1"
|
||||
android:includeFontPadding="false"
|
||||
android:textAppearance="@style/MwmTextAppearance.RoutingDimension"
|
||||
tools:text="km"
|
||||
tools:background="#20FF0000"/>
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
<color name="base_accent_pressed_night">#FF3C9BBE</color>
|
||||
|
||||
<color name="base_red">#FFF54137</color>
|
||||
<color name="dark_red">#F51E30</color>
|
||||
<color name="base_yellow">#FFFFC30A</color>
|
||||
<color name="base_green">#FF558B2F</color>
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ import com.mapswithme.maps.routing.RoutePointInfo;
|
|||
import com.mapswithme.maps.routing.RoutingInfo;
|
||||
import com.mapswithme.maps.routing.TransitRouteInfo;
|
||||
import com.mapswithme.maps.search.FilterUtils;
|
||||
import com.mapswithme.maps.settings.SettingsPrefsFragment;
|
||||
import com.mapswithme.util.Constants;
|
||||
import com.mapswithme.util.log.Logger;
|
||||
import com.mapswithme.util.log.LoggerFactory;
|
||||
|
@ -240,6 +241,11 @@ public class Framework
|
|||
nativeDisableAdProvider(type.ordinal(), Banner.Place.DEFAULT.ordinal());
|
||||
}
|
||||
|
||||
public static void setSpeedCamerasMode(@NonNull SettingsPrefsFragment.SpeedCameraMode mode)
|
||||
{
|
||||
nativeSetSpeedCamManagerMode(mode.ordinal());
|
||||
}
|
||||
|
||||
public static native void nativeShowTrackRect(long track);
|
||||
|
||||
public static native int nativeGetDrawScale();
|
||||
|
@ -517,4 +523,6 @@ public class Framework
|
|||
@Nullable
|
||||
public static native MapObject nativeGetMapObject(
|
||||
@NonNull NotificationCandidate.MapObject mapObject);
|
||||
|
||||
private static native void nativeSetSpeedCamManagerMode(int mode);
|
||||
}
|
||||
|
|
|
@ -73,6 +73,7 @@ public class NavigationController implements TrafficManager.TrafficCallback, Vie
|
|||
|
||||
@NonNull
|
||||
private final SearchWheel mSearchWheel;
|
||||
private final View mSpeedViewContainer;
|
||||
|
||||
private boolean mShowTimeLeft = true;
|
||||
|
||||
|
@ -112,6 +113,7 @@ public class NavigationController implements TrafficManager.TrafficCallback, Vie
|
|||
UiUtils.extendViewMarginWithStatusBar(turnFrame);
|
||||
|
||||
// Bottom frame
|
||||
mSpeedViewContainer = mBottomFrame.findViewById(R.id.speed_view_container);
|
||||
mSpeedValue = (TextView) mBottomFrame.findViewById(R.id.speed_value);
|
||||
mSpeedUnits = (TextView) mBottomFrame.findViewById(R.id.speed_dimen);
|
||||
mTimeHourValue = (TextView) mBottomFrame.findViewById(R.id.time_hour_value);
|
||||
|
@ -241,24 +243,35 @@ public class NavigationController implements TrafficManager.TrafficCallback, Vie
|
|||
else
|
||||
updateVehicle(info);
|
||||
|
||||
boolean hasStreet = !TextUtils.isEmpty(info.nextStreet);
|
||||
UiUtils.showIf(hasStreet, mStreetFrame);
|
||||
if (!TextUtils.isEmpty(info.nextStreet))
|
||||
mNextStreet.setText(info.nextStreet);
|
||||
|
||||
final Location last = LocationHelper.INSTANCE.getLastKnownLocation();
|
||||
if (last != null)
|
||||
{
|
||||
Pair<String, String> speedAndUnits = StringUtils.nativeFormatSpeedAndUnits(last.getSpeed());
|
||||
mSpeedValue.setText(speedAndUnits.first);
|
||||
mSpeedUnits.setText(speedAndUnits.second);
|
||||
}
|
||||
updateStreetView(info);
|
||||
updateSpeedView(info);
|
||||
updateTime(info.totalTimeInSeconds);
|
||||
mDistanceValue.setText(info.distToTarget);
|
||||
mDistanceUnits.setText(info.targetUnits);
|
||||
mRouteProgress.setProgress((int) info.completionPercent);
|
||||
}
|
||||
|
||||
private void updateStreetView(@NonNull RoutingInfo info)
|
||||
{
|
||||
boolean hasStreet = !TextUtils.isEmpty(info.nextStreet);
|
||||
UiUtils.showIf(hasStreet, mStreetFrame);
|
||||
if (!TextUtils.isEmpty(info.nextStreet))
|
||||
mNextStreet.setText(info.nextStreet);
|
||||
}
|
||||
|
||||
private void updateSpeedView(@NonNull RoutingInfo info)
|
||||
{
|
||||
final Location last = LocationHelper.INSTANCE.getLastKnownLocation();
|
||||
if (last == null)
|
||||
return;
|
||||
|
||||
Pair<String, String> speedAndUnits = StringUtils.nativeFormatSpeedAndUnits(last.getSpeed());
|
||||
|
||||
mSpeedUnits.setText(speedAndUnits.second);
|
||||
mSpeedValue.setText(speedAndUnits.first);
|
||||
mSpeedViewContainer.setActivated(info.isSpeedLimitExceeded());
|
||||
}
|
||||
|
||||
private void updateTime(int seconds)
|
||||
{
|
||||
if (mShowTimeLeft)
|
||||
|
|
|
@ -29,6 +29,8 @@ public class RoutingInfo
|
|||
public final SingleLaneInfo[] lanes;
|
||||
// For pedestrian routing.
|
||||
public final PedestrianTurnDirection pedestrianTurnDirection;
|
||||
private final boolean speedLimitExceeded;
|
||||
private final boolean shouldPlayWarningSignal;
|
||||
public final Location pedestrianNextDirection;
|
||||
|
||||
/**
|
||||
|
@ -130,7 +132,8 @@ public class RoutingInfo
|
|||
|
||||
public RoutingInfo(String distToTarget, String units, String distTurn, String turnSuffix, String currentStreet, String nextStreet, double completionPercent,
|
||||
int vehicleTurnOrdinal, int vehicleNextTurnOrdinal, int pedestrianTurnOrdinal, double pedestrianDirectionLat, double pedestrianDirectionLon, int exitNum,
|
||||
int totalTime, SingleLaneInfo[] lanes)
|
||||
int totalTime, SingleLaneInfo[] lanes, boolean speedLimitExceeded,
|
||||
boolean shouldPlayWarningSignal)
|
||||
{
|
||||
this.distToTarget = distToTarget;
|
||||
this.targetUnits = units;
|
||||
|
@ -145,8 +148,20 @@ public class RoutingInfo
|
|||
this.lanes = lanes;
|
||||
this.exitNum = exitNum;
|
||||
this.pedestrianTurnDirection = PedestrianTurnDirection.values()[pedestrianTurnOrdinal];
|
||||
this.speedLimitExceeded = speedLimitExceeded;
|
||||
this.shouldPlayWarningSignal = shouldPlayWarningSignal;
|
||||
this.pedestrianNextDirection = new Location("");
|
||||
this.pedestrianNextDirection.setLatitude(pedestrianDirectionLat);
|
||||
this.pedestrianNextDirection.setLongitude(pedestrianDirectionLon);
|
||||
}
|
||||
|
||||
public boolean isSpeedLimitExceeded()
|
||||
{
|
||||
return speedLimitExceeded;
|
||||
}
|
||||
|
||||
public boolean shouldPlayWarningSignal()
|
||||
{
|
||||
return shouldPlayWarningSignal;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -371,7 +371,7 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment
|
|||
private void onSpeedCamerasPrefChanged(@NonNull SpeedCameraMode oldCamMode,
|
||||
@NonNull SpeedCameraMode newCamMode)
|
||||
{
|
||||
|
||||
Framework.setSpeedCamerasMode(newCamMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -979,7 +979,7 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment
|
|||
}
|
||||
}
|
||||
|
||||
enum SpeedCameraMode
|
||||
public enum SpeedCameraMode
|
||||
{
|
||||
AUTO,
|
||||
ALWAYS,
|
||||
|
|
Loading…
Add table
Reference in a new issue