diff --git a/android/app/src/main/java/app/organicmaps/car/util/LanesDrawable.java b/android/app/src/main/java/app/organicmaps/car/util/LanesDrawable.java deleted file mode 100644 index c9e0fae14e..0000000000 --- a/android/app/src/main/java/app/organicmaps/car/util/LanesDrawable.java +++ /dev/null @@ -1,137 +0,0 @@ -package app.organicmaps.car.util; - -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.ColorFilter; -import android.graphics.PixelFormat; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; - -import androidx.annotation.ColorInt; -import androidx.annotation.ColorRes; -import androidx.annotation.DimenRes; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.appcompat.content.res.AppCompatResources; -import androidx.core.content.ContextCompat; - -import app.organicmaps.R; -import app.organicmaps.routing.SingleLaneInfo; - -import java.util.Objects; - -public class LanesDrawable extends Drawable -{ - @ColorRes - private static final int ACTIVE_LANE_TINT_RES = R.color.white_primary; - @ColorRes - private static final int INACTIVE_LANE_TINT_RES = R.color.white_38; - @ColorRes - private static final int INACTIVE_LANE_TINT_NIGHT_RES = R.color.white_40; - - @DimenRes - private static final int MARGIN_RES = R.dimen.margin_quarter; - - private static class TintColorInfo - { - @ColorInt - public final int mActiveLaneTint; - @ColorInt - public final int mInactiveLaneTint; - - public TintColorInfo(@ColorInt int activeLaneTint, @ColorInt int inactiveLaneTint) - { - mActiveLaneTint = activeLaneTint; - mInactiveLaneTint = inactiveLaneTint; - } - } - - private static class LaneDrawable - { - private final Drawable mDrawable; - private final Rect mRect; - private final int mTintColor; - - private LaneDrawable(@NonNull final Context context, @NonNull SingleLaneInfo laneInfo, int horizontalOffset, TintColorInfo colorInfo) - { - mDrawable = Objects.requireNonNull(AppCompatResources.getDrawable(context, laneInfo.mLane[0].mTurnRes)); - - final int width = mDrawable.getIntrinsicWidth(); - final int height = mDrawable.getIntrinsicHeight(); - - mRect = new Rect(horizontalOffset, 0, horizontalOffset + width, height); - mTintColor = laneInfo.mIsActive ? colorInfo.mActiveLaneTint : colorInfo.mInactiveLaneTint; - } - - private void draw(@NonNull final Canvas canvas) - { - mDrawable.setTint(mTintColor); - mDrawable.setBounds(mRect); - mDrawable.draw(canvas); - } - } - - @NonNull - private final LaneDrawable[] mLanes; - - private final int mWidth; - private final int mHeight; - - public LanesDrawable(@NonNull final Context context, @NonNull SingleLaneInfo[] lanes, boolean isDarkMode) - { - final int mMargin = context.getResources().getDimensionPixelSize(MARGIN_RES); - final TintColorInfo tintColorInfo = getTintColorInfo(context, isDarkMode); - - mLanes = new LaneDrawable[lanes.length]; - - int totalWidth = 0; - for (int i = 0; i < lanes.length; ++i) - { - mLanes[i] = new LaneDrawable(context, lanes[i], totalWidth + mMargin, tintColorInfo); - totalWidth += mLanes[i].mRect.width() + mMargin * 2; - } - - mWidth = totalWidth; - mHeight = mLanes[0].mRect.height(); - } - - @Override - public int getIntrinsicWidth() - { - return mWidth; - } - - @Override - public int getIntrinsicHeight() - { - return mHeight; - } - - @Override - public void draw(@NonNull Canvas canvas) - { - for (final LaneDrawable drawable : mLanes) - drawable.draw(canvas); - } - - @Override - public void setAlpha(int alpha) {} - - @Override - public void setColorFilter(@Nullable ColorFilter colorFilter) {} - - @Override - public int getOpacity() - { - return PixelFormat.UNKNOWN; - } - - @NonNull - private static TintColorInfo getTintColorInfo(@NonNull final Context context, boolean isDarkMode) - { - final int activeLaneTint = ContextCompat.getColor(context, ACTIVE_LANE_TINT_RES); - final int inactiveLaneTint = ContextCompat.getColor(context, !isDarkMode ? INACTIVE_LANE_TINT_RES : INACTIVE_LANE_TINT_NIGHT_RES); - - return new TintColorInfo(activeLaneTint, inactiveLaneTint); - } -} diff --git a/android/app/src/main/java/app/organicmaps/car/util/RoutingUtils.java b/android/app/src/main/java/app/organicmaps/car/util/RoutingUtils.java index e73b429a98..95a7379897 100644 --- a/android/app/src/main/java/app/organicmaps/car/util/RoutingUtils.java +++ b/android/app/src/main/java/app/organicmaps/car/util/RoutingUtils.java @@ -18,6 +18,7 @@ import app.organicmaps.bookmarks.data.MapObject; import app.organicmaps.routing.RoutingInfo; import app.organicmaps.routing.SingleLaneInfo; import app.organicmaps.util.Graphics; +import app.organicmaps.widget.LanesDrawable; import java.time.ZonedDateTime; import java.util.Objects; @@ -74,7 +75,7 @@ public final class RoutingUtils laneBuilder.addDirection(RoutingHelpers.createLaneDirection(laneWay, laneInfo.mIsActive)); builder.addLane(laneBuilder.build()); } - final LanesDrawable lanesDrawable = new LanesDrawable(context, info.lanes, ThemeUtils.isNightMode(context)); + final LanesDrawable lanesDrawable = new LanesDrawable(context, info.lanes); final Bitmap lanesBitmap = Graphics.drawableToBitmap(lanesDrawable); builder.setLanesImage(new CarIcon.Builder(IconCompat.createWithBitmap(lanesBitmap)).build()); } diff --git a/android/app/src/main/java/app/organicmaps/routing/LanesAdapter.java b/android/app/src/main/java/app/organicmaps/routing/LanesAdapter.java deleted file mode 100644 index e1a1cd4e09..0000000000 --- a/android/app/src/main/java/app/organicmaps/routing/LanesAdapter.java +++ /dev/null @@ -1,90 +0,0 @@ -package app.organicmaps.routing; - -import android.content.res.ColorStateList; -import android.util.TypedValue; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; -import app.organicmaps.R; -import app.organicmaps.widget.ArrowView; - -import java.util.ArrayList; -import java.util.List; - -public class LanesAdapter extends RecyclerView.Adapter -{ - @NonNull - private final List mItems = new ArrayList<>(); - - @NonNull - @Override - public LanesViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) - { - final LayoutInflater inflater = LayoutInflater.from(parent.getContext()); - final View root = inflater.inflate(R.layout.nav_single_lane, parent, false); - return new LanesViewHolder(root); - } - - @Override - public void onBindViewHolder(@NonNull LanesViewHolder holder, int position) - { - holder.bind(mItems.get(position)); - } - - @Override - public int getItemCount() - { - return mItems.size(); - } - - public void setItems(@NonNull List items) - { - mItems.clear(); - mItems.addAll(items); - notifyDataSetChanged(); - } - - public void clearItems() - { - boolean alreadyEmpty = mItems.isEmpty(); - mItems.clear(); - if (!alreadyEmpty) - notifyDataSetChanged(); - } - - static class LanesViewHolder extends RecyclerView.ViewHolder - { - @NonNull - private final ArrowView mArrow; - - public LanesViewHolder(@NonNull View itemView) - { - super(itemView); - mArrow = itemView.findViewById(R.id.lane_image); - } - - private void setIconTint(@NonNull SingleLaneInfo info) - { - int iconTint = info.mIsActive ? R.attr.iconTint : R.attr.navLaneArrowInactiveColor; - TypedValue color = new TypedValue(); - mArrow.getContext().getTheme().resolveAttribute(iconTint, color, true); - mArrow.setImageTintList(ColorStateList.valueOf(color.data)); - } - - private void setIcon(@NonNull SingleLaneInfo info) - { - boolean haveLaneData = (info.mLane.length > 0); - int imageRes = haveLaneData ? info.mLane[0].mTurnRes : 0; - mArrow.setImageResource(imageRes); - } - - void bind(@NonNull SingleLaneInfo info) - { - setIconTint(info); - setIcon(info); - } - } -} diff --git a/android/app/src/main/java/app/organicmaps/routing/NavigationController.java b/android/app/src/main/java/app/organicmaps/routing/NavigationController.java index 9d8417e54a..1c4daa7360 100644 --- a/android/app/src/main/java/app/organicmaps/routing/NavigationController.java +++ b/android/app/src/main/java/app/organicmaps/routing/NavigationController.java @@ -11,18 +11,16 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; -import androidx.recyclerview.widget.RecyclerView; import app.organicmaps.Framework; import app.organicmaps.R; import app.organicmaps.maplayer.traffic.TrafficManager; import app.organicmaps.util.UiUtils; import app.organicmaps.util.Utils; import app.organicmaps.util.WindowInsetUtils; +import app.organicmaps.widget.LanesView; import app.organicmaps.widget.menu.NavMenu; import com.google.android.material.bottomsheet.BottomSheetBehavior; -import java.util.Arrays; - public class NavigationController implements TrafficManager.TrafficCallback, NavMenu.NavMenuListener { @@ -39,11 +37,7 @@ public class NavigationController implements TrafficManager.TrafficCallback, private final TextView mNextStreet; @NonNull - private final View mLanesFrame; - @NonNull - private final RecyclerView mLanes; - @NonNull - private final LanesAdapter mLanesAdapter; + private final LanesView mLanesView; private final NavMenu mNavMenu; View.OnClickListener mOnSettingsClickListener; @@ -57,12 +51,6 @@ public class NavigationController implements TrafficManager.TrafficCallback, }); } - private void initLanesRecycler() - { - mLanes.setAdapter(mLanesAdapter); - mLanes.setNestedScrollingEnabled(false); - } - public NavigationController(AppCompatActivity activity, View.OnClickListener onSettingsClickListener, NavMenu.OnMenuSizeChangedListener onMenuSizeChangedListener) { @@ -85,10 +73,7 @@ public class NavigationController implements TrafficManager.TrafficCallback, mStreetFrame = topFrame.findViewById(R.id.street_frame); mNextStreet = mStreetFrame.findViewById(R.id.street); - mLanesFrame = topFrame.findViewById(R.id.lanes_frame); - mLanes = mLanesFrame.findViewById(R.id.lanes); - mLanesAdapter = new LanesAdapter(); - initLanesRecycler(); + mLanesView = topFrame.findViewById(R.id.lanes); // Show a blank view below the navbar to hide the menu content final View navigationBarBackground = mFrame.findViewById(R.id.nav_bottom_sheet_nav_bar); @@ -122,16 +107,7 @@ public class NavigationController implements TrafficManager.TrafficCallback, if (info.nextCarDirection.containsNextTurn()) info.nextCarDirection.setNextTurnDrawable(mNextNextTurnImage); - if (info.lanes != null) - { - UiUtils.show(mLanesFrame); - mLanesAdapter.setItems(Arrays.asList(info.lanes)); - } - else - { - UiUtils.hide(mLanesFrame); - mLanesAdapter.clearItems(); - } + mLanesView.setLanes(info.lanes); } private void updatePedestrian(@NonNull RoutingInfo info) diff --git a/android/app/src/main/java/app/organicmaps/routing/SingleLaneInfo.java b/android/app/src/main/java/app/organicmaps/routing/SingleLaneInfo.java index 4805fe81c5..96595ad21b 100644 --- a/android/app/src/main/java/app/organicmaps/routing/SingleLaneInfo.java +++ b/android/app/src/main/java/app/organicmaps/routing/SingleLaneInfo.java @@ -1,7 +1,7 @@ package app.organicmaps.routing; import androidx.annotation.DrawableRes; -import androidx.annotation.Keep; +import androidx.annotation.NonNull; import app.organicmaps.R; @@ -38,10 +38,7 @@ public class SingleLaneInfo } } - // Called from JNI. - @Keep - @SuppressWarnings("unused") - SingleLaneInfo(byte[] laneOrdinals, boolean isActive) + public SingleLaneInfo(@NonNull byte[] laneOrdinals, boolean isActive) { mLane = new LaneWay[laneOrdinals.length]; final LaneWay[] values = LaneWay.values(); @@ -51,6 +48,7 @@ public class SingleLaneInfo mIsActive = isActive; } + @NonNull @Override public String toString() { diff --git a/android/app/src/main/java/app/organicmaps/widget/LanesDrawable.java b/android/app/src/main/java/app/organicmaps/widget/LanesDrawable.java new file mode 100644 index 0000000000..eb01fa560e --- /dev/null +++ b/android/app/src/main/java/app/organicmaps/widget/LanesDrawable.java @@ -0,0 +1,166 @@ +package app.organicmaps.widget; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.ColorFilter; +import android.graphics.PixelFormat; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; + +import androidx.annotation.ColorInt; +import androidx.annotation.ColorRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.content.res.AppCompatResources; +import androidx.core.content.ContextCompat; + +import app.organicmaps.R; +import app.organicmaps.routing.SingleLaneInfo; + +import java.util.Objects; + +public class LanesDrawable extends Drawable +{ + @ColorRes + private static final int ACTIVE_LANE_TINT_RES = R.color.white_primary; + @ColorRes + private static final int INACTIVE_LANE_TINT_RES = R.color.white_38; + + private static class TintColorInfo + { + @ColorInt + public final int mActiveLaneTint; + @ColorInt + public final int mInactiveLaneTint; + + public TintColorInfo(@ColorInt int activeLaneTint, @ColorInt int inactiveLaneTint) + { + mActiveLaneTint = activeLaneTint; + mInactiveLaneTint = inactiveLaneTint; + } + } + + private static class LaneDrawable + { + private final Drawable mDrawable; + + private LaneDrawable(@NonNull final Context context, @NonNull SingleLaneInfo laneInfo, int horizontalOffset, TintColorInfo colorInfo) + { + mDrawable = Objects.requireNonNull(AppCompatResources.getDrawable(context, laneInfo.mLane[0].mTurnRes)); + + final int width = mDrawable.getIntrinsicWidth(); + final int height = mDrawable.getIntrinsicHeight(); + + mDrawable.setBounds(horizontalOffset, 0, horizontalOffset + width, height); + mDrawable.setTint(laneInfo.mIsActive ? colorInfo.mActiveLaneTint : colorInfo.mInactiveLaneTint); + } + + private void draw(@NonNull final Canvas canvas) + { + mDrawable.draw(canvas); + } + } + + @NonNull + private final LaneDrawable[] mLanes; + + private int mWidth; + private int mHeight; + + public LanesDrawable(@NonNull final Context context, @NonNull SingleLaneInfo[] lanes) + { + final TintColorInfo tintColorInfo = new TintColorInfo( + ContextCompat.getColor(context, ACTIVE_LANE_TINT_RES), + ContextCompat.getColor(context, INACTIVE_LANE_TINT_RES)); + mLanes = createLaneDrawables(context, lanes, tintColorInfo); + } + + public LanesDrawable(@NonNull final Context context, @NonNull SingleLaneInfo[] lanes, @ColorInt int activeLaneTint, @ColorInt int inactiveLaneTint) + { + final TintColorInfo tintColorInfo = new TintColorInfo(activeLaneTint, inactiveLaneTint); + mLanes = createLaneDrawables(context, lanes, tintColorInfo); + } + + @Override + public int getIntrinsicWidth() + { + return mWidth; + } + + @Override + public int getIntrinsicHeight() + { + return mHeight; + } + + @Override + public void setBounds(int left, int top, int right, int bottom) + { + final int width = right - left; + final int height = bottom - top; + final float widthRatio = (float) width / mWidth; + final float heightRatio = (float) height / mHeight; + final float ratio = Math.min(widthRatio, heightRatio); + + final float widthForOneLane = ((float) mWidth / mLanes.length) * ratio; + final float heightForOneLane = mHeight * ratio; + + mWidth = (int) (widthForOneLane * mLanes.length); + mHeight = (int) heightForOneLane; + + float offsetX = (float) Math.abs(mWidth - width) / 2 + left; + float offsetY = (float) Math.abs(mHeight - height) / 2 + top; + for (final LaneDrawable drawable : mLanes) + { + final Rect bounds = drawable.mDrawable.getBounds(); + bounds.offsetTo((int) offsetX, (int) offsetY); + bounds.right = (int) (bounds.left + widthForOneLane); + bounds.bottom = (int) (bounds.top + heightForOneLane); + offsetX += widthForOneLane; + } + + super.setBounds( + mLanes[0].mDrawable.getBounds().left, + mLanes[0].mDrawable.getBounds().top, + mLanes[mLanes.length - 1].mDrawable.getBounds().right, + mLanes[0].mDrawable.getBounds().bottom); + } + + @Override + public void draw(@NonNull Canvas canvas) + { + for (final LaneDrawable drawable : mLanes) + drawable.draw(canvas); + } + + @Override + public void setAlpha(int alpha) {} + + @Override + public void setColorFilter(@Nullable ColorFilter colorFilter) {} + + @Override + public int getOpacity() + { + return PixelFormat.UNKNOWN; + } + + @NonNull + private LaneDrawable[] createLaneDrawables(@NonNull Context context, @NonNull SingleLaneInfo[] lanes, @NonNull TintColorInfo tintColorInfo) + { + assert lanes.length > 0; + + final LaneDrawable[] laneDrawables = new LaneDrawable[lanes.length]; + + int totalWidth = 0; + for (int i = 0; i < lanes.length; ++i) + { + laneDrawables[i] = new LaneDrawable(context, lanes[i], totalWidth, tintColorInfo); + totalWidth += laneDrawables[i].mDrawable.getBounds().width(); + } + + mWidth = totalWidth; + mHeight = laneDrawables[0].mDrawable.getBounds().height(); + return laneDrawables; + } +} diff --git a/android/app/src/main/java/app/organicmaps/widget/LanesView.java b/android/app/src/main/java/app/organicmaps/widget/LanesView.java new file mode 100644 index 0000000000..3436e032fd --- /dev/null +++ b/android/app/src/main/java/app/organicmaps/widget/LanesView.java @@ -0,0 +1,171 @@ +package app.organicmaps.widget; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.RectF; +import android.util.AttributeSet; +import android.util.TypedValue; +import android.view.MotionEvent; +import android.view.View; + +import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StyleableRes; + +import app.organicmaps.R; +import app.organicmaps.routing.SingleLaneInfo; + +public class LanesView extends View +{ + private interface DefaultValues + { + @ColorInt + int BACKGROUND_COLOR = Color.BLACK; + @ColorInt + int ACTIVE_LANE_TINT_COLOR = Color.WHITE; + @ColorInt + int INACTIVE_LANE_TINT_COLOR = Color.GRAY; + + float CORNER_RADIUS = 0.0f; + + int LANES_COUNT = 5; + } + + private final int mCornerRadius; + + @ColorInt + private final int mActiveLaneTintColor; + @ColorInt + private final int mInactiveLaneTintColor; + + @NonNull + private final Paint mBackgroundPaint; + + @Nullable + private LanesDrawable mLanesDrawable; + @Nullable + private Rect mViewBounds = null; + + public LanesView(Context context, @Nullable AttributeSet attrs) + { + super(context, attrs); + + int backgroundColor; + + try (TypedArray data = context.getTheme().obtainStyledAttributes(attrs, R.styleable.LanesView, 0, 0)) + { + backgroundColor = getAttrColor(data, R.styleable.LanesView_backgroundColor, DefaultValues.BACKGROUND_COLOR); + mActiveLaneTintColor = getAttrColor(data, R.styleable.LanesView_activeLaneTintColor, DefaultValues.ACTIVE_LANE_TINT_COLOR); + mInactiveLaneTintColor = getAttrColor(data, R.styleable.LanesView_inactiveLaneTintColor, DefaultValues.INACTIVE_LANE_TINT_COLOR); + mCornerRadius = (int) Math.max(data.getDimension(R.styleable.LanesView_cornerRadius, DefaultValues.CORNER_RADIUS), 0.0f); + + if (isInEditMode()) + { + final int lanesCount = Math.max(1, data.getInt(R.styleable.LanesView_editModeLanesCount, DefaultValues.LANES_COUNT)); + createLanesForEditMode(lanesCount); + } + } + + mBackgroundPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + mBackgroundPaint.setColor(backgroundColor); + } + + public void setLanes(@Nullable SingleLaneInfo[] lanes) + { + if (lanes == null || lanes.length == 0) + mLanesDrawable = null; + else + mLanesDrawable = new LanesDrawable(getContext(), lanes, mActiveLaneTintColor, mInactiveLaneTintColor); + update(); + } + + @Override + public void draw(@NonNull Canvas canvas) + { + super.draw(canvas); + + if (mLanesDrawable == null) + return; + + final int paddingStart = getPaddingStart(); + final int paddingTop = getPaddingTop(); + final int paddingEnd = getPaddingEnd(); + final int paddingBottom = getPaddingBottom(); + + mLanesDrawable.setBounds(paddingStart, paddingTop, getWidth() - paddingEnd, getHeight() - paddingBottom); + + mViewBounds = new Rect(mLanesDrawable.getBounds()); + + mViewBounds.left -= paddingStart; + mViewBounds.top -= paddingTop; + mViewBounds.right += paddingEnd; + mViewBounds.bottom += paddingBottom; + + canvas.drawRoundRect(new RectF(mViewBounds), mCornerRadius, mCornerRadius, mBackgroundPaint); + + mLanesDrawable.draw(canvas); + } + + @Override + public boolean onTouchEvent(MotionEvent event) + { + if (mViewBounds != null && mViewBounds.contains((int) event.getX(), (int) event.getY())) + { + performClick(); + return true; + } + + return false; + } + + @Override + public boolean performClick() + { + super.performClick(); + return false; + } + + private void update() + { + if (mLanesDrawable != null) + setVisibility(VISIBLE); + else + setVisibility(GONE); + invalidate(); + } + + @ColorInt + private int getAttrColor(@NonNull TypedArray data, @StyleableRes int index, @ColorInt int defaultColor) + { + final TypedValue typedValue = new TypedValue(); + data.getValue(index, typedValue); + if (typedValue.type == TypedValue.TYPE_ATTRIBUTE) + { + getContext().getTheme().resolveAttribute(typedValue.data, typedValue, true); + return typedValue.data; + } + else + return data.getColor(index, defaultColor); + } + + private void createLanesForEditMode(int lanesCount) + { + final SingleLaneInfo[] lanes = new SingleLaneInfo[lanesCount]; + lanes[0] = new SingleLaneInfo(new byte[]{1}, false); + if (lanes.length > 1) + lanes[1] = new SingleLaneInfo(new byte[]{3}, false); + for (int i = 2; i <= lanes.length - 1; i++) + lanes[i] = new SingleLaneInfo(new byte[]{0}, true); + if (lanes.length > 2) + lanes[lanes.length - 2] = new SingleLaneInfo(new byte[]{8}, false); + if (lanes.length > 3) + lanes[lanes.length - 1] = new SingleLaneInfo(new byte[]{9}, false); + + setLanes(lanes); + } +} diff --git a/android/app/src/main/res/layout-land/layout_nav_top.xml b/android/app/src/main/res/layout-land/layout_nav_top.xml index 681ec9c838..94c07dd6c9 100644 --- a/android/app/src/main/res/layout-land/layout_nav_top.xml +++ b/android/app/src/main/res/layout-land/layout_nav_top.xml @@ -106,20 +106,21 @@ - - - - - \ No newline at end of file + + diff --git a/android/app/src/main/res/layout/layout_nav_top.xml b/android/app/src/main/res/layout/layout_nav_top.xml index 8483c74286..64d19a315c 100644 --- a/android/app/src/main/res/layout/layout_nav_top.xml +++ b/android/app/src/main/res/layout/layout_nav_top.xml @@ -106,20 +106,21 @@ - - - - - \ No newline at end of file + + diff --git a/android/app/src/main/res/layout/nav_lanes.xml b/android/app/src/main/res/layout/nav_lanes.xml deleted file mode 100644 index 6ad7d3a027..0000000000 --- a/android/app/src/main/res/layout/nav_lanes.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/android/app/src/main/res/layout/nav_single_lane.xml b/android/app/src/main/res/layout/nav_single_lane.xml deleted file mode 100644 index ef84c42ebf..0000000000 --- a/android/app/src/main/res/layout/nav_single_lane.xml +++ /dev/null @@ -1,14 +0,0 @@ - - diff --git a/android/app/src/main/res/values-land/fractions.xml b/android/app/src/main/res/values-land/fractions.xml deleted file mode 100644 index 0b103cea4a..0000000000 --- a/android/app/src/main/res/values-land/fractions.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 0.15 - \ No newline at end of file diff --git a/android/app/src/main/res/values/attrs.xml b/android/app/src/main/res/values/attrs.xml index 9981b13f8c..60530de713 100644 --- a/android/app/src/main/res/values/attrs.xml +++ b/android/app/src/main/res/values/attrs.xml @@ -1,5 +1,14 @@ + + + + + + + + + diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml index 0c82ff093d..6f68c7c99b 100644 --- a/android/app/src/main/res/values/colors.xml +++ b/android/app/src/main/res/values/colors.xml @@ -122,8 +122,12 @@ @color/bg_statusbar @color/bg_statusbar_night #80FFFFFF - #FF007CCB - #FF2C88AD + + + @color/white_primary + @color/black_primary + @color/black_20 + @color/black_20 #FFF2F6F6 diff --git a/android/app/src/main/res/values/fractions.xml b/android/app/src/main/res/values/fractions.xml deleted file mode 100644 index 9afc01d472..0000000000 --- a/android/app/src/main/res/values/fractions.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 0.08 - \ No newline at end of file diff --git a/android/app/src/main/res/values/themes-attrs.xml b/android/app/src/main/res/values/themes-attrs.xml index fd964ab377..75a651c16c 100644 --- a/android/app/src/main/res/values/themes-attrs.xml +++ b/android/app/src/main/res/values/themes-attrs.xml @@ -19,10 +19,9 @@ - + + - - diff --git a/android/app/src/main/res/values/themes-base.xml b/android/app/src/main/res/values/themes-base.xml index 70deb83b37..8aa30d5793 100644 --- a/android/app/src/main/res/values/themes-base.xml +++ b/android/app/src/main/res/values/themes-base.xml @@ -46,8 +46,9 @@ @drawable/bg_nav_next_turn @drawable/bg_nav_next_next_turn - @color/base_accent - @color/nav_lanearrow_inactive_light + @color/base_accent + @color/nav_lane_arrow_active_light + @color/nav_lane_arrow_inactive_light @drawable/button @color/button_text @@ -182,8 +183,9 @@ @drawable/bg_nav_next_turn_night @drawable/bg_nav_next_next_turn_night - @color/base_accent_night - @color/nav_lanearrow_inactive_night + @color/base_accent_night + @color/nav_lane_arrow_active_night + @color/nav_lane_arrow_inactive_night @drawable/button_night @color/button_text_night