diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/location/AMapLocationManager.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/location/AMapLocationManager.java deleted file mode 100644 index 2aeee6ba15..0000000000 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/location/AMapLocationManager.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.mogo.module.map.location; - -import android.content.Context; -import android.util.Log; -import com.amap.api.location.AMapLocation; -import com.amap.api.location.AMapLocationClient; -import com.amap.api.location.AMapLocationClientOption; -import com.amap.api.location.AMapLocationListener; -import com.amap.api.maps.model.LatLng; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; - -public class AMapLocationManager { - - private static final String TAG = "AMapLocationManager"; - - private static final Set< AMapLocationListener > mLocationChangeListeners = new HashSet<>(); - private static final InternalLocationListener mInternalLocationListener = new InternalLocationListener(); - - private AMapLocationClient mLocationClient; - - private static AMapLocation sLastKnowLocation = null; - - private static volatile AMapLocationManager sInstance; - - public static AMapLocationManager getInstance( Context context ) { - if ( sInstance == null ) { - synchronized ( AMapLocationManager.class ) { - if ( sInstance == null ) { - sInstance = new AMapLocationManager( context ); - } - } - } - return sInstance; - } - - public synchronized void release() { - stop(); - mLocationChangeListeners.clear(); - mLocationClient = null; - sLastKnowLocation = null; - sInstance = null; - } - - private AMapLocationManager( Context context ) { - if ( context == null ) { - throw new NullPointerException( "context can't be null." ); - } - mLocationClient = new AMapLocationClient( context.getApplicationContext() ); - mLocationClient.setLocationListener( mInternalLocationListener ); - } - - private void setLocationOptions( long locateInterval ) { - AMapLocationClientOption option = new AMapLocationClientOption(); - option.setLocationMode( AMapLocationClientOption.AMapLocationMode.Hight_Accuracy ); - option.setNeedAddress( true ); - option.setInterval( locateInterval ); - if ( mLocationClient != null ) { - mLocationClient.setLocationOption( option ); - } - } - - public synchronized void start() { - start( 2000L ); - } - - public synchronized void start( long locateInterval ) { - if ( mLocationClient != null && mLocationClient.isStarted() ) { - stop(); - } - setLocationOptions( locateInterval ); - mLocationClient.startLocation(); - Log.d( TAG, "start location, location interval is " + locateInterval ); - } - - public synchronized void stop() { - if ( mLocationClient != null ) { - mLocationClient.stopLocation(); - } - Log.d( TAG, "stop location" ); - } - - public static AMapLocation getAMapLastKnowLocation() { - return sLastKnowLocation; - } - - public static LatLng getLastKnowPoint() { - final AMapLocation location = getAMapLastKnowLocation(); - if ( location != null ) { - return new LatLng( location.getLatitude(), location.getLongitude() ); - } - return null; - } - - public void addLocationListener( AMapLocationListener listener ) { - if ( listener != null ) { - synchronized ( mLocationChangeListeners ) { - mLocationChangeListeners.add( listener ); - } - } - } - - public void removeLocationListener( AMapLocationListener listener ) { - synchronized ( mLocationChangeListeners ) { - mLocationChangeListeners.remove( listener ); - } - } - - /** - * 定位SDK监听函数 - */ - private static class InternalLocationListener implements AMapLocationListener { - @Override - public void onLocationChanged( AMapLocation aMapLocation ) { - if ( aMapLocation == null || - aMapLocation.getLatitude() == 0.0D || - aMapLocation.getLongitude() == 0.0D ) { - return; - } - sLastKnowLocation = aMapLocation.clone(); - synchronized ( mLocationChangeListeners ) { - Iterator iterator = mLocationChangeListeners.iterator(); - while ( iterator.hasNext() ) { - AMapLocationListener listener = ( AMapLocationListener ) iterator.next(); - listener.onLocationChanged( sLastKnowLocation ); - } - } - } - } -} \ No newline at end of file diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/location/LocationUtils.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/location/LocationUtils.java deleted file mode 100644 index f989358fa4..0000000000 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/location/LocationUtils.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.mogo.module.map.location; - -/** - * @author congtaowang - * @since 2019-09-27 - *

- * 描述 - */ -public class LocationUtils { - - public static float bearing( double lat1, double lon1, double lat2, double lon2 ) { - - double longitude1 = lon1; - double longitude2 = lon2; - double latitude1 = Math.toRadians( lat1 ); - double latitude2 = Math.toRadians( lat2 ); - double longDiff = Math.toRadians( longitude2 - longitude1 ); - double y = Math.sin( longDiff ) * Math.cos( latitude2 ); - double x = Math.cos( latitude1 ) * Math.sin( latitude2 ) - Math.sin( latitude1 ) * Math.cos( latitude2 ) * Math - .cos( longDiff ); - - double result = ( Math.toDegrees( Math.atan2( y, x ) ) + 360 ) % 360; - if ( ( ( int ) result ) == ( ( int ) ( result + 0.5 ) ) ) { - return ( ( int ) result ); - } else { - return ( ( int ) result ) + 0.5f; - } - } -} diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/location/MyLocationUtils.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/location/MyLocationUtils.java deleted file mode 100644 index 51118e107c..0000000000 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/location/MyLocationUtils.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.mogo.module.map.location; - -import com.amap.api.maps.model.MyLocationStyle; - -/** - * @author congtaowang - * @since 2019-10-17 - *

- * 描述 - */ -public class MyLocationUtils { - - public static final long INTERVAL_FAST_SPEED = 2_000L; - public static final long INTERVAL_MIDDLE_SPEED = 2_000L; - public static final long INTERVAL_SLOW_SPEED = 10_000L; - - /** - * 前台快速定位 - * - * @return - */ - public static MyLocationStyle wrapperAsFast( MyLocationStyle style ) { - if ( style != null ) { - style.interval( INTERVAL_FAST_SPEED ); - } - return style; - } - - /** - * 后台慢速定位 - * - * @return - */ - public static MyLocationStyle wrapperAsMiddleSpeed( MyLocationStyle style ) { - if ( style != null ) { - style.interval( INTERVAL_MIDDLE_SPEED ); - } - return style; - } - - /** - * 后台慢速定位 - * - * @return - */ - public static MyLocationStyle wrapperAsSlow( MyLocationStyle style ) { - if ( style != null ) { - style.interval( INTERVAL_SLOW_SPEED ); - } - return style; - } - -} diff --git a/modules/mogo-module-navi/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java b/modules/mogo-module-navi/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java index 10d16b1aca..4cd21fd6ab 100644 --- a/modules/mogo-module-navi/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java +++ b/modules/mogo-module-navi/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java @@ -91,60 +91,9 @@ public class SearchFragment extends BaseFragment implements SearchView @Override public void onActivityCreated( @Nullable Bundle savedInstanceState ) { super.onActivityCreated( savedInstanceState ); - initViews(); getLifecycle().addObserver( mSearchPresenter = new SearchPresenter( this ) ); } - private void initViews() { - mClose = findViewById( R.id.amap_search_close ); - mClose.setOnClickListener( view -> { - exitSearch(); - } ); - - mSearchBox = findViewById( R.id.amap_search_search_box ); - mSearchResult = findViewById( R.id.amap_search_poi_result ); - mSearchResult.setLayoutManager( new LinearLayoutManager( mContext, LinearLayoutManager.VERTICAL, false ) ); - - mMyLocation = findViewById( R.id.amap_search_poi_my_location ); - mMyLocation.setOnClickListener( view -> { - if ( !checkNetwork() ) { - shortToast( "网络未连接,请检查网络" ); - return; - } - multiSearchMyLocationUI(); - } ); - mChoicePoint = findViewById( R.id.amap_search_poi_choice_point ); - mChoicePoint.setOnClickListener( view -> { - multiSearchChoicePointUI(); - } ); - mCurrentLocation = findViewById( R.id.amap_search_current_location ); - mCurrentLocation.setOnClickListener( view -> { - if ( !checkNetwork() ) { - shortToast( "网络未连接,请检查网络" ); - return; - } - } ); - - mActionButton = findViewById( R.id.amap_search_action_setting ); - mActionButton.setOnClickListener( view -> { - if ( mUiMode == SearchConstants.UI_MODE_MULTI_MY_LOCATION ) { - saveCurrentLocationAsCommonAddress(); - } else if ( mUiMode == SearchConstants.UI_MODE_MULTI_CHOICE_POINT ) { - saveRegeoAddressAsCommonAddress(); - } - } ); - - switch ( mSearchType ) { - case SearchConstants.SEARCH_TYPE_COMMON: - commonSearchUI(); - break; - case SearchConstants.SEARCH_TYPE_MULTI_HOME: - case SearchConstants.SEARCH_TYPE_MULTI_COMPANY: - multiSearchUI(); - break; - } - } - /** * 普通搜索UI:不显示我的位置、地图选点、我的定位 */ @@ -209,47 +158,47 @@ public class SearchFragment extends BaseFragment implements SearchView /** * 显示我的位置,并且可设置为家 */ - 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 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 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 ) { diff --git a/modules/mogo-module-navi/src/main/res/drawable/shape_round_gray.xml b/modules/mogo-module-navi/src/main/res/drawable/shape_round_gray.xml new file mode 100644 index 0000000000..4e5fb46c4f --- /dev/null +++ b/modules/mogo-module-navi/src/main/res/drawable/shape_round_gray.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/modules/mogo-module-navi/src/main/res/layout/fragment_search.xml b/modules/mogo-module-navi/src/main/res/layout/fragment_search.xml index dfa977c77f..282105a721 100644 --- a/modules/mogo-module-navi/src/main/res/layout/fragment_search.xml +++ b/modules/mogo-module-navi/src/main/res/layout/fragment_search.xml @@ -1,137 +1,43 @@ - + android:paddingBottom="@dimen/dp_30" + android:paddingLeft="@dimen/dp_30" + android:paddingRight="@dimen/dp_30" + android:paddingTop="@dimen/dp_20" + tools:context=".ui.search.SearchFragment" + style="@style/amap_fragment_container_padding_style" + > - - - - - - - - - + + + + android:layout_weight="1"/> + + - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/modules/mogo-module-navi/src/main/res/mipmap-xhdpi/icon_back.png b/modules/mogo-module-navi/src/main/res/mipmap-xhdpi/icon_back.png new file mode 100755 index 0000000000..168039e929 Binary files /dev/null and b/modules/mogo-module-navi/src/main/res/mipmap-xhdpi/icon_back.png differ diff --git a/modules/mogo-module-navi/src/main/res/values/colors.xml b/modules/mogo-module-navi/src/main/res/values/colors.xml index 4add7088b2..95d44677b1 100644 --- a/modules/mogo-module-navi/src/main/res/values/colors.xml +++ b/modules/mogo-module-navi/src/main/res/values/colors.xml @@ -5,6 +5,7 @@ #D81B60 #ff080625 #FFFFFF + #99FFFFFF #7FFFFFFF #00BFFF #4DFFFFFF diff --git a/modules/mogo-module-navi/src/main/res/values/strings.xml b/modules/mogo-module-navi/src/main/res/values/strings.xml index d6991f8270..ac37e0a964 100644 --- a/modules/mogo-module-navi/src/main/res/values/strings.xml +++ b/modules/mogo-module-navi/src/main/res/values/strings.xml @@ -1,3 +1,4 @@ mogo-module-navi + 查看地点、公交、地铁