diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java index 75f89e661f..1675ec9d3f 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java @@ -184,6 +184,10 @@ public class NaviClient implements IMogoNavi { return mMogoNaviConfig; } + @Override public boolean setBroadcastMode(int mode) { + return mAMapNavi.setBroadcastMode(mode); + } + // -- end private boolean checkAMapNavi() { diff --git a/libraries/mogo-map-api/src/main/AndroidManifest.xml b/libraries/mogo-map-api/src/main/AndroidManifest.xml index cc565f439e..6699b2d36f 100644 --- a/libraries/mogo-map-api/src/main/AndroidManifest.xml +++ b/libraries/mogo-map-api/src/main/AndroidManifest.xml @@ -1,2 +1,4 @@ + package="com.mogo.map.api" > + + diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java index 660aa7b528..73fcb2d307 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java @@ -104,7 +104,17 @@ public interface IMogoNavi { */ void setCalculatePathDisplayBounds( Rect bounds ); - + /** + * 导航配置 + * @return + */ MogoNaviConfig getNaviConfig(); + /** + * 设置播报模式 + * @param mode + * @return + */ + boolean setBroadcastMode(int mode); + } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java index 256e9377e1..d93bc08212 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java @@ -142,4 +142,11 @@ public class MogoNavi implements IMogoNavi { } return null; } + + @Override public boolean setBroadcastMode(int mode) { + if (mDelegate != null) { + return mDelegate.setBroadcastMode(mode); + } + return false; + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/constants/BroadcastMode.java b/libraries/mogo-map/src/main/java/com/mogo/map/constants/BroadcastMode.java new file mode 100644 index 0000000000..ac6c7a1781 --- /dev/null +++ b/libraries/mogo-map/src/main/java/com/mogo/map/constants/BroadcastMode.java @@ -0,0 +1,10 @@ +package com.mogo.map.constants; + +/** + * @author zyz + * 2020-01-14. + */ +public class BroadcastMode { + public static final int CONCISE = 1; + public static final int DETAIL = 2; +} diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt index c93a9b3703..eab135cf33 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt @@ -1,5 +1,7 @@ package com.mogo.module.navi.ui.setting +import android.content.Context +import android.media.AudioManager import android.os.Bundle import android.view.View import android.widget.CompoundButton @@ -8,6 +10,8 @@ import android.widget.SeekBar import android.widget.SeekBar.OnSeekBarChangeListener import com.alibaba.android.arouter.facade.annotation.Route import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.map.constants.BroadcastMode +import com.mogo.map.uicontroller.EnumMapUI import com.mogo.module.common.MogoModulePaths import com.mogo.module.navi.R import com.mogo.module.navi.constants.SearchServiceHolder @@ -108,6 +112,10 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener { rb_navi_no_high_way.setOnCheckedChangeListener(this) rb_navi_fee.setOnCheckedChangeListener(this) + var audioManager = activity?.getSystemService(Context.AUDIO_SERVICE) as AudioManager + sb_navi_volume_progress.max = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC) + sb_navi_volume_progress.progress = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC) + sb_navi_volume_progress.setOnSeekBarChangeListener(object : OnSeekBarChangeListener { override fun onProgressChanged( @@ -115,9 +123,9 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener { progress: Int, fromUser: Boolean ) { - if (fromUser) { - SettingManager.volume = progress - } + audioManager.setStreamVolume( + AudioManager.STREAM_MUSIC, progress, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE + ) } override fun onStartTrackingTouch(seekBar: SeekBar?) { @@ -131,9 +139,28 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener { rg_navi_day_night.setOnCheckedChangeListener { group, checkedId -> SettingManager.mapType = checkedId + + when (checkedId) { + R.id.rb_navi_day -> { + SearchServiceHolder.getMapUIController() + .changeMapMode(EnumMapUI.Type_Night) + } + R.id.rb_navi_night -> { + SearchServiceHolder.getMapUIController() + .changeMapMode(EnumMapUI.Type_Light) + } + R.id.rb_navi_auto -> { + SearchServiceHolder.getMapUIController() + .changeMapMode(EnumMapUI.Type_AUTO_LIGHT_Night) + } + } } rg_navi_sound_type.setOnCheckedChangeListener { group, checkedId -> SettingManager.voiceStyle = checkedId + SearchServiceHolder.getNavi() + .setBroadcastMode( + if (checkedId == R.id.rb_navi_detail) BroadcastMode.DETAIL else BroadcastMode.CONCISE + ) } }