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 498f17ca2f..d3f3549d29 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 @@ -83,13 +83,22 @@ public class AppNavigatorFragment extends MvpFragment { @@ -185,9 +194,9 @@ public class AppNavigatorFragment extends MvpFragment= 5) { - index = -1; + if (index <= -3) { + index += CARD_SIZE; + } else if (index >= 3) { + index = index-CARD_SIZE; } //RecyclerView 的特性,如果是否在屏幕内 //if (index < 0) { diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java index 39a9ecb2b3..9b78d95c2e 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java @@ -19,6 +19,8 @@ public class AppIndicatorAdapter extends RecycleBaseAdapter { private int currentPos; + + private View.OnClickListener onClickListener; /** * */ @@ -44,9 +46,15 @@ public class AppIndicatorAdapter extends RecycleBaseAdapter { tvTitle.setTextColor(ContextCompat.getColor(context,R.color.white_80)); ivIndicator.setImageResource(integer.getmUncheckedIconId()); } + holder.itemView.setTag(integer); + holder.itemView.setOnClickListener(onClickListener); } + public void setOnClickListener(View.OnClickListener onClickListener) { + this.onClickListener = onClickListener; + } + public void setCurrentPos(int currentPos){ this.currentPos=currentPos; notifyDataSetChanged(); diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java index fac935ef82..771fc71f2d 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java @@ -1,12 +1,17 @@ package com.mogo.module.apps.utils; import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; import androidx.annotation.FloatRange; +import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import com.mogo.module.apps.R; +import com.mogo.module.apps.model.NavigatorApp; import com.yarolegovich.discretescrollview.transform.DiscreteScrollItemTransformer; import com.yarolegovich.discretescrollview.transform.Pivot; import com.yarolegovich.discretescrollview.transform.ScaleTransformer; +import java.util.List; /** * @author zyz @@ -18,6 +23,9 @@ public class CardScaleTransformer implements DiscreteScrollItemTransformer { private Pivot pivotY; private float minScale; private float maxMinDiff; + private static final int CARD_SIZE = 6; + + List apps; public CardScaleTransformer() { pivotX = Pivot.X.CENTER.create(); @@ -26,16 +34,38 @@ public class CardScaleTransformer implements DiscreteScrollItemTransformer { maxMinDiff = 0.2f; } + public void setApps(List apps) { + this.apps = apps; + } + @Override public void transformItem(View item, RecyclerView.ViewHolder childViewHolder, float position) { - item= item.findViewById(R.id.module_apps_id_app_icon); - pivotX.setOn(item); - pivotY.setOn(item); + ImageView ivItem = item.findViewById(R.id.module_apps_id_app_icon); + + TextView tvTitle = item.findViewById(R.id.module_apps_id_app_name); + NavigatorApp tag = (NavigatorApp) item.getTag(); + + pivotX.setOn(ivItem); + pivotY.setOn(ivItem); float closenessToCenter = 1f - Math.abs(position); float scale = minScale + maxMinDiff * closenessToCenter; - item.setScaleX(scale); - item.setScaleY(scale); + ivItem.setScaleX(scale); + ivItem.setScaleY(scale); + + if (tag != null) { + if (scale == 1) { + ivItem.setImageResource(tag.getmIconId()); + tvTitle.setTextColor(ContextCompat.getColor(item.getContext(),R.color.white)); + } else { + ivItem.setImageResource(tag.getmUncheckedIconId()); + tvTitle.setTextColor(ContextCompat.getColor(item.getContext(),R.color.white_80)); + } + + } + + //int currentPosition = (position - 2) % CARD_SIZE; + } public static class Builder { 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 fb434d191c..0be64e7d37 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 @@ -241,6 +241,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent ivMode.setVisibility( View.VISIBLE ); mExitNavi.setVisibility( View.VISIBLE ); mMApUIController.setPointToCenter( 0.675926, 0.77552 ); + mMApUIController.changeMapMode(ivMode.isSelected()?EnumMapUI.NorthUP_2D :EnumMapUI.CarUp_2D ); } @Override @@ -251,6 +252,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mExitNavi.setVisibility( View.GONE ); mSpeedLimit.setVisibility( View.GONE ); mMApUIController.setPointToCenter( 0.66145, 0.590688 ); + mMApUIController.changeMapMode(EnumMapUI.NorthUP_2D); } @Override diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java index 503452e14b..42ed9b596b 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java @@ -484,6 +484,14 @@ public class SearchFragment extends BaseSearchFragment MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY); } + @Override public void onResume() { + super.onResume(); + } + + @Override public void onPause() { + super.onPause(); + } + @Override public void onDestroyView() { super.onDestroyView(); diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java b/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java index 0c602eea1d..cd397a17bb 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java @@ -28,7 +28,7 @@ public class FragmentStack { private Stack< FragmentDescriptor > mFragmentStack = new Stack<>(); private FragmentManager mFragmentManager; - private FragmentTransaction mFragmentTransaction; + //private FragmentTransaction mFragmentTransaction; private int mContainerId; private Activity mActivity; private FragmentDescriptor mCurrentFragment; @@ -69,7 +69,7 @@ public class FragmentStack { return; } - mFragmentTransaction = mFragmentManager.beginTransaction(); + FragmentTransaction mFragmentTransaction = mFragmentManager.beginTransaction(); if ( mCurrentFragment != null ) { mFragmentTransaction.hide( mCurrentFragment.getFragment() ); @@ -78,8 +78,9 @@ public class FragmentStack { if ( descriptor.hasTransition() ) { mFragmentTransaction.setTransition( FragmentTransaction.TRANSIT_FRAGMENT_OPEN ); } + mFragmentTransaction.show(descriptor.getFragment()); //mFragmentTransaction.addToBackStack( null ); - mFragmentTransaction.commitAllowingStateLoss(); + mFragmentTransaction.commitNowAllowingStateLoss(); if ( descriptor.hasTransition() ) { mFragmentManager.executePendingTransactions(); } @@ -100,14 +101,14 @@ public class FragmentStack { return; } - mFragmentTransaction = mFragmentManager.beginTransaction(); + FragmentTransaction mFragmentTransaction = mFragmentManager.beginTransaction(); mCurrentFragment = mFragmentStack.pop(); if ( mCurrentFragment != null ) { mFragmentTransaction.remove( mCurrentFragment.getFragment() ); } if ( mFragmentStack.isEmpty() ) { - mFragmentTransaction.commitAllowingStateLoss(); + mFragmentTransaction.commitNowAllowingStateLoss(); if ( mCurrentFragment.isNotifyMainModule() ) { if ( mFragmentStackTransactionListener != null ) { mFragmentStackTransactionListener.onTransaction( getStackSize() ); @@ -120,7 +121,7 @@ public class FragmentStack { FragmentDescriptor fragment = mFragmentStack.peek(); if ( fragment != null ) { mFragmentTransaction.show( fragment.getFragment() ); - mFragmentTransaction.commitAllowingStateLoss(); + mFragmentTransaction.commitNowAllowingStateLoss(); } if ( mCurrentFragment.isNotifyMainModule() ) { @@ -166,11 +167,11 @@ public class FragmentStack { invokeCallback(); return; } - mFragmentTransaction = mFragmentManager.beginTransaction(); + FragmentTransaction mFragmentTransaction = mFragmentManager.beginTransaction(); for ( FragmentDescriptor descriptor : mFragmentStack ) { mFragmentTransaction.remove( descriptor.getFragment() ); } - mFragmentTransaction.commitAllowingStateLoss(); + mFragmentTransaction.commitNowAllowingStateLoss(); mFragmentStack.clear(); mCurrentFragment = null; if ( mFragmentStackTransactionListener != null ) {