From f6b84428fce7453689956eae44e71b33a69a4665 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 24 十二月 2021 11:32:15 +0800
Subject: [PATCH] UI修改

---
 app/src/com/hanju/video/app/ui/main/HomeFragment.java |  392 ++++++++++++++++++++++++-------------------------------
 1 files changed, 173 insertions(+), 219 deletions(-)

diff --git a/app/src/com/hanju/video/app/ui/main/HomeFragment.java b/app/src/com/hanju/video/app/ui/main/HomeFragment.java
index f5c848c..8cdf4b3 100644
--- a/app/src/com/hanju/video/app/ui/main/HomeFragment.java
+++ b/app/src/com/hanju/video/app/ui/main/HomeFragment.java
@@ -5,10 +5,13 @@
 import android.content.SharedPreferences;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
+import android.graphics.Color;
 import android.os.Build;
 import android.os.Bundle;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.coordinatorlayout.widget.CoordinatorLayout;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentStatePagerAdapter;
@@ -21,6 +24,7 @@
 import android.widget.Toast;
 
 import com.androidquery.AQuery;
+import com.google.android.material.appbar.AppBarLayout;
 import com.google.gson.FieldNamingPolicy;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
@@ -36,6 +40,7 @@
 import com.hanju.video.app.util.ad.CSJADConstant;
 import com.hanju.video.app.util.ad.GDTADConstant;
 import com.hanju.video.app.util.ad.IntertitialAdUtil;
+import com.hanju.video.app.util.ui.StatusBarUtil;
 import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
 import com.video.youth.util.YouthUtil;
 import com.viewpagerindicator.MainTabPageIndicator;
@@ -52,6 +57,15 @@
 import com.hanju.video.app.ui.recommend.RecommendFragment;
 import com.hanju.video.app.ui.recommend.SearchActivity;
 import com.hanju.video.app.R;
+
+import net.lucode.hackware.magicindicator.MagicIndicator;
+import net.lucode.hackware.magicindicator.ViewPagerHelper;
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator;
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView;
 
 import org.apache.http.Header;
 import org.json.JSONObject;
@@ -78,20 +92,14 @@
      */
     HomePageAdapter adapter;
     ViewPager pager;
-    MainTabPageIndicator indicator;
-    TextView tv_search;
-    ImageView iv_msg_dot;
-
-    FrameLayout fl_indicator;
-
-
-    private DiskLruCache cache;
-
-    private boolean isLogin = false;
-
-    SharedPreferences preferences;//
-
+    SharedPreferences preferences;
     private AQuery mAquery;
+    private MagicIndicator mMagicIndicator;
+    private DYNewsFragment mDYNewsFragment;
+    private NovelFragment mNovelFragment;
+    private AppBarLayout mAppBarLayout;
+    CoordinatorLayout mCoordinatorLayout;
+    private DiskLruCache cache;
 
     public HomeFragment() {
         super(HomeFragment.class.getClass().getName());
@@ -109,11 +117,9 @@
         } catch (IOException e) {
             e.printStackTrace();
         }
-
         preferences = getContext().getSharedPreferences("user",
                 Context.MODE_PRIVATE);
     }
-
 
     public static int getVersionNum(Context context) {
         try {
@@ -126,6 +132,7 @@
         }
     }
 
