opt
This commit is contained in:
@@ -63,11 +63,11 @@ public class MogoApplication extends AbsMogoApplication {
|
||||
}
|
||||
|
||||
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( MogoServicePaths.PATH_SHARE, "ShareControl" ) );
|
||||
|
||||
MogoModulePaths.addBaseModule( new MogoModule( ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY ) );
|
||||
// MogoModulePaths.addBaseModule( new MogoModule( V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI ) );
|
||||
MogoModulePaths.addBaseModule( new MogoModule( V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI ) );
|
||||
// 暂时去掉推送
|
||||
// MogoModulePaths.addModule(new MogoModule(PushUIConstants.TAG, PushUIConstants.TAG));
|
||||
|
||||
|
||||
@@ -27,44 +27,44 @@ PASSWORD=xintai2018
|
||||
RELEASE=false
|
||||
# 模块版本
|
||||
## 工程内模块
|
||||
MOGO_COMMONS_VERSION=1.2.1.3
|
||||
MOGO_UTILS_VERSION=1.2.1.3
|
||||
MAP_AMAP_VERSION=1.2.1.3
|
||||
MAP_CUSTOM_VERSION=1.2.1.3
|
||||
MAP_AUTONAVI_VERSION=1.2.1.3
|
||||
MOGO_MAP_VERSION=1.2.1.3
|
||||
MOGO_MAP_API_VERSION=1.2.1.3
|
||||
MOGO_SERVICE_VERSION=1.2.1.3
|
||||
MOGO_SERVICE_API_VERSION=1.2.1.3
|
||||
MOGO_CONNECTION_VERSION=1.2.1.3
|
||||
MOGO_MODULE_APPS_VERSION=1.2.1.3
|
||||
MOGO_MODULE_NAVI_VERSION=1.2.1.3
|
||||
MOGO_MODULE_SHARE_VERSION=1.2.1.3
|
||||
MOGO_MODULE_COMMON_VERSION=1.2.1.3
|
||||
MOGO_MODULE_MAIN_VERSION=1.2.1.3
|
||||
MOGO_MODULE_MAP_VERSION=1.2.1.3
|
||||
MOGO_MODULE_SERVICE_VERSION=1.2.1.3
|
||||
MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.3
|
||||
MOGO_MODULE_SEARCH_VERSION=1.2.1.3
|
||||
MOGO_MODULE_BACK_VERSION=1.2.1.3
|
||||
MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.3
|
||||
MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.3
|
||||
MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.3
|
||||
MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.3
|
||||
MOGO_MODULE_GUIDE_VERSION=1.2.1.3
|
||||
MOGO_MODULE_MEDIA_VERSION=1.2.1.3
|
||||
MOGO_COMMONS_VERSION=1.2.1.5
|
||||
MOGO_UTILS_VERSION=1.2.1.5
|
||||
MAP_AMAP_VERSION=1.2.1.5
|
||||
MAP_CUSTOM_VERSION=1.2.1.5
|
||||
MAP_AUTONAVI_VERSION=1.2.1.5
|
||||
MOGO_MAP_VERSION=1.2.1.5
|
||||
MOGO_MAP_API_VERSION=1.2.1.5
|
||||
MOGO_SERVICE_VERSION=1.2.1.5
|
||||
MOGO_SERVICE_API_VERSION=1.2.1.5
|
||||
MOGO_CONNECTION_VERSION=1.2.1.5
|
||||
MOGO_MODULE_APPS_VERSION=1.2.1.5
|
||||
MOGO_MODULE_NAVI_VERSION=1.2.1.5
|
||||
MOGO_MODULE_SHARE_VERSION=1.2.1.5
|
||||
MOGO_MODULE_COMMON_VERSION=1.2.1.5
|
||||
MOGO_MODULE_MAIN_VERSION=1.2.1.5
|
||||
MOGO_MODULE_MAP_VERSION=1.2.1.5
|
||||
MOGO_MODULE_SERVICE_VERSION=1.2.1.5
|
||||
MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.5
|
||||
MOGO_MODULE_SEARCH_VERSION=1.2.1.5
|
||||
MOGO_MODULE_BACK_VERSION=1.2.1.5
|
||||
MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.5
|
||||
MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.5
|
||||
MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.5
|
||||
MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.5
|
||||
MOGO_MODULE_GUIDE_VERSION=1.2.1.5
|
||||
MOGO_MODULE_MEDIA_VERSION=1.2.1.5
|
||||
|
||||
MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.5
|
||||
MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.5
|
||||
MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.2.1.5
|
||||
MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.2.1.5
|
||||
|
||||
|
||||
## 工程外部模块
|
||||
# 探路
|
||||
MOGO_MODULE_TANLU_VERSION=1.1.0.1-SNAPSHOT
|
||||
# 车聊聊
|
||||
CARCHATTING_VERSION=1.0.6-SNAPSHOT
|
||||
CARCHATTING_VERSION=1.0.6
|
||||
# 车聊聊接口
|
||||
CARCHATTINGPROVIDER_VERSION=1.0.6-SNAPSHOT
|
||||
CARCHATTINGPROVIDER_VERSION=1.0.6
|
||||
# 视频引导
|
||||
MOGO_MODULE_GUIDESHOW_VERSION=1.0.2-SNAPSHOT
|
||||
# 视频引导接口
|
||||
@@ -72,7 +72,7 @@ MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT
|
||||
# 在线车辆F
|
||||
MOGO_MODULE_ONLINECAR_VERSION=1.0.3.2
|
||||
# v2x
|
||||
MOGO_MODULE_V2X_VERSION=1.1.132-SNAPSHOT
|
||||
MOGO_MODULE_V2X_VERSION=1.1.24
|
||||
# 推送
|
||||
MOGO_MODULE_PUSH_VERSION=1.0.1
|
||||
# 广告资源位
|
||||
|
||||
@@ -6,7 +6,6 @@ import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.mogo.map.impl.amap.navi.NaviClient;
|
||||
import com.mogo.map.impl.amap.utils.IconTypeUtils;
|
||||
import com.mogo.map.navi.MogoNaviInfo;
|
||||
import com.mogo.map.navi.MogoNaviListenerHandler;
|
||||
@@ -81,7 +80,8 @@ public class AutoNaviReceiver extends BroadcastReceiver {
|
||||
int cameraType = intent.getIntExtra( GuideInfoExtraKey.CAMERA_TYPE, 0 );
|
||||
|
||||
if ( type == 0 || type == 1 ) {
|
||||
if ( !MapState.getInstance().isNaving() ) {
|
||||
if ( !MapState.getInstance().isNaving()
|
||||
&& MogoNaviListenerHandler.getInstance().hasDelegateListener() ) {
|
||||
MapState.getInstance().setNaving( true );
|
||||
MogoNaviListenerHandler.getInstance().onStartNavi();
|
||||
}
|
||||
|
||||
@@ -33,6 +33,13 @@ public class MogoNaviListenerHandler implements IMogoNaviListener2, IMogoNaviLis
|
||||
*/
|
||||
private IMogoNaviListener mDelegateListener = null;
|
||||
|
||||
/**
|
||||
* @return
|
||||
*/
|
||||
public boolean hasDelegateListener(){
|
||||
return mDelegateListener != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 上层模块代理对象
|
||||
*/
|
||||
|
||||
@@ -11,11 +11,9 @@ import android.view.WindowManager;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
||||
import com.mogo.commons.mvp.MvpActivity;
|
||||
import com.mogo.module.apps.model.AppsModel;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.fragmentmanager.FragmentStackTransactionListener;
|
||||
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
|
||||
|
||||
@@ -33,7 +31,6 @@ public class AppsListActivity extends MvpActivity< AppsListView, AppsListPresent
|
||||
private IMogoFragmentManager mMogoFragmentManager;
|
||||
|
||||
public static void start( Activity context ) {
|
||||
AppServiceHandler.getApis().getAdasControllerApi().closeADAS();
|
||||
Intent starter = new Intent( context, AppsListActivity.class );
|
||||
context.startActivity( starter );
|
||||
}
|
||||
@@ -98,6 +95,12 @@ public class AppsListActivity extends MvpActivity< AppsListView, AppsListPresent
|
||||
@Override
|
||||
protected void onRestoreInstanceState( Bundle savedInstanceState ) {
|
||||
super.onRestoreInstanceState( savedInstanceState );
|
||||
AppServiceHandler.getApis().getAdasControllerApi().closeADAS();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState( Bundle outState ) {
|
||||
super.onSaveInstanceState( outState );
|
||||
AppsModel.getInstance( this ).release();
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@ public class AppsModel {
|
||||
|
||||
private AppsModel( Context context ) {
|
||||
mContext = context;
|
||||
mAppFilter = new AppFilterImpl( context );
|
||||
}
|
||||
|
||||
public static AppsModel getInstance( Context context ) {
|
||||
@@ -69,6 +68,9 @@ public class AppsModel {
|
||||
}
|
||||
return;
|
||||
}
|
||||
if ( mAppFilter == null ) {
|
||||
mAppFilter = new AppFilterImpl( mContext );
|
||||
}
|
||||
final PackageManager packageManager = mContext.getPackageManager();
|
||||
List< PackageInfo > packages = packageManager.getInstalledPackages( 0 );
|
||||
int counter = 0;
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.mogo.module.common.dialog;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.mogo.module.common.R;
|
||||
|
||||
/**
|
||||
* 浮在各种wm上面的dialog基类,调用了window.setType
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
public class BaseFloatDialog extends Dialog {
|
||||
public BaseFloatDialog(@NonNull Context context) {
|
||||
this(context, R.style.BaseFloatDialogStyle);
|
||||
}
|
||||
|
||||
public BaseFloatDialog(@NonNull Context context, int themeResId) {
|
||||
super(context, themeResId);
|
||||
addFlag();
|
||||
}
|
||||
|
||||
private void addFlag() {
|
||||
getWindow().setType(WindowManager.LayoutParams.FIRST_SYSTEM_WINDOW + 10);
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
|
||||
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION
|
||||
| WindowManager.LayoutParams.FLAG_LOCAL_FOCUS_MODE);
|
||||
}
|
||||
}
|
||||
16
modules/mogo-module-common/src/main/res/values/styles.xml
Normal file
16
modules/mogo-module-common/src/main/res/values/styles.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="BaseFloatDialogStyle" parent="@android:style/Theme.Dialog">
|
||||
<item name="android:windowIsFloating">true</item>
|
||||
<item name="android:windowFrame">@null</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="android:windowBackground">@android:color/transparent</item>
|
||||
<item name="android:backgroundDimEnabled">true</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:fullBright">@android:color/transparent</item>
|
||||
<item name="android:fullDark">@android:color/transparent</item>
|
||||
<item name="android:topBright">@android:color/transparent</item>
|
||||
<item name="android:topDark">@android:color/transparent</item>
|
||||
<item name="android:borderlessButtonStyle">@android:color/transparent</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -7,7 +7,9 @@ import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.util.TypedValue;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
@@ -49,14 +51,17 @@ import com.mogo.service.module.IMogoRegisterCenter;
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||
import com.mogo.service.statusmanager.IMogoStatusManager;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
import com.mogo.utils.LaunchUtils;
|
||||
import com.mogo.utils.ResourcesHelper;
|
||||
import com.mogo.utils.UiThreadHandler;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
|
||||
/**
|
||||
@@ -184,6 +189,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
|
||||
private List< View > demoCache = new ArrayList<>();
|
||||
|
||||
private int[] heights = new int[]{100,200,300};
|
||||
private int currentHeight;
|
||||
|
||||
@Override
|
||||
protected void initViews() {
|
||||
@@ -202,10 +208,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
|
||||
// View v = LayoutInflater.from(getContext()).inflate(R.layout.demo_top, null);
|
||||
// TextView tv = v.findViewById(R.id.tvIndex);
|
||||
// Random random = new Random();
|
||||
// int height = heights[random.nextInt(3)];
|
||||
// tv.setText(demoCache.size()+" height: "+height + ": " + v);
|
||||
// currentHeight = heights[random.nextInt(3)];
|
||||
// tv.setText(demoCache.size()+" height: "+currentHeight + ": " + v);
|
||||
// demoCache.add(v);
|
||||
// LayoutParams params = new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, height);
|
||||
// ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, currentHeight);
|
||||
// mApis.getTopViewManager().addView(v, params,new IMogoTopViewStatusListener() {
|
||||
// @Override
|
||||
// public void onViewAdded(View view) {
|
||||
@@ -261,6 +267,31 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
|
||||
// Logger.d(TAG, "isViewAdded===" + isViewAdded);
|
||||
// mApis.getTopViewManager().removeView(v);
|
||||
// }
|
||||
// View v = LayoutInflater.from(getContext()).inflate(R.layout.demo_top, null);
|
||||
// TextView tv = v.findViewById(R.id.tvIndex);
|
||||
// tv.setText("sub view "+demoCache.size()+" height: "+currentHeight + ": " + v);
|
||||
// demoCache.add(v);
|
||||
// mApis.getTopViewManager().addSubView(v,new IMogoTopViewStatusListener() {
|
||||
// @Override
|
||||
// public void onViewAdded(View view) {
|
||||
// Logger.d(TAG, "onSubViewAdded: " + view);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onViewRemoved(View view) {
|
||||
// Logger.d(TAG, "onSubViewRemoved: " + view);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void beforeViewAddAnim(View view) {
|
||||
// Logger.d(TAG, "beforeSubViewAddAnim: " + view);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void beforeViewRemoveAnim(View view) {
|
||||
// Logger.d(TAG, "beforeSubViewRemoveAnim: " + view);
|
||||
// }
|
||||
// });
|
||||
// 原始逻辑
|
||||
final MogoLocation location = mMogoLocationClient.getLastKnowLocation();
|
||||
if ( location != null ) {
|
||||
@@ -423,7 +454,13 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
|
||||
if ( naviinfo == null ) {
|
||||
return;
|
||||
}
|
||||
mNaviInfo.notifyChanged( naviinfo );
|
||||
if ( mNaviInfo != null ) {
|
||||
if ( !mNaviInfo.isVisible() ) {
|
||||
// 避免导航先开启,再开启app的情况
|
||||
onStartNavi();
|
||||
}
|
||||
mNaviInfo.notifyChanged( naviinfo );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,7 +26,7 @@ public class NaviInfoView extends BaseNaviInfoView {
|
||||
private TextView remainingTimeUnit;
|
||||
private TextView arriveTime;
|
||||
|
||||
public void inflate(View view){
|
||||
public void inflate( View view ) {
|
||||
turnIcon = view.findViewById( R.id.module_map_id_navi_next_info_road_turn_icon );
|
||||
distance = view.findViewById( R.id.module_map_id_navi_next_info_distance );
|
||||
distanceUnit = view.findViewById( R.id.module_map_id_navi_next_info_distance_unit );
|
||||
@@ -39,6 +39,11 @@ public class NaviInfoView extends BaseNaviInfoView {
|
||||
arriveTime = view.findViewById( R.id.module_map_id_arrive_time );
|
||||
}
|
||||
|
||||
public boolean isVisible() {
|
||||
return turnIcon != null && turnIcon.getVisibility() == View.VISIBLE;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void notifyChanged( MogoNaviInfo naviInfo ) {
|
||||
super.notifyChanged( naviInfo );
|
||||
|
||||
@@ -110,20 +110,25 @@ public class TopViewAnimHelper {
|
||||
|
||||
@Override
|
||||
public void onTransitionEnd(Transition transition) {
|
||||
if (isTopViewOut) {
|
||||
topContainer.removeAllViews();
|
||||
}
|
||||
// if (isTopViewOut) {
|
||||
// topContainer.removeAllViews();
|
||||
// }
|
||||
if (listener != null) {
|
||||
listener.onAnimEnd();
|
||||
}
|
||||
Logger.d(TAG, "onTransitionEnd: " + currentAnimatingView);
|
||||
IMogoTopViewStatusListener listener;
|
||||
if (isTopViewOut) {
|
||||
viewCaches.remove(currentAnimatingView);
|
||||
listener = statusListenerMap.remove(currentAnimatingView);
|
||||
if (listener != null) {
|
||||
listener.onViewRemoved(currentAnimatingView);
|
||||
int lastCount = topContainer.getChildCount();
|
||||
for (int i = 0; i < lastCount; i++) {
|
||||
View child = topContainer.getChildAt(i);
|
||||
viewCaches.remove(child);
|
||||
listener = statusListenerMap.remove(child);
|
||||
if (listener != null) {
|
||||
listener.onViewRemoved(child);
|
||||
}
|
||||
}
|
||||
topContainer.removeAllViews();
|
||||
} else {
|
||||
listener = statusListenerMap.get(currentAnimatingView);
|
||||
if (listener != null) {
|
||||
@@ -159,6 +164,100 @@ public class TopViewAnimHelper {
|
||||
|
||||
private View currentAnimatingView = null;
|
||||
|
||||
public void addSubView(View subView, ViewGroup.LayoutParams params,
|
||||
IMogoTopViewStatusListener statusListener) {
|
||||
if (isTopViewOut || topContainer.getChildCount() == 0) {
|
||||
throw new IllegalStateException("no base view in top view");
|
||||
}
|
||||
if (subView == null) {
|
||||
throw new IllegalArgumentException("method addTopView params view is null");
|
||||
}
|
||||
if (params == null) {
|
||||
throw new IllegalArgumentException("method addTopView params LayoutParams is null");
|
||||
}
|
||||
|
||||
// 是在已经添加过view之后,才能添加sub view,所以直接走增加小view的逻辑就行
|
||||
if (!viewCaches.contains(subView)) {
|
||||
viewCaches.add(subView);
|
||||
statusListenerMap.put(subView, statusListener);
|
||||
subView.setTranslationY(0);
|
||||
subView.setTranslationY(-(params.height));
|
||||
topContainer.addView(subView, params);
|
||||
Logger.d(TAG, "添加subView: " + subView.getTranslationY() + " height:" +
|
||||
" " + subView.getHeight() + " paramsHeight: " + params.height);
|
||||
if (statusListenerMap.get(subView) != null) {
|
||||
statusListenerMap.get(subView).beforeViewAddAnim(subView);
|
||||
}
|
||||
subView.animate().translationY(0).setDuration(500).setListener(new Animator.AnimatorListener() {
|
||||
@Override
|
||||
public void onAnimationStart(Animator animation) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
IMogoTopViewStatusListener listener = statusListenerMap.get(subView);
|
||||
if (listener != null) {
|
||||
listener.onViewAdded(subView);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationCancel(Animator animation) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onAnimationRepeat(Animator animation) {
|
||||
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void removeSubView(View subView) {
|
||||
if (topContainer.getChildCount() < 2) {
|
||||
throw new IllegalStateException("view count not enough");
|
||||
}
|
||||
Logger.d(TAG,
|
||||
"小view退出: " + subView.getTranslationY() + " height: " + subView.getHeight());
|
||||
if (statusListenerMap.get(subView) != null) {
|
||||
statusListenerMap.get(subView).beforeViewRemoveAnim(subView);
|
||||
}
|
||||
subView.animate().translationY(-(subView.getHeight())).setDuration(500).setListener(new Animator.AnimatorListener() {
|
||||
@Override
|
||||
public void onAnimationStart(Animator animation) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
Logger.d(TAG, "onAnimationEnd: " + subView);
|
||||
viewCaches.remove(subView);
|
||||
topContainer.removeView(subView);
|
||||
IMogoTopViewStatusListener listener = statusListenerMap.remove(subView);
|
||||
if (listener != null) {
|
||||
listener.onViewRemoved(subView);
|
||||
} else {
|
||||
Logger.d(TAG, "listener is null");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationCancel(Animator animation) {
|
||||
viewCaches.remove(subView);
|
||||
topContainer.removeView(subView);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationRepeat(Animator animation) {
|
||||
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
public void startTopInAnim(View view, ViewGroup.LayoutParams params,
|
||||
IMogoTopViewStatusListener statusListener) {
|
||||
|
||||
@@ -183,16 +282,22 @@ public class TopViewAnimHelper {
|
||||
// 顶部view已经有了内容,新增内容无需整体布局变化,只是新增布局加个动画
|
||||
viewCaches.add(view);
|
||||
|
||||
// 生硬的删掉上一个view
|
||||
View lastView = topContainer.getChildAt(0);
|
||||
if (statusListenerMap.get(lastView) != null) {
|
||||
statusListenerMap.get(lastView).beforeViewRemoveAnim(lastView);
|
||||
}
|
||||
topContainer.removeView(lastView);
|
||||
viewCaches.remove(lastView);
|
||||
if (statusListenerMap.get(lastView) != null) {
|
||||
statusListenerMap.remove(lastView).onViewRemoved(lastView);
|
||||
// 生硬的删掉之前的view
|
||||
int lastCount = topContainer.getChildCount();
|
||||
Logger.d(TAG, "进入动画,lastCount: " + lastCount);
|
||||
for (int i = 0; i < lastCount; i++) {
|
||||
View lastView = topContainer.getChildAt(i);
|
||||
if (statusListenerMap.get(lastView) != null) {
|
||||
statusListenerMap.get(lastView).beforeViewRemoveAnim(lastView);
|
||||
}
|
||||
viewCaches.remove(lastView);
|
||||
if (statusListenerMap.get(lastView) != null) {
|
||||
statusListenerMap.remove(lastView).onViewRemoved(lastView);
|
||||
}
|
||||
}
|
||||
Logger.d(TAG, "生硬的删掉了之前的view: " + viewCaches.size());
|
||||
topContainer.removeAllViews();
|
||||
|
||||
// 如果高度变化,生硬的变化一下高度
|
||||
Logger.d(TAG,"container.height: "+topContainer.getHeight());
|
||||
if (topContainer.getHeight() != params.height) {
|
||||
@@ -306,10 +411,6 @@ public class TopViewAnimHelper {
|
||||
Logger.d(TAG, "show top setMapCenterPointByScene: " + scene);
|
||||
MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene);
|
||||
});
|
||||
|
||||
// handler.post(() -> {
|
||||
//
|
||||
// });
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -318,7 +419,9 @@ public class TopViewAnimHelper {
|
||||
* 退出最新的(也就是最上面的)view
|
||||
*/
|
||||
private void startLatestTopOutAnim() {
|
||||
if (topContainer.getChildCount() > 0) {
|
||||
if(topContainer.getChildCount()>1){
|
||||
removeSubView(topContainer.getChildAt(topContainer.getChildCount() - 1));
|
||||
}else if (topContainer.getChildCount() > 0) {
|
||||
startTopOutAnim(topContainer.getChildAt(topContainer.getChildCount() - 1));
|
||||
}
|
||||
}
|
||||
@@ -331,46 +434,46 @@ public class TopViewAnimHelper {
|
||||
|
||||
Logger.d("TopViewAnimHelper", "startTopOutAnim=====");
|
||||
if (!isTopViewOut && viewCaches.contains(view)) {
|
||||
if (topContainer.getChildCount() > 1) {
|
||||
// 顶部view包含多个view,只推出当前view,不进行整体上移
|
||||
Logger.d(TAG,
|
||||
"小view退出: " + view.getTranslationY() + " height: " + view.getHeight());
|
||||
if (statusListenerMap.get(view) != null) {
|
||||
statusListenerMap.get(view).beforeViewRemoveAnim(view);
|
||||
}
|
||||
view.animate().translationY(-(view.getHeight())).setDuration(500).setListener(new Animator.AnimatorListener() {
|
||||
@Override
|
||||
public void onAnimationStart(Animator animation) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
Logger.d(TAG, "onAnimationEnd: " + view);
|
||||
viewCaches.remove(view);
|
||||
topContainer.removeView(view);
|
||||
IMogoTopViewStatusListener listener = statusListenerMap.remove(view);
|
||||
if (listener != null) {
|
||||
listener.onViewRemoved(view);
|
||||
} else {
|
||||
Logger.d(TAG, "listener is null");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationCancel(Animator animation) {
|
||||
viewCaches.remove(view);
|
||||
topContainer.removeView(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationRepeat(Animator animation) {
|
||||
|
||||
}
|
||||
}).start();
|
||||
} else {
|
||||
// if (topContainer.getChildCount() > 1) {
|
||||
// // 顶部view包含多个view,只推出当前view,不进行整体上移
|
||||
// Logger.d(TAG,
|
||||
// "小view退出: " + view.getTranslationY() + " height: " + view.getHeight());
|
||||
// if (statusListenerMap.get(view) != null) {
|
||||
// statusListenerMap.get(view).beforeViewRemoveAnim(view);
|
||||
// }
|
||||
// view.animate().translationY(-(view.getHeight())).setDuration(500).setListener(new Animator.AnimatorListener() {
|
||||
// @Override
|
||||
// public void onAnimationStart(Animator animation) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onAnimationEnd(Animator animation) {
|
||||
// Logger.d(TAG, "onAnimationEnd: " + view);
|
||||
// viewCaches.remove(view);
|
||||
// topContainer.removeView(view);
|
||||
// IMogoTopViewStatusListener listener = statusListenerMap.remove(view);
|
||||
// if (listener != null) {
|
||||
// listener.onViewRemoved(view);
|
||||
// } else {
|
||||
// Logger.d(TAG, "listener is null");
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onAnimationCancel(Animator animation) {
|
||||
// viewCaches.remove(view);
|
||||
// topContainer.removeView(view);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onAnimationRepeat(Animator animation) {
|
||||
//
|
||||
// }
|
||||
// }).start();
|
||||
// } else {
|
||||
// 顶部view仅剩一个view,需要整体上移
|
||||
currentAnimatingView = view;
|
||||
// currentAnimatingView = view;
|
||||
if (statusListenerMap.get(view) != null) {
|
||||
statusListenerMap.get(view).beforeViewRemoveAnim(view);
|
||||
}
|
||||
@@ -426,7 +529,7 @@ public class TopViewAnimHelper {
|
||||
Logger.d(TAG, "hide top setMapCenterPointByScene: " + scene);
|
||||
MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene);
|
||||
}
|
||||
}
|
||||
// }
|
||||
}
|
||||
|
||||
public void showNaviView() {
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.mogo.module.extensions.utils;
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewGroup.LayoutParams;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.module.extensions.R;
|
||||
@@ -29,6 +30,7 @@ public class TopViewManager implements IMogoTopViewManager {
|
||||
// }
|
||||
|
||||
private Context context;
|
||||
private LayoutParams parentParams;
|
||||
@Override
|
||||
public void init(Context context) {
|
||||
this.context = context;
|
||||
@@ -54,14 +56,30 @@ public class TopViewManager implements IMogoTopViewManager {
|
||||
@Override
|
||||
public void addView(View view, ViewGroup.LayoutParams params,
|
||||
IMogoTopViewStatusListener statusListener) {
|
||||
parentParams = params;
|
||||
TopViewAnimHelper.getInstance().startTopInAnim(view, params, statusListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addSubView(View view) {
|
||||
addSubView(view, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addSubView(View view, IMogoTopViewStatusListener statusListener) {
|
||||
TopViewAnimHelper.getInstance().addSubView(view, parentParams, statusListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeView(View view) {
|
||||
TopViewAnimHelper.getInstance().startTopOutAnim(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeSubView(View view) {
|
||||
TopViewAnimHelper.getInstance().removeSubView(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isViewAdded(View view) {
|
||||
return TopViewAnimHelper.getInstance().isViewAdded(view);
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
android:id="@+id/ivUserHeadImg"
|
||||
android:layout_width="@dimen/module_ext_height"
|
||||
android:layout_height="@dimen/module_ext_height"
|
||||
android:layout_marginEnd="@dimen/dp_16"
|
||||
android:layout_marginEnd="@dimen/dp_30"
|
||||
android:src="@drawable/model_ext_default_user_head"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<dimen name="module_entrance_id_button_marginTop">20px</dimen>
|
||||
|
||||
<!-- module_ext_layout_extensions.xml-->
|
||||
<dimen name="module_ext_height">120px</dimen>
|
||||
<dimen name="module_ext_height">100px</dimen>
|
||||
<dimen name="module_ext_paddingRight">60px</dimen>
|
||||
<dimen name="module_ext_paddingLeft">60px</dimen>
|
||||
<dimen name="module_ext_voice_textSize">32px</dimen>
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
<dimen name="module_entrance_id_button_marginTop">8px</dimen>
|
||||
|
||||
<!-- module_ext_layout_extensions.xml-->
|
||||
<dimen name="module_ext_height">66px</dimen>
|
||||
<dimen name="module_ext_height">56px</dimen>
|
||||
<dimen name="module_ext_paddingRight">32px</dimen>
|
||||
<dimen name="module_ext_paddingLeft">32px</dimen>
|
||||
|
||||
|
||||
@@ -62,6 +62,9 @@ public class MapBroadCastHelper implements IMogoStatusChangedListener {
|
||||
|
||||
|
||||
public void notifyXizhiNavStatus( int status ) {
|
||||
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
|
||||
return;
|
||||
}
|
||||
Intent intent = new Intent( ACTION_NAV_SEND );
|
||||
intent.putExtra( "KEY_TYPE", 10019 );
|
||||
intent.putExtra( "EXTRA_STATE", status );
|
||||
|
||||
@@ -333,8 +333,6 @@ public class MogoServices implements IMogoMapListener,
|
||||
if ( DebugConfig.isLaunchLocationService() ) {
|
||||
initLocationServiceProcess( context );
|
||||
}
|
||||
|
||||
requestAutoNaviLastStatus();
|
||||
}
|
||||
|
||||
private void initLocationServiceProcess( Context context ) {
|
||||
@@ -703,12 +701,6 @@ public class MogoServices implements IMogoMapListener,
|
||||
restartAutoRefreshAtTime( 2_000L );
|
||||
}
|
||||
mIsMainPageFirstResume = false;
|
||||
try {
|
||||
// 请求地图最后一次保存的状态
|
||||
requestAutoNaviLastStatus();
|
||||
} catch ( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
unregisterInternalUnWakeupWords();
|
||||
stopAutoRefreshStrategy();
|
||||
@@ -721,13 +713,6 @@ public class MogoServices implements IMogoMapListener,
|
||||
}
|
||||
}
|
||||
|
||||
private void requestAutoNaviLastStatus(){
|
||||
Intent intent = new Intent();
|
||||
intent.setAction("AUTONAVI_STANDARD_BROADCAST_RECV");
|
||||
intent.putExtra("KEY_TYPE", 10061);
|
||||
mContext.sendBroadcast(intent);
|
||||
}
|
||||
|
||||
private void notifySeekHelpingStatusChanged( boolean seekHelpingStatus ) {
|
||||
Intent intent = new Intent( "com.mogo.launcher.adas.app" );
|
||||
try {
|
||||
@@ -871,7 +856,7 @@ public class MogoServices implements IMogoMapListener,
|
||||
@Override
|
||||
public void onTransaction( int size ) {
|
||||
if ( size == 0 ) {
|
||||
mUiController.showMyLocation( !mNavi.isNaviing() );
|
||||
mUiController.showMyLocation( true );
|
||||
AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ServiceConst.CMD_BACK );
|
||||
if ( mStatusManager.isSearchUIShow() ) {
|
||||
mStatusManager.setSearchUIShow( TAG, false );
|
||||
|
||||
@@ -12,6 +12,7 @@ import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.module.common.dialog.BaseFloatDialog;
|
||||
import com.mogo.module.common.utils.CarSeries;
|
||||
import com.mogo.module.share.R;
|
||||
import com.mogo.module.share.constant.ShareConstants;
|
||||
@@ -36,7 +37,7 @@ import java.util.Map;
|
||||
* 由于和左侧Adas冲突,改成了windowManager方式实现,这种实现方式的问题是,无法监测back键的事件
|
||||
* @since 2020-01-10
|
||||
*/
|
||||
public class LaucherShareDialog implements View.OnClickListener {
|
||||
public class LaucherShareDialog extends BaseFloatDialog implements View.OnClickListener {
|
||||
private static final String TAG = "LaucherShareDialog";
|
||||
|
||||
private boolean isShown = false;
|
||||
@@ -60,36 +61,49 @@ public class LaucherShareDialog implements View.OnClickListener {
|
||||
|
||||
private WindowManager windowManager;
|
||||
|
||||
public LaucherShareDialog(@NonNull Context context) {
|
||||
// public LaucherShareDialog(@NonNull Context context) {
|
||||
// this.mContext = context;
|
||||
// mApis = (IMogoServiceApis) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(context);
|
||||
// mAnalytics = mApis.getAnalyticsApi();
|
||||
// mStatusManager = mApis.getStatusManagerApi();
|
||||
// }
|
||||
|
||||
private View body;
|
||||
|
||||
public LaucherShareDialog(Context context) {
|
||||
super(context);
|
||||
this.mContext = context;
|
||||
mApis = (IMogoServiceApis) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(context);
|
||||
mAnalytics = mApis.getAnalyticsApi();
|
||||
mStatusManager = mApis.getStatusManagerApi();
|
||||
|
||||
initView();
|
||||
initListener();
|
||||
}
|
||||
|
||||
private View body;
|
||||
private void initView() {
|
||||
Logger.d(TAG, "test-------3");
|
||||
body = LayoutInflater.from(mContext).inflate(R.layout.launcher_dialog_share_2, null);
|
||||
body.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
dismiss();
|
||||
}
|
||||
});
|
||||
setContentView(R.layout.launcher_dialog_share_2);
|
||||
// body = LayoutInflater.from(mContext).inflate(R.layout.launcher_dialog_share_2, null);
|
||||
// body.setOnClickListener(new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View v) {
|
||||
// dismiss();
|
||||
// }
|
||||
// });
|
||||
|
||||
|
||||
tvBlock = body.findViewById(R.id.tvBlock);
|
||||
tvTrafficCheck = body.findViewById(R.id.tvTrafficCheck);
|
||||
tvClosure = body.findViewById(R.id.tvClosure);
|
||||
tvNeedHelp = body.findViewById(R.id.tvSeekHelp);
|
||||
tvBlock = findViewById(R.id.tvBlock);
|
||||
tvTrafficCheck = findViewById(R.id.tvTrafficCheck);
|
||||
tvClosure = findViewById(R.id.tvClosure);
|
||||
tvNeedHelp = findViewById(R.id.tvSeekHelp);
|
||||
|
||||
tvAccident = body.findViewById(R.id.tvAccident);
|
||||
tvRealTimeTraffic = body.findViewById(R.id.tvRealTimeTraffic);
|
||||
tvStagnantWater = body.findViewById(R.id.tvStagnantWater);
|
||||
tvRoadIcy = body.findViewById(R.id.tvRoadIcy);
|
||||
tvDenseFog = body.findViewById(R.id.tvDenseFog);
|
||||
tvConstruction = body.findViewById(R.id.tvConstruction);
|
||||
tvAccident = findViewById(R.id.tvAccident);
|
||||
tvRealTimeTraffic = findViewById(R.id.tvRealTimeTraffic);
|
||||
tvStagnantWater = findViewById(R.id.tvStagnantWater);
|
||||
tvRoadIcy = findViewById(R.id.tvRoadIcy);
|
||||
tvDenseFog = findViewById(R.id.tvDenseFog);
|
||||
tvConstruction = findViewById(R.id.tvConstruction);
|
||||
}
|
||||
|
||||
|
||||
@@ -220,46 +234,46 @@ public class LaucherShareDialog implements View.OnClickListener {
|
||||
}
|
||||
|
||||
|
||||
public void show(){
|
||||
Logger.d(TAG,"使用windowManager实现");
|
||||
if (!isShown) {
|
||||
windowManager = (WindowManager) mContext.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
|
||||
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
|
||||
} else {
|
||||
layoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
|
||||
}
|
||||
layoutParams.format = PixelFormat.TRANSLUCENT;
|
||||
layoutParams.gravity = Gravity.START | Gravity.TOP;
|
||||
// mWindowLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
|
||||
// FLAG_LAYOUT_IN_SCREEN:将window放置在整个屏幕之内,无视其他的装饰(比如状态栏); FLAG_NOT_TOUCH_MODAL:不阻塞事件传递到后面的窗口
|
||||
layoutParams.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
|
||||
if (CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X) {
|
||||
layoutParams.width = 1920;
|
||||
layoutParams.height = 1080;
|
||||
}else {
|
||||
layoutParams.width = WindowUtils.getScreenWidth(mContext);
|
||||
layoutParams.height = WindowUtils.getScreenHeight(mContext);
|
||||
}
|
||||
Logger.d("ShareDialog", "width: " + layoutParams.width + " height: " + layoutParams.height);
|
||||
//后面变暗区域透明...
|
||||
layoutParams.dimAmount = 0;
|
||||
layoutParams.x = 0;
|
||||
layoutParams.y = 0;
|
||||
initView();
|
||||
initListener();
|
||||
windowManager.addView(body, layoutParams);
|
||||
isShown = true;
|
||||
}
|
||||
}
|
||||
// public void show(){
|
||||
// Logger.d(TAG,"使用windowManager实现");
|
||||
// if (!isShown) {
|
||||
// windowManager = (WindowManager) mContext.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
|
||||
// WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
|
||||
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
// layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
|
||||
// } else {
|
||||
// layoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
|
||||
// }
|
||||
// layoutParams.format = PixelFormat.TRANSLUCENT;
|
||||
// layoutParams.gravity = Gravity.START | Gravity.TOP;
|
||||
//// mWindowLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
|
||||
// // FLAG_LAYOUT_IN_SCREEN:将window放置在整个屏幕之内,无视其他的装饰(比如状态栏); FLAG_NOT_TOUCH_MODAL:不阻塞事件传递到后面的窗口
|
||||
// layoutParams.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
|
||||
// if (CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X) {
|
||||
// layoutParams.width = 1920;
|
||||
// layoutParams.height = 1080;
|
||||
// }else {
|
||||
// layoutParams.width = WindowUtils.getScreenWidth(mContext);
|
||||
// layoutParams.height = WindowUtils.getScreenHeight(mContext);
|
||||
// }
|
||||
// Logger.d("ShareDialog", "width: " + layoutParams.width + " height: " + layoutParams.height);
|
||||
// //后面变暗区域透明...
|
||||
// layoutParams.dimAmount = 0;
|
||||
// layoutParams.x = 0;
|
||||
// layoutParams.y = 0;
|
||||
// initView();
|
||||
// initListener();
|
||||
// windowManager.addView(body, layoutParams);
|
||||
// isShown = true;
|
||||
// }
|
||||
// }
|
||||
|
||||
public void dismiss(){
|
||||
if (isShown && windowManager != null && body != null) {
|
||||
windowManager.removeViewImmediate(body);
|
||||
windowManager = null;
|
||||
isShown = false;
|
||||
}
|
||||
}
|
||||
// public void dismiss(){
|
||||
// if (isShown && windowManager != null && body != null) {
|
||||
// windowManager.removeViewImmediate(body);
|
||||
// windowManager = null;
|
||||
// isShown = false;
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.mogo.module.share.manager
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
import com.mogo.module.share.ShareControl
|
||||
import com.mogo.module.share.dialog.LaucherShareDialog
|
||||
@@ -18,7 +19,9 @@ object UploadHelper {
|
||||
TipToast.tip("正在上报,请稍后重试")
|
||||
}else {
|
||||
ServiceApisManager.serviceApis.statusManagerApi.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true)
|
||||
AIAssist.getInstance(context).speakTTSVoice("感谢分享,正在上传")
|
||||
if(DebugConfig.getAIType() == DebugConfig.AI_TYPE_TXZ) {
|
||||
AIAssist.getInstance(context).speakTTSVoice("感谢分享,正在上传")
|
||||
}
|
||||
Logger.d("UploadHelper", "upload ----> $type")
|
||||
val intent = Intent()
|
||||
intent.action = "com.zhidao.share.roadcondition.action"
|
||||
|
||||
@@ -42,16 +42,39 @@ public interface IMogoTopViewManager extends IProvider {
|
||||
void addView(View view, ViewGroup.LayoutParams params,
|
||||
IMogoTopViewStatusListener statusListener);
|
||||
|
||||
/**
|
||||
* 在1/2屏添加一个sub view,叠加在主view上面显示
|
||||
* 给了一个默认的LayoutParams(MatchParent,dp_350)
|
||||
*
|
||||
* @param view 增加的view
|
||||
*/
|
||||
void addSubView(View view);
|
||||
|
||||
/**
|
||||
* 在1/2屏添加一个sub view,叠加在主view上面显示,可通过设置监听,来监听增加的view的状态
|
||||
* 给了一个默认的LayoutParams(MatchParent,dp_350)
|
||||
*
|
||||
* @param statusListener 状态监听
|
||||
* @param view 增加的view
|
||||
*/
|
||||
void addSubView(View view, IMogoTopViewStatusListener statusListener);
|
||||
|
||||
/**
|
||||
* 移除view,如果是最后一个view,会有移除动画
|
||||
* @param view
|
||||
* @param view 待移除的 view
|
||||
*/
|
||||
void removeView(View view);
|
||||
|
||||
/**
|
||||
* 移除sub view
|
||||
* @param view 待移除的sub view
|
||||
*/
|
||||
void removeSubView(View view);
|
||||
|
||||
/**
|
||||
* 这个view是否已经被添加进了顶部布局
|
||||
* @param view
|
||||
* @return
|
||||
* @param view 待查询的view
|
||||
* @return true-已经添加 false-未添加
|
||||
*/
|
||||
boolean isViewAdded(View view);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user