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 174c9a67b5..5db59cc9b3 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,6 +3,8 @@ package com.mogo.module.apps; import android.os.Bundle; import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; @@ -12,6 +14,9 @@ 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.adapter.base.RecycleViewHolder; +import com.mogo.module.apps.model.NavigatorApp; +import com.mogo.module.apps.model.NavigatorApps; import com.mogo.module.apps.utils.CardScaleTransformer; import com.mogo.module.common.MogoModulePaths; import com.mogo.service.MogoServicePaths; @@ -24,6 +29,7 @@ import com.mogo.utils.logger.Logger; import com.yarolegovich.discretescrollview.DiscreteScrollView; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -33,14 +39,15 @@ import java.util.Map; * 描述 */ public class AppNavigatorFragment extends MvpFragment - implements AppNavigatorView, DiscreteScrollView.OnItemChangedListener, - DiscreteScrollView.ScrollStateChangeListener, + implements AppNavigatorView, DiscreteScrollView.OnItemChangedListener, + DiscreteScrollView.ScrollStateChangeListener, IMogoCardChangedListener { private static final String TAG = "AppNavigatorFragment"; private View mApps; private IMogoFragmentManager mMogoFragmentManager; + List apps; /** * 搜索莫模块 @@ -67,6 +74,9 @@ public class AppNavigatorFragment extends MvpFragment integers = new ArrayList<>(10); + apps = NavigatorApps.getApps(); - 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_media_center); - integers.add(R.drawable.module_apps_ic_chat); - integers.add(R.drawable.module_apps_ic_tanlu); - - AppIndicatorAdapter appIndicatorAdapter = new AppIndicatorAdapter(getContext(), integers); + AppIndicatorAdapter appIndicatorAdapter = new AppIndicatorAdapter(getContext(), apps); scroller.setAdapter(appIndicatorAdapter); scroller.scrollToPosition(Integer.MAX_VALUE / 2 - 1); //mNavigation.setOnClickListener( view -> { @@ -178,27 +175,45 @@ public class AppNavigatorFragment extends MvpFragment { +public class AppIndicatorAdapter extends RecycleBaseAdapter { /** * */ - public AppIndicatorAdapter(Context context, List list + public AppIndicatorAdapter(Context context, List list ) { super(context, list, R.layout.module_apps_item_app_indicator); } @@ -25,10 +26,9 @@ public class AppIndicatorAdapter extends RecycleBaseAdapter { return Integer.MAX_VALUE; } - @Override public void onBindViewHolder(RecycleViewHolder holder, Integer integer) { + @Override public void onBindViewHolder(RecycleViewHolder holder, NavigatorApp 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()%6] ); + ivIndicator.setImageResource(integer.getmIconId()); + holder.setText(R.id.module_apps_id_app_name,integer.getmName() ); } - private String[] names=new String[]{"在线车辆","新鲜事","首页","媒体中心","车聊聊","探路"}; } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java new file mode 100644 index 0000000000..d5f7df5b9b --- /dev/null +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java @@ -0,0 +1,58 @@ +package com.mogo.module.apps.model; + +import androidx.annotation.DrawableRes; + +/** + * @author congtaowang + * @since 2020-03-13 + *

+ * app + */ +public class NavigatorApp { + + @DrawableRes + public int mIconId; + @DrawableRes + public int mUncheckedIconId; + public String mName; + public String mModuleType; + + public NavigatorApp( int mIconId,int mUncheckedIconId, String mName, String mModuleType ) { + this.mIconId = mIconId; + this.mUncheckedIconId = mUncheckedIconId; + this.mName = mName; + this.mModuleType = mModuleType; + } + + public int getmIconId() { + return mIconId; + } + + public void setmIconId(int mIconId) { + this.mIconId = mIconId; + } + + public int getmUncheckedIconId() { + return mUncheckedIconId; + } + + public void setmUncheckedIconId(int mUncheckedIconId) { + this.mUncheckedIconId = mUncheckedIconId; + } + + public String getmName() { + return mName; + } + + public void setmName(String mName) { + this.mName = mName; + } + + public String getmModuleType() { + return mModuleType; + } + + public void setmModuleType(String mModuleType) { + this.mModuleType = mModuleType; + } +} diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java new file mode 100644 index 0000000000..1f0f3d61af --- /dev/null +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java @@ -0,0 +1,34 @@ +package com.mogo.module.apps.model; + +import com.mogo.module.apps.R; +import com.mogo.module.common.ModuleNames; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author congtaowang + * @since 2020-03-13 + *