+
     @Override
     public int getContentResource() {
         return R.layout.fragment_recommend_category;
@@ -133,73 +140,60 @@
 
 
     private void initView(View view) {
-        view.findViewById(R.id.iv_activity_main_download).setOnClickListener(this);
-        view.findViewById(R.id.ll_activity_main_search).setOnClickListener(this);
-        view.findViewById(R.id.iv_recommend_watch_history).setOnClickListener(this);
-        view.findViewById(R.id.ll_activity_login).setOnClickListener(this);
-        view.findViewById(R.id.iv_recommend_download).setOnClickListener(this);
+        mAquery = new AQuery(view);
+        mMagicIndicator = view.findViewById(R.id.magic_indicator);
+        pager = view.findViewById(R.id.pager_recomend_category);
+        mAquery.id(R.id.v_status_bar).height(StatusBarUtil.getStatusBarHeight(getActivity()), false);
+        mAppBarLayout = view.findViewById(R.id.abl_recommend);
+        mCoordinatorLayout = view.findViewById(R.id.cl_recommend);
+    }
 
+    private void init() {
+        adapter = new HomePageAdapter(
+                getChildFragmentManager());
+        pager.setAdapter(adapter);
+        pager.setOffscreenPageLimit(2);
+        CommonNavigator commonNavigator = new CommonNavigator(getActivity());
+        commonNavigator.setAdapter(navigatorAdapter);
+        commonNavigator.setAdjustMode(true);
+        mMagicIndicator.setNavigator(commonNavigator);
+        ViewPagerHelper.bind(mMagicIndicator, pager);
+        if (adapter.getCount() <= 1) {
+            mMagicIndicator.setVisibility(View.GONE);
+        } else {
+            pager.setCurrentItem(1);
+        }
+        pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
 
-        tv_search = view.findViewById(R.id.tv_activity_main_search);
-        iv_msg_dot = view.findViewById(R.id.iv_msg_dot);
+            }
+
+            @Override
+            public void onPageSelected(int position) {
+                mAppBarLayout.setExpanded(true);
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int state) {
+
+            }
+        });
+//        getCategories();
     }
 
     @Override
     public void onCreateView(View contentView, Bundle savedInstanceState) {
-        getActivity().setTheme(R.style.AppTabThemeMain);
-        mAquery = new AQuery(contentView);
         initView(contentView);
-        pager = contentView.findViewById(R.id.pager_recomend_category);
-        fl_indicator = contentView.findViewById(R.id.fl_indicator);
-        if (fl_indicator.getChildCount() > 0) {
-            fl_indicator.removeAllViews();
-        }
-        DiskLruCache.Snapshot snapshot = null;
-        try {
-            if (cache != null) {
-                snapshot = cache.get(getKey("getCategories"));
-                if (snapshot != null) {
-                    List<HomeNav> list =  JsonUtil.videoGson.fromJson(
-                            snapshot.getString(0),
-                            new TypeToken<List<HomeNav>>() {
-                            }.getType());
-                    categories.addAll(list);
-                }
-            }
-        } catch (IOException e) {
-            e.printStackTrace();
-        } finally {
-            if (snapshot != null) {
-                snapshot.close();
-            }
-        }
+        init();
 
-        adapter = new HomePageAdapter(
-                getChildFragmentManager(), categories);
-        pager.setAdapter(adapter);
-        indicator = new MainTabPageIndicator(
-                pager.getContext());
-        indicator.setViewPager(pager, 0);
-        fl_indicator.addView(indicator);
-        if (categories.size() > 1) {
-            fl_indicator.setVisibility(View.VISIBLE);
-        } else {
-            fl_indicator.setVisibility(View.GONE);
-        }
-        getHotSearch();
-        getCategories();
     }
 
