diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2dc54c489f..707ee6e613 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 9172cdd059..24a76c0c38 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -25,7 +25,7 @@ android {
externalNativeBuild {
ndk {
// 设置支持的SO库架构
- abiFilters 'armeabi-v7a'
+ abiFilters 'armeabi-v7a','x86'
}
}
}
diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java
index 3b339d9a2d..b2c9f7f484 100644
--- a/app/src/main/java/com/mogo/launcher/MogoApplication.java
+++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java
@@ -55,7 +55,7 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(MediaConstants.TAG, MediaConstants.MODULE_TYPE));
MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME));
- MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME));
+// MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME));
MogoModulePaths.addModule(new MogoModule(OnLineCarConstants.TAG, OnLineCarConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI));
diff --git a/config.gradle b/config.gradle
index eaf710f48d..5e56778f48 100644
--- a/config.gradle
+++ b/config.gradle
@@ -13,7 +13,7 @@ ext {
// androidx
androidxappcompat : "androidx.appcompat:appcompat:1.0.2",
androidxccorektx : "androidx.core:core-ktx:1.2.0",
- androidxconstraintlayout : "androidx.constraintlayout:constraintlayout:2.0.0-alpha5",
+ androidxconstraintlayout : "androidx.constraintlayout:constraintlayout:2.0.0-beta6",
androidxmultidex : "androidx.multidex:multidex:2.0.1",
androidxviewpager2 : "androidx.viewpager2:viewpager2:1.0.0",
androidxrecyclerview : "androidx.recyclerview:recyclerview:1.1.0",
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 bc82a3cdc3..d8512e230d 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
@@ -6,6 +6,9 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
+import android.transition.AutoTransition;
+import android.transition.Transition;
+import android.transition.TransitionManager;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
@@ -14,6 +17,11 @@ import android.widget.TextView;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.constraintlayout.motion.widget.MotionLayout;
+import androidx.constraintlayout.motion.widget.MotionScene;
+import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.constraintlayout.widget.ConstraintSet;
+import androidx.constraintlayout.widget.Group;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.MvpFragment;
@@ -37,6 +45,7 @@ import com.mogo.module.common.map.Scene;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.extensions.R;
import com.mogo.module.extensions.navi.NaviInfoView;
+import com.mogo.module.extensions.navi.NaviInfoView2;
import com.mogo.module.share.ShareControl;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
@@ -79,7 +88,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
private View mMove2CurrentLocation;
- private NaviInfoView mNaviInfo;
+// private NaviInfoView mNaviInfo;
private TextView mExitNavi;
@@ -101,6 +110,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
private EntrancePresenter mEntrancePresenter;
private IMogoAuthorizeModuleManager mIMogoAuthorizeModuleManager;
private IMogoStatusManager mStatusManager;
+ private ConstraintLayout topMotionLayout;
+ private NaviInfoView2 naviInfoView;
/**
* 搜索莫模块
@@ -162,6 +173,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
private Rect mDisplayOverviewBounds;
+ private boolean toggle = false;
+
@Override
protected int getLayoutId() {
return R.layout.module_ext_layout_entrance;
@@ -182,15 +195,50 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mUpload = findViewById( R.id.module_entrance_id_upload );
mUploading = findViewById( R.id.module_entrance_id_uploading );
mUploadRoadCondition.setOnClickListener( view -> {
- isClickShare = true;
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
- } else {
- ShareControl.getInstance( getActivity() ).showDialog();
- traceData( "1" );
+ // todo 测试动画
+ naviInfoView.setVisibility(View.VISIBLE);
+
+ ConstraintSet beginSet = new ConstraintSet();
+ beginSet.clone(topMotionLayout);
+ ConstraintSet endSet = new ConstraintSet();
+ endSet.clone(topMotionLayout);
+
+ beginSet.getConstraint(R.id.module_entrance_id_top_container).layout.bottomToTop =
+ R.id.module_entrance_id_top_motion_layout;
+ beginSet.getConstraint(R.id.module_entrance_id_top_container).layout.topToTop = -1;
+
+ endSet.getConstraint(R.id.module_entrance_id_top_container).layout.bottomToTop = -1;
+ endSet.getConstraint(R.id.module_entrance_id_top_container).layout.topToTop =
+ R.id.module_entrance_id_top_motion_layout;
+// topMotionLayout.setScene(hasNaviScene);
+ Transition transition = new AutoTransition();
+ transition.setDuration(500);
+ TransitionManager.beginDelayedTransition(topMotionLayout,transition);
+ if(!toggle) {
+ endSet.applyTo(topMotionLayout);
+ naviInfoView.getLayoutParams().height =
+ (int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_small_height);
+// naviInfoView.transitionToEnd();
+ }else{
+ beginSet.applyTo(topMotionLayout);
+ naviInfoView.getLayoutParams().height =
+ (int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_height);
+// naviInfoView.transitionToStart();
}
+ toggle = !toggle;
+ // 原始逻辑
+// isClickShare = true;
+// if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+// mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+// } else {
+// ShareControl.getInstance( getActivity() ).showDialog();
+// traceData( "1" );
+// }
} );
+ topMotionLayout = findViewById(R.id.module_entrance_id_top_motion_layout);
+ naviInfoView = findViewById(R.id.mlNaviInfo);
+
mDisplayOverview = findViewById( R.id.module_ext_id_display_overview );
mDisplayOverviewText = findViewById( R.id.module_ext_id_display_overview_text );
mDisplayOverviewIcon = findViewById( R.id.module_ext_id_display_overview_icon );
@@ -205,19 +253,43 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mMove2CurrentLocation = findViewById( R.id.module_entrance_id_move2_current_location );
mMove2CurrentLocation.setOnClickListener( view -> {
- final MogoLocation location = mMogoLocationClient.getLastKnowLocation();
- if ( location != null ) {
- if ( !mMogoStatusManager.isV2XShow() ) {
- mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
- mMApUIController.setLockZoom( 16 );
- mMApUIController.changeZoom( 16.0f );
- }
- mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
- mMApUIController.recoverLockMode();
+ // todo 测试动画
+ naviInfoView.setVisibility(View.GONE);
+
+ ConstraintSet beginSet = new ConstraintSet();
+ beginSet.clone(topMotionLayout);
+ ConstraintSet endSet = new ConstraintSet();
+ endSet.clone(topMotionLayout);
+
+ beginSet.getConstraint(R.id.module_entrance_id_top_container).layout.bottomToTop =
+ R.id.module_entrance_id_top_motion_layout;
+ beginSet.getConstraint(R.id.module_entrance_id_top_container).layout.topToTop = -1;
+
+ endSet.getConstraint(R.id.module_entrance_id_top_container).layout.bottomToTop = -1;
+ endSet.getConstraint(R.id.module_entrance_id_top_container).layout.topToTop =
+ R.id.module_entrance_id_top_motion_layout;
+// topMotionLayout.setScene(hasNaviScene);
+ TransitionManager.beginDelayedTransition(topMotionLayout);
+ if(!toggle) {
+ endSet.applyTo(topMotionLayout);
+ }else{
+ beginSet.applyTo(topMotionLayout);
}
+ toggle = !toggle;
+ // 原始逻辑
+// final MogoLocation location = mMogoLocationClient.getLastKnowLocation();
+// if ( location != null ) {
+// if ( !mMogoStatusManager.isV2XShow() ) {
+// mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
+// mMApUIController.setLockZoom( 16 );
+// mMApUIController.changeZoom( 16.0f );
+// }
+// mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
+// mMApUIController.recoverLockMode();
+// }
} );
- mNaviInfo = findViewById( R.id.module_entrance_id_navi_info_panel );
+// mNaviInfo = findViewById( R.id.module_entrance_id_navi_info_panel );
mExitNavi = findViewById( R.id.module_entrance_id_exit_navi );
mExitNavi.setOnClickListener( view -> {
if ( mMogoNavi != null ) {
@@ -347,12 +419,12 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
if ( naviinfo == null ) {
return;
}
- mNaviInfo.notifyChanged( naviinfo );
+// mNaviInfo.notifyChanged( naviinfo );
}
@Override
public void onStartNavi() {
- mNaviInfo.setVisibility( View.VISIBLE );
+// mNaviInfo.setVisibility( View.VISIBLE );
mExitNavi.setVisibility( View.VISIBLE );
mMApUIController.changeMapMode( mCameraMode.isSelected() ? EnumMapUI.NorthUP_2D : EnumMapUI.CarUp_2D );
MapCenterPointStrategy.setMapCenterPointBySceneAndDelay( mMApUIController, Scene.NAVI, 500, () -> {
@@ -364,7 +436,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
public void onStopNavi() {
- mNaviInfo.setVisibility( View.GONE );
+// mNaviInfo.setVisibility( View.GONE );
mExitNavi.setVisibility( View.GONE );
mMApUIController.changeMapMode( EnumMapUI.NorthUP_2D );
mDisplayOverview.setVisibility( View.GONE );
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView2.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView2.java
new file mode 100644
index 0000000000..a907ee7994
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView2.java
@@ -0,0 +1,170 @@
+package com.mogo.module.extensions.navi;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.constraintlayout.motion.widget.MotionLayout;
+import androidx.constraintlayout.widget.ConstraintLayout;
+
+import com.mogo.map.impl.amap.utils.IconTypeUtils;
+import com.mogo.map.navi.MogoNaviInfo;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+
+/**
+ * @author congtaowang
+ * @since 2019-10-03
+ *
+ * 描述
+ */
+public abstract class BaseNaviInfoView2 extends ConstraintLayout {
+
+ public BaseNaviInfoView2(Context context ) {
+ this( context, null );
+ }
+
+ public BaseNaviInfoView2(Context context, @Nullable AttributeSet attrs ) {
+ this( context, attrs, 0 );
+ }
+
+ public BaseNaviInfoView2(Context context, @Nullable AttributeSet attrs, int defStyleAttr ) {
+ super( context, attrs, defStyleAttr );
+ }
+
+ public void notifyChanged( MogoNaviInfo naviInfo ) {
+
+ }
+
+ protected void fillNextCrossTurning( TextView target, int nextIconType ) {
+ target.setText( "后" + IconTypeUtils.getNameByIconType( nextIconType ) );
+ }
+
+ protected void fillNextCrossIconType( ImageView target, int iconId ) {
+ if ( iconId > 0 ) {
+ target.setImageResource( iconId );
+ }
+ }
+
+ protected void fillNextCrossDistance( TextView target, TextView unit, int distance ) {
+ if ( distance >= 1000 ) {
+ target.setText( String.format( "%.1f", distance / 1000f ) );
+ unit.setText( "km" );
+ } else {
+ target.setText( distance + "" );
+ unit.setText( "m" );
+ }
+ }
+
+ protected void fillFormatSurplusDistance( int m, StringBuilder builder ) {
+ if ( m >= 1000 ) {
+ builder.append( String.format( "%.1fkm", m / 1000f ) );
+ } else {
+ builder.append( m ).append( "m" );
+ }
+ }
+
+ protected String getFormatSurplusDistance( int m ) {
+ if ( m >= 1000 ) {
+ mFormatSurplusDistanceUnit = "km";
+ return String.format( "%.1f", m / 1000f );
+ } else {
+ mFormatSurplusDistanceUnit = "m";
+ return String.format( "%d", m );
+ }
+ }
+
+ private String mFormatSurplusDistanceUnit = "";
+
+ protected String getFormatSurplusDistanceUnit() {
+ return mFormatSurplusDistanceUnit;
+ }
+
+ protected String getFormatSurplusTime( int seconds ) {
+ if ( seconds > 60 * 60 ) {
+ mFormatSurplusDistanceUnit = "h";
+ return String.format( "%.1f", ( ( float ) seconds ) / 60 * 60 );
+ }
+
+ if ( seconds > 60 ) {
+ mFormatSurplusTimeUnit = "min";
+ return String.format( "%.1f", ( ( float ) seconds ) / 60 );
+ }
+
+ mFormatSurplusTimeUnit = "s";
+ return String.format( "%d", seconds );
+ }
+
+ private String mFormatSurplusTimeUnit = "";
+
+ protected String getFormatSurplusTimeUnit() {
+ return mFormatSurplusTimeUnit;
+ }
+
+ protected void fillFormatTime( int seconds, StringBuilder builder ) {
+ int days = seconds / ( 24 * 60 * 60 );
+ if ( days > 0 ) {
+ builder.append( days ).append( "天" );
+ }
+ seconds -= days * 24 * 60 * 60;
+ int hours = seconds / ( 60 * 60 );
+ if ( hours > 0 ) {
+ builder.append( hours ).append( "小时" );
+ }
+ seconds -= hours * 60 * 60;
+ int min = seconds / 60;
+ builder.append( min > 1 ? min : 1 ).append( "分钟" );
+ }
+
+ protected String getArriveTime( int seconds ) {
+ int days = seconds / ( 24 * 60 * 60 );
+ if ( days > 0 ) {
+ return String.format( "%d天后", days );
+ } else {
+ seconds -= days * 24 * 60 * 60;
+ int hours = seconds / ( 60 * 60 );
+ seconds -= hours * 60 * 60;
+ int min = seconds / 60;
+ Calendar calendar = Calendar.getInstance();
+ int curHour = calendar.get( Calendar.HOUR_OF_DAY );
+ int curMin = calendar.get( Calendar.MINUTE );
+ if ( curHour + hours + ( curMin + min ) / 60 > 24 ) {
+ return "一天后";
+ } else {
+ calendar.add( Calendar.HOUR_OF_DAY, hours );
+ calendar.add( Calendar.MINUTE, min );
+ SimpleDateFormat dateFormat = new SimpleDateFormat( "HH:mm" );
+ return dateFormat.format( calendar.getTime() );
+ }
+ }
+ }
+
+ protected void fillArriveTime( int seconds, StringBuilder builder ) {
+
+ int days = seconds / ( 24 * 60 * 60 );
+ if ( days > 0 ) {
+ builder.append( days ).append( "天后" );
+ } else {
+ seconds -= days * 24 * 60 * 60;
+ int hours = seconds / ( 60 * 60 );
+ seconds -= hours * 60 * 60;
+ int min = seconds / 60;
+ Calendar calendar = Calendar.getInstance();
+ int curHour = calendar.get( Calendar.HOUR_OF_DAY );
+ int curMin = calendar.get( Calendar.MINUTE );
+ if ( curHour + hours + ( curMin + min ) / 60 > 24 ) {
+ builder.append( "一天后" );
+ } else {
+ calendar.add( Calendar.HOUR_OF_DAY, hours );
+ calendar.add( Calendar.MINUTE, min );
+ SimpleDateFormat dateFormat = new SimpleDateFormat( "HH:mm" );
+ builder.append( dateFormat.format( calendar.getTime() ) );
+ }
+ }
+ builder.append( "到达" );
+ }
+}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/NaviInfoView2.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/NaviInfoView2.java
new file mode 100644
index 0000000000..8c6784453f
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/NaviInfoView2.java
@@ -0,0 +1,66 @@
+package com.mogo.module.extensions.navi;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.constraintlayout.widget.Group;
+
+import com.mogo.module.extensions.R;
+
+/**
+ * 改变实现方式,使用MotionLayout来实现,方便增加动画
+ *
+ * @author tongchenfei
+ */
+public class NaviInfoView2 extends BaseNaviInfoView2 {
+ private ImageView ivTurnIcon;
+ private View vBg;
+ private TextView tvNextDistance;
+ private TextView tvNextDistanceUnit;
+ private TextView tvNextTurnInfo;
+ private TextView tvNextRoad;
+ private Group remainDistanceGroup,remainTimeGroup, arriveTimeGroup;
+
+ public NaviInfoView2(Context context) {
+ this(context,null);
+ }
+
+ public NaviInfoView2(Context context, AttributeSet attrs) {
+ this(context, attrs, 0);
+ }
+
+ public NaviInfoView2(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ ivTurnIcon = findViewById(R.id.module_map_id_navi_next_info_road_turn_icon);
+ vBg = findViewById(R.id.module_map_id_navi_bg);
+ tvNextDistance = findViewById(R.id.module_map_id_navi_next_info_distance);
+ tvNextRoad = findViewById(R.id.module_map_id_navi_next_info_road);
+ remainDistanceGroup = findViewById(R.id.remainDistanceGroup);
+ remainTimeGroup = findViewById(R.id.remainTimeGroup);
+ arriveTimeGroup = findViewById(R.id.arriveTimeGroup);
+ }
+
+ /**
+ * 布局约束转成小的
+ */
+ public void setToSmall(){
+ ivTurnIcon.getLayoutParams().width =
+ (int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_turn_icon_small_width);
+ ivTurnIcon.getLayoutParams().height =
+ (int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_turn_icon_small_width);
+ vBg.getLayoutParams().height =
+ (int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_small_height);
+
+ }
+
+ public void setToBig(){
+ ivTurnIcon.getLayoutParams().width =
+ (int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_turn_icon_width);
+ ivTurnIcon.getLayoutParams().height =
+ (int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_turn_icon_width);
+
+ }
+}
diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
index 77d36f91e1..c4743dc657 100644
--- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
+++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
@@ -1,17 +1,237 @@
-
+
+
+
+
+
+
+
+
+ app:layout_constraintRight_toRightOf="parent" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -38,10 +258,9 @@
android:background="@drawable/module_ext_dw_common_corner_bkg"
android:gravity="center"
android:orientation="vertical"
- android:visibility="gone"
- app:layout_constraintLeft_toLeftOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/module_entrance_id_navi_info_panel"
- tools:visibility="visible">
+ android:visibility="visible"
+ app:layout_constraintLeft_toLeftOf="@+id/mlNaviInfo"
+ app:layout_constraintTop_toBottomOf="@+id/mlNaviInfo">
+ android:visibility="visible" />
+ android:visibility="visible" />
+ android:visibility="visible" />
+
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_map_layout_navi_info_panel_2.xml b/modules/mogo-module-extensions/src/main/res/layout/module_map_layout_navi_info_panel_2.xml
new file mode 100644
index 0000000000..729703ad4e
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/res/layout/module_map_layout_navi_info_panel_2.xml
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-ldpi/dimens.xml
index b1ced3e457..2c9dfd1b3c 100644
--- a/modules/mogo-module-extensions/src/main/res/values-ldpi/dimens.xml
+++ b/modules/mogo-module-extensions/src/main/res/values-ldpi/dimens.xml
@@ -79,8 +79,11 @@
1058px
210px
+ 144px
85px
85px
+ 56px
+ 56px
13px
13px
20px
diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml
index b062b26c4a..9374230b56 100644
--- a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml
+++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml
@@ -76,9 +76,13 @@
1058px
210px
+ 144px
159px
159px
+ 56px
+ 56px
24px
+ 83px
24px
40px
60px
diff --git a/modules/mogo-module-extensions/src/main/res/xml/module_ext_top_motion.xml b/modules/mogo-module-extensions/src/main/res/xml/module_ext_top_motion.xml
new file mode 100644
index 0000000000..99a7f0e15c
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/res/xml/module_ext_top_motion.xml
@@ -0,0 +1,442 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/xml/module_ext_top_no_navi_motion.xml b/modules/mogo-module-extensions/src/main/res/xml/module_ext_top_no_navi_motion.xml
new file mode 100644
index 0000000000..8fda6c7123
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/res/xml/module_ext_top_no_navi_motion.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java
index f7b69a8dd2..cc87d1dbc5 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java
@@ -56,4 +56,9 @@ public class MogoWindowManager implements IMogoWindowManager {
public void init( Context context ) {
}
+
+ @Override
+ public void addTopView(View view) {
+
+ }
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/TopViewHolder.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/TopViewHolder.java
new file mode 100644
index 0000000000..12bc772e07
--- /dev/null
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/TopViewHolder.java
@@ -0,0 +1,15 @@
+package com.mogo.module.main.windowview;
+
+import android.view.View;
+
+/**
+ * 用来处理主屏上方1/2屏的view
+ */
+public class TopViewHolder {
+ public void init(){
+
+ }
+ public void addView(View view) {
+
+ }
+}
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
index 6ef9929854..591f113706 100644
--- 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
@@ -71,4 +71,10 @@ public interface IMogoWindowManager extends IProvider {
* 显示所有
*/
void showAll();
+
+ /**
+ * 为了配合导航动画,主屏上方1/2屏的view通过此方法添加
+ * @param view 主屏上方1/2屏的view
+ */
+ void addTopView(View view);
}