+ * app + */ +public class NavigatorApps { + + //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_media_center); + //integers.add(R.drawable.module_apps_ic_chat_icon); + //integers.add(R.drawable.module_apps_ic_tanlu); + + public static List< NavigatorApp > getApps() { + List< NavigatorApp > apps = new ArrayList<>(); + apps.add( new NavigatorApp( R.drawable.module_apps_ic_online_car,R.drawable.module_apps_ic_online_car_unchecked, "在线车辆", ModuleNames.CARD_TYPE_USER_DATA ) ); + apps.add( new NavigatorApp( R.drawable.module_apps_ic_interest, R.drawable.module_apps_ic_interest_unchecked,"新鲜事", ModuleNames.CARD_TYPE_NOVELTY ) ); + apps.add( new NavigatorApp( R.drawable.module_apps_ic_news,R.drawable.module_apps_ic_news_unchecked, "首页", ModuleNames.CARD_TYPE_BUSINESS_OPERATION ) ); + apps.add( new NavigatorApp( R.drawable.module_apps_ic_media_center, R.drawable.module_apps_ic_media_center_checked, "媒体中心", ModuleNames.CARD_TYPE_SHARE_MUSIC ) ); + apps.add( new NavigatorApp( R.drawable.module_apps_ic_chat_icon, R.drawable.module_apps_ic_chat_unchecked,"车聊聊", ModuleNames.CARD_TYPE_CARS_CHATTING ) ); + apps.add( new NavigatorApp( R.drawable.module_apps_ic_tanlu, R.drawable.module_apps_ic_tanlu_unchecked,"探路", ModuleNames.CARD_TYPE_ROAD_CONDITION ) ); + return apps; + } +} diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_apps.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_apps.png new file mode 100755 index 0000000000..a56017fd57 Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_apps.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_chat.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_chat.png new file mode 100755 index 0000000000..d099b857d9 Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_chat.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_chat_unchecked.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_chat_unchecked.png new file mode 100755 index 0000000000..d76595c392 Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_chat_unchecked.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_interest.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_interest.png new file mode 100755 index 0000000000..d2fac8cf3a Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_interest.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_interest_unchecked.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_interest_unchecked.png new file mode 100755 index 0000000000..c7d89c68ad Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_interest_unchecked.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_media_center.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_media_center.png index 193b206235..044ceb0683 100755 Binary files a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_media_center.png and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_media_center.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_media_center_checked.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_media_center_checked.png new file mode 100755 index 0000000000..fa1b977bfa Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_media_center_checked.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_news.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_news.png new file mode 100755 index 0000000000..c86bcef363 Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_news.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_news_unchecked.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_news_unchecked.png new file mode 100755 index 0000000000..77343ff931 Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_news_unchecked.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_online_car.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_online_car.png new file mode 100755 index 0000000000..9922237c77 Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_online_car.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_online_car_unchecked.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_online_car_unchecked.png new file mode 100755 index 0000000000..318e9535a0 Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_online_car_unchecked.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_tanlu.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_tanlu.png new file mode 100755 index 0000000000..32afef191d Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_tanlu.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_tanlu_unchecked.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_tanlu_unchecked.png new file mode 100755 index 0000000000..4b451a1178 Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_tanlu_unchecked.png differ 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 5c05b17a94..690abd63a9 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 @@ -9,7 +9,7 @@ diff --git a/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml index aacb251631..31de4c9293 100644 --- a/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml +++ b/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml @@ -5,13 +5,18 @@ 16px 2.3px 54.9px - 64px - 64px - 31.6px + 50px + 50px + 22px 33px 24px 18px 112px 112px + 279px 89px + 95px + 9.5px + 18px + \ No newline at end of file diff --git a/modules/mogo-module-apps/src/main/res/values/colors.xml b/modules/mogo-module-apps/src/main/res/values/colors.xml new file mode 100644 index 0000000000..6fb34a3513 --- /dev/null +++ b/modules/mogo-module-apps/src/main/res/values/colors.xml @@ -0,0 +1,20 @@ + + + #008577 + #00574B + #D81B60 + #ff080625 + #FFFFFF + #00000000 + #1AFFFFFF + #99FFFFFF + #CCFFFFFF + #7FFFFFFF + #00BFFF + #4DFFFFFF + #4D080625 + + #080625 + #3E7FFC + + diff --git a/modules/mogo-module-apps/src/main/res/values/dimens.xml b/modules/mogo-module-apps/src/main/res/values/dimens.xml index f3a1d89594..db48b6e2d3 100644 --- a/modules/mogo-module-apps/src/main/res/values/dimens.xml +++ b/modules/mogo-module-apps/src/main/res/values/dimens.xml @@ -15,4 +15,7 @@ 220px 154px 174px + 523px + 18px + 37px \ No newline at end of file diff --git a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollLayoutManager.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollLayoutManager.java index c9eff5c832..edb47a8804 100644 --- a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollLayoutManager.java +++ b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollLayoutManager.java @@ -71,6 +71,8 @@ class DiscreteScrollLayoutManager extends LinearLayoutManager { private int viewWidth, viewHeight; + private float ratio=0.5F; + @NonNull private final ScrollStateListener scrollStateListener; private DiscreteScrollItemTransformer itemTransformer; @@ -136,6 +138,10 @@ class DiscreteScrollLayoutManager extends LinearLayoutManager { } } + public void setRatio(float ratio) { + this.ratio = ratio; + } + @Override public void onLayoutCompleted(RecyclerView.State state) { if (isFirstOrEmptyLayout) { @@ -175,7 +181,7 @@ class DiscreteScrollLayoutManager extends LinearLayoutManager { recyclerViewProxy.removeAllViews(); } recyclerCenter.set( - recyclerViewProxy.getWidth() / 523*330, + (int) (recyclerViewProxy.getWidth() * ratio), recyclerViewProxy.getHeight() / 2); } diff --git a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java index 92ed360d9d..8ba378af4f 100644 --- a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java +++ b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java @@ -67,6 +67,10 @@ public class DiscreteScrollView extends RecyclerView { setLayoutManager(layoutManager); } + public void setRatio(float ratio){ + layoutManager.setRatio(ratio); + } + @Override public void setLayoutManager(LayoutManager layout) { if (layout instanceof DiscreteScrollLayoutManager) { diff --git a/modules/mogo-module-common/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-common/src/main/res/values-ldpi/dimens.xml index 86faec4c01..111cf6ee25 100644 --- a/modules/mogo-module-common/src/main/res/values-ldpi/dimens.xml +++ b/modules/mogo-module-common/src/main/res/values-ldpi/dimens.xml @@ -42,7 +42,7 @@ 12.5781px 13.1250px 13.6719px - 14.2188px + 14px 14.7656px 15.3125px 15.8594px diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/OrientedViewPager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/OrientedViewPager.java index bcded6cb02..35680f3336 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/OrientedViewPager.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/OrientedViewPager.java @@ -1946,14 +1946,14 @@ public class OrientedViewPager extends ViewGroup { Log.v(TAG, "Moved x to " + x + "," + y + " diff=" + xDiff + "," + yDiff); } - if (dx != 0 && !isGutterDrag(mLastMotionX, dx) && - canScroll(this, false, (int) dx, (int) x, (int) y)) { - // Nested view has scrollable area under this point. Let it be handled there. - mLastMotionX = x; - mLastMotionY = y; - mIsUnableToDrag = true; - return false; - } + //if (dx != 0 && !isGutterDrag(mLastMotionX, dx) && + // canScroll(this, false, (int) dx, (int) x, (int) y)) { + // // Nested view has scrollable area under this point. Let it be handled there. + // mLastMotionX = x; + // mLastMotionY = y; + // mIsUnableToDrag = true; + // return false; + //} if (xDiff > mTouchSlop && xDiff * 0.5f > yDiff) { if (DEBUG) Log.v(TAG, "Starting drag!"); mIsBeingDragged = true; diff --git a/modules/mogo-module-main/src/main/res/drawable-ldpi/module_apps_bg_card.png b/modules/mogo-module-main/src/main/res/drawable-ldpi/module_apps_bg_card.png new file mode 100755 index 0000000000..3e68a54a4a Binary files /dev/null and b/modules/mogo-module-main/src/main/res/drawable-ldpi/module_apps_bg_card.png differ diff --git a/modules/mogo-module-main/src/main/res/drawable-ldpi/module_main_card_cover_up_bottom.png b/modules/mogo-module-main/src/main/res/drawable-ldpi/module_main_card_cover_up_bottom.png new file mode 100644 index 0000000000..84957fe291 Binary files /dev/null and b/modules/mogo-module-main/src/main/res/drawable-ldpi/module_main_card_cover_up_bottom.png differ diff --git a/modules/mogo-module-main/src/main/res/drawable-xhdpi/module_main_card_cover_up_bottom.png b/modules/mogo-module-main/src/main/res/drawable-xhdpi/module_main_card_cover_up_bottom.png new file mode 100644 index 0000000000..e15483dbfb Binary files /dev/null and b/modules/mogo-module-main/src/main/res/drawable-xhdpi/module_main_card_cover_up_bottom.png differ diff --git a/modules/mogo-module-main/src/main/res/drawable/module_main_card_cover_up_bottom.png b/modules/mogo-module-main/src/main/res/drawable/module_main_card_cover_up_bottom.png deleted file mode 100644 index 09b0022e6d..0000000000 Binary files a/modules/mogo-module-main/src/main/res/drawable/module_main_card_cover_up_bottom.png and /dev/null differ diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml index c03383b847..af5cf88311 100644 --- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml +++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml @@ -46,7 +46,7 @@ android:layout_width="match_parent" android:layout_marginLeft="@dimen/dp_30" android:layout_marginRight="@dimen/dp_30" - android:layout_height="@dimen/dp_600" + android:layout_height="@dimen/cards_container_dp_600" android:clipToPadding="false" android:overScrollMode="never" /> @@ -62,7 +62,7 @@ android:id="@+id/module_main_id_card_cover_up_bottom" android:layout_width="match_parent" android:layout_height="@dimen/dp_26" - android:layout_marginTop="@dimen/dp_600" + android:layout_marginTop="@dimen/cards_container_dp_600" android:layout_marginLeft="@dimen/dp_64" android:layout_marginRight="@dimen/dp_64" android:background="@drawable/module_main_card_cover_up_bottom" diff --git a/modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml index f89dff3f4e..aaf70a0598 100644 --- a/modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml @@ -12,4 +12,7 @@ 10px 144px 352px + + 320px + \ No newline at end of file diff --git a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml index cb915f082e..420c9126b7 100644 --- a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml @@ -12,4 +12,6 @@ 15px 270px 660px + 600px + \ No newline at end of file