-    private String getKey(String method) {
-        return new Md5FileNameGenerator().generate(method);
-    }
 
     @Override
     public void onResume() {
         super.onResume();
-        isLogin = !StringUtils.isEmpty(preferences.getString("LoginUid", ""));
-        EventBus.getDefault().register(this);
-
+//        EventBus.getDefault().register(this);
         if (YouthUtil.isOpenYouthMode(getContext())) {
             mAquery.id(R.id.ll_top).visibility(View.GONE);
         } else {
@@ -219,15 +213,79 @@
         EventBus.getDefault().unregister(this);
     }
 
+    class HomePageAdapter extends FragmentStatePagerAdapter {
+        private FragmentManager fm;
+
+
+        private List<Fragment> fragments = new ArrayList();
+
+        public HomePageAdapter(FragmentManager fm) {
+            super(fm);
+            this.fm = fm;
+            if (AdUtil.isCanInitCSJ()) {
+                mDYNewsFragment = new DYNewsFragment();
+                mNovelFragment = new NovelFragment(fm);
+                fragments.add(mNovelFragment);
+                fragments.add(mDYNewsFragment);
+            }
+            HomeNav homeNav = new HomeNav();
+            homeNav.setName("鎺ㄨ崘");
+            homeNav.setDataKey("recommend");
+            homeNav.setDataType("recommend");
+            fragments.add(fragments.size() > 0 ? 1 : 0, RecommendFragment.newInstance(homeNav, 0 + ""));
+        }
+
+        @Override
+        public Fragment getItem(int position) {
+            return fragments.get(position);
+        }
+
+        @Override
+        public int getCount() {
+            return fragments.size();
+        }
+
+
+        @Nullable
+        @Override
+        public CharSequence getPageTitle(int position) {
+            if (fragments.size() > 1) {
+                switch (position) {
+                    case 0:
+                        return "灏忚";
+                    case 1:
+                        return "鎺ㄨ崘";
+                    case 2:
+                        return "璇濋";
+                    default:
+                        return "";
+                }
+            } else {
+                return "鎺ㄨ崘";
+            }
+        }
+    }
+
+    @Override
+    public void onClick(View view) {
+        switch (view.getId()) {
+            case R.id.iv_recommend_watch_history: {
+                startActivity(new Intent(getContext(),
+                        WatchHistoryActivity.class));
+            }
+            break;
+        }
+    }
     public void onEventMainThread(VideoType type) {
         getCategories();
     }
 
+    private String getKey(String method) {
+        return new Md5FileNameGenerator().generate(method);
+    }
+
     List<HomeNav> categories = new ArrayList<>();
-
-
     int count = 1;
-
     private void getCategories() {
         SharedPreferences preferences = pager.getContext().getSharedPreferences(
                 "user", Context.MODE_PRIVATE);
@@ -239,10 +297,12 @@
                                                  Header[] headers, JSONObject jsonObject)
                             throws Exception {
                         if (jsonObject.getBoolean("IsPost")) {
-
+                            Gson gson = new GsonBuilder().setFieldNamingPolicy(
+                                    FieldNamingPolicy.UPPER_CAMEL_CASE)
+                                    .create();
                             categories.clear();
 
-                            List<HomeNav> list =  JsonUtil.videoGson.fromJson(
+                            List<HomeNav> list = gson.fromJson(
                                     jsonObject.getJSONObject("Data")
                                             .getJSONArray("data").toString(),
                                     new TypeToken<List<HomeNav>>() {
@@ -250,14 +310,7 @@
 
                             categories.addAll(list);
 
-                            if (categories.size() > 1) {
-                                fl_indicator.setVisibility(View.VISIBLE);
-                            } else {
-                                fl_indicator.setVisibility(View.GONE);
-                            }
-
                             adapter.notifyDataSetChanged();
-                            indicator.notifyDataSetChanged();
 
                             pager.setCurrentItem(0);
 
@@ -266,7 +319,7 @@
                             try {
                                 DiskLruCache.Editor editor = cache
                                         .edit(getKey("getCategories"));
-                                editor.set(0, JsonUtil.videoGson.toJson(categories));
+                                editor.set(0, gson.toJson(categories));
                                 editor.commit();
                             } catch (IOException e) {
                             }
@@ -294,157 +347,58 @@
                 });
     }
 
-    class HomePageAdapter extends FragmentStatePagerAdapter {
-        private FragmentManager fm;
 
-        private List<HomeNav> mlist;
-
-        private Map<Integer, Fragment> fragments = new HashMap<>();
-
-        public HomePageAdapter(FragmentManager fm, List<HomeNav> list) {
-            super(fm);
-            this.fm = fm;
-            this.mlist = list;
-        }
-
-        @Override
-        public Fragment getItem(int position) {
-            Fragment fragment = RecommendFragment.newInstance(mlist.get(position), position + "");
-            return fragment;
-        }
+    private CommonNavigatorAdapter navigatorAdapter = new CommonNavigatorAdapter() {
 
         @Override
         public int getCount() {
-            return mlist.size();
+            return adapter.getCount();
         }
 
-//        @Override
-//        public Object instantiateItem(ViewGroup container, int position) {
-//            Fragment fragment = (Fragment) super.instantiateItem(container, position);
-//            fm.beginTransaction().show(fragment).commit();
-//            return fragment;
-//        }
-//
-//        @Override
-//        public void destroyItem(ViewGroup container, int position, Object object) {
-//            Fragment fragment = fragments.get(position);
-//            try {
-//                fm.beginTransaction().hide(fragment).commit();
-//            } catch (Exception e) {
-//
-//            }
-//        }
 
-        @Nullable
         @Override
-        public CharSequence getPageTitle(int position) {
-            return mlist.get(position).getName();
-        }
-    }
+        public IPagerTitleView getTitleView(final Context context, final int index) {
+            ColorTransitionPagerTitleView colorTransitionPagerTitleView = new ColorTransitionPagerTitleView(context) {
+                @Override
+                public void onSelected(int index, int totalCount) {
+                    super.onSelected(index, totalCount);
 
-    @Override
-    public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.iv_recommend_watch_history: {
-                startActivity(new Intent(getContext(),
-                        WatchHistoryActivity.class));
-            }
-            break;
-            case R.id.iv_activity_main_download: {
-                Toast.makeText(getContext(), "鏆傛椂涓嶆敮鎸佷笅杞斤紒", Toast.LENGTH_LONG).show();
-            }
-            break;
-            case R.id.ll_activity_main_search: {
-                Intent intent = new Intent(getContext(), SearchActivity.class);
-                intent.putExtra("key", tv_search.getText().toString());
-                startActivity(intent);
-            }
-            break;
-            case R.id.nat:
-                openMyselfSpread();
-                break;
-
-            case R.id.iv_recommend_download:
-                startActivity(new Intent(getContext(), DownloadActivity.class));
-                break;
-            case R.id.mine_rl_head:
-                Intent intent = new Intent();
-                if (isLogin) {// 鐧诲綍鍚� 閫昏緫
-                    intent.setClass(getContext(), PersonInfoActivity.class);
-                } else {// 鐧诲綍鍓�
-                    intent.setClass(getContext(), LoginActivity.class);
+                    setTextSize(20);
+                    getPaint().setFakeBoldText(true);
                 }
-                startActivity(intent);
-                break;
-//            case R.id.rl_mine_message:
-//                openMsg();
-//                break;
+
+                @Override
+                public void onDeselected(int index, int totalCount) {
+                    super.onDeselected(index, totalCount);
+                    setTextSize(14);
+                    getPaint().setFakeBoldText(false);
+                }
+            };
+            colorTransitionPagerTitleView.setNormalColor(Color.parseColor("#80FFFFFF"));
+            colorTransitionPagerTitleView.setSelectedColor(Color.WHITE);
+            colorTransitionPagerTitleView.setText(adapter.getPageTitle(index));
+            colorTransitionPagerTitleView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    pager.setCurrentItem(index);
+                }
+            });
+            colorTransitionPagerTitleView.setTextSize(14);
 
 
+            return colorTransitionPagerTitleView;
         }
-    }
 
-    /**
-     * 鎵撳紑椤堕儴鑷垜鎺ㄥ箍
-     */
-    private void openMyselfSpread() {
-        SharedPreferences preferences = getContext().getSharedPreferences(
-                "user", Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = preferences.edit();
-        editor.putLong("latestAdtime", System.currentTimeMillis());
-        editor.commit();
-        Intent intent = new Intent(getContext(), BrowserActivity.class);
-        intent.putExtra("url", preferences.getString("tuiguang_add", ""));
-        startActivity(intent);
-    }
-
-    /**
-     * 鎵撳紑娑堟伅椤甸潰
-     */
-    private void openMsg() {
-        EventBus.getDefault().post(new NewComment(true));
-        SharedPreferences preferences = getContext().getSharedPreferences(
-                "user", Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = preferences.edit();
-        editor.putBoolean("isCheckedCom", false);
-
-        editor.commit();
-        startActivity(new Intent(getContext(),
-                SystemMessageActivity.class));
-    }
-
-    private void getHotSearch() {
-        SharedPreferences preferences = getContext().getSharedPreferences("user",
-                Context.MODE_PRIVATE);
-        String uid = preferences.getString("uid", "");
-        HttpApiUtil.getHotSearch(getContext(), uid,
-                new BasicTextHttpResponseHandler() {
-                    @Override
-                    public void onSuccessPerfect(int statusCode,
-                                                 Header[] headers, JSONObject jsonObject)
-                            throws Exception {
-                        if (jsonObject.getBoolean("IsPost")) {
-                            Gson gson = new GsonBuilder()
-                                    .create();
-                            List<String> hotSearchs = gson.fromJson(jsonObject
-                                    .getJSONObject("Data").getJSONArray("data")
-                                    .toString(), new TypeToken<List<String>>() {
-                            }.getType());
-                            if (hotSearchs != null && hotSearchs.size() > 0) {
-                                Random random = new Random();
-                                int p = random.nextInt(hotSearchs.size());
-                                tv_search.setText(hotSearchs.get(p));
-                            }
-                        }
-                    }
-                });
-    }
-
-    private String getDay(long time) {
-        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-        String date = format.format(new Date(time));
-        return date;
-    }
-
+        //姝や负tab鎸囩ず鍣ㄥ洖璋�
+        @Override
+        public IPagerIndicator getIndicator(Context context) {
+            LinePagerIndicator indicator = new LinePagerIndicator(context);
+            indicator.setLineHeight(0);
+            indicator.setColors(Color.WHITE);
+            indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT);
+            indicator.setRoundRadius(5);
+            return indicator;
+        }
+    };
 
 }

--
Gitblit v1.8.0