1. UI 走查修改

2. 其他修复。
This commit is contained in:
wangcongtao
2020-09-28 20:11:29 +08:00
parent a5f7e7d910
commit 0d84238be4
41 changed files with 221 additions and 19 deletions

View File

@@ -34,10 +34,12 @@ public class AMapBaseMapView extends MogoBaseMapView {
@Override
protected IMogoMapView createMapView( Context context ) {
IMogoMapView mapView = AMapViewHandler.getMapView();
if ( mapView.getMapView().getParent() != null ) {
if ( mapView != null
&& mapView.getMapView()!= null
&& mapView.getMapView().getParent() != null ) {
ViewGroup group = ( ViewGroup ) mapView.getMapView().getParent();
group.removeView( mapView.getMapView() );
}
return AMapViewHandler.getMapView();
return mapView;
}
}

View File

@@ -132,6 +132,7 @@ public class AutoNaviReceiver extends BroadcastReceiver {
case MapStateValue.START_NAVI:
case MapStateValue.START_EMULATOR_NAVI:
if ( MapState.getInstance().isNaving() ) {
Logger.w( TAG, "naving..." );
return;
}
MapState.getInstance().setNaving( true );

View File

@@ -10,6 +10,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author congtaowang
@@ -33,7 +34,7 @@ public class MogoMarkersHandler implements IMogoMarkerClickListener, IMogoMarker
return sInstance;
}
private Map< String, List< IMogoMarker > > mServicesMarkers = new HashMap<>();
private Map< String, List< IMogoMarker > > mServicesMarkers = new ConcurrentHashMap<>();
private MogoMarkersHandler() {
}

View File

@@ -44,7 +44,7 @@ public class MainIndependentActivity extends MainActivity {
historyMessagePanelParams.leftMargin = getResources().getDimensionPixelSize( R.dimen.module_main_entrance_fragment_container_marginLeft );
mHistoryMessagePanel.setLayoutParams( historyMessagePanelParams );
mLeftShadowFrame.setVisibility(View.VISIBLE);
mLeftShadowFrame.setVisibility(View.INVISIBLE);
mApps.setVisibility( View.GONE );
}

View File

@@ -156,7 +156,8 @@ public class AppsModel {
if ( totalPages == 0 ) {
return 0;
} else {
if ( mPagedApps.get( totalPages - 1 ).size() == AppsConst.TOTAL_SIZE_EACH_PAGE ) {
if ( mPagedApps.get( totalPages - 1 ) == null
|| mPagedApps.get( totalPages - 1 ).size() == AppsConst.TOTAL_SIZE_EACH_PAGE ) {
return totalPages;
} else {
return totalPages - 1;

View File

@@ -11,6 +11,7 @@ import com.mogo.map.marker.IMogoMarkerClickListener
import com.mogo.map.navi.IMogoNaviListener
import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant.Companion.PATH_AGREEMENT_MODULE_NAME
import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.Companion.AUTHORIZE_TYPE_LAUNCHER_MAIN
import com.mogo.module.authorize.authprovider.launcher.MogoMainAuthorize
import com.mogo.module.authorize.authprovider.launcher.MogoMainAuthorize.Companion.mogoAuthShow
import com.mogo.module.authorize.util.SharedPreferenceUtil.hasGuide
import com.mogo.service.MogoServicePaths
@@ -91,4 +92,8 @@ class MogoAuthorizeProvider : IMogoAuthManager {
return null
}
override fun onDestroy() {
mContext = null
mogoAuthShow.release()
}
}

View File

@@ -97,4 +97,8 @@ class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMog
}
}
fun release(){
mContext = null
}
}

View File

@@ -37,7 +37,6 @@ class CallChatApi {
}
public synchronized void release() {
mApiProvider = null;
sInstance = null;
}
@@ -46,6 +45,10 @@ class CallChatApi {
return sInstance;
}
public ICarsChattingProvider getApiProvider() {
return mApiProvider;
}
private ICarsChattingProvider mApiProvider;
public void showUserWindow( Context context, MarkerOnlineCar onlineCar ) throws Exception {

View File

@@ -607,6 +607,7 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
isClickShare = false;
TopViewAnimHelper.getInstance().removeAllView();
TopViewAnimHelper.getInstance().clear();
EntranceViewHolder.getInstance().release();
}
@Override

View File

@@ -105,4 +105,8 @@ public class EntranceViewHolder {
}
}
public void release(){
rootViewGroup = null;
}
}

