设置音量和播报模式

This commit is contained in:
zhangyuanzhen
2020-01-14 11:45:12 +08:00
parent 6d0b81606e
commit 162cc07627
6 changed files with 65 additions and 5 deletions

View File

@@ -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() {

View File

@@ -1,2 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mogo.map.api" />
package="com.mogo.map.api" >
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
</manifest>

View File

@@ -104,7 +104,17 @@ public interface IMogoNavi {
*/
void setCalculatePathDisplayBounds( Rect bounds );
/**
* 导航配置
* @return
*/
MogoNaviConfig getNaviConfig();
/**
* 设置播报模式
* @param mode
* @return
*/
boolean setBroadcastMode(int mode);
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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
)
}
}