From c41beb91927987856472820668de42d561212625 Mon Sep 17 00:00:00 2001 From: zhangyuanzhen Date: Wed, 8 Jan 2020 20:44:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=AE=B6=E5=92=8C=E5=85=AC?= =?UTF-8?q?=E5=8F=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/commons/AbsMogoApplication.java | 1 - .../mogo/module/common/MogoModulePaths.java | 16 +- .../extensions/entrance/EntranceFragment.java | 2 +- .../navi/constants/SearchServiceHolder.kt | 19 ++ .../navi/ui/search/BaseSearchFragment.java | 280 ++++++++++++++++++ .../module/navi/ui/search/SearchFragment.java | 37 +-- .../navi/ui/setting/NaviSettingFragment.kt | 19 ++ .../navi/ui/setting/SettingAddressFragment.kt | 33 +++ .../main/res/drawable/selector_setting_bg.xml | 6 + .../res/drawable/shape_round_blue_margin.xml | 7 + .../src/main/res/drawable/shape_seek_bar.xml | 26 ++ .../main/res/layout/fragment_navi_setting.xml | 272 +++++++++++++++-- .../src/main/res/layout/fragment_search.xml | 36 +-- .../res/layout/fragment_setting_address.xml | 10 + .../main/res/layout/include_search_bar.xml | 36 +++ .../res/mipmap-xhdpi/icon_navi_position.png | Bin 1847 -> 2791 bytes .../res/mipmap-xhdpi/icon_navi_sound_low.png | Bin 0 -> 296 bytes .../res/mipmap-xhdpi/icon_navi_sound_plus.png | Bin 0 -> 506 bytes .../main/res/mipmap-xhdpi/icon_pb_thumb.png | Bin 0 -> 3687 bytes .../main/res/mipmap-xhdpi/icon_sound_high.png | Bin 0 -> 1760 bytes .../main/res/mipmap-xhdpi/icon_sound_low.png | Bin 0 -> 1220 bytes .../src/main/res/values/strings.xml | 10 + .../src/main/res/values/styles.xml | 1 + 23 files changed, 725 insertions(+), 86 deletions(-) create mode 100644 modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt create mode 100644 modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/BaseSearchFragment.java create mode 100644 modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt create mode 100644 modules/mogo-module-search/src/main/res/drawable/selector_setting_bg.xml create mode 100644 modules/mogo-module-search/src/main/res/drawable/shape_round_blue_margin.xml create mode 100644 modules/mogo-module-search/src/main/res/drawable/shape_seek_bar.xml create mode 100644 modules/mogo-module-search/src/main/res/layout/fragment_setting_address.xml create mode 100644 modules/mogo-module-search/src/main/res/layout/include_search_bar.xml create mode 100755 modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_navi_sound_low.png create mode 100755 modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_navi_sound_plus.png create mode 100755 modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_pb_thumb.png create mode 100755 modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_sound_high.png create mode 100755 modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_sound_low.png diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java index ba34b7889d..50493f61fa 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java @@ -14,7 +14,6 @@ import com.mogo.commons.network.ParamsUtil; import com.mogo.commons.network.X509TrustManagerImpl; import com.mogo.commons.storage.SpStorage; import com.mogo.utils.TipToast; -import com.mogo.utils.glide.GlideApp; import com.mogo.utils.logger.Logger; import com.mogo.utils.network.NetConfig; import com.zhidao.account.sdk.AccountClientManager; diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java index 0f6bce5c93..65e430a6b3 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java @@ -52,13 +52,27 @@ public class MogoModulePaths { /** - * 管理 fragment + * 搜索 fragment */ @Keep public static final String PATH_FRAGMENT_SEARCH = "/navi/search"; + /** + * 设置 fragment + */ + @Keep + public static final String PATH_FRAGMENT_SETTING = "/navi/setting"; + + + /** + * 设置家和公司 fragment + */ + @Keep + public static final String PATH_FRAGMENT_SETTING_HOME = "/navi/setting/home"; + + /** * 添加卡片模块 diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index ead25df897..d516520fcc 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -66,9 +66,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mSearch = findViewById( R.id.module_entrance_id_search ); - Fragment fragment = ( Fragment ) ARouter.getInstance().build( MogoModulePaths.PATH_FRAGMENT_SEARCH ).navigation(); mSearch.setOnClickListener( view -> { + Fragment fragment = ( Fragment ) ARouter.getInstance().build( MogoModulePaths.PATH_FRAGMENT_SEARCH ).navigation(); mMogoFragmentManager.push( new FragmentDescriptor.Builder().fragment( fragment ).tag( MogoModulePaths.PATH_FRAGMENT_SEARCH ).notifyMainModule( true ).build() ); } ); diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt new file mode 100644 index 0000000000..e0465d19a6 --- /dev/null +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt @@ -0,0 +1,19 @@ +package com.mogo.module.navi.constants + +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.service.MogoServicePaths +import com.mogo.service.fragmentmanager.IMogoFragmentManager + +/** + *@author zyz + * 2020-01-08. + */ +object SearchServiceHolder { + + val fragmentManager:IMogoFragmentManager = ARouter.getInstance().build( + MogoServicePaths.PATH_FRAGMENT_MANAGER + ).navigation() as IMogoFragmentManager + + + +} \ No newline at end of file diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/BaseSearchFragment.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/BaseSearchFragment.java new file mode 100644 index 0000000000..9b0edd0b1f --- /dev/null +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/BaseSearchFragment.java @@ -0,0 +1,280 @@ +package com.mogo.module.navi.ui.search; + +import android.content.Context; +import android.os.Bundle; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import com.alibaba.android.arouter.facade.annotation.Route; +import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.map.search.inputtips.MogoTip; +import com.mogo.module.common.MogoModulePaths; +import com.mogo.module.navi.R; +import com.mogo.module.navi.bean.EntityConvertUtils; +import com.mogo.module.navi.bean.SearchPoi; +import com.mogo.module.navi.ui.adapter.HistoryPoiAdapter; +import com.mogo.module.navi.ui.adapter.SearchPoiAdapter; +import com.mogo.module.navi.ui.base.BaseFragment; +import com.mogo.module.navi.ui.base.UiController; +import com.mogo.module.navi.ui.setting.NaviSettingFragment; +import com.mogo.service.MogoServicePaths; +import com.mogo.service.fragmentmanager.FragmentDescriptor; +import com.mogo.service.fragmentmanager.IMogoFragmentManager; +import java.util.ArrayList; +import java.util.List; + +/** + * 搜索页面 + *

+ * 普通搜索:从首页点击搜索按钮进入:包含:仅输入搜索(列表不包含设置按钮) + * {@link SearchConstants#SEARCH_TYPE_COMMON} + *

+ * 地址设置搜索:设置家、公司、其他的地址:包含当前位置、选点、搜索列表(列表包含设置按钮)、普通页面 + * {@link SearchConstants#SEARCH_TYPE_MULTI_COMPANY} + * {@link SearchConstants#SEARCH_TYPE_MULTI_HOME} + */ +public abstract class BaseSearchFragment extends BaseFragment implements SearchView { + + + public int mSearchType; + + protected SearchPresenter mSearchPresenter; + + private View mClose; + private EditText mSearchBox; + + + + /** + * 设置常用地址(我的位置、选点)时的设置按钮 + */ + private TextView mActionButton; + + /** + * 地址设置是否完成 + */ + private boolean mActionSuccess = false; + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof UiController) { + } + } + + @Override public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + } + + @Override + protected int getLayoutId() { + return R.layout.fragment_search; + } + + @Override + public void onActivityCreated(@Nullable Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + getLifecycle().addObserver(mSearchPresenter = new SearchPresenter(this)); + } + + @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + mSearchBox = view.findViewById(R.id.et_navi_search); + } + + /** + * 显示我的位置,并且可设置为家 + */ + //private void multiSearchMyLocationUI() { + // mUiMode = SearchConstants.UI_MODE_MULTI_MY_LOCATION; + // mSearchBox.setEnabled( false ); + // mMyLocation.setVisibility( View.GONE ); + // mChoicePoint.setVisibility( View.GONE ); + // mCurrentLocation.setVisibility( View.GONE ); + // mSearchResult.setVisibility( View.GONE ); + // mActionButton.setVisibility( View.VISIBLE ); + // mActionButton.setText( SearchUtils.getSearchTypeActionName( mSearchType ) ); + // mSearchBox.setCompoundDrawables( null, null, null, null ); + // //removeChoicePointMarker(); + // mSearchBox.setTag( null ); + // if ( mSearchBox.getLayoutParams() instanceof RelativeLayout.LayoutParams ) { + // final RelativeLayout.LayoutParams params = ( ( RelativeLayout.LayoutParams ) mSearchBox.getLayoutParams() ); + // params.addRule( RelativeLayout.LEFT_OF, R.id.amap_search_action_setting ); + // mSearchBox.setPadding( 0, 0, WindowUtils.dip2px( mContext, 15 ), 0 ); + // mSearchBox.setLayoutParams( params ); + // } + //} + + /** + * 显示我的位置,并且可设置为家 + */ + //private void multiSearchChoicePointUI() { + // mUiMode = SearchConstants.UI_MODE_MULTI_CHOICE_POINT; + // mSearchBox.setEnabled( false ); + // mMyLocation.setVisibility( View.GONE ); + // mChoicePoint.setVisibility( View.GONE ); + // mCurrentLocation.setVisibility( View.GONE ); + // mSearchResult.setVisibility( View.GONE ); + // mActionButton.setVisibility( View.VISIBLE ); + // mActionButton.setText( SearchUtils.getSearchTypeActionName( mSearchType ) ); + // mSearchBox.setCompoundDrawables( null, null, null, null ); + // mSearchBox.setTag( null ); + // if ( mSearchBox.getLayoutParams() instanceof RelativeLayout.LayoutParams ) { + // final RelativeLayout.LayoutParams params = ( ( RelativeLayout.LayoutParams ) mSearchBox.getLayoutParams() ); + // params.addRule( RelativeLayout.LEFT_OF, R.id.amap_search_action_setting ); + // mSearchBox.setPadding( 0, 0, WindowUtils.dip2px( mContext, 15 ), 0 ); + // mSearchBox.setLayoutParams( params ); + // } + //} + private void saveCurrentLocationAsCommonAddress() { + //if ( mLastAMapLocation == null ) { + // shortToast( "定位失败,请重试" ); + // return; + //} + //final Disposable disposable = mSearchPresenter.cacheCommonAddressPoi( mLastAMapLocation ).subscribe( output -> { + // Toast.makeText( mContext, "设置成功!", Toast.LENGTH_SHORT ).show(); + // mActionSuccess = true; + //}, error -> { + // if ( error instanceof Exception) { + // Toast.makeText( mContext, ( (Exception) error ).getMessage(), Toast.LENGTH_SHORT ).show(); + // mActionSuccess = false; + // } + //} ); + //mSearchPresenter.addDisposable( disposable ); + } + + private void saveRegeoAddressAsCommonAddress() { + //if ( mSearchBox.getTag() instanceof RegeocodeAddress ) { + // final Disposable disposable = mSearchPresenter.cacheCommonAddressPoi( ( ( RegeocodeAddress ) mSearchBox.getTag() ) ).subscribe( output -> { + // Toast.makeText( mContext, "设置成功!", Toast.LENGTH_SHORT ).show(); + // mActionSuccess = true; + // }, error -> { + // if ( error instanceof Exception) { + // Toast.makeText( mContext, ( (Exception) error ).getMessage(), Toast.LENGTH_SHORT ).show(); + // mActionSuccess = false; + // } + // } ); + // mSearchPresenter.addDisposable( disposable ); + //} else { + // Toast.makeText( mContext, "请选择位置", Toast.LENGTH_SHORT ).show(); + //} + } + + // view interface + + @Override + public EditText getSearchBox() { + return mSearchBox; + } + + + @Override + public int getSearchType() { + return mSearchType; + } + + @Override public void startJumpAnimation() { + + } + + //@Override + //public void renderChoicePointResult( RegeocodeAddress address ) { + // if ( address == null ) { + // mSearchBox.setTag( null ); + // mSearchBox.setText( "" ); + // return; + // } + // mSearchBox.setTag( address ); + // mSearchBox.setText( address.getFormatAddress() ); + //} + // + //@Override + //public void renderErrorView() { + // + //} + // + //@Override + //public void renderContentView() { + // + //} + + // view interface end + + ///** + // * 屏幕中心marker 跳动 + // */ + //@Override + //public void startJumpAnimation() { + // + // final AMap aMap = mUiController.getAMapServiceVisitor().getMap(); + // + // if ( mChoicePointMaker != null ) { + // //根据屏幕距离计算需要移动的目标点 + // final LatLng latLng = mChoicePointMaker.getPosition(); + // Point point = aMap.getProjection().toScreenLocation( latLng ); + // point.y -= WindowUtils.dip2px( mContext, 125 ); + // LatLng target = aMap.getProjection() + // .fromScreenLocation( point ); + // //使用TranslateAnimation,填写一个需要移动的目标点 + // Animation animation = new TranslateAnimation( target ); + // animation.setInterpolator( new Interpolator() { + // @Override + // public float getInterpolation( float input ) { + // // 模拟重加速度的interpolator + // if ( input <= 0.5 ) { + // return ( float ) ( 0.5f - 2 * ( 0.5 - input ) * ( 0.5 - input ) ); + // } else { + // return ( float ) ( 0.5f - Math.sqrt( ( input - 0.5f ) * ( 1.5f - input ) ) ); + // } + // } + // } ); + // //整个移动所需要的时间 + // animation.setDuration( 600 ); + // //设置动画 + // mChoicePointMaker.setAnimation( animation ); + // //开始动画 + // mChoicePointMaker.startAnimation(); + // + // } + //} + + + private void navi2Location(SearchPoi searchPoi) { + + + } + + /** + * 退出搜索,进行清理 + */ + private void exitSearch() { + + switch (mSearchType) { + case SearchConstants.SEARCH_TYPE_COMMON: + try { + } catch (Exception e) { + e.printStackTrace(); + } + break; + case SearchConstants.SEARCH_TYPE_MULTI_HOME: + break; + } + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + if (mSearchPresenter != null) { + mSearchPresenter.onDestroy(getViewLifecycleOwner()); + getLifecycle().removeObserver(mSearchPresenter); + mSearchPresenter = null; + } + mSearchBox.setTag(null); + //removeChoicePointMarker(); + } +} diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java index 98d63bbf4f..c1cdbcc1d6 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java @@ -27,7 +27,9 @@ import com.mogo.module.navi.ui.adapter.HistoryPoiAdapter; import com.mogo.module.navi.ui.adapter.SearchPoiAdapter; import com.mogo.module.navi.ui.base.BaseFragment; import com.mogo.module.navi.ui.base.UiController; +import com.mogo.module.navi.ui.setting.NaviSettingFragment; import com.mogo.service.MogoServicePaths; +import com.mogo.service.fragmentmanager.FragmentDescriptor; import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.utils.WindowUtils; import io.reactivex.disposables.Disposable; @@ -45,16 +47,14 @@ import java.util.List; * {@link SearchConstants#SEARCH_TYPE_MULTI_HOME} */ @Route(path = MogoModulePaths.PATH_FRAGMENT_SEARCH) -public class SearchFragment extends BaseFragment implements SearchView { +public class SearchFragment extends BaseSearchFragment implements SearchView { public static final String TAG = "search"; public int mSearchType; - private SearchPresenter mSearchPresenter; private View mClose; - private EditText mSearchBox; private RecyclerView mSearchResult; private RecyclerView rvHistory; @@ -96,12 +96,10 @@ public class SearchFragment extends BaseFragment implements SearchView { @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - getLifecycle().addObserver(mSearchPresenter = new SearchPresenter(this)); } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - mSearchBox = view.findViewById(R.id.et_navi_search); mSearchResult = view.findViewById(R.id.rv_navi_search); rvHistory = view.findViewById(R.id.rv_navi_history); rlHistory = view.findViewById(R.id.rl_navi_history); @@ -148,6 +146,16 @@ public class SearchFragment extends BaseFragment implements SearchView { } }); + findViewById(R.id.tv_navi_setting).setOnClickListener(new View.OnClickListener() { + @Override public void onClick(View v) { + FragmentDescriptor.Builder builder = new FragmentDescriptor.Builder(); + builder.fragment(new NaviSettingFragment()); + FragmentDescriptor build = + builder.tag(MogoModulePaths.PATH_FRAGMENT_SETTING).build(); + fragmentManager.push(build); + } + }); + } /** @@ -228,12 +236,6 @@ public class SearchFragment extends BaseFragment implements SearchView { //} } - // view interface - - @Override - public EditText getSearchBox() { - return mSearchBox; - } @Override public void renderSearchPoiResult(List datums, boolean showDelete) { @@ -348,19 +350,6 @@ public class SearchFragment extends BaseFragment implements SearchView { } } - @Override - public void onDestroyView() { - super.onDestroyView(); - if (mSearchPresenter != null) { - mSearchPresenter.onDestroy(getViewLifecycleOwner()); - getLifecycle().removeObserver(mSearchPresenter); - mSearchPresenter = null; - } - mSearchBox.setTag(null); - - mPoiAdapter = null; - //removeChoicePointMarker(); - } private void showResult() { rlHistory.setVisibility(View.GONE); 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 78b40c88c0..924422e0a9 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,14 +1,33 @@ package com.mogo.module.navi.ui.setting +import android.os.Bundle +import android.view.View +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.module.common.MogoModulePaths import com.mogo.module.navi.R +import com.mogo.module.navi.constants.SearchServiceHolder import com.mogo.module.navi.ui.base.BaseFragment +import kotlinx.android.synthetic.main.fragment_navi_setting.iv_back +import kotlinx.android.synthetic.main.fragment_navi_setting.tv_navi_sound_type /** * @author zyz * 2020-01-07. */ +@Route(path= MogoModulePaths.PATH_FRAGMENT_SETTING) class NaviSettingFragment : BaseFragment() { override fun getLayoutId(): Int { return R.layout.fragment_navi_setting } + + override fun onViewCreated( + view: View, + savedInstanceState: Bundle? + ) { + super.onViewCreated(view, savedInstanceState) + + iv_back.setOnClickListener { + SearchServiceHolder.fragmentManager.pop() + } + } } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt new file mode 100644 index 0000000000..0883b064b4 --- /dev/null +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt @@ -0,0 +1,33 @@ +package com.mogo.module.navi.ui.setting + +import android.os.Bundle +import android.view.View +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.module.common.MogoModulePaths +import com.mogo.module.navi.R +import com.mogo.module.navi.constants.SearchServiceHolder +import com.mogo.module.navi.ui.base.BaseFragment +import kotlinx.android.synthetic.main.fragment_navi_setting.iv_back +import kotlinx.android.synthetic.main.fragment_navi_setting.tv_navi_sound_type + +/** + * @author zyz + * 2020-01-07. + */ +@Route(path= MogoModulePaths.PATH_FRAGMENT_SETTING) +class SettingAddressFragment : BaseFragment() { + override fun getLayoutId(): Int { + return R.layout.fragment_setting_address + } + + override fun onViewCreated( + view: View, + savedInstanceState: Bundle? + ) { + super.onViewCreated(view, savedInstanceState) + + iv_back.setOnClickListener { + SearchServiceHolder.fragmentManager.pop() + } + } +} diff --git a/modules/mogo-module-search/src/main/res/drawable/selector_setting_bg.xml b/modules/mogo-module-search/src/main/res/drawable/selector_setting_bg.xml new file mode 100644 index 0000000000..d39295d19f --- /dev/null +++ b/modules/mogo-module-search/src/main/res/drawable/selector_setting_bg.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-search/src/main/res/drawable/shape_round_blue_margin.xml b/modules/mogo-module-search/src/main/res/drawable/shape_round_blue_margin.xml new file mode 100644 index 0000000000..e5dda25219 --- /dev/null +++ b/modules/mogo-module-search/src/main/res/drawable/shape_round_blue_margin.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/modules/mogo-module-search/src/main/res/drawable/shape_seek_bar.xml b/modules/mogo-module-search/src/main/res/drawable/shape_seek_bar.xml new file mode 100644 index 0000000000..ceedde01ce --- /dev/null +++ b/modules/mogo-module-search/src/main/res/drawable/shape_seek_bar.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-search/src/main/res/layout/fragment_navi_setting.xml b/modules/mogo-module-search/src/main/res/layout/fragment_navi_setting.xml index b44181631a..b4d8ad924a 100644 --- a/modules/mogo-module-search/src/main/res/layout/fragment_navi_setting.xml +++ b/modules/mogo-module-search/src/main/res/layout/fragment_navi_setting.xml @@ -1,21 +1,153 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + > + android:src="@mipmap/icon_back" + /> + android:textSize="@dimen/txt_title" + /> + + + - + + + + + + app:layout_constraintTop_toBottomOf="@+id/tv_navi_sound_type" + > + android:checked="true" + android:text="@string/navi_prefer_detail" + style="@style/rb_setting" + /> - - - - - + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-search/src/main/res/layout/fragment_search.xml b/modules/mogo-module-search/src/main/res/layout/fragment_search.xml index 955c6f79e8..0b0cf11af2 100644 --- a/modules/mogo-module-search/src/main/res/layout/fragment_search.xml +++ b/modules/mogo-module-search/src/main/res/layout/fragment_search.xml @@ -8,43 +8,12 @@ android:paddingLeft="@dimen/dp_60" android:paddingRight="@dimen/dp_60" android:paddingTop="@dimen/dp_40" + android:clickable="true" tools:context=".ui.search.SearchFragment" style="@style/amap_fragment_container_padding_style" > - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-search/src/main/res/layout/include_search_bar.xml b/modules/mogo-module-search/src/main/res/layout/include_search_bar.xml new file mode 100644 index 0000000000..4081e7d128 --- /dev/null +++ b/modules/mogo-module-search/src/main/res/layout/include_search_bar.xml @@ -0,0 +1,36 @@ + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_navi_position.png b/modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_navi_position.png index be529a46a397d88b8fab3b413c75b686d6b7afee..029ae98fb2bd2d01a28da9430d06d198b4a661bb 100755 GIT binary patch delta 2771 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 KMNUMnLSTYyW@qmJ diff --git a/modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_navi_sound_low.png b/modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_navi_sound_low.png new file mode 100755 index 0000000000000000000000000000000000000000..3d277f6c1427dc90edf62228948e7d2ceb918f1b GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)jKx9jP7LeL$-D$|9(lSrhEy=V zy|9s&$&rWUfPGTN!_|#m8k6-K>J%EEY}~A$Fi}s!`Rj6dW2D7>Q>j zI5pPZzkbX8?eel?FXQg!`+n>V33y(zvufSRGxn*u$vx3Z*1SJf1wD7!XrI1^`@^Ik zkEd{0rr7X*Ka;*DUFt(zR`lEQpuO*|{@t})ku{l(nV}tibSI0wb&B@cneuck^*mR@R?vR@5t)zpk z3``sf4LFD`+$FKwCswO}Us!*4OZx1@lzuh+?b+teZQnGxZ@+Xa|M~37yxbipo))Yu zo_Y05TEwZ;-^cRmdt(pmwwFKf#2RR@XJd+mw!ncU4n}iCITC^tB+qfN7-&x5NoQr6 zA>z@tnTgSdOXYB6V=&Vc-94|(_T1&!o72g*&u&(@!k?P~YrXq9PxY~TnQLsdnEB)T z;*@;!LCP=SNAjj*XpWr?Av6unsK|)&%Jm4>pNsr zwp?5KHFK_N_)GU4OBUI6{uABs(;{S(lKh2r|2XOyJaf1hj_tXV!656ohWWsZ>C(Il zlsiiqBt91{W-L+J$j6WzmuJ$@r*e%k;mqk?whI%FSTXce?!3rgH7SCQqBn z@U?AsQ;xluVf0`<FVdQ&MBb@0NWwP@&Et; literal 0 HcmV?d00001 diff --git a/modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_pb_thumb.png b/modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_pb_thumb.png new file mode 100755 index 0000000000000000000000000000000000000000..0230dca906a40d61494057eeb878a885d2555751 GIT binary patch literal 3687 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 RgA?TlumRt(tTp#c_#Xr5U623( literal 0 HcmV?d00001 diff --git a/modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_sound_high.png b/modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_sound_high.png new file mode 100755 index 0000000000000000000000000000000000000000..3b79814139bf7821fa27bd56b757aff3fd1617d5 GIT binary patch literal 1760 zcmV<61|Ru}P)Px*nn^@KRCodHoNI_xRTRf()U13oNi}NPORs?$A}V26p9Kll%jBGbjk;n`N-+FX70YT&be#vd+*FW%{}Mt z1^?M=ueHuTYyIy&uYHcTwMB^xLnGJTfx3_=S6iMYF35Xj9HUK9lQI_T*_c6~AqJ+G+9CNDuCY@X)UIJx1{5ODafls#U@d=XgtV8)F9hbRI63_ZFuF)>!SAEbY zCP<(ZO3XyC7RXGpWR)g_fYnBjoC_!FxJ-3+)@>wFt4YY~swF|>nk*_AAhdOe<*y)HtUo>P+{5|OWnYZlLBCxyB zJ7zyMAHr_mY%?8Lhv?HPM$Vg7%vCNX)Ydf%LIX9Uk3+PNyn2k>?shg}PNDB|ebwHq zbgx=y0!vk|H>zL2tQ)WF7J-*3zgI0hfy}VIRDU?dfULgEQ8t;WX}LIUu=<53uvGMZ zqj*hFe-*#s9x}BGfyWI7^umGVzrfh0!qh4RT4cz5sFMqwqS~WM_o}Tz;2eX2-<3@t z&d!`ZZ#sLTEj)o-ZRMTE^hDKdZ71meq--;k?o{i%=zQh2@B~unQ{`%hm0et&PY-w7 z7AoDTzd9w?_i2!c?ipGL=VY#1v4C> zlW~``X=44aG}Ja`{%>knYc28%<9=`w2W5$i z$-HHEO|hgeg_4VW9`X#ZR#z|&tkHzfe_o6!IY>XNYlGhXu+9z}^-{@vBPV-eAHj1V zet9Rd8~9`gj&_$d`jtRdsMFHzVw$og+bmvdE@NElP;}(%L7Aorp}*ZZReKV>yyUOr zn@T51`6{6yFV-1HJ_D93x=+5wk$6<2FN9n2Vp9|>Vw(qk2A1^Xf-GN>R3s#3@`0u7ld*3EeZZ2hFrMqnEjMZM>n3kf1L^+q$A{8&z*=Q+M0tHIFFyt3#Q$_6FF#hy zGcphvhzvvqA_I|u$UtNuG7uSv3`7PZ1CfDB2L1ye0LR^&$`Px(en~_@RCodHoJnXDK@>m}lZZ>)z%3{U0lf->H@$fB5D`Q?1&zBR9&*q_PNE(~ z4iud6dN zRW)g7(4qvCfD%vwNG^PGFdb2ISzqr{wR z1sHdi0M&#f!4sAW&X#n*wi-fvf=S<7#W*2)wJ7mQxG7-4Wj) zK>U{>-N*){+4il;S_X(*LwrTx?TQYZb|OIRtB@avEzh}F6OBtY?GkkG#p(D9X$RP4Mg?zxr zR|MYnxB+1c0bGsGurILD-KTDii(fH4Nv%MBnIwy?1m3o!L10e=D1Gr+jyy%;%B`f= zsECbB55{GiQZMkghLXo82vB0+HyJsKj3U0$9eS+^wUgl?UzRC#0sLxWsg%xT==+%%UF>U|DMPG+5X8NWa({uLpnpjl-mEc!7yifht<8MPgFU~KOSf&AFe6g?0fHw&;gzb06n8msursH>~ za|`WGN0+%do&Yl^GhQ9IQE!Re=ZU}0qsyeK3xI~mNe`KoJjP8PeQH(R0Av=vfXaJ^ z%yioAjxJNPZU7o8FFkbTdUUB(^#<^Zhs-RGF14!O0M7J~k2B4y1NPaO`M4Yecy#q2g@fsHmA)L-%P79HZJ{+doq!wu7%d8*t*h>uzZB*V<26{ z4j|Nz*jw=Nt^W-$`-ejPC&W&Yxmr-QgC?)Fh;LCLI~c0+aQ#2#3}C#rH9LtN-B@=aK1MO; zUn13f!9e6xLfJOfi6w{7_Jy20&iX@}QtqIE*dLgNIs=m+8;IuNt4KnW-TC7=Y9 ifD%vwN暂无搜索结果 路线偏好 躲避拥堵 + 躲避收费 + 高速优先 + 不走高速 + 播报音量 + 播报偏好 + 详细播报 + 简洁播报 + 白天 + 夜间 + 自动 diff --git a/modules/mogo-module-search/src/main/res/values/styles.xml b/modules/mogo-module-search/src/main/res/values/styles.xml index 3f9614df4d..41aa1c444c 100644 --- a/modules/mogo-module-search/src/main/res/values/styles.xml +++ b/modules/mogo-module-search/src/main/res/values/styles.xml @@ -34,6 +34,7 @@ @dimen/sp_40 @color/selector_white_gray @dimen/dp_120 + @drawable/selector_setting_bg