View File

@@ -49,8 +49,8 @@ public class TopViewAnimHelper {
private TextView tvTurnInfo;
private TopView topContainer;
private ConstraintSet constraintSet = new ConstraintSet();
private Transition transition = new AutoTransition();
private ConstraintSet constraintSet;
private Transition transition;
private TextView cameraMode;
private float topHeight = 0f;
@@ -84,6 +84,10 @@ public class TopViewAnimHelper {
}
public void init(ConstraintLayout rootView, OnTopViewAnimSimpleListener listener) {
constraintSet = new ConstraintSet();
transition = new AutoTransition();
topMotionLayout = rootView;
naviBg = rootView.findViewById(R.id.module_map_id_navi_bg);
remainTimeGroup = rootView.findViewById(R.id.remainTimeGroup);

View File

@@ -363,5 +363,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
SchemeIntent.getInstance().clear();
FloatingViewHandler.clear();
mServiceApis.getShareManager().releaseContext();
mMogoFragmentManager.unregisterMainFragmentStackTransactionListener();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="@dimen/module_push_ui_height"
android:background="@drawable/module_push_item_background">
android:background="@drawable/module_push_item_background_p">
<com.mogo.module.push.view.roundimage.RoundedImageView
android:id="@+id/module_push_image"

View File

@@ -0,0 +1,111 @@
package com.mogo.module.service.marker;
import com.mogo.module.carchattingprovider.ICallProviderResponse;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public
/**
* @author congtaowang
* @since 2020/9/28
*
* 描述
*/
abstract class CallProviderResponseImpl implements ICallProviderResponse {
@Override
public void addFriend( boolean b ) {
}
@Override
public void callInvokeError( @NotNull String s ) {
}
@Override
public void callStatus( int i ) {
}
@Override
public void callWindowStatus( boolean b ) {
}
@Override
public void canCall( boolean b ) {
}
@Override
public void hideUserWindowError( @NotNull String s ) {
}
@Override
public void invisibleUser( boolean b ) {
}
@Override
public void isFriend( boolean b ) {
}
@Override
public void isOnLine( boolean b, @Nullable String s ) {
}
@Override
public void userInfoCallBack( @Nullable String s, @Nullable String s1 ) {
}
@Override
public void userWindowStatus( boolean b ) {
}
@Override
public void call( @NotNull String s ) {
}
@Override
public void cancelMatch( boolean b ) {
}
@Override
public void error( @NotNull String s ) {
}
@Override
public void hangUp( boolean b ) {
}
@Override
public void invokeCallData( @NotNull String s ) {
}
@Override
public void match( @NotNull String s ) {
}
@Override
public void matchInvokeResult( boolean b, @NotNull String s ) {
}
@Override
public void mute( boolean b ) {
}
}

View File

@@ -1,6 +1,7 @@
package com.mogo.module.service.marker;
import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.Rect;
import android.text.TextUtils;
import android.util.Log;
@@ -16,7 +17,9 @@ import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.marker.anim.OnMarkerAnimationListener;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.carchattingprovider.ICallProviderResponse;
import com.mogo.module.common.ModuleNames;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.api.CallChatApi;
import com.mogo.module.common.entity.MarkerCarPois;
import com.mogo.module.common.entity.MarkerCardResult;
@@ -45,6 +48,8 @@ import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.WorkThreadHandler;
import com.mogo.utils.logger.Logger;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -113,6 +118,19 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
MarkerServiceHandler.getActionManager().registerBizActionDoneListener( this );
MarkerServiceHandler.getApis().getRegisterCenterApi().registerADASControlStatusChangedListener( TAG, this );
CallChatApi.getInstance().getApiProvider().registerUserWindowStatusListener( TAG, mContext, new CallProviderResponseImpl() {
@Override
public void userWindowStatus( boolean b ) {
try {
closeMarker( mLastCheckMarker );
} catch ( Exception e ) {
e.printStackTrace();
}
}
} );
}
/**
@@ -207,6 +225,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
private void updateCarUserInfoWindow( IMogoMarker marker ) {
if ( !marker.isDestroyed() ) {
try {
marker.setIcon( OnlineCarMarkerView.getInstance().getSelectedBitmap( getCarVehicleType( marker ) ) );
MarkerOnlineCar onlineCar = ( MarkerOnlineCar ) ( ( MarkerShowEntity ) marker.getObject() ).getBindObj();
CallChatApi.getInstance().showUserWindow( mContext, onlineCar );
} catch ( Exception e ) {
@@ -222,8 +241,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
// 在线车辆点击使用infoWindow
if ( TextUtils.equals( mogoMarker.getOwner(), ModuleNames.CARD_TYPE_USER_DATA ) ) {
// mogoMarker.hideInfoWindow();
Logger.d( TAG, "关闭info window" );
mogoMarker.setIcon( OnlineCarMarkerView.getInstance().getBitmap( getCarVehicleType( mogoMarker ) ) );
} else {
Object object = mogoMarker.getObject();
if ( object != null ) {
@@ -243,6 +261,17 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
}
private int getCarVehicleType( IMogoMarker marker ) {
try {
return ( ( MarkerOnlineCar )
( ( MarkerShowEntity ) marker.getObject() ).getBindObj() )
.getCarInfo()
.getVehicleType();
} catch ( Exception e ) {
return 0;
}
}
// 绘制Marker
public synchronized void drawMapMarker( MarkerResponse response ) {

View File

@@ -22,6 +22,7 @@ import java.util.Map;
public class OnlineCarMarkerView implements IMarkerView {
private static Map< Integer, SoftReference< Bitmap > > sRef = new HashMap<>();
private static Map< Integer, SoftReference< Bitmap > > sTypedRef = new HashMap<>();
private OnlineCarMarkerView() {
// private constructor
@@ -60,6 +61,20 @@ public class OnlineCarMarkerView implements IMarkerView {
return sRef.get( vehicleType ).get();
}
public Bitmap getSelectedBitmap( int vehicleType ) {
if ( sTypedRef.get( vehicleType ) == null || sTypedRef.get( vehicleType ).get() == null
|| sTypedRef.get( vehicleType ).get().isRecycled() ) {
switch ( vehicleType ) {
case 2:
sTypedRef.put( vehicleType, new SoftReference<>( BitmapFactory.decodeResource( AbsMogoApplication.getApp().getResources(), R.drawable.icon_map_marker_car_type2 ) ) );
break;
default:
sTypedRef.put( vehicleType, new SoftReference<>( BitmapFactory.decodeResource( AbsMogoApplication.getApp().getResources(), R.drawable.icon_map_marker_car_gray_selected ) ) );
}
}
return sTypedRef.get( vehicleType ).get();
}
@Override
public void setMarker( IMogoMarker marker ) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -14,6 +14,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.storage.SpStorage;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.module.common.MogoApisHandler;
@@ -94,8 +95,9 @@ class AutoNaviIntentHandler implements IMogoVoiceCmdCallBack {
case 3: // 前台
syncAutoNaviNavingStatus( context );
break;
case 4: // 后台
case 9: // 非导航
SpStorage.setNavigationTarget( "" );
case 4: // 后台
closeEntrance();
break;
case 8: // 导航
@@ -183,7 +185,7 @@ class AutoNaviIntentHandler implements IMogoVoiceCmdCallBack {
}
/**
* 咨询用户
* 目的地车友
*
* @param context
*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B

View File

@@ -3,7 +3,7 @@
<item>
<shape>
<corners android:bottomLeftRadius="@dimen/module_widgets_app_bkg_corner" android:bottomRightRadius="0px" android:topLeftRadius="@dimen/module_widgets_app_bkg_corner" android:topRightRadius="0px" />
<solid android:color="#3D3F44" />
<solid android:color="#4C4E51" />
</shape>
</item>
</selector>

View File

@@ -3,14 +3,17 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/module_widgets_app_entrance_root"
android:background="@drawable/module_widgets_app_entrance_root_bkg"
android:layout_width="wrap_content"
android:padding="@dimen/module_widgets_app_entrance_root_padding"
android:gravity="center_vertical"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/module_widgets_app_handler_container"
android:layout_width="@dimen/module_widgets_app_handler_width"
android:layout_height="match_parent"
android:background="@drawable/module_widgets_app_handler_bkg"
android:layout_height="match_parent"
android:gravity="center">
<ImageView
@@ -22,8 +25,7 @@
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/module_widgets_app_body_bkg">
android:layout_height="wrap_content">
<TextView
android:id="@+id/module_widgets_app_entrance"
android:layout_width="wrap_content"

View File

@@ -11,4 +11,5 @@
<dimen name="module_widgets_app_bkg_corner">4px</dimen>
<dimen name="module_widgets_app_handler_width">56px</dimen>
<dimen name="module_widgets_app_handler_height">40px</dimen>
<dimen name="module_widgets_app_entrance_root_padding">7px</dimen>
</resources>

View File

@@ -11,4 +11,5 @@
<dimen name="module_widgets_app_bkg_corner">4px</dimen>
<dimen name="module_widgets_app_handler_width">56px</dimen>
<dimen name="module_widgets_app_handler_height">40px</dimen>
<dimen name="module_widgets_app_entrance_root_padding">7px</dimen>
</resources>

View File

@@ -11,4 +11,5 @@
<dimen name="module_widgets_app_bkg_corner">8px</dimen>
<dimen name="module_widgets_app_handler_width">100px</dimen>
<dimen name="module_widgets_app_handler_height">85px</dimen>
<dimen name="module_widgets_app_entrance_root_padding">8px</dimen>
</resources>

View File

@@ -11,4 +11,5 @@
<dimen name="module_widgets_app_bkg_corner">8px</dimen>
<dimen name="module_widgets_app_handler_width">100px</dimen>
<dimen name="module_widgets_app_handler_height">85px</dimen>
<dimen name="module_widgets_app_entrance_root_padding">8px</dimen>
</resources>

View File

@@ -11,4 +11,5 @@
<dimen name="module_widgets_app_bkg_corner">4px</dimen>
<dimen name="module_widgets_app_handler_width">56px</dimen>
<dimen name="module_widgets_app_handler_height">40px</dimen>
<dimen name="module_widgets_app_entrance_root_padding">7px</dimen>
</resources>

View File

@@ -43,6 +43,11 @@ public interface IMogoFragmentManager extends IProvider {
*/
void registerMainFragmentStackTransactionListener( FragmentStackTransactionListener listener );
/**
* 主页移除栈变化监听
*/
void unregisterMainFragmentStackTransactionListener();
/**
* 其他注册栈变化监听
*
@@ -67,9 +72,10 @@ public interface IMogoFragmentManager extends IProvider {
/**
* 缓存历史消息
*
* @param layoutId
*/
void initMessageHistoryContainerId(int layoutId);
void initMessageHistoryContainerId( int layoutId );
int getMessageHistoryContainerId();
}

View File

@@ -44,6 +44,11 @@ public class MogoFragmentManager implements IMogoFragmentManager {
FragmentStack.getInstance().setFragmentStackTransactionListener( listener );
}
@Override
public void unregisterMainFragmentStackTransactionListener() {
FragmentStack.getInstance().setFragmentStackTransactionListener( null );
}
@Override
public void addMainFragmentStackTransactionListener( FragmentStackTransactionListener listener ) {
FragmentStack.getInstance().addFragmentStackTransactionListener( listener );

Binary file not shown.

After

Width:  |  Height:  |  Size: 732 B

View File

@@ -3,7 +3,7 @@
<item>
<shape>
<corners android:bottomLeftRadius="@dimen/module_widgets_app_bkg_corner" android:bottomRightRadius="0px" android:topLeftRadius="@dimen/module_widgets_app_bkg_corner" android:topRightRadius="0px" />
<solid android:color="#E6F5F5F5" />
<solid android:color="#F2E8E8E8" />
</shape>
</item>
</selector>