diff --git a/app/build.gradle b/app/build.gradle index 772fd116aa..c659faba9a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,6 +44,11 @@ android { proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + + compileOptions { + targetCompatibility 1.8 + sourceCompatibility 1.8 + } } dependencies { @@ -55,8 +60,8 @@ dependencies { releaseImplementation rootProject.ext.dependencies.leakcanarynoop releaseImplementation rootProject.ext.dependencies.androidxmultidex - implementation rootProject.ext.dependencies.moduledemo - implementation rootProject.ext.dependencies.moduledemo2 +// implementation rootProject.ext.dependencies.moduledemo +// implementation rootProject.ext.dependencies.moduledemo2 if (Boolean.valueOf(RELEASE)) { api rootProject.ext.dependencies.modulemain diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index c2d61ae99d..87f83e0486 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -5,9 +5,6 @@ import android.content.Context; import androidx.multidex.MultiDex; import com.mogo.commons.AbsMogoApplication; -import com.mogo.demo.module.map.DemoConstants; -import com.mogo.demo.module.map2.Demo2Constants; -import com.mogo.module.common.ModuleType; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; import com.mogo.tanlu.constant.TanluConstants; @@ -23,8 +20,8 @@ public class MogoApplication extends AbsMogoApplication { @Override public void onCreate() { super.onCreate(); - MogoModulePaths.addModule( new MogoModule( DemoConstants.TAG, "CARD_DEMO" ) ); - MogoModulePaths.addModule( new MogoModule( Demo2Constants.TAG, "CARD_DEMO2" ) ); +// MogoModulePaths.addModule( new MogoModule( DemoConstants.TAG, "CARD_DEMO" ) ); +// MogoModulePaths.addModule( new MogoModule( Demo2Constants.TAG, "CARD_DEMO2" ) ); MogoModulePaths.addModule( new MogoModule( TanluConstants.TAG, "CARD_TYPE_ROAD_CODITION" ) ); } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index 829c6338e5..6815b5ec0d 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -408,7 +408,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, style.strokeColor( Color.TRANSPARENT ); style.strokeWidth( 0 ); style.radiusFillColor( Color.TRANSPARENT ); - style.myLocationIcon( BitmapDescriptorFactory.fromResource( R.drawable.ic_current_location_cursor ) ); + style.myLocationIcon( BitmapDescriptorFactory.fromResource( R.drawable.map_api_ic_current_location ) ); mMapView.getMap().setMyLocationStyle( style ); } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java index 5589a8c39a..3e6928da2d 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java @@ -80,8 +80,16 @@ public interface IMogoMarker { */ void setMarkerOptions( MogoMarkerOptions opt ); + /** + * 可以存储业务相关的数据 + * + * @param object + */ void setObject( Object object ); + /** + * @return 用户设置的 object 对象 + */ Object getObject(); /** diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_amap_app_main_current_location_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_amap_app_main_current_location_bkg.png deleted file mode 100755 index ae6a30532c..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_amap_app_main_current_location_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_amap_app_main_exit_navi_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_amap_app_main_exit_navi_bkg.png deleted file mode 100755 index 3f2cde9f94..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_amap_app_main_exit_navi_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_amap_app_main_search_bar_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_amap_app_main_search_bar_bkg.png deleted file mode 100755 index ea21518567..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_amap_app_main_search_bar_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_amap_navi_cursor.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_amap_navi_cursor.png deleted file mode 100755 index 1f731b0db3..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_amap_navi_cursor.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_back.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_back.png deleted file mode 100755 index 4b51fc8060..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_back.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_back_dark.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_back_dark.png deleted file mode 100755 index bad7f51e3d..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_back_dark.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_current_location.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_current_location.png deleted file mode 100755 index 2d5ff8d4c9..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_current_location.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_current_location_cursor.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_current_location_cursor.png deleted file mode 100755 index 3f08bc021f..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_current_location_cursor.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_delete.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_delete.png deleted file mode 100755 index c9b34a4fe6..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_delete.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_main_setting.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_main_setting.png deleted file mode 100755 index 472d9b702e..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_main_setting.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_navi_info_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_navi_info_bkg.png deleted file mode 100755 index d20b9596bc..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_navi_info_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search.png deleted file mode 100755 index 4d668580a3..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_choice_point.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_choice_point.png deleted file mode 100755 index 8ca4538285..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_choice_point.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_company.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_company.png deleted file mode 100755 index 9697f060f0..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_company.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_home.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_home.png deleted file mode 100755 index 3452e4e433..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_home.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_poi_location.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_poi_location.png deleted file mode 100755 index 25940d02c6..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_poi_location.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_unshadow.png b/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_unshadow.png deleted file mode 100755 index 7e8bf2b9c5..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-hdpi/ic_search_unshadow.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_amap_app_main_current_location_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_amap_app_main_current_location_bkg.png deleted file mode 100755 index 6ae8cdd6df..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_amap_app_main_current_location_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_amap_app_main_exit_navi_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_amap_app_main_exit_navi_bkg.png deleted file mode 100755 index a26b1c41c3..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_amap_app_main_exit_navi_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_amap_app_main_search_bar_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_amap_app_main_search_bar_bkg.png deleted file mode 100755 index 6cb2857bbe..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_amap_app_main_search_bar_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_amap_navi_cursor.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_amap_navi_cursor.png deleted file mode 100755 index d9056dc066..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_amap_navi_cursor.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_back.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_back.png deleted file mode 100755 index 9d4ad53f3b..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_back.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_back_dark.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_back_dark.png deleted file mode 100755 index 5a6b9d916f..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_back_dark.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_current_location.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_current_location.png deleted file mode 100755 index 1b08cc5f53..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_current_location.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_current_location_cursor.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_current_location_cursor.png deleted file mode 100755 index 732e2f228b..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_current_location_cursor.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_delete.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_delete.png deleted file mode 100755 index 6cbe4afd03..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_delete.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_main_setting.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_main_setting.png deleted file mode 100755 index 4122417b9d..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_main_setting.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_navi_info_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_navi_info_bkg.png deleted file mode 100755 index 0f86d86a29..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_navi_info_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search.png deleted file mode 100755 index a94be88d18..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_choice_point.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_choice_point.png deleted file mode 100755 index 13ea311e83..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_choice_point.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_company.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_company.png deleted file mode 100755 index 2c2e86d0a8..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_company.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_home.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_home.png deleted file mode 100755 index 0b18677f59..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_home.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_poi_location.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_poi_location.png deleted file mode 100755 index 4dd0495294..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_poi_location.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_unshadow.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_unshadow.png deleted file mode 100755 index cd32e7f85f..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/ic_search_unshadow.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_amap_app_main_current_location_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_amap_app_main_current_location_bkg.png deleted file mode 100755 index d1f7d180b7..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_amap_app_main_current_location_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_amap_app_main_exit_navi_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_amap_app_main_exit_navi_bkg.png deleted file mode 100755 index 41abd4899d..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_amap_app_main_exit_navi_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_amap_app_main_search_bar_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_amap_app_main_search_bar_bkg.png deleted file mode 100755 index 631b8f799c..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_amap_app_main_search_bar_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_current_location.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_current_location.png deleted file mode 100755 index cef9326010..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_current_location.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_delete.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_delete.png deleted file mode 100755 index 3b6a6f6aff..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_delete.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_main_setting.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_main_setting.png deleted file mode 100755 index 37caaba37c..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_main_setting.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_navi_info_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_navi_info_bkg.png deleted file mode 100755 index eec694492e..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_navi_info_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_search.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_search.png deleted file mode 100755 index 38cd883c1d..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_search.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_search_company.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_search_company.png deleted file mode 100755 index c460e09b11..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_search_company.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_search_home.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_search_home.png deleted file mode 100755 index cfc9516ad7..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_search_home.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_search_unshadow.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_search_unshadow.png deleted file mode 100755 index cc0965e58b..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_search_unshadow.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/map_api_ic_current_location.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/map_api_ic_current_location.png new file mode 100644 index 0000000000..58f3550408 Binary files /dev/null and b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/map_api_ic_current_location.png differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_amap_app_main_current_location_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_amap_app_main_current_location_bkg.png deleted file mode 100755 index 1bedf36034..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_amap_app_main_current_location_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_amap_app_main_exit_navi_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_amap_app_main_exit_navi_bkg.png deleted file mode 100755 index 729d5bd115..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_amap_app_main_exit_navi_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_amap_app_main_search_bar_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_amap_app_main_search_bar_bkg.png deleted file mode 100755 index 88c1aba933..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_amap_app_main_search_bar_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_amap_navi_cursor.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_amap_navi_cursor.png deleted file mode 100755 index 29446b440e..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_amap_navi_cursor.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_back.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_back.png deleted file mode 100755 index 8b71d64823..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_back.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_back_dark.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_back_dark.png deleted file mode 100755 index d7fb53b07e..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_back_dark.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_current_location.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_current_location.png deleted file mode 100755 index 394816a629..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_current_location.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_delete.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_delete.png deleted file mode 100755 index b2be7d69e8..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_delete.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_main_setting.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_main_setting.png deleted file mode 100755 index c45cca1001..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_main_setting.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_mini_current_position_cursor.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_mini_current_position_cursor.png deleted file mode 100755 index 54d30f28d7..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_mini_current_position_cursor.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_navi_info_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_navi_info_bkg.png deleted file mode 100755 index df753302d6..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_navi_info_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search.png deleted file mode 100755 index d1e92f18ff..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_choice_point.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_choice_point.png deleted file mode 100755 index f1fdb8f94d..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_choice_point.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_company.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_company.png deleted file mode 100755 index 79c58e30dc..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_company.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_home.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_home.png deleted file mode 100755 index 499db278e1..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_home.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_poi_location.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_poi_location.png deleted file mode 100755 index 3b9b833dc3..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_poi_location.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_unshadow.png b/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_unshadow.png deleted file mode 100755 index 83321b0852..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxhdpi/ic_search_unshadow.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_amap_app_main_current_location_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_amap_app_main_current_location_bkg.png deleted file mode 100755 index f497b06bfb..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_amap_app_main_current_location_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_amap_app_main_exit_navi_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_amap_app_main_exit_navi_bkg.png deleted file mode 100755 index 9c793553d4..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_amap_app_main_exit_navi_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_amap_app_main_search_bar_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_amap_app_main_search_bar_bkg.png deleted file mode 100755 index ab8f0dd66a..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_amap_app_main_search_bar_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_amap_navi_cursor.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_amap_navi_cursor.png deleted file mode 100755 index fd5a4f97a8..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_amap_navi_cursor.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_back.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_back.png deleted file mode 100755 index 355b270598..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_back.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_back_dark.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_back_dark.png deleted file mode 100755 index 26e63062ee..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_back_dark.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_current_location.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_current_location.png deleted file mode 100755 index b57ab6d37f..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_current_location.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_current_location_cursor.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_current_location_cursor.png deleted file mode 100755 index 52fbfe85e6..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_current_location_cursor.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_delete.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_delete.png deleted file mode 100755 index b11c525539..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_delete.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_main_setting.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_main_setting.png deleted file mode 100755 index 24efb3c610..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_main_setting.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_navi_info_bkg.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_navi_info_bkg.png deleted file mode 100755 index fa9d08d9eb..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_navi_info_bkg.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search.png deleted file mode 100755 index 1f3eb227da..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_choice_point.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_choice_point.png deleted file mode 100755 index 17c80dd1c7..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_choice_point.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_company.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_company.png deleted file mode 100755 index f6185feccf..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_company.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_home.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_home.png deleted file mode 100755 index 1e3cfbec83..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_home.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_poi_location.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_poi_location.png deleted file mode 100755 index dc98953d56..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_poi_location.png and /dev/null differ diff --git a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_unshadow.png b/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_unshadow.png deleted file mode 100755 index bb04d0dfbd..0000000000 Binary files a/libraries/mogo-map-api/src/main/res/drawable-xxxhdpi/ic_search_unshadow.png and /dev/null differ diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java index 1d2e44a9b8..60481bc255 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java @@ -102,4 +102,10 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP mWeatherDesc.setText( desc ); mWeatherContainer.setVisibility( hidden ? View.GONE : View.VISIBLE ); } + + @Override + public void renderMsgInfo( boolean hasMsg, int amount ) { + mMsgContainer.setVisibility( hasMsg ? View.VISIBLE : View.GONE ); + mMsgCounter.setText( amount > 99 ? getString( R.string.module_ext_str_dots ) : String.valueOf( amount ) ); + } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java index f4e33bdca7..682a3ea9eb 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java @@ -8,11 +8,15 @@ import android.content.IntentFilter; import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; +import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.mvp.Presenter; import com.mogo.module.extensions.weather.Phenomena; import com.mogo.module.extensions.weather.WeatherCallback; import com.mogo.module.extensions.weather.WeatherInfo; import com.mogo.module.extensions.weather.WeatherModel; +import com.mogo.service.MogoServicePaths; +import com.mogo.service.statusmanager.IMogoMsgCenter; +import com.mogo.service.statusmanager.IMogoMsgCenterListener; import com.mogo.utils.logger.Logger; import java.util.Calendar; @@ -24,7 +28,7 @@ import java.util.Calendar; *
* 描述
*/
-public class ExtensionsPresenter extends Presenter< ExtensionsView > implements WeatherCallback {
+public class ExtensionsPresenter extends Presenter< ExtensionsView > implements WeatherCallback, IMogoMsgCenterListener {
private static final String TAG = "ExtensionsPresenter";
@@ -46,6 +50,8 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
}
};
+ private IMogoMsgCenter mMsgCenter;
+
public ExtensionsPresenter( ExtensionsView view ) {
super( view );
@@ -60,6 +66,8 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
mWeatherModel.init( this );
mWeatherModel.queryWeatherInformation();
refreshTimeAndDate();
+ mMsgCenter = ( IMogoMsgCenter ) ARouter.getInstance().build( MogoServicePaths.PATH_MSG_CENTER ).navigation();
+ mMsgCenter.registerMsgCenterListener( this );
}
/**
@@ -100,12 +108,21 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
mView.renderWeatherInfo( temp, desc, resId );
}
+ @Override
+ public void onMsgChanged( boolean hasMsg, int amount ) {
+ if ( mView != null ) {
+
+ }
+ }
+
@Override
public void onDestroy( @NonNull LifecycleOwner owner ) {
super.onDestroy( owner );
if ( mWeatherModel != null ) {
mWeatherModel.destroy();
}
-
+ if ( mMsgCenter != null ) {
+ mMsgCenter.unregisterMsgCenterListener( this );
+ }
}
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsView.java
index fc1c71fb22..3ab09a0b41 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsView.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsView.java
@@ -27,4 +27,12 @@ public interface ExtensionsView extends IView {
* @param iconId 图标
*/
void renderWeatherInfo( String temp, String desc, int iconId );
+
+ /**
+ * 刷新消息信息
+ *
+ * @param hasMsg 是否有消息
+ * @param amount 消息数量
+ */
+ void renderMsgInfo( boolean hasMsg, int amount );
}
diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml
index e7921e4e1a..05ec75c36a 100644
--- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml
+++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml
@@ -101,6 +101,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/dp_28"
+ android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@+id/module_ext_id_weather_container"
app:layout_constraintTop_toTopOf="parent">
@@ -119,7 +120,6 @@
android:gravity="center"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_20"
- android:visibility="invisible"
tools:text="···" />
diff --git a/modules/mogo-module-extensions/src/main/res/values/strings.xml b/modules/mogo-module-extensions/src/main/res/values/strings.xml
index a74b263891..09466eae59 100644
--- a/modules/mogo-module-extensions/src/main/res/values/strings.xml
+++ b/modules/mogo-module-extensions/src/main/res/values/strings.xml
@@ -13,4 +13,5 @@
+ * 消息管控
+ */
+public interface IMogoMsgCenterListener {
+
+ /**
+ * 消息变更
+ *
+ * @param hasMsg 是否有消息
+ * @param amount 消息数量
+ */
+ void onMsgChanged( boolean hasMsg, int amount );
+}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoWindowManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoWindowManager.java
new file mode 100644
index 0000000000..d91f865a25
--- /dev/null
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoWindowManager.java
@@ -0,0 +1,32 @@
+package com.mogo.service.windowview;
+
+import android.view.View;
+
+import com.alibaba.android.arouter.facade.template.IProvider;
+
+/**
+ * @author congtaowang
+ * @since 2020-01-06
+ *
+ * 根据优先级控制显示 window view.
+ */
+public interface IMogoWindowManager extends IProvider {
+
+ /**
+ * 向window中添加指定的布局
+ *
+ * @param priority 优先级
+ * @param view 添加的实例
+ * @param x 左上角x坐标
+ * @param y 左上角y坐标
+ * @param movable 是否可移动(无效)
+ */
+ void addView( int priority, View view, int x, int y, boolean movable );
+
+ /**
+ * 移除对应的 view
+ *
+ * @param view
+ */
+ void removeView( View view );
+}
diff --git a/services/mogo-service/src/main/AndroidManifest.xml b/services/mogo-service/src/main/AndroidManifest.xml
index 3b87b75ef7..cffc2c97c3 100644
--- a/services/mogo-service/src/main/AndroidManifest.xml
+++ b/services/mogo-service/src/main/AndroidManifest.xml
@@ -1,2 +1,5 @@
+ * 消息中心
+ */
+@Route( path = MogoServicePaths.PATH_MSG_CENTER )
+public class MogoMsgCenter implements IMogoMsgCenter {
+
+ private static List< IMogoMsgCenterListener > sListeners = new ArrayList<>();
+
+ @Override
+ public void setMsgStatus( boolean hasMsg, int msgAmount ) {
+ synchronized ( sListeners ) {
+ Iterator< IMogoMsgCenterListener > iterator = sListeners.iterator();
+ while ( iterator.hasNext() ) {
+ IMogoMsgCenterListener listener = iterator.next();
+ if ( listener != null ) {
+ listener.onMsgChanged( hasMsg, msgAmount );
+ }
+ }
+ }
+ }
+
+ @Override
+ public void registerMsgCenterListener( IMogoMsgCenterListener listener ) {
+ synchronized ( sListeners ) {
+ if ( !sListeners.contains( listener ) ) {
+ sListeners.add( listener );
+ }
+ }
+ }
+
+ @Override
+ public void unregisterMsgCenterListener( IMogoMsgCenterListener listener ) {
+ synchronized ( sListeners ) {
+ sListeners.remove( listener );
+ }
+ }
+
+ @Override
+ public void init( Context context ) {
+
+ }
+}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/DispatchTouchEventWrapper.java b/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/DispatchTouchEventWrapper.java
new file mode 100644
index 0000000000..28f5aba4a6
--- /dev/null
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/DispatchTouchEventWrapper.java
@@ -0,0 +1,137 @@
+package com.mogo.service.impl.windowview;
+
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.WindowManager;
+
+public class DispatchTouchEventWrapper {
+
+ private IWindowViewHandler mWindowViewHandler;
+
+ int mActionDownX = -1;
+ int mActionDownY = -1;
+
+ /**
+ * Flag whether move after touch down.
+ */
+ boolean mMoveFlag = false;
+
+ private static volatile DispatchTouchEventWrapper INST;
+
+ private DispatchTouchEventWrapper() {
+ }
+
+ public static DispatchTouchEventWrapper getInstance() {
+ if ( INST == null ) {
+ synchronized ( DispatchTouchEventWrapper.class ) {
+ if ( INST == null ) {
+ INST = new DispatchTouchEventWrapper();
+ }
+ }
+ }
+ return INST;
+ }
+
+ public DispatchTouchEventWrapper attach( View windowView, WindowManager.LayoutParams params ) {
+ if ( mWindowViewHandler == null || mWindowViewHandler.getWindowView() != windowView ) {
+ mWindowViewHandler = new IWindowViewHandler.DefaultHandler( windowView, params );
+ }
+ return this;
+ }
+
+ public boolean handle( MotionEvent event ) {
+ switch ( event.getAction() & MotionEvent.ACTION_MASK ) {
+ case MotionEvent.ACTION_DOWN:
+ if ( onActionDown( event ) ) {
+ return true;
+ }
+ break;
+ case MotionEvent.ACTION_MOVE:
+ if ( onActionMove( event ) ) {
+ return true;
+ }
+ break;
+ case MotionEvent.ACTION_UP:
+ if ( onActionUp( event ) ) {
+ return true;
+ }
+ break;
+ }
+ return false;
+ }
+
+ private boolean onActionDown( MotionEvent event ) {
+ mActionDownX = ( ( int ) event.getRawX() );
+ mActionDownY = ( ( int ) event.getRawY() );
+ if ( mWindowViewHandler != null ) {
+ mWindowViewHandler.recordNewPosition();
+ return true;
+ }
+ return false;
+ }
+
+ private boolean onActionMove( MotionEvent event ) {
+
+ if ( Math.abs( event.getRawX() - mActionDownX ) >= 20
+ || Math.abs( event.getRawY() - mActionDownY ) >= 20 ) {
+ mMoveFlag = false;
+ }
+
+ if ( isLastDownValueLegal() ) {
+ moveWindowView( event );
+ return true;
+ }
+ return false;
+ }
+
+ private boolean onActionUp( MotionEvent event ) {
+ if ( isClickEventLike() ) {
+ if ( mWindowViewHandler != null ) {
+ mWindowViewHandler.performClickLike();
+ }
+ } else {
+ if ( mWindowViewHandler != null ) {
+ mWindowViewHandler.moveToEdge();
+ mWindowViewHandler.recordNewPosition();
+ }
+ }
+ mMoveFlag = false;
+ clearLastDownAxisValue();
+ return true;
+ }
+
+ private void clearLastDownAxisValue() {
+ mActionDownX = mActionDownY = -1;
+ }
+
+ private boolean isLastDownValueLegal() {
+ return mActionDownX != -1 && mActionDownY != -1;
+ }
+
+ private void moveWindowView( MotionEvent event ) {
+ if ( mWindowViewHandler != null ) {
+ mWindowViewHandler.move( event, mActionDownX, mActionDownY );
+ }
+ }
+
+ /**
+ * Simulate click event just like set {@link View.OnClickListener}
+ *
+ * @return
+ */
+ private boolean isClickEventLike() {
+ System.out.println( mMoveFlag );
+ return isLastDownValueLegal() && !mMoveFlag;
+ }
+
+ public void release() {
+ if ( mWindowViewHandler != null ) {
+ mWindowViewHandler.release();
+ }
+ mWindowViewHandler = null;
+ mActionDownX = -1;
+ mActionDownY = -1;
+ mMoveFlag = false;
+ INST = null;
+ }
+}
\ No newline at end of file
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/IWindowViewHandler.java b/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/IWindowViewHandler.java
new file mode 100644
index 0000000000..30577aca6f
--- /dev/null
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/IWindowViewHandler.java
@@ -0,0 +1,108 @@
+package com.mogo.service.impl.windowview;
+
+import android.content.Context;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.WindowManager;
+
+import com.mogo.commons.AbsMogoApplication;
+import com.mogo.utils.WindowUtils;
+
+
+/**
+ * Created by congtaowang on 2017/6/20.
+ */
+
+public interface IWindowViewHandler {
+
+ View getWindowView();
+
+ void recordNewPosition();
+
+ void move( MotionEvent event, int downX, int downY );
+
+ void release();
+
+ void moveToEdge();
+
+ void performClickLike();
+
+ class DefaultHandler implements IWindowViewHandler {
+
+ protected View mWindowView;
+
+ protected int mWindowViewLeft = -1;
+ protected int mWindowViewTop = -1;
+
+ private WindowManager.LayoutParams mParams;
+
+ public DefaultHandler( View windowView, WindowManager.LayoutParams params ) {
+ this.mWindowView = windowView;
+ mParams = params;
+ }
+
+ @Override
+ public View getWindowView() {
+ return mWindowView;
+ }
+
+ @Override
+ public void recordNewPosition() {
+ mWindowViewLeft = mParams.x;
+ mWindowViewTop = mParams.y;
+ }
+
+ @Override
+ public void move( MotionEvent event, int downX, int downY ) {
+ move( ( ( int ) ( event.getRawX() - downX ) ),
+ ( ( int ) ( event.getRawY() - downY ) ) );
+ }
+
+ private void move( int distanceX, int distanceY ) {
+ if ( mWindowView == null ) {
+ return;
+ }
+ mParams.x = mWindowViewLeft + distanceX;
+ mParams.y = mWindowViewTop + distanceY;
+ WindowManager wm = ( ( WindowManager ) mWindowView.getContext().getSystemService( Context.WINDOW_SERVICE ) );
+
+ if ( wm == null ) {
+ return;
+ }
+
+ wm.updateViewLayout( mWindowView, alignLayoutParamsBoundary( mParams ) );
+ }
+
+ @Override
+ public void moveToEdge() {
+ if ( mWindowView == null ) {
+ return;
+ }
+ WindowManager wm = ( ( WindowManager ) mWindowView.getContext().getSystemService( Context.WINDOW_SERVICE ) );
+
+ if ( mParams.x > WindowUtils.getScreenWidth( AbsMogoApplication.getApp() ) / 2 ) {
+ mParams.x = WindowUtils.getScreenWidth( AbsMogoApplication.getApp() ) - mWindowView.getMeasuredWidth();
+ } else {
+ mParams.x = 0;
+ }
+
+ wm.updateViewLayout( mWindowView, alignLayoutParamsBoundary( mParams ) );
+ }
+
+ protected WindowManager.LayoutParams alignLayoutParamsBoundary( WindowManager.LayoutParams params ) {
+ return params;
+ }
+
+ @Override
+ public void performClickLike() {
+ }
+
+ @Override
+ public void release() {
+ mWindowView = null;
+ mWindowViewLeft = -1;
+ mWindowViewTop = -1;
+ }
+ }
+
+}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/MogoWindowManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/MogoWindowManager.java
new file mode 100644
index 0000000000..528c869a58
--- /dev/null
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/MogoWindowManager.java
@@ -0,0 +1,33 @@
+package com.mogo.service.impl.windowview;
+
+import android.content.Context;
+import android.view.View;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.mogo.service.MogoServicePaths;
+import com.mogo.service.windowview.IMogoWindowManager;
+
+/**
+ * @author congtaowang
+ * @since 2020-01-06
+ *
+ * 根据优先级控制显示 window view.
+ */
+@Route( path = MogoServicePaths.PATH_WINDOW_MANAGER )
+public class MogoWindowManager implements IMogoWindowManager {
+
+ @Override
+ public void addView( int priority, View view, int x, int y, boolean movable ) {
+ WindowViewHandler.addView( view, priority, x, y, movable );
+ }
+
+ @Override
+ public void removeView( View view ) {
+ WindowViewHandler.removeView( view );
+ }
+
+ @Override
+ public void init( Context context ) {
+
+ }
+}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/WindowViewHandler.java b/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/WindowViewHandler.java
new file mode 100644
index 0000000000..8c511e1da7
--- /dev/null
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/WindowViewHandler.java
@@ -0,0 +1,144 @@
+package com.mogo.service.impl.windowview;
+
+import android.content.Context;
+import android.graphics.PixelFormat;
+import android.os.Build;
+import android.view.Gravity;
+import android.view.View;
+import android.view.WindowManager;
+
+import com.mogo.utils.logger.Logger;
+
+/**
+ * @author congtaowang
+ * @since 2020-01-06
+ *
+ * 描述
+ */
+public class WindowViewHandler {
+
+ private static final String TAG = "WindowViewHandler";
+
+ /**
+ * 上次显示的优先级
+ */
+ private static int sPriority = Integer.MIN_VALUE;
+
+ /**
+ * 上次添加的view
+ */
+ private static View sView = null;
+
+ private static WindowManager sWindowManager;
+
+ private static int sX, sY;
+
+ /**
+ * 是否可手指拖动
+ */
+ private static boolean sMovable = false;
+
+ public static void addView( View view, int priority, int x, int y, boolean movable ) {
+ if ( view == null ) {
+ return;
+ }
+
+ if ( sWindowManager == null ) {
+ try {
+ sWindowManager = ( WindowManager ) view.getContext().getApplicationContext().getSystemService( Context.WINDOW_SERVICE );
+ } catch ( Exception e ) {
+ Logger.e( TAG, "error. ", e );
+ return;
+ }
+ }
+
+ if ( sView == view ) {
+ Logger.w( TAG, "改布局已添加且没有移除,不操作" );
+ return;
+ }
+
+ if ( sView == null ) {
+ sView = view;
+ sMovable = movable;
+ sPriority = priority;
+ sX = x;
+ sY = y;
+ addView();
+ } else {
+ if ( priority < sPriority ) {
+ Logger.w( TAG, "过滤低优先级布局" );
+ return;
+ }
+ sWindowManager.removeViewImmediate( sView );
+ sView = view;
+ sX = x;
+ sY = y;
+ sPriority = priority;
+ sMovable = movable;
+ addView();
+ }
+ }
+
+ public static void removeView( View view ) {
+ if ( sView != view ) {
+ Logger.w( TAG, "view do not added." );
+ return;
+ }
+ if ( view == null ) {
+ return;
+ }
+ sWindowManager.removeViewImmediate( view );
+ sView = null;
+ sPriority = Integer.MIN_VALUE;
+ sMovable = false;
+ DispatchTouchEventWrapper.getInstance().release();
+ }
+
+ private static void addView() {
+ if ( sView == null ) {
+ return;
+ }
+
+ WindowManager.LayoutParams params = new WindowManager.LayoutParams();
+ params.height = WindowManager.LayoutParams.WRAP_CONTENT;
+ params.width = WindowManager.LayoutParams.WRAP_CONTENT;
+ params.type = getFitWindowParamsType();
+ params.format = PixelFormat.RGBA_8888;
+ params.gravity = Gravity.LEFT | Gravity.TOP;
+ params.x = sX;
+ params.y = sY;
+ params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
+ sWindowManager.addView( sView, params );
+
+ if ( false ) {
+ attachMovementEvent( sView, params );
+ }
+ }
+
+ private static int getFitWindowParamsType() {
+ int type;
+ if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1 ) {
+ // Need request permission.
+ type = WindowManager.LayoutParams.TYPE_PHONE;
+ } else if ( Build.MODEL.equalsIgnoreCase( "MI 5" ) ) {
+ // MI 5 phone not display crawler dot in android 7.0
+ type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
+ } else {
+ // It's will be dismissed automatically 3s after showing in Android 25.
+ type = WindowManager.LayoutParams.TYPE_TOAST;
+ }
+ return type;
+ }
+
+ public static void attachMovementEvent( View view, WindowManager.LayoutParams params ) {
+ if ( view == null ) {
+ return;
+ }
+ view.setOnTouchListener( ( v, event ) -> {
+ DispatchTouchEventWrapper.getInstance()
+ .attach( view, params )
+ .handle( event );
+ return false;
+ } );
+ }
+}