diff --git a/build.gradle b/build.gradle index 0b6d343d97..fe76aac9ed 100644 --- a/build.gradle +++ b/build.gradle @@ -21,8 +21,6 @@ buildscript { classpath 'com.android.tools.build:gradle:3.5.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "com.alibaba:arouter-register:1.0.2" - classpath 'com.novoda:bintray-release:0.8.0' - // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/config.gradle b/config.gradle index 996479e8ca..5cdac9cd7e 100644 --- a/config.gradle +++ b/config.gradle @@ -89,8 +89,7 @@ ext { modulecommon : "com.mogo.module:module-common:${MOGO_MODULE_COMMON_VERSION}", modulemain : "com.mogo.module:module-main:${MOGO_MODULE_MAIN_VERSION}", modulemap : "com.mogo.module:module-map:${MOGO_MODULE_MAP_VERSION}", - moduleservice : "com.mogo.module:module-service:${CARD_LIBRARY_VERSION}", - uicard : "com.mogo.ui:card-libaray:${MOGO_MODULE_SERVICE_VERSION}", + moduleservice : "com.mogo.module:module-service:${MOGO_MODULE_SERVICE_VERSION}", mogoservice : "com.mogo.service:mogo-service:${MOGO_SERVICE_VERSION}", mogoserviceapi : "com.mogo.service:mogo-service-api:${MOGO_SERVICE_API_VERSION}", moduleapps : "com.mogo.module:module-apps:${MOGO_MODULE_APPS_VERSION}", diff --git a/libraries/card-library/.gitignore b/libraries/card-library/.gitignore deleted file mode 100644 index 796b96d1c4..0000000000 --- a/libraries/card-library/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/libraries/card-library/build.gradle b/libraries/card-library/build.gradle deleted file mode 100644 index de2e3eddb9..0000000000 --- a/libraries/card-library/build.gradle +++ /dev/null @@ -1,36 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'com.novoda.bintray-release' - -android { - compileSdkVersion rootProject.ext.android.compileSdkVersion - - defaultConfig { - targetSdkVersion rootProject.ext.android.targetSdkVersion - minSdkVersion rootProject.ext.android.minSdkVersion - versionCode Integer.valueOf(VERSION_CODE) - versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION") - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } -} - -dependencies { - implementation rootProject.ext.dependencies.androidxappcompat - implementation rootProject.ext.dependencies.androidxrecyclerview - testImplementation 'org.robolectric:robolectric:3.0' - testImplementation 'junit:junit:4.12' - testImplementation 'org.mockito:mockito-core:2.13.0' - testImplementation 'org.hamcrest:hamcrest-library:1.3' - androidTestImplementation 'org.hamcrest:hamcrest-library:1.3' -} -apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() - -//publish { -// artifactId = 'discrete-scrollview' -// userOrg = rootProject.userOrg -// groupId = rootProject.groupId -// uploadName = rootProject.uploadName -// publishVersion = rootProject.publishVersion -// description = rootProject.description -// licences = rootProject.licences -//} \ No newline at end of file diff --git a/libraries/card-library/gradle.properties b/libraries/card-library/gradle.properties deleted file mode 100644 index 1d49d2e63f..0000000000 --- a/libraries/card-library/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -GROUP=com.mogo.ui -POM_ARTIFACT_ID=card-libaray -VERSION_CODE=1 \ No newline at end of file diff --git a/libraries/card-library/proguard-rules.pro b/libraries/card-library/proguard-rules.pro deleted file mode 100644 index 2309852b8f..0000000000 --- a/libraries/card-library/proguard-rules.pro +++ /dev/null @@ -1,17 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in C:\Users\yarolegovich\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/libraries/card-library/src/main/AndroidManifest.xml b/libraries/card-library/src/main/AndroidManifest.xml deleted file mode 100644 index f4432f4932..0000000000 --- a/libraries/card-library/src/main/AndroidManifest.xml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/libraries/card-library/src/main/res/values/strings.xml b/libraries/card-library/src/main/res/values/strings.xml deleted file mode 100644 index 4909bfbff7..0000000000 --- a/libraries/card-library/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - You should not set LayoutManager on DiscreteScrollView.class instance. Library uses a special one. Just don\'t call the method. - InfiniteScrollAdapter is supposed to work only with DiscreteScrollView - diff --git a/modules/mogo-module-apps/build.gradle b/modules/mogo-module-apps/build.gradle index 4ac0696a0d..312c819552 100644 --- a/modules/mogo-module-apps/build.gradle +++ b/modules/mogo-module-apps/build.gradle @@ -46,7 +46,6 @@ dependencies { if (Boolean.valueOf(RELEASE)) { implementation rootProject.ext.dependencies.mogomap implementation rootProject.ext.dependencies.mogomapapi - implementation rootProject.ext.dependencies.mogomapapi implementation rootProject.ext.dependencies.mogoutils api rootProject.ext.dependencies.mogocommons api rootProject.ext.dependencies.mogoserviceapi @@ -58,7 +57,6 @@ dependencies { api project(":foudations:mogo-commons") api project(':services:mogo-service-api') implementation project(':modules:mogo-module-common') - implementation project(":libraries:card-library") } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java index 6cf4635b34..2a02b53cbd 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java @@ -3,29 +3,25 @@ package com.mogo.module.apps; import android.os.Bundle; import android.view.View; -import android.widget.HorizontalScrollView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.LinearSnapHelper; import androidx.recyclerview.widget.RecyclerView; import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.mvp.MvpFragment; import com.mogo.module.apps.adapter.AppIndicatorAdapter; import com.mogo.module.apps.utils.CardScaleTransformer; -import com.mogo.module.apps.utils.LaunchUtils; import com.mogo.module.common.MogoModulePaths; import com.mogo.service.MogoServicePaths; import com.mogo.service.analytics.IMogoAnalytics; +import com.mogo.service.cardmanager.IMogoCardChangedListener; import com.mogo.service.fragmentmanager.FragmentDescriptor; import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.service.module.IMogoModuleProvider; -import com.mogo.utils.TipToast; +import com.mogo.utils.logger.Logger; import com.yarolegovich.discretescrollview.DiscreteScrollView; -import com.yarolegovich.discretescrollview.transform.ScaleTransformer; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -38,8 +34,10 @@ import java.util.Map; */ public class AppNavigatorFragment extends MvpFragment implements AppNavigatorView, DiscreteScrollView.OnItemChangedListener, - DiscreteScrollView.ScrollStateChangeListener { + DiscreteScrollView.ScrollStateChangeListener, + IMogoCardChangedListener { + private static final String TAG = "AppNavigatorFragment"; private View mApps; private IMogoFragmentManager mMogoFragmentManager; @@ -52,6 +50,8 @@ public class AppNavigatorFragment extends MvpFragment integers = new ArrayList<>(10); - integers.add(R.drawable.module_apps_ic_interest); integers.add(R.drawable.module_apps_ic_online_car); + integers.add(R.drawable.module_apps_ic_interest); integers.add(R.drawable.module_apps_ic_news); - integers.add(R.drawable.module_apps_ic_tanlu); integers.add(R.drawable.module_apps_ic_media_center); + integers.add(R.drawable.module_apps_ic_chat); + integers.add(R.drawable.module_apps_ic_tanlu); AppIndicatorAdapter appIndicatorAdapter = new AppIndicatorAdapter(getContext(), integers); scroller.setAdapter(appIndicatorAdapter); - scroller.scrollToPosition(Integer.MAX_VALUE / 2-1); + scroller.scrollToPosition(Integer.MAX_VALUE / 2 - 1); //mNavigation.setOnClickListener( view -> { // openSearchPanel(); // trackNavigatorClickEvent( 1 ); @@ -116,6 +117,9 @@ public class AppNavigatorFragment extends MvpFragment { @Override public void onBindViewHolder(RecycleViewHolder holder, Integer integer) { ImageView ivIndicator = holder.getView(R.id.module_apps_id_app_icon); ivIndicator.setImageResource(integer); - holder.setText(R.id.module_apps_id_app_name,names[holder.getLayoutPosition()%5] ); + holder.setText(R.id.module_apps_id_app_name,names[holder.getLayoutPosition()%6] ); } - private String[] names=new String[]{"新鲜事","在线车辆","首页","探路","车聊聊"}; + private String[] names=new String[]{"在线车辆","新鲜事","首页","媒体中心","车聊聊","探路"}; } diff --git a/modules/mogo-module-common/build.gradle b/modules/mogo-module-common/build.gradle index 6268ca0629..f1e44b8675 100644 --- a/modules/mogo-module-common/build.gradle +++ b/modules/mogo-module-common/build.gradle @@ -24,8 +24,9 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation rootProject.ext.dependencies.androidxappcompat + implementation rootProject.ext.dependencies.androidxrecyclerview + if (Boolean.valueOf(RELEASE)) { api rootProject.ext.dependencies.mogomap api rootProject.ext.dependencies.mogomapapi diff --git a/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/DSVOrientation.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DSVOrientation.java similarity index 99% rename from libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/DSVOrientation.java rename to modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DSVOrientation.java index d00779e027..ce167a9870 100644 --- a/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/DSVOrientation.java +++ b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DSVOrientation.java @@ -44,7 +44,8 @@ public enum DSVOrientation { float getDistanceFromCenter(Point center, int viewCenterX, int viewCenterY); - boolean isViewVisible(Point center, int halfWidth, int halfHeight, int endBound, int extraSpace); + boolean isViewVisible(Point center, int halfWidth, int halfHeight, int endBound, + int extraSpace); boolean hasNewBecomeVisible(DiscreteScrollLayoutManager lm); diff --git a/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/Direction.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/Direction.java similarity index 100% rename from libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/Direction.java rename to modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/Direction.java diff --git a/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollLayoutManager.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollLayoutManager.java similarity index 100% rename from libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollLayoutManager.java rename to modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollLayoutManager.java diff --git a/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java similarity index 96% rename from libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java rename to modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java index 27973063b8..92ed360d9d 100644 --- a/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java +++ b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java @@ -9,6 +9,7 @@ import androidx.annotation.IntRange; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; +import com.mogo.module.common.R; import com.yarolegovich.discretescrollview.transform.DiscreteScrollItemTransformer; import com.yarolegovich.discretescrollview.util.ScrollListenerAdapter; @@ -269,18 +270,18 @@ public class DiscreteScrollView extends RecyclerView { void onScrollEnd(@NonNull T currentItemHolder, int adapterPosition); void onScroll(float scrollPosition, - int currentPosition, - int newPosition, - @Nullable T currentHolder, - @Nullable T newCurrent); + int currentPosition, + int newPosition, + @Nullable T currentHolder, + @Nullable T newCurrent); } public interface ScrollListener { void onScroll(float scrollPosition, - int currentPosition, int newPosition, - @Nullable T currentHolder, - @Nullable T newCurrent); + int currentPosition, int newPosition, + @Nullable T currentHolder, + @Nullable T newCurrent); } public interface OnItemChangedListener { diff --git a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/InfiniteScrollAdapter.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/InfiniteScrollAdapter.java new file mode 100644 index 0000000000..36fb35c94d --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/InfiniteScrollAdapter.java @@ -0,0 +1,179 @@ +package com.yarolegovich.discretescrollview; + +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; +import com.mogo.module.common.R; +import java.util.Locale; + +/** + * Created by yarolegovich on 28-Apr-17. + */ + +public class InfiniteScrollAdapter extends RecyclerView.Adapter + implements DiscreteScrollLayoutManager.InitialPositionProvider { + + private static final int CENTER = Integer.MAX_VALUE / 2; + private static final int RESET_BOUND = 100; + + public static InfiniteScrollAdapter wrap( + @NonNull RecyclerView.Adapter adapter) { + return new InfiniteScrollAdapter<>(adapter); + } + + private RecyclerView.Adapter wrapped; + private DiscreteScrollLayoutManager layoutManager; + + public InfiniteScrollAdapter(@NonNull RecyclerView.Adapter wrapped) { + this.wrapped = wrapped; + this.wrapped.registerAdapterDataObserver(new DataSetChangeDelegate()); + } + + @Override + public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) { + wrapped.onAttachedToRecyclerView(recyclerView); + if (recyclerView instanceof DiscreteScrollView) { + layoutManager = (DiscreteScrollLayoutManager) recyclerView.getLayoutManager(); + } else { + String msg = recyclerView.getContext().getString(R.string.dsv_ex_msg_adapter_wrong_recycler); + throw new RuntimeException(msg); + } + } + + @Override + public void onDetachedFromRecyclerView(@NonNull RecyclerView recyclerView) { + wrapped.onDetachedFromRecyclerView(recyclerView); + layoutManager = null; + } + + @Override + public @NonNull T onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return wrapped.onCreateViewHolder(parent, viewType); + } + + @Override + public void onBindViewHolder(@NonNull T holder, int position) { + if (isResetRequired(position)) { + int resetPosition = CENTER + mapPositionToReal(layoutManager.getCurrentPosition()); + setPosition(resetPosition); + return; + } + wrapped.onBindViewHolder(holder, mapPositionToReal(position)); + } + + @Override + public int getItemViewType(int position) { + return wrapped.getItemViewType(mapPositionToReal(position)); + } + + @Override + public int getItemCount() { + return isInfinite() ? Integer.MAX_VALUE : wrapped.getItemCount(); + } + + public int getRealItemCount() { + return wrapped.getItemCount(); + } + + public int getRealCurrentPosition() { + return getRealPosition(layoutManager.getCurrentPosition()); + } + + public int getRealPosition(int position) { + return mapPositionToReal(position); + } + + public int getClosestPosition(int position) { + ensureValidPosition(position); + int adapterCurrent = layoutManager.getCurrentPosition(); + int current = mapPositionToReal(adapterCurrent); + if (position == current) { + return adapterCurrent; + } + int delta = position - current; + int target = adapterCurrent + delta; + int wraparoundTarget = adapterCurrent + (position > current ? + delta - wrapped.getItemCount() : + wrapped.getItemCount() + delta); + int distance = Math.abs(adapterCurrent - target); + int wraparoundDistance = Math.abs(adapterCurrent - wraparoundTarget); + if (distance == wraparoundDistance) { + //Scroll to the right feels more natural, so prefer it + return target > adapterCurrent ? target : wraparoundTarget; + } else { + return distance < wraparoundDistance ? target : wraparoundTarget; + } + } + + private int mapPositionToReal(int position) { + if (position < CENTER) { + int rem = (CENTER - position) % wrapped.getItemCount(); + return rem == 0 ? 0 : wrapped.getItemCount() - rem; + } else { + return (position - CENTER) % wrapped.getItemCount(); + } + } + + private boolean isResetRequired(int requestedPosition) { + return isInfinite() + && (requestedPosition <= RESET_BOUND + || requestedPosition >= (Integer.MAX_VALUE - RESET_BOUND)); + } + + private void ensureValidPosition(int position) { + if (position >= wrapped.getItemCount()) { + throw new IndexOutOfBoundsException(String.format(Locale.US, + "requested position is outside adapter's bounds: position=%d, size=%d", + position, wrapped.getItemCount())); + } + } + + private boolean isInfinite() { + return wrapped.getItemCount() > 1; + } + + @Override + public int getInitialPosition() { + return isInfinite() ? CENTER : 0; + } + + private void setPosition(int position) { + layoutManager.scrollToPosition(position); + } + + //TODO: handle proper data set change notifications + private class DataSetChangeDelegate extends RecyclerView.AdapterDataObserver { + + @Override + public void onChanged() { + setPosition(getInitialPosition()); + notifyDataSetChanged(); + } + + @Override + public void onItemRangeRemoved(int positionStart, int itemCount) { + onChanged(); + } + + @Override + public void onItemRangeInserted(int positionStart, int itemCount) { + onChanged(); + } + + @Override + public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) { + onChanged(); + } + + @Override + public void onItemRangeChanged(int positionStart, int itemCount) { + notifyItemRangeChanged(0, getItemCount()); + } + + @Override + public void onItemRangeChanged(int positionStart, int itemCount, Object payload) { + notifyItemRangeChanged(0, getItemCount(), payload); + } + } +} \ No newline at end of file diff --git a/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/RecyclerViewProxy.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/RecyclerViewProxy.java similarity index 100% rename from libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/RecyclerViewProxy.java rename to modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/RecyclerViewProxy.java diff --git a/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/transform/DiscreteScrollItemTransformer.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/DiscreteScrollItemTransformer.java similarity index 100% rename from libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/transform/DiscreteScrollItemTransformer.java rename to modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/DiscreteScrollItemTransformer.java diff --git a/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/transform/Pivot.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/Pivot.java similarity index 100% rename from libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/transform/Pivot.java rename to modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/Pivot.java diff --git a/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/transform/ScaleTransformer.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/ScaleTransformer.java similarity index 100% rename from libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/transform/ScaleTransformer.java rename to modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/ScaleTransformer.java diff --git a/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/util/ScrollListenerAdapter.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/util/ScrollListenerAdapter.java similarity index 99% rename from libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/util/ScrollListenerAdapter.java rename to modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/util/ScrollListenerAdapter.java index 265ab331f0..7611c52a18 100644 --- a/libraries/card-library/src/main/java/com/yarolegovich/discretescrollview/util/ScrollListenerAdapter.java +++ b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/util/ScrollListenerAdapter.java @@ -1,5 +1,6 @@ package com.yarolegovich.discretescrollview.util; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; diff --git a/libraries/card-library/src/main/res/values/attr.xml b/modules/mogo-module-common/src/main/res/values/attr.xml similarity index 100% rename from libraries/card-library/src/main/res/values/attr.xml rename to modules/mogo-module-common/src/main/res/values/attr.xml diff --git a/modules/mogo-module-common/src/main/res/values/strings.xml b/modules/mogo-module-common/src/main/res/values/strings.xml index c449f01758..f6affe31b5 100644 --- a/modules/mogo-module-common/src/main/res/values/strings.xml +++ b/modules/mogo-module-common/src/main/res/values/strings.xml @@ -1,3 +1,5 @@ mogo-module-common + You should not set LayoutManager on DiscreteScrollView.class instance. Library uses a special one. Just don\'t call the method. + InfiniteScrollAdapter is supposed to work only with DiscreteScrollView diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java index 8e5e7b14fd..311fdbae3a 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java @@ -34,6 +34,7 @@ import com.mogo.module.main.windowview.WindowViewHandler; import com.mogo.module.service.ServiceConst; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; +import com.mogo.service.cardmanager.IMogoCardChangedListener; import com.mogo.service.cardmanager.IMogoCardManager; import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.service.intent.IMogoIntentListener; @@ -55,8 +56,8 @@ import java.util.List; * 描述:加载各个模块 */ public class MainActivity extends MvpActivity< MainView, MainPresenter > implements MainView, - IMogoLocationListener, - IMogoMarkerClickListener, IMogoIntentListener { + IMogoLocationListener, + IMogoMarkerClickListener, IMogoIntentListener, IMogoCardChangedListener { private static final String TAG = "MainActivity"; @@ -245,6 +246,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mMogoCardManager = mServiceApis.getCardManagerApi(); + mMogoCardManager.registerCardChangedListener(TAG,this); mMogoFragmentManager = mServiceApis.getFragmentManagerApi(); mMogoFragmentManager.init( this, R.id.module_main_id_search_fragment ); mMogoFragmentManager.registerMainFragmentStackTransactionListener( ( size ) -> { @@ -442,4 +444,8 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme break; } } + + @Override public void onSwitched(int position, String moduleName) { + mCardsContainer.setCurrentItem( position ); + } } diff --git a/settings.gradle b/settings.gradle index b813673c90..4747a1bb37 100644 --- a/settings.gradle +++ b/settings.gradle @@ -4,7 +4,6 @@ include ':foudations:mogo-utils' include ':services:mogo-service-api' include ':services:mogo-service' include ':libraries:mogo-map' -include ':libraries:card-library' include ':foudations:mogo-commons' include ':modules:mogo-module-map' include ':modules:mogo-module-common'