From 8decd42f670ca4f5bdf9e825b01b7f716b3c8293 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 10 Jan 2020 11:04:08 +0800 Subject: [PATCH 1/2] opt --- .../main/fragmentmanager/FragmentStack.java | 15 +++++++++++++++ .../main/fragmentmanager/MogoFragmentManager.java | 5 +++++ .../module/navi/ui/search/ChoosePathFragment.kt | 1 + .../fragmentmanager/IMogoFragmentManager.java | 5 +++++ 4 files changed, 26 insertions(+) diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/FragmentStack.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/FragmentStack.java index 0e313f715b..6453d6416a 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/FragmentStack.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/FragmentStack.java @@ -127,4 +127,19 @@ public class FragmentStack { public void setFragmentStackTransactionListener( FragmentStackTransactionListener fragmentStackTransactionListener ) { this.mFragmentStackTransactionListener = fragmentStackTransactionListener; } + + public void clearAll() { + if ( mFragmentStack.isEmpty() ) { + return; + } + mFragmentTransaction = mFragmentManager.beginTransaction(); + for ( FragmentDescriptor descriptor : mFragmentStack ) { + mFragmentTransaction.remove( descriptor.getFragment() ); + } + mFragmentTransaction.commitAllowingStateLoss(); + mCurrentFragment = null; + if ( getFragmentStackTransactionListener() != null ) { + getFragmentStackTransactionListener().onTransaction(); + } + } } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/MogoFragmentManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/MogoFragmentManager.java index 809c2c08ba..9f60648c32 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/MogoFragmentManager.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/MogoFragmentManager.java @@ -26,6 +26,11 @@ public class MogoFragmentManager implements IMogoFragmentManager { FragmentStack.getInstance().pop(); } + @Override + public void clearAll() { + FragmentStack.getInstance().clearAll(); + } + @Override public void init( Context context ) { diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt index 17e3d60550..4e5209e411 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt @@ -91,6 +91,7 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { rv_search_result.adapter = mAdapter tv_navi_navi.setOnClickListener { + SearchServiceHolder.fragmentManager.clearAll() SearchServiceHolder.getNavi(activity!!) .startNavi(false) } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/IMogoFragmentManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/IMogoFragmentManager.java index e133b3f88e..a9d62e399a 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/IMogoFragmentManager.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/IMogoFragmentManager.java @@ -23,4 +23,9 @@ public interface IMogoFragmentManager extends IProvider { * 将当前 fragment 出栈 */ void pop(); + + /** + * 退出栈中所有fragment + */ + void clearAll(); } From 5510ecd57f0894f861e770610c8c72fbb3f352c4 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 10 Jan 2020 11:51:57 +0800 Subject: [PATCH 2/2] opt --- .idea/misc.xml | 2 +- app/build.gradle | 39 +++++++++++++++++++ app/src/main/AndroidManifest.xml | 6 ++- .../com/mogo/launcher/MogoApplication.java | 2 +- app/src/main/res/values/strings.xml | 2 +- .../map/impl/amap/navi/NaviOverlayHelper.java | 13 ++++--- .../module_apps_fragment_apps_navigator.xml | 2 +- .../main/fragmentmanager/FragmentStack.java | 1 + .../statusmanager/IMogoStatusManager.java | 12 ++++++ .../statusmanager/StatusDescriptor.java | 7 +++- .../impl/statusmanager/MogoStatusManager.java | 22 +++++++---- 11 files changed, 88 insertions(+), 20 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 703e5d4b89..8a8f75bfe2 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,7 +5,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 36a27fea8e..c49fec90e9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' android { @@ -81,3 +83,40 @@ dependencies { implementation project(':modules:mogo-module-search') } } + +android.applicationVariants.all { variant -> + variant.outputs.all { //这里修改apk文件名 + outputFileName = "Launcher2.0_V${android.defaultConfig.versionName}_${getCurrentDate()}_${variant.name}_${getGitCommit()}.apk" + println outputFileName + } +} + +def getCurrentDate() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss") + return sdf.format(new Date()) +} + +def getGitCommit() { + def gitDir = new File("${new File("${rootDir}")}/.git") + if (!gitDir.isDirectory()) { + return 'non_git_build' + } + + def cmd = 'git log --pretty=format:%h -1' + def gitCommit = cmd.execute().text.trim() + + print gitCommit + + def cmd2 = 'git status -s' + def gitStatus = cmd2.execute().text.trim() + + println '---------' + + print gitStatus + if (gitStatus != null && !gitStatus.isEmpty()) { + return 'local-build' + } + + assert !gitCommit.isEmpty() + gitCommit +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 91d2aa2d11..0253617fc1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ @@ -8,10 +9,11 @@ android:name=".MogoApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" - android:label="@string/app_name" + android:label="@string/app_shell_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/AppTheme.App"> + android:theme="@style/AppTheme.App" + tools:replace="android:label"> diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 54f1962925..c34b0e72b4 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -28,7 +28,7 @@ public class MogoApplication extends AbsMogoApplication { // MogoModulePaths.addModule( new MogoModule( Demo2Constants.TAG, "CARD_DEMO2" ) ); DebugConfig.setNetMode( DebugConfig.NET_MODE_QA ); MogoModulePaths.addModule(new MogoModule(OnLineCarConstants.TAG, "CARD_TYPE_ROAD_ONLINECAR")); -// MogoModulePaths.addModule( new MogoModule( TanluConstants.TAG, "CARD_TYPE_ROAD_CODITION" ) ); + MogoModulePaths.addModule( new MogoModule( TanluConstants.TAG, "CARD_TYPE_ROAD_CODITION" ) ); MogoModulePaths.addModule(new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME)); MogoModulePaths.addModule(new MogoModule( MediaConstants.TAG, MediaConstants.MODULE_TYPE) ); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 146d275293..021fff2fc9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,3 @@ - MogoLauncher + Launcher2.0 diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java index b52a70cd05..5bed8c3c71 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java @@ -20,6 +20,7 @@ import com.mogo.map.navi.OnCalculatePathItemClickInteraction; import com.mogo.utils.WindowUtils; import com.mogo.utils.logger.Logger; +import java.lang.ref.SoftReference; import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -57,7 +58,7 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction { private int mSelectedPathId; private CalculatePathItem mSelectedCalculatePathItem; - private OnCalculatePathItemClickInteraction mLineClickInteraction; + private SoftReference< OnCalculatePathItemClickInteraction > mLineClickInteractionRef; public NaviOverlayHelper( AMapNavi mAMapNavi, AMap mAMap, Context mContext ) { this.mAMapNavi = mAMapNavi; @@ -180,7 +181,6 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction { if ( mPaths != null ) { mPaths.clear(); } - mLineClickInteraction = null; } /** @@ -196,8 +196,8 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction { if ( mPaths != null && !mPaths.isEmpty() ) { for ( MogoCalculatePath path : mPaths ) { if ( TextUtils.equals( path.getTagId(), polyline.getId() ) ) { - if ( mLineClickInteraction != null ) { - mLineClickInteraction.onItemClicked( path.getTagId() ); + if ( mLineClickInteractionRef != null && mLineClickInteractionRef.get() != null ) { + mLineClickInteractionRef.get().onItemClicked( path.getTagId() ); break; } } @@ -317,6 +317,9 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction { } public void setLineClickInteraction( OnCalculatePathItemClickInteraction lineClickInteraction ) { - mLineClickInteraction = lineClickInteraction; + if ( mLineClickInteractionRef != null ) { + mLineClickInteractionRef.clear(); + } + mLineClickInteractionRef = new SoftReference<>( lineClickInteraction ); } } diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml index 07f9fae0cc..01f080cb69 100644 --- a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml +++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="bottom" - android:paddingBottom="@dimen/dp_33"> + android:paddingBottom="@dimen/dp_61">