Parcourir la source

Merge branch 'season_3' into sheep_develop

hanjing il y a 6 ans
Parent
commit
41cdcc26c2
72 fichiers modifiés avec 1317 ajouts et 2154 suppressions
  1. 5 1
      app/src/main/AndroidManifest.xml
  2. 5 0
      app/src/main/java/com/sheep/gamegroup/dateview/DateUtil.java
  3. 4 0
      app/src/main/java/com/sheep/gamegroup/model/api/IWeb.java
  4. 9 1
      app/src/main/java/com/sheep/gamegroup/model/entity/WebParams.java
  5. 6 16
      app/src/main/java/com/sheep/gamegroup/module/game/fragment/FgtGameCenter.java
  6. 4 1
      app/src/main/java/com/sheep/gamegroup/module/game/fragment/FgtPlayGame.java
  7. 84 41
      app/src/main/java/com/sheep/gamegroup/module/game/util/SpecialZoneHelper.java
  8. 230 0
      app/src/main/java/com/sheep/gamegroup/module/home/fragment/FgtHome.java
  9. 1 10
      app/src/main/java/com/sheep/gamegroup/module/webview/fragment/BaseFgtWeb.java
  10. 0 19
      app/src/main/java/com/sheep/gamegroup/module/webview/fragment/BaseFgtWebX5.java
  11. 50 37
      app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWeb.java
  12. 40 58
      app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWebX5.java
  13. 15 31
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  14. 6 50
      app/src/main/java/com/sheep/gamegroup/util/MainTab.java
  15. 39 0
      app/src/main/java/com/sheep/gamegroup/util/StringUtils.java
  16. 12 10
      app/src/main/java/com/sheep/gamegroup/util/TestUtil.java
  17. 0 294
      app/src/main/java/com/sheep/gamegroup/util/js/BaseActWeb.java
  18. 0 295
      app/src/main/java/com/sheep/gamegroup/util/js/BaseActWebX5.java
  19. 152 3
      app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java
  20. 4 5
      app/src/main/java/com/sheep/gamegroup/util/share/ShareLinkConfig.java
  21. 0 677
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFindGame.java
  22. 2 2
      app/src/main/java/com/sheep/gamegroup/view/activity/ActInvitation.java
  23. 15 49
      app/src/main/java/com/sheep/gamegroup/view/activity/ActMain.java
  24. 2 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActMyMoney.java
  25. 0 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActPay.java
  26. 60 0
      app/src/main/java/com/sheep/gamegroup/view/activity/ActTest.java
  27. 6 61
      app/src/main/java/com/sheep/gamegroup/view/activity/ActWebX5.java
  28. 2 2
      app/src/main/java/com/sheep/gamegroup/view/activity/MiddleAct.java
  29. 7 25
      app/src/main/java/com/sheep/gamegroup/view/activity/MiddleSchemeAct.java
  30. 2 1
      app/src/main/java/com/sheep/gamegroup/view/activity/NewYearActMyMoney.java
  31. 9 4
      app/src/main/java/com/sheep/gamegroup/view/activity/PersonalCenterAct.java
  32. 23 22
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPersonalCenter.java
  33. 9 107
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtSmallSheep.java
  34. 5 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/Config.java
  35. 5 5
      app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java
  36. 12 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/base/BaseFragment.java
  37. 32 34
      app/src/main/java/com/sheep/jiuyan/samllsheep/utils/G.java
  38. 11 0
      app/src/main/res/color/selector_color_tab_game.xml
  39. 11 0
      app/src/main/res/color/selector_color_tab_home.xml
  40. BIN
      app/src/main/res/drawable-xxhdpi/homepage_zhuanqian.png
  41. BIN
      app/src/main/res/drawable-xxhdpi/homepage_zhuanqian_click.png
  42. BIN
      app/src/main/res/drawable-xxhdpi/tab_big_yq.png
  43. BIN
      app/src/main/res/drawable-xxhdpi/tab_game.png
  44. BIN
      app/src/main/res/drawable-xxhdpi/tab_game.webp
  45. BIN
      app/src/main/res/drawable-xxhdpi/tab_game_blue.png
  46. BIN
      app/src/main/res/drawable-xxhdpi/tab_game_blue.webp
  47. 18 53
      app/src/main/res/layout/act_bottom_bar.xml
  48. 6 38
      app/src/main/res/layout/act_main.xml
  49. 21 0
      app/src/main/res/layout/act_test.xml
  50. 0 62
      app/src/main/res/layout/app_special_left.xml
  51. 13 19
      app/src/main/res/layout/app_special_right.xml
  52. 8 2
      app/src/main/res/layout/fgt_find.xml
  53. 29 48
      app/src/main/res/layout/fgt_game_center.xml
  54. 211 0
      app/src/main/res/layout/fgt_home.xml
  55. 18 13
      app/src/main/res/layout/fgt_play_game.xml
  56. 17 9
      app/src/main/res/layout/homepage_act_layout.xml
  57. 17 12
      app/src/main/res/layout/homepage_item_notice_and_currenttime.xml
  58. 1 2
      app/src/main/res/layout/include_home_search.xml
  59. 5 0
      app/src/main/res/layout/inclue_hp_refresh_welfare_box.xml
  60. 18 17
      app/src/main/res/layout/item_game_focus.xml
  61. 13 13
      app/src/main/res/layout/item_game_news.xml
  62. 1 0
      app/src/main/res/layout/item_game_task.xml
  63. 24 0
      app/src/main/res/layout/play_game_special.xml
  64. BIN
      app/src/main/res/mipmap-xhdpi/homepage_mianyangtt.webp
  65. BIN
      app/src/main/res/mipmap-xxhdpi/homepage_mianyangtt.webp
  66. BIN
      app/src/main/res/mipmap-xxhdpi/ic_notify.png
  67. BIN
      app/src/main/res/mipmap-xxhdpi/ic_trend.png
  68. BIN
      app/src/main/res/mipmap-xxhdpi/level_vip.png
  69. BIN
      app/src/main/res/mipmap-xxhdpi/tip_discount.png
  70. BIN
      app/src/main/res/mipmap-xxhdpi/tip_news.png
  71. 17 3
      app/src/main/res/values/dd_styles.xml
  72. 1 0
      app/src/main/res/values/str_appstore_strings.xml

+ 5 - 1
app/src/main/AndroidManifest.xml

@@ -261,7 +261,7 @@
         <activity
             android:name="com.sheep.gamegroup.view.activity.PersonalCenterAct"
             android:screenOrientation="portrait"
-            android:theme="@style/AppActionTheme" />
+            android:theme="@style/AppTheme" />
         <activity
             android:name="com.sheep.gamegroup.view.activity.WithdrawalAct"
             android:launchMode="singleTask"
@@ -1014,6 +1014,10 @@
             android:screenOrientation="portrait"
             android:theme="@style/AppActionTheme" />
         <activity
+            android:name="com.sheep.gamegroup.view.activity.ActTest"
+            android:screenOrientation="portrait"
+            android:theme="@style/AppActionTheme" />
+        <activity
             android:name="com.sheep.gamegroup.module.game.activity.ActWelfareSpecialArea"
             android:screenOrientation="portrait"
             android:theme="@style/AppActionTheme" />

+ 5 - 0
app/src/main/java/com/sheep/gamegroup/dateview/DateUtil.java

@@ -122,6 +122,11 @@ public class DateUtil {
         return format.format(new Date(time));
     }
 
+    public static String getTimeEn(long time, String timeFormat) {
+        SimpleDateFormat format = new SimpleDateFormat(timeFormat, Locale.US);
+        return format.format(new Date(time));
+    }
+
     /**
      * 不同年的显示时间格式
      */

+ 4 - 0
app/src/main/java/com/sheep/gamegroup/model/api/IWeb.java

@@ -2,6 +2,8 @@ package com.sheep.gamegroup.model.api;
 
 import com.sheep.gamegroup.model.entity.TaskEty;
 
+import java.util.Map;
+
 /**
  * Created by realicing on 2019/4/12.
  * realicing@sina.com
@@ -31,4 +33,6 @@ public interface IWeb {
     void setNonTouchArea(float height);
 
     String getWebUrl();
+
+    void setCookies(String url, Map<String, String> params);
 }

+ 9 - 1
app/src/main/java/com/sheep/gamegroup/model/entity/WebParams.java

@@ -121,7 +121,7 @@ public class WebParams implements Serializable {
         return tokenKey;
     }
 
-    public String getInvitationCodeKey(){
+    public String getInvitationCodeKey() {
         return invitationCodeKey;
     }
 
@@ -147,4 +147,12 @@ public class WebParams implements Serializable {
         }
         return this;
     }
+
+    public boolean isFullScreen() {
+        return url.contains("fullscreen=1");
+    }
+
+    public boolean isLandscape() {
+        return url.contains("orientation=landscape");
+    }
 }

+ 6 - 16
app/src/main/java/com/sheep/gamegroup/module/game/fragment/FgtGameCenter.java

@@ -69,25 +69,25 @@ public class FgtGameCenter extends BaseFragment {
     TabLayout indicator;
     @BindView(R.id.pager)
     ViewPager pager;
-    @BindView(R.id.back_btn)
-    ImageView backBtn;
     @BindView(R.id.download_btn)
     ImageView downloadBtn;
     @BindView(R.id.search_btn)
     ImageView searchBtn;
-    @BindView(R.id.my_walfare_btn)
-    Button myWalfareBtn;
     @BindView(R.id.fgt_gc_hb_500_yuan_drl)
     View fgt_gc_hb_500_yuan_drl;
 
 
     private void initView() {
-        ViewUtil.setVisibility(myWalfareBtn, false);
 //        backBtn.setVisibility((getActivity() instanceof ActMain) ? View.GONE : View.VISIBLE);
         TitleFragmentListAdapter mAdapter = new TitleFragmentListAdapter(getChildFragmentManager());
-        mAdapter.add(new FgtPlayGame(), "玩转游戏");
+//        mAdapter.add(new FgtPlayGame(), "玩转游戏");
 //        mAdapter.add(new com.sheep.gamegroup.view.fragment.FgtGiftCenter(), "礼包中心");
         if (EmulatorDetectUtil.isEmulator()) {
+            mAdapter.add(FgtWeb.newInstance(new WebParams(Config.getUrlByPath(Config.PATH_GAME_HOME))), "玩转游戏");
+        } else {
+            mAdapter.add(FgtWebX5.newInstance(new WebParams(Config.getUrlByPath(Config.PATH_GAME_HOME))), "玩转游戏");
+        }
+        if (EmulatorDetectUtil.isEmulator()) {
             mAdapter.add(FgtWeb.newInstance(new WebParams(Config.getUrlByPath(Config.PATH_WELFARE_HOME))), "福利中心");
         } else {
             mAdapter.add(FgtWebX5.newInstance(new WebParams(Config.getUrlByPath(Config.PATH_WELFARE_HOME))), "福利中心");
@@ -159,11 +159,6 @@ public class FgtGameCenter extends BaseFragment {
         super.onResume();
     }
 
-    @OnClick(R.id.back_btn)
-    public void doBack(View v) {
-        KeyEventUtil.sendKeyDownUp(KeyEvent.KEYCODE_BACK);
-    }
-
     @OnClick(R.id.download_btn)
     public void doDownload(View v) {
         Jump2View.getInstance().goActDownloadManager(getActivity());
@@ -174,11 +169,6 @@ public class FgtGameCenter extends BaseFragment {
         Jump2View.getInstance().goActSearch(getActivity());
     }
 
-    @OnClick(R.id.my_walfare_btn)
-    public void doGoMyWalfare(View v) {
-        Jump2View.getInstance().goMyWelfare(getActivity());
-    }
-
     @OnClick(R.id.fgt_gc_hb_500_yuan_drl)
     public void goGet500YuanHb(View v) {
         Jump2View.getInstance().goWeb(SheepApp.getInstance().getCurrentActivity(), new WebParams(Config.getUrlByPath(Config.PATH_WELFARE_MONEY_REWARD_LIST)).setTitle(Config.NAME_WELFARE_MONEY_REWARD_LIST));

+ 4 - 1
app/src/main/java/com/sheep/gamegroup/module/game/fragment/FgtPlayGame.java

@@ -9,6 +9,7 @@ import android.widget.ImageView;
 import android.widget.LinearLayout;
 
 import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
 import com.bumptech.glide.request.RequestOptions;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.scwang.smartrefresh.layout.SmartRefreshLayout;
@@ -118,6 +119,7 @@ public class FgtPlayGame extends BaseFragment {
         LinearLayout.LayoutParams bannerLayoutParams = (LinearLayout.LayoutParams) banner.getLayoutParams();
         bannerLayoutParams.height = G.WIDTH * 25 / 72;
         banner.setLayoutParams(bannerLayoutParams);
+        banner.setPadding(G.getRealPix(8), G.getRealPix(8), G.getRealPix(8), G.getRealPix(8));
 
         //玩转游戏  游戏福利专区入口
         mHpRefreshWelfareHelper = new HpRefreshWelfareHelper(hp_refresh_welfare_box);
@@ -284,7 +286,8 @@ public class FgtPlayGame extends BaseFragment {
             @Override
             public void displayImage(Context context, Object o, ImageView imageView) {
                 if (o instanceof SlideshowEty)
-                    Glide.with(context).load(((SlideshowEty) o).getUrl()).apply(new RequestOptions().dontAnimate()).into(imageView);
+                    Glide.with(context).load(((SlideshowEty) o).getUrl()).apply(new RequestOptions().centerCrop().transform(new RoundedCorners(G.getRealPix(8)))).into(imageView);
+//                    Glide.with(context).load(((SlideshowEty) o).getUrl()).apply(new RequestOptions().dontAnimate()).into(imageView);
             }
         })
                 .setDelayTime(4000)

+ 84 - 41
app/src/main/java/com/sheep/gamegroup/module/game/util/SpecialZoneHelper.java

@@ -1,26 +1,27 @@
 package com.sheep.gamegroup.module.game.util;
 
+import android.support.annotation.NonNull;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
-import android.widget.LinearLayout;
 import android.widget.TextView;
-import android.widget.Toast;
 
 import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
+import com.bumptech.glide.request.RequestOptions;
 import com.sheep.gamegroup.model.entity.AppSpecial;
-import com.sheep.gamegroup.model.entity.Article;
 import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.GameListTag;
 import com.sheep.gamegroup.model.entity.GameListType;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
-import com.youth.banner.loader.ImageLoader;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -28,13 +29,20 @@ import io.reactivex.schedulers.Schedulers;
 
 public class SpecialZoneHelper {
 
-    private LinearLayout container;
+    private View rootView;
+    private RecyclerView zoneListView;
+    private ZoneAdapter zoneAdapter;
 
-    public SpecialZoneHelper(View rootView) {
-        this.container = rootView.findViewById(R.id.special_container);
+    public SpecialZoneHelper(View rView) {
+        rootView = rView;
+        this.zoneListView = rootView.findViewById(R.id.special_zone_list_view);
+        rootView.setVisibility(View.GONE);
     }
 
     public SpecialZoneHelper config() {
+        zoneListView.setLayoutManager(new LinearLayoutManager(zoneListView.getContext(), LinearLayoutManager.HORIZONTAL, false));
+        zoneAdapter = new ZoneAdapter();
+        zoneListView.setAdapter(zoneAdapter);
         return this;
     }
 
@@ -46,52 +54,87 @@ public class SpecialZoneHelper {
 
                     @Override
                     public void onNext(BaseMessage baseMessage) {
-                        container.removeAllViews();
+
                         List<AppSpecial> list = baseMessage.getDataList(AppSpecial.class);
-                        for (AppSpecial zone : list) {
-                            View view = generateSpecialView(list.indexOf(zone), zone);
-                            container.addView(view, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+                        if (list != null && list.size() > 0) {
+                            rootView.setVisibility(View.VISIBLE);
+                            zoneAdapter.setData(list);
                         }
                     }
 
                     @Override
                     public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage);
-                        container.setVisibility(View.GONE);
                     }
                 });
     }
 
-    private View generateSpecialView(int index, AppSpecial zone) {
-        View view = null;
-        if (index % 2 == 0) {
-            view = LayoutInflater.from(container.getContext()).inflate(R.layout.app_special_left, container, false);
-        } else {
-            view = LayoutInflater.from(container.getContext()).inflate(R.layout.app_special_right, container, false);
+    public class ZoneAdapter extends RecyclerView.Adapter<ZoneHolder> {
+
+        private List<AppSpecial> zonelist = new ArrayList<>();
+
+        public void setData(List<AppSpecial> list) {
+            zonelist.clear();
+            zonelist.addAll(list);
+            notifyDataSetChanged();
+        }
+
+        @NonNull
+        @Override
+        public ZoneHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
+            View view = LayoutInflater.from(zoneListView.getContext()).inflate(R.layout.app_special_zone_tile, zoneListView, false);
+            return new ZoneHolder(view);
         }
-        ImageView themeView = view.findViewById(R.id.theme_view);
-        ImageView bgView = view.findViewById(R.id.bg_view);
-        TextView titleView = view.findViewById(R.id.title_view);
-        ImageView[] iconViews = new ImageView[]{
-                view.findViewById(R.id.icon_1),
-                view.findViewById(R.id.icon_2),
-                view.findViewById(R.id.icon_3)
-        };
-        Glide.with(container.getContext()).load(zone.getMain_publicize()).into(themeView);
-        Glide.with(container.getContext()).load(zone.getIcon()).into(bgView);
-        titleView.setText(zone.getName() + "\nGO>>");
-        if (zone.getApp_icons() != null && zone.getApp_icons().length > 0) {
-            for (int i = 0; i < zone.getApp_icons().length && i < 3; i++) {
-                Glide.with(container.getContext()).load(zone.getApp_icons()[i]).into(iconViews[i]);
+
+        @Override
+        public void onBindViewHolder(@NonNull ZoneHolder zoneHolder, int i) {
+            zoneHolder.bind(zonelist.get(i));
+            if (i == zonelist.size() - 1) {
+                RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) zoneHolder.itemView.getLayoutParams();
+                layoutParams.rightMargin = G.getRealPix(8);
+            }
+        }
+
+        @Override
+        public int getItemCount() {
+            return zonelist.size();
+        }
+    }
+
+    public class ZoneHolder extends RecyclerView.ViewHolder {
+
+        public AppSpecial zone;
+
+        ImageView themeView;
+        TextView titleView;
+        ImageView[] iconViews;
+
+        public ZoneHolder(@NonNull View itemView) {
+            super(itemView);
+            themeView = itemView.findViewById(R.id.theme_view);
+            titleView = itemView.findViewById(R.id.title_view);
+            iconViews = new ImageView[]{
+                    itemView.findViewById(R.id.icon_1),
+                    itemView.findViewById(R.id.icon_2),
+                    itemView.findViewById(R.id.icon_3)
+            };
+            itemView.setOnClickListener(v -> {
+                GameListType type = new GameListType();
+                type.setSpecial_id(zone.getId());
+                type.setTitle(zone.getName());
+                Jump2View.getInstance().goActPlayGameList(itemView.getContext(), type);
+            });
+        }
+
+        public void bind(AppSpecial z) {
+            zone = z;
+            Glide.with(itemView.getContext()).load(zone.getMain_publicize()).apply(new RequestOptions().centerCrop().transform(new RoundedCorners(G.getRealPix(6)))).into(themeView);
+            titleView.setText(zone.getName() + "\nGO>>");
+            if (zone.getApp_icons() != null && zone.getApp_icons().length > 0) {
+                for (int i = 0; i < zone.getApp_icons().length && i < 3; i++) {
+                    Glide.with(itemView.getContext()).load(zone.getApp_icons()[i]).into(iconViews[i]);
+                }
             }
         }
-        view.setOnClickListener(v -> {
-            GameListType type = new GameListType();
-            type.setSpecial_id(zone.getId());
-            type.setTitle(zone.getName());
-            Jump2View.getInstance().goActPlayGameList(container.getContext(), type);
-        });
-        return view;
     }
 
 }

+ 230 - 0
app/src/main/java/com/sheep/gamegroup/module/home/fragment/FgtHome.java

@@ -0,0 +1,230 @@
+package com.sheep.gamegroup.module.home.fragment;
+
+import android.content.Intent;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentTransaction;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.kfzs.duanduan.utils.NumberFormatUtils;
+import com.sheep.gamegroup.event.BigEvent;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.MessageUnReadEntity;
+import com.sheep.gamegroup.model.entity.UserEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.DataUtil;
+import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.activity.ActMsg;
+import com.sheep.gamegroup.view.dialog.DialogNotificationOfArrival;
+import com.sheep.gamegroup.view.fragment.FgtFind;
+import com.sheep.gamegroup.view.fragment.FgtPersonalCenter;
+import com.sheep.gamegroup.view.fragment.FgtSmallSheep;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+
+import java.util.Locale;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.schedulers.Schedulers;
+
+public class FgtHome extends BaseFragment {
+
+    @BindView(R.id.iv_user_face)
+    ImageView iv_user_face;
+    @BindView(R.id.tv_nickname)
+    TextView tv_nickname;
+    @BindView(R.id.tv_user_asset)
+    TextView tv_user_asset;
+    @BindView(R.id.tv_msg_count)
+    TextView tv_msg_count;
+    @BindView(R.id.iv_flag_vip)
+    ImageView iv_flag_vip;
+    @BindView(R.id.tip_news)
+    View tip_news;
+    @BindView(R.id.v_red_dot)
+    View v_red_dot;
+    @BindView(R.id.tv_recommend)
+    TextView tv_recommend;
+    @BindView(R.id.tv_news)
+    TextView tv_news;
+    @BindView(R.id.line_recommend)
+    View line_recommend;
+    @BindView(R.id.line_news)
+    View line_news;
+
+    private UserEntity user;
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.fgt_home;
+    }
+
+    @Override
+    public void onCreate(Bundle bundle) {
+        super.onCreate(bundle);
+        EventBus.getDefault().register(this);
+    }
+
+    @Override
+    public void onDestroy() {
+        EventBus.getDefault().unregister(this);
+        super.onDestroy();
+    }
+
+    @Override
+    public void onViewCreated() {
+        getUnReadMessageCounts();
+        ViewUtil.setVisibility(v_red_dot, SpUtils.isVoucherFirst());
+    }
+
+    @Override
+    public void onViewCreated(View view, Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+        configFragments(savedInstanceState);
+        user = DataUtil.getInstance().getUserEntity();
+        GlideImageLoader.setAvatar(iv_user_face, user.getAvatar(), Color.argb(128, 255, 255, 255));
+        ViewUtil.setVisibility(iv_flag_vip, user.isVIP());
+        tv_user_asset.setText(String.format(Locale.CHINA, "%s\u0020元", NumberFormatUtils.retainMost2W(user.getBalance())));
+        ViewUtil.setText(tv_nickname, user.getNickname());
+    }
+
+    @OnClick(R.id.iv_user_face)
+    public void onFaceClick() {
+        Jump2View.getInstance().goPersonnalCenterView(getActivity(), null);
+    }
+
+    @OnClick(R.id.iv_msg)
+    public void onMsgClick() {
+        startActivity(new Intent(getActivity(), ActMsg.class));
+    }
+
+    @OnClick(R.id.iv_download)
+    public void onDownloadClick() {
+        Jump2View.getInstance().goActDownloadManager(getActivity());
+    }
+
+    @OnClick(R.id.iv_search)
+    public void onSearchClick() {
+        Jump2View.getInstance().goActSearch(getActivity());
+    }
+
+    @OnClick(R.id.mall_btn)
+    public void onMallClick() {
+        Jump2View.getInstance().gotoYfShop(getActivity());
+    }
+
+    @OnClick({R.id.recommend_btn, R.id.news_btn})
+    public void onTabClick(View v) {
+        boolean isRecommend = v.getId() == R.id.recommend_btn;
+        switchFragment(isRecommend ? 0 : 1);
+        tv_recommend.setAlpha(isRecommend ? 1 : 0.8f);
+        line_recommend.setVisibility(isRecommend ? View.VISIBLE : View.GONE);
+        tv_news.setAlpha(!isRecommend ? 1 : 0.8f);
+        line_news.setVisibility(!isRecommend ? View.VISIBLE : View.GONE);
+    }
+
+    private void configFragments(Bundle savedInstanceState) {
+        if (savedInstanceState == null) {
+            Fragment fragment0 = new FgtSmallSheep();
+            Fragment fragment1 = new FgtFind();
+            FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
+            transaction.add(R.id.fragment_container, fragment1, "fragment_tab_1").hide(fragment1);
+            transaction.add(R.id.fragment_container, fragment0, "fragment_tab_0").show(fragment0);
+            transaction.commitAllowingStateLoss();
+        } else {
+            Fragment fragment0 = getChildFragmentManager().findFragmentByTag("fragment_tab_0");
+            Fragment fragment1 = getChildFragmentManager().findFragmentByTag("fragment_tab_1");
+            FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
+            transaction.hide(fragment1);
+            transaction.show(fragment0);
+            transaction.commitAllowingStateLoss();
+        }
+    }
+
+    private void switchFragment(int position) {
+        FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
+        Fragment fragment0 = getChildFragmentManager().findFragmentByTag("fragment_tab_0");
+        Fragment fragment1 = getChildFragmentManager().findFragmentByTag("fragment_tab_1");
+        if (fragment0 != null) {
+            if (position == 0) {
+                transaction.show(fragment0);
+                fragment0.setUserVisibleHint(true);
+            } else {
+                transaction.hide(fragment0);
+                fragment0.setUserVisibleHint(false);
+            }
+        }
+        if (fragment1 != null) {
+            if (position == 1) {
+                transaction.show(fragment1);
+                fragment1.setUserVisibleHint(true);
+            } else {
+                transaction.hide(fragment1);
+                fragment1.setUserVisibleHint(false);
+            }
+        }
+        transaction.commitAllowingStateLoss();
+    }
+
+    /**
+     * 获取是否有未读消息并更新图标
+     */
+    private void getUnReadMessageCounts() {
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .getMessageUnReadNum(DataUtil.getInstance().getUserId())
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        MessageUnReadEntity entity = baseMessage.getData(MessageUnReadEntity.class);
+                        if (entity != null && entity.getNum() > 0) {
+                            ViewUtil.setVisibility(tv_msg_count, true);
+                            ViewUtil.setText(tv_msg_count, entity.getNum());
+                            DialogNotificationOfArrival.checkNotificationOfArrivalList(getActivity());
+                        } else {
+                            ViewUtil.setVisibility(tv_msg_count, false);
+                        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                    }
+                });
+    }
+
+    @Subscribe
+    public void onEventMainThread(BigEvent event) {
+        switch (event.getEventTypes()) {
+            case FGT_SHEEP_HOME_MESSAGE_COUNT:
+                if (getActivity() != null) {
+                    getActivity().runOnUiThread(() -> getUnReadMessageCounts());
+                }
+                break;
+        }
+    }
+
+    public static final String KEY_HAS_APPOINT_TASK = "hasAppointTask";
+
+    @Subscribe
+    public void whenPersonVoucherClick(FgtPersonalCenter.PersonVoucherClickEvent ev) {
+        ViewUtil.setVisibility(v_red_dot, DataUtil.getAsBoolean(KEY_HAS_APPOINT_TASK, false));
+    }
+
+}

+ 1 - 10
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/BaseFgtWeb.java

@@ -17,6 +17,7 @@ import com.sheep.gamegroup.model.api.IWeb;
 import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DownloadUtil;
+import com.sheep.gamegroup.util.StringUtils;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
@@ -65,16 +66,6 @@ public abstract class BaseFgtWeb extends BaseFragment implements UMShareListener
     }
 
 
-    public static String addUrlToken(String url) {
-        return addUrlQuery(url, "authorization", SpUtils.getToken(SheepApp.getInstance()));
-    }
-
-    public static String addUrlQuery(String url, String key, String value) {
-        if(url.contains("?"+key+"=") || url.contains("#"+key+"=") || url.contains("&"+key+"=")){
-            return url;
-        }
-        return url + ((url.contains("?") || url.contains("#") && url.contains("=")) ? "&" : "?") + key + "=" + value;
-    }
     public void setH5Type(String h5Type) {
         switch (h5Type){
             case "is_unicom":

+ 0 - 19
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/BaseFgtWebX5.java

@@ -64,18 +64,6 @@ public abstract class BaseFgtWebX5 extends BaseFragment implements UMShareListen
         SheepApp.getInstance().getCurrentActivity().finish();
     }
 
-
-    public static String addUrlToken(String url) {
-        return addUrlQuery(url, "authorization", SpUtils.getToken(SheepApp.getInstance()));
-    }
-
-    public static String addUrlQuery(String url, String key, String value) {
-        if (url.contains("?" + key + "=") || url.contains("#" + key + "=") || url.contains("&" + key + "=")) {
-            return url;
-        }
-        return url + ((url.contains("?") || url.contains("#") && url.contains("=")) ? "&" : "?") + key + "=" + value;
-    }
-
     public void setH5Type(String h5Type) {
         switch (h5Type) {
             case "is_unicom":
@@ -136,13 +124,6 @@ public abstract class BaseFgtWebX5 extends BaseFragment implements UMShareListen
         }
         WebViewCacheInterceptorInst.getInstance().loadUrl(url, map, webView.getSettings().getUserAgentString());
     }
-//    protected void webViewLoadUrl(WebView webView, String url){
-//        if(TestUtil.isDev()){
-//            webView.loadUrl(url);
-//            return;
-//        }
-//        WebViewCacheInterceptorInst.getInstance().loadUrl(webView,url);
-//    }
 
     @Override
     public boolean userButterKnife() {

+ 50 - 37
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWeb.java

@@ -15,6 +15,8 @@ import android.view.MotionEvent;
 import android.view.View;
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
+import android.webkit.CookieManager;
+import android.webkit.CookieSyncManager;
 import android.webkit.ValueCallback;
 import android.webkit.WebChromeClient;
 import android.webkit.WebSettings;
@@ -24,6 +26,7 @@ import android.widget.ImageView;
 import android.widget.ProgressBar;
 
 import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.dateview.DateUtil;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.util.CommonUtil;
@@ -101,54 +104,30 @@ public class FgtWeb extends BaseFgtWeb {
         if (!TextUtils.isEmpty(url)) {
             url = url.trim();
         }
-        if (webParams.isShowTitle()) {
-
+        if (webParams.isFullScreen()) {
+            setFullScreen();
         }
-        initWebViewSettings(mWebView);
-//        try {
-//            if (TestUtil.isTest())
-//                WebView.setWebContentsDebuggingEnabled(true);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-//            webViewSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
+        if (webParams.isLandscape()) {
+            setLandscape();
         }
+        initWebViewSettings(mWebView);
         if (TextUtils.isEmpty(jsUrl)) {
             loadUrl(url);
         } else {
             initJsData(url, jsUrl);
         }
+
     }
 
     public static FgtWeb newInstance(WebParams webParams) {
         FgtWeb fragment = new FgtWeb();
         fragment.webParams = webParams;
-//        Bundle bundle = new Bundle();
-//        DataUtil.putObject(bundle, webParams);
-//        fragment.setArguments(bundle);
         return fragment;
     }
 
     public FgtWeb() {
     }
 
-//    @Override
-//    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-//        View rootView = super.onCreateView(inflater, container, savedInstanceState);
-//        Bundle bundle = getArguments();
-//        if (bundle != null) {
-//            WebParams webParams = DataUtil.getObject(bundle, WebParams.class);
-//            if(webParams != null){
-//                this.webParams = webParams;
-//                checkWebParams(webParams);
-//                initView();
-//                initListener();
-//            }
-//        }
-//        return rootView;
-//    }
-
     //忽略 添加有范商城快捷入口
     public static final String KEY_IGNORE_ADD_YOU_FAN_LAUNCHER = "ignore_add_you_fan_launcher";
 
@@ -157,13 +136,11 @@ public class FgtWeb extends BaseFgtWeb {
             boolean isIgnore = SpUtils.getAsBoolean(KEY_IGNORE_ADD_YOU_FAN_LAUNCHER, false);
             boolean hasShortcut = SysAppUtil.hasShortcut(SheepApp.getInstance(), Config.YF_SHOP_NAME);
             boolean isShow = !hasShortcut && !isIgnore && !CommonUtil.getInstance().hasYouFanLauncher();//未忽略并且没有添加有范商品入口
-//            boolean isShow = !isIgnore && !SysAppUtil.isEnableComponentYf();
             if (isShow) {
                 ViewUtil.showMsgDialog(SheepApp.getInstance().getCurrentActivity(), new DialogConfig().setTitle("温馨提示")
                         .setMsg("亲,喜欢的话,就添加一个商城的桌面快捷入口吧!(点击否将不再提示)")
                         .setBtnLeftText("否").setBtnLeftOnClickListener(view -> SpUtils.putAsBoolean(KEY_IGNORE_ADD_YOU_FAN_LAUNCHER, true))
                         .setBtnRightText("是").setBtnRightOnClickListener(view -> CommonUtil.getInstance().addYouFanLauncher()));
-//                        .setBtnRightText("是").setBtnRightOnClickListener(view -> SysAppUtil.enableComponentYf()));
             }
         }
     }
@@ -182,6 +159,9 @@ public class FgtWeb extends BaseFgtWeb {
                     @Override
                     public void onResponse(String response, int id) {
                         js = response;
+                        if(js.contains("%s%")){
+                            js = js.replaceAll("%s%", Config.SMALL_STATION_URL + Config.STATION_SMALL_SHEEP_H5GAME);
+                        }
                         loadUrl(url);
                     }
                 });
@@ -437,6 +417,13 @@ public class FgtWeb extends BaseFgtWeb {
             public void onPageFinished(WebView view, String url) {
                 LogUtil.println("ActWeb", "onPageFinished", url);
                 super.onPageFinished(view, url);
+                CookieManager cookieManager = CookieManager.getInstance();
+                if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
+                    cookieManager.flush();
+                }
+                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+                    CookieSyncManager.getInstance().sync();
+                }
                 loadJs();
             }
         });
@@ -448,11 +435,11 @@ public class FgtWeb extends BaseFgtWeb {
                 if (url.startsWith(Config.YF_SHOP_HOME)) {
                     webParams.tokenFirstUpperCase();
                 }
-                loadUrl = addUrlQuery(url, webParams.getTokenKey(), SpUtils.getToken(SheepApp.getInstance()));
-                loadUrl = addUrlQuery(loadUrl, "pf", Config.YF_SHOP_PLATFORM);
-                loadUrl = addUrlQuery(loadUrl, "device_id", DeviceUtil.getDeviceId(SheepApp.getInstance()));
+                loadUrl = StringUtils.addUrlQuery(url, webParams.getTokenKey(), SpUtils.getToken(SheepApp.getInstance()));
+                loadUrl = StringUtils.addUrlQuery(loadUrl, "pf", Config.YF_SHOP_PLATFORM);
+                loadUrl = StringUtils.addUrlQuery(loadUrl, "device_id", DeviceUtil.getDeviceId(SheepApp.getInstance()));
             }
-            loadUrl = addUrlQuery(loadUrl, webParams.getInvitationCodeKey(), DataUtil.getInstance().getInvitationCode());
+            loadUrl = StringUtils.addUrlQuery(loadUrl, webParams.getInvitationCodeKey(), DataUtil.getInstance().getInvitationCode());
             LogUtil.println("ActWeb loadUrl = " + loadUrl);
             webViewLoadUrl(mWebView, loadUrl);
         } else {
@@ -608,7 +595,8 @@ public class FgtWeb extends BaseFgtWeb {
             int yy = WidgetUtil.Px2Dp(getContext(), y);
             switch (event.getAction()) {
                 case MotionEvent.ACTION_DOWN:
-                    if (yy < height) {
+//                    if (yy < height) {
+                    if (height > 0) {
                         mWebView.requestDisallowInterceptTouchEvent(true);
                     } else {
                         mWebView.requestDisallowInterceptTouchEvent(false);
@@ -632,4 +620,29 @@ public class FgtWeb extends BaseFgtWeb {
         loadJs(callback + "(" + data + ")");
     }
 
+    public void setCookies(String host, Map<String, String> params) {
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+            CookieSyncManager.createInstance(getContext());
+        }
+        CookieManager cookieManager = CookieManager.getInstance();
+        cookieManager.setAcceptCookie(true);
+        String cookies = cookieManager.getCookie(host);
+        Map<String, String> cookieMap = StringUtils.string2Map(cookies, ";", "=");
+        StringUtils.mergeMap(cookieMap, params);
+        cookieMap.put("Domain", host);
+        cookieMap.put("Path", "/");
+        cookieMap.put("Expires", DateUtil.getTimeEn(System.currentTimeMillis() + 15 * 86_400_000, "EEE, dd MMM yyyy HH:mm:ss") + " GMT");
+        cookieMap.put("MaxAge", "" + (15 * 86_400_000));
+        for (String key : cookieMap.keySet()) {
+            cookieManager.setCookie(host, key + "=" + cookieMap.get(key));
+        }
+        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
+            cookieManager.flush();
+        }
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+            CookieSyncManager.createInstance(getContext()).sync();
+        }
+    }
+
 }
+

+ 40 - 58
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWebX5.java

@@ -1,7 +1,6 @@
 package com.sheep.gamegroup.module.webview.fragment;
 
 import android.annotation.SuppressLint;
-import android.app.Activity;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.graphics.Bitmap;
@@ -20,7 +19,7 @@ import android.widget.ImageView;
 import android.widget.ProgressBar;
 
 import com.sheep.gamegroup.absBase.BaseActivity;
-import com.sheep.gamegroup.model.entity.DialogConfig;
+import com.sheep.gamegroup.dateview.DateUtil;
 import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.module.webview.util.WebResourceRequestAdapter;
 import com.sheep.gamegroup.module.webview.util.WebResourceResponseAdapter;
@@ -32,7 +31,6 @@ import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.NetUtil;
 import com.sheep.gamegroup.util.StringUtils;
-import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.js.KFZSJs;
@@ -47,6 +45,8 @@ import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
 import com.tencent.smtt.export.external.interfaces.WebResourceResponse;
+import com.tencent.smtt.sdk.CookieManager;
+import com.tencent.smtt.sdk.CookieSyncManager;
 import com.tencent.smtt.sdk.ValueCallback;
 import com.tencent.smtt.sdk.WebChromeClient;
 import com.tencent.smtt.sdk.WebSettings;
@@ -107,19 +107,13 @@ public class FgtWebX5 extends BaseFgtWebX5 {
         if (!TextUtils.isEmpty(url)) {
             url = url.trim();
         }
-        if (webParams.isShowTitle()) {
-
+        if (webParams.isFullScreen()) {
+            setFullScreen();
         }
-        initWebViewSettings(mWebView);
-//        try {
-//            if (TestUtil.isTest())
-//                WebView.setWebContentsDebuggingEnabled(true);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-//            webViewSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
+        if (webParams.isLandscape()) {
+            setLandscape();
         }
+        initWebViewSettings(mWebView);
         if (TextUtils.isEmpty(jsUrl)) {
             loadUrl(url);
         } else {
@@ -130,50 +124,12 @@ public class FgtWebX5 extends BaseFgtWebX5 {
     public static FgtWebX5 newInstance(WebParams webParams) {
         FgtWebX5 fragment = new FgtWebX5();
         fragment.webParams = webParams;
-//        Bundle bundle = new Bundle();
-//        DataUtil.putObject(bundle, webParams);
-//        fragment.setArguments(bundle);
         return fragment;
     }
 
     public FgtWebX5() {
     }
 
-//    @Override
-//    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-//        View rootView = super.onCreateView(inflater, container, savedInstanceState);
-//        Bundle bundle = getArguments();
-//        if (bundle != null) {
-//            WebParams webParams = DataUtil.getObject(bundle, WebParams.class);
-//            if(webParams != null){
-//                this.webParams = webParams;
-//                checkWebParams(webParams);
-//                initView();
-//                initListener();
-//            }
-//        }
-//        return rootView;
-//    }
-
-    //忽略 添加有范商城快捷入口
-    public static final String KEY_IGNORE_ADD_YOU_FAN_LAUNCHER = "ignore_add_you_fan_launcher";
-
-    private void checkWebParams(WebParams webParams) {
-        if (webParams.getUrl().startsWith(Config.YF_SHOP_HOME_SHEEP.split("\\?")[0]) || webParams.getUrl().startsWith(Config.YF_SHOP_HOME_SHEEP_TEST.split("\\?")[0])) {//检测是否是有范商城地址
-            boolean isIgnore = SpUtils.getAsBoolean(KEY_IGNORE_ADD_YOU_FAN_LAUNCHER, false);
-            boolean hasShortcut = SysAppUtil.hasShortcut(SheepApp.getInstance(), Config.YF_SHOP_NAME);
-            boolean isShow = !hasShortcut && !isIgnore && !CommonUtil.getInstance().hasYouFanLauncher();//未忽略并且没有添加有范商品入口
-//            boolean isShow = !isIgnore && !SysAppUtil.isEnableComponentYf();
-            if (isShow) {
-                ViewUtil.showMsgDialog(SheepApp.getInstance().getCurrentActivity(), new DialogConfig().setTitle("温馨提示")
-                        .setMsg("亲,喜欢的话,就添加一个商城的桌面快捷入口吧!(点击否将不再提示)")
-                        .setBtnLeftText("否").setBtnLeftOnClickListener(view -> SpUtils.putAsBoolean(KEY_IGNORE_ADD_YOU_FAN_LAUNCHER, true))
-                        .setBtnRightText("是").setBtnRightOnClickListener(view -> CommonUtil.getInstance().addYouFanLauncher()));
-//                        .setBtnRightText("是").setBtnRightOnClickListener(view -> SysAppUtil.enableComponentYf()));
-            }
-        }
-    }
-
     //初始化js代码数据
     private void initJsData(final String url, String jsUrl) {
         OkHttpUtils.get()
@@ -188,6 +144,9 @@ public class FgtWebX5 extends BaseFgtWebX5 {
                     @Override
                     public void onResponse(String response, int id) {
                         js = response;
+                        if(js.contains("%s%")){
+                            js = js.replaceAll("%s%", Config.SMALL_STATION_URL + Config.STATION_SMALL_SHEEP_H5GAME);
+                        }
                         loadUrl(url);
                     }
                 });
@@ -443,6 +402,11 @@ public class FgtWebX5 extends BaseFgtWebX5 {
             public void onPageFinished(WebView view, String url) {
                 LogUtil.println("ActWebX5", "onPageFinished", url);
                 super.onPageFinished(view, url);
+                CookieManager cookieManager = CookieManager.getInstance();
+                cookieManager.flush();
+                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+                    CookieSyncManager.getInstance().sync();
+                }
                 loadJs();
             }
         });
@@ -454,12 +418,12 @@ public class FgtWebX5 extends BaseFgtWebX5 {
                 if (url.startsWith(Config.YF_SHOP_HOME)) {
                     webParams.tokenFirstUpperCase();
                 }
-                loadUrl = addUrlQuery(url, webParams.getTokenKey(), SpUtils.getToken(SheepApp.getInstance()));
-                loadUrl = addUrlQuery(loadUrl, "pf", Config.YF_SHOP_PLATFORM);
-                loadUrl = addUrlQuery(loadUrl, "device_id", DeviceUtil.getDeviceId(SheepApp.getInstance()));
+                loadUrl = StringUtils.addUrlQuery(url, webParams.getTokenKey(), SpUtils.getToken(SheepApp.getInstance()));
+                loadUrl = StringUtils.addUrlQuery(loadUrl, "pf", Config.YF_SHOP_PLATFORM);
+                loadUrl = StringUtils.addUrlQuery(loadUrl, "device_id", DeviceUtil.getDeviceId(SheepApp.getInstance()));
             }
             if (!loadUrl.contains(webParams.getInvitationCodeKey())) {
-                loadUrl = addUrlQuery(loadUrl, webParams.getInvitationCodeKey(), DataUtil.getInstance().getInvitationCode());
+                loadUrl = StringUtils.addUrlQuery(loadUrl, webParams.getInvitationCodeKey(), DataUtil.getInstance().getInvitationCode());
             }
             LogUtil.println("ActWebX5 loadUrl = " + loadUrl);
             webViewLoadUrl(mWebView, loadUrl);
@@ -472,7 +436,6 @@ public class FgtWebX5 extends BaseFgtWebX5 {
     //createImageFileInSdcard
     @SuppressLint("SdCardPath")
     private File createImageFile() {
-        //mCameraPhotoPath="/mnt/sdcard/tmp.png";
         File file = new File(Environment.getExternalStorageDirectory() + "/", "tmp.png");
         mCameraPhotoPath = file.getAbsolutePath();
         if (!file.exists()) {
@@ -616,7 +579,8 @@ public class FgtWebX5 extends BaseFgtWebX5 {
             int yy = WidgetUtil.Px2Dp(getContext(), y);
             switch (event.getAction()) {
                 case MotionEvent.ACTION_DOWN:
-                    if (yy < height) {
+//                    if (yy < height) {
+                    if (height > 0) {
                         mWebView.requestDisallowInterceptTouchEvent(true);
                     } else {
                         mWebView.requestDisallowInterceptTouchEvent(false);
@@ -640,4 +604,22 @@ public class FgtWebX5 extends BaseFgtWebX5 {
         loadJs(callback + "(" + data + ")");
     }
 
+    public void setCookies(String host, Map<String, String> params) {
+        CookieSyncManager.createInstance(getContext());
+        CookieManager cookieManager = CookieManager.getInstance();
+        cookieManager.setAcceptCookie(true);
+        String cookies = cookieManager.getCookie(host);
+        Map<String, String> cookieMap = StringUtils.string2Map(cookies, ";", "=");
+        StringUtils.mergeMap(cookieMap, params);
+        cookieMap.put("Domain", host);
+        cookieMap.put("Path", "/");
+        cookieMap.put("Expires", DateUtil.getTimeEn(System.currentTimeMillis() + 3000_000, "EEE, dd MMM yyyy HH:mm:ss") + " GMT");
+        cookieMap.put("MaxAge", "3000");
+        for (String key : cookieMap.keySet()) {
+            cookieManager.setCookie(host, key + "=" + cookieMap.get(key));
+        }
+        cookieManager.flush();
+        CookieSyncManager.createInstance(getContext()).sync();
+    }
+
 }

+ 15 - 31
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -124,6 +124,7 @@ import com.sheep.gamegroup.view.activity.ActSetting;
 import com.sheep.gamegroup.view.activity.ActSignCard;
 import com.sheep.gamegroup.view.activity.ActSignCardRecord;
 import com.sheep.gamegroup.view.activity.ActSysNfDetail;
+import com.sheep.gamegroup.view.activity.ActTest;
 import com.sheep.gamegroup.view.activity.ActUnderstandSheep;
 import com.sheep.gamegroup.view.activity.ActUserAppHome;
 import com.sheep.gamegroup.view.activity.ActUserCommentDetail;
@@ -221,7 +222,6 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.GIFT_DETAIL;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.MI_DONG_VIEW;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.RECHARGE;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.RECHARGE_QQ;
-import static com.sheep.gamegroup.util.UMConfigUtils.Event.SEARCH_APP_OR_TASK;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.SEARCH_GAME;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.SETTING;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.SYSTEM_NOTIFICATION_DETAIL;
@@ -397,7 +397,7 @@ public class Jump2View {
      * @param object
      */
     public void goHomePageView(final Activity context, Object object) {
-        final Intent intent = new Intent(context, ActMain.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+        final Intent intent = new Intent(context, ActTest.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
         if (object instanceof String) {
             //统计用户登录信息
             UMConfigUtils.onProfileSignIn();
@@ -416,34 +416,6 @@ public class Jump2View {
     }
 
     /**
-     * 正常进入
-     * 进入主页前需要检查是否需要绑定手机号
-     *
-     * @param activity
-     */
-    public void checkPhoneOrGoHomePage(final Activity activity) {
-        CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
-            @Override
-            public void call(UserEntity userEntity) {
-                if (userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
-                    //PersionInfoAct.java与AskGetMoneyAct.java中分享二维码时的图片预下载
-                    GlideImageLoader.saveAndSetRqImage(null, userEntity.getShareLink(ShareLinkConfig.FACE_TO_FACE), 800);
-                }
-
-                if (userEntity != null && userEntity.canBindMobile()
-                        && !BuildConfig.DEBUG
-                ) {//老用户没有绑定手机号
-                    Jump2View.getInstance().goBindPhone(activity, ChangeTelAct.FROM_SPLASH);
-                    return;
-                }
-                Intent intent = new Intent(activity, ActMain.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
-                activity.startActivity(intent);
-                activity.finish();
-            }
-        });
-    }
-
-    /**
      * 通过引导页面或者登录成功后进入
      * 进入主页前需要检查是否需要绑定手机号、用户标签是否设置
      *
@@ -1063,7 +1035,19 @@ public class Jump2View {
      * @param jumpWeb
      */
     public void goWeb(Context context, IJumpWeb jumpWeb) {
-        goWeb(context, new WebParams(jumpWeb.getUrl(), jumpWeb.getTitle()).setNeedJsInteract(jumpWeb.needJsInteract()));
+        WebParams wp = new WebParams(jumpWeb.getUrl(), jumpWeb.getTitle());
+        wp.setNeedJsInteract(jumpWeb.needJsInteract());
+        if (jumpWeb.needJsInteract() && !TextUtils.isEmpty(jumpWeb.getJsUrl())) {
+            wp.setJsUrl(jumpWeb.getJsUrl());
+        }
+        goWeb(context, wp);
+    }
+
+    public void goH5Game(Context context, String url) {
+        WebParams wp = new WebParams(url, "游戏");
+        wp.setNeedJsInteract(true);
+        wp.setJsUrl(Config.SMALL_STATION_URL + Config.STATION_SMALL_SHEEP_H5GAME + "/bridge.js");
+        Jump2View.getInstance().goWeb(context, wp, true);
     }
 
     /**

+ 6 - 50
app/src/main/java/com/sheep/gamegroup/util/MainTab.java

@@ -4,6 +4,7 @@ import android.support.v4.app.Fragment;
 
 import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.module.game.fragment.FgtGameCenter;
+import com.sheep.gamegroup.module.home.fragment.FgtHome;
 import com.sheep.gamegroup.module.webview.fragment.FgtWeb;
 import com.sheep.gamegroup.module.webview.fragment.FgtWebX5;
 import com.sheep.gamegroup.view.fragment.FgtFind;
@@ -22,7 +23,7 @@ public enum MainTab {
     FgtSmallSheep(R.string.main_tab_make_money) {
         @Override
         public Fragment getFragment() {
-            return new FgtSmallSheep();
+            return new FgtHome();
         }
 
         @Override
@@ -30,29 +31,7 @@ public enum MainTab {
             return R.drawable.drawable_selector_task;
         }
     },
-    //    FgtMainAudit(R.string.main_tab_audit) {
-//        @Override
-//        public Fragment getFragment() {
-//            return new FgtMainAudit();
-//        }
-//
-//        @Override
-//        public int getDrawableId() {
-//            return R.drawable.drawable_selector_audit;
-//        }
-//    },
-    FgtGameCenter(R.string.tab_viewpager_gamestore) {
-        @Override
-        public Fragment getFragment() {
-            return new FgtGameCenter();
-        }
-
-        @Override
-        public int getDrawableId() {
-            return R.drawable.drawable_selector_game_center;
-        }
-    },
-    FgtMainAskGetMoney(R.string.main_tab_invite) {
+    FgtMainAskGetMoney(R.string.empty) {
         @Override
         public Fragment getFragment() {
 //            return SkinUtil.isLoadNewYearSkin() ? new FgtAskGetMoneyNewYear() : new FgtAskGetMoney();
@@ -68,40 +47,17 @@ public enum MainTab {
             return R.drawable.drawable_selector_askgetmoney;
         }
     },
-    Fgt_Find(R.string.main_tab_find) {
+    FgtGameCenter(R.string.tab_viewpager_gamestore) {
         @Override
         public Fragment getFragment() {
-            return new FgtFind();
+            return new FgtGameCenter();
         }
 
         @Override
         public int getDrawableId() {
-            return R.drawable.drawable_selector_find;
+            return R.drawable.drawable_selector_game_center;
         }
     },
-    FgtPersonnalCenter(R.string.personal_center) {
-        @Override
-        public Fragment getFragment() {
-            return new FgtPersonalCenter();
-        }
-
-        @Override
-        public int getDrawableId() {
-            return R.drawable.drawable_selector_personalcenter;
-        }
-    }
-//    ,
-    //    Bp(R.string.tab_viewpager_borrowplay) {
-//        @Override
-//        public Fragment getFragment() {
-//            return new FgtBorrowPlay();
-//        }
-//
-//        @Override
-//        public int getDrawableId() {
-//            return R.drawable.drawable_selector_bp;
-//        }
-//    },
     ;
     private int stringId;
 

+ 39 - 0
app/src/main/java/com/sheep/gamegroup/util/StringUtils.java

@@ -9,6 +9,7 @@ import android.util.Patterns;
 
 import com.lqr.emoji.EmotionLayout;
 import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -19,6 +20,7 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
+import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
@@ -473,4 +475,41 @@ public class StringUtils {
         }
         return true;
     }
+
+    public static String addUrlToken(String url) {
+        return StringUtils.addUrlQuery(url, "authorization", SpUtils.getToken(SheepApp.getInstance()));
+    }
+
+    public static String addUrlQuery(String url, String key, String value) {
+        if (url.contains("?" + key + "=") || url.contains("#" + key + "=") || url.contains("&" + key + "=")) {
+            return url;
+        }
+        return url + ((url.contains("?") || url.contains("#") && url.contains("=")) ? "&" : "?") + key + "=" + value;
+    }
+
+    public static String map2String(Map map, String split, String split2) {
+        String result = "";
+        for (Object key : map.keySet()) {
+            result += key.toString() + split2 + map.get(key).toString() + split;
+        }
+        return result;
+    }
+
+    public static Map<String, String> string2Map(String text, String split, String split2) {
+        Map<String, String> params = new HashMap<>();
+        if (!TextUtils.isEmpty(text)) {
+            String[] kvs = text.split(split);
+            for (String kv : kvs) {
+                String[] temp = kv.split(split2);
+                params.put(temp[0].trim(), temp[1].trim());
+            }
+        }
+        return params;
+    }
+
+    public static void mergeMap(Map<String, String> master, Map<String, String> slave) {
+        for (String key : slave.keySet()) {
+            master.put(key, slave.get(key));
+        }
+    }
 }

+ 12 - 10
app/src/main/java/com/sheep/gamegroup/util/TestUtil.java

@@ -49,7 +49,6 @@ import com.sheep.gamegroup.module.plugin.util.SheepPluginUtil;
 import com.sheep.gamegroup.module.skin.util.SkinUtil;
 import com.sheep.gamegroup.module.yf_shop.model.ReceiveCouponsCheckResq;
 import com.sheep.gamegroup.usage.AppUsageManager;
-import com.sheep.gamegroup.util.js.BaseActWebX5;
 import com.sheep.gamegroup.util.share.ShareLinkConfig;
 import com.sheep.gamegroup.view.activity.ActInstallApkList;
 import com.sheep.gamegroup.view.activity.ActMain;
@@ -263,7 +262,7 @@ public class TestUtil {
      * @param activity
      */
     public static void test(final Activity activity) {
-        final String[] items = {"协议跳转", "复制token", "添加token", "复制打点数据", "从jenkins下载小绵羊安装包", "测试表情包",
+        final String[] items = {"测试内部h5", "协议跳转", "复制token", "添加token", "复制打点数据", "从jenkins下载小绵羊安装包", "测试表情包",
                 "测试跳转","support包尝试创建桌面快捷方式","判断Launcher是否支持创建桌面快捷方式","判断是否添加快捷入口","判断是否添加商城快捷入口","显示快捷方式设置对话框",
                 "跳转QQ", "跳转QQ群", "尝试获取通讯录", "测试有范","测试有范6.0","测试有范7.0","测试有范8.0", "测试设备信息", "下载视频测试", "爱奇艺VIP会员", "分享我的签名的小绵羊apk", "分享当前小绵羊apk",
                 "测试升级对话框", "少数民族姓名", "开启皮肤", "不开启皮肤", "我的游戏", "优惠券弹窗", "填写收件地址弹窗",
@@ -272,7 +271,7 @@ public class TestUtil {
                 "跳转QQ1", "跳转QQ2", "跳转白白QQ", "龙猫竞猜", "龙猫竞猜-scheme",
                 "有米科技", "手机型号测试", "测试通知栏", "测试自定义通知栏", "测试自定义通知栏2",
                 "开启通知栏权限0", "开启通知栏权限1", "开启通知栏权限2", "开启通知栏权限3",
-                "开启通知栏权限", "通知栏权限1", "通知栏权限2", "通知栏权限8.0", "测试支付", "测试内部h5", "测试外部h5",
+                "开启通知栏权限", "通知栏权限1", "通知栏权限2", "通知栏权限8.0", "测试支付", "测试外部h5",
                 "会长推广游戏", "移动积分兑换", "审核中心", "检查正版", "crc32", "loading", "progress", "查看截图",
                 "复制IMEI", "小米游戏", "测试可用金额", "测试定位信息", "测试apk的渠道", "幂动科技",
                 "游戏帐号", "游戏代充", "尝试开启第三方应用使用情况", "测试代理页面", "第三方应用使用情况",
@@ -290,10 +289,13 @@ public class TestUtil {
             return;
         }
         switch (item) {
-            case "协议跳转":
-                Log.i("adf","1");
-                activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("sheep://small.kfzs.com/xmy?type=jss&data=83916b18ed049cbcd82f1056c1a72fdd9c7182611f8a41a0670018a16f869fa7a92b7de12c1c0602")));
+            case "协议跳转": {
+//                activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("sheep://small.kfzs.com/xmy?type=jss&data=83916b18ed049cbcd82f1056c1a72fdd9c7182611f8a41a0670018a16f869fa7a92b7de12c1c0602")));
+                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("sheep://small.kfzs.com/xmy?type=h5game&data=http://10.8.240.193:8082?ssnocache=1"));
+                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                activity.startActivity(intent);
                 break;
+            }
             case "测试跳转":
                 testSkip(activity);
                 break;
@@ -514,9 +516,9 @@ public class TestUtil {
                 break;
             case "测试内部h5": {
 //                Jump2View.getInstance().goWeb(activity, StringUtils.getCopyText().toString(), "小绵羊官网");
-//                String url = "http://10.8.240.193:8082/#/payment?authorization=64239%40e90a3bf5f9cfd223%40024e900d3cc2db1c2c064d5bb0d52a95&order=6557891279164801024&ssnocache=1";
-                String url = Config.getUrlByPath(Config.PATH_DIRECTIONAL_PAY + "?authorization=64239@e90a3bf5f9cfd223@d01420837e0fefd74c4ab9374a201bd8&order=6557891279164801024&ssnocache=1");
-                Jump2View.getInstance().goWeb(activity, url, "支付");
+                String url = "http://10.8.240.193:8082/?nocache=1";
+//                String url = Config.getUrlByPath(Config.PATH_DIRECTIONAL_PAY + "?authorization=64239@e90a3bf5f9cfd223@d01420837e0fefd74c4ab9374a201bd8&order=6557891279164801024&ssnocache=1");
+                Jump2View.getInstance().goWeb(activity, url, "玩转游戏");
             }
                 break;
             case "测试外部h5":
@@ -922,7 +924,7 @@ public class TestUtil {
         CommonUtil.getInstance().initUrlConfigByNet(name, new Action1<String>() {
             @Override
             public void call(String url) {
-                StringUtils.CopyText(BaseActWebX5.addUrlToken(url));
+                StringUtils.CopyText(StringUtils.addUrlToken(url));
             }
         });
     }

+ 0 - 294
app/src/main/java/com/sheep/gamegroup/util/js/BaseActWeb.java

@@ -1,294 +0,0 @@
-package com.sheep.gamegroup.util.js;
-
-import android.text.TextUtils;
-import android.view.View;
-import android.webkit.WebView;
-
-import com.kfzs.duanduan.utils.ApkUtils;
-import com.liulishuo.okdownload.DownloadTask;
-import com.liulishuo.okdownload.OkDownload;
-import com.liulishuo.okdownload.StatusUtil;
-import com.sheep.gamegroup.absBase.BaseUMActivity;
-import com.sheep.gamegroup.event.BigEvent;
-import com.sheep.gamegroup.event.EventTypes;
-import com.sheep.gamegroup.greendao.download.DownLoadInfo;
-import com.sheep.gamegroup.helper.DownloadHelper;
-import com.sheep.gamegroup.model.api.IWeb;
-import com.sheep.gamegroup.model.entity.TaskEty;
-import com.sheep.gamegroup.model.entity.UserEntity;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.DownloadUtil;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.util.TestUtil;
-import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.gamegroup.util.share.ShareLinkConfig;
-import com.sheep.gamegroup.view.activity.TaskDetailAct;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.G;
-import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
-import com.sheep.jiuyan.samllsheep.utils.SpUtils;
-import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
-import com.tencent.mm.opensdk.constants.ConstantsAPI;
-import com.tencent.mm.opensdk.modelpay.PayResp;
-import com.umeng.socialize.bean.SHARE_MEDIA;
-
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-
-import java.util.Locale;
-import java.util.Map;
-
-import ren.yale.android.cachewebviewlib.WebViewCacheInterceptorInst;
-import rx.functions.Action1;
-
-/**
- * Created by realicing on 2018/11/23.
- * realicing@sina.com
- */
-public abstract class BaseActWeb extends BaseUMActivity implements IWeb {
-
-    public void superFinish(){
-        super.finish();
-    }
-
-
-    public static String addUrlToken(String url) {
-        return addUrlQuery(url, "authorization", SpUtils.getToken(SheepApp.getInstance()));
-    }
-
-    public static String addUrlQuery(String url, String key, String value) {
-        if(url.contains("?"+key+"=") || url.contains("#"+key+"=") || url.contains("&"+key+"=")){
-            return url;
-        }
-        return url + ((url.contains("?") || url.contains("#") && url.contains("=")) ? "&" : "?") + key + "=" + value;
-    }
-    public void setH5Type(String h5Type) {
-        switch (h5Type){
-            case "is_unicom":
-                TitleBarUtils
-                        .getInstance()
-                        .setRightImgBotton(this, R.mipmap.share, new View.OnClickListener() {
-                            @Override
-                            public void onClick(View view) {
-                                CommonUtil.getInstance().callActionWithUserInfo(new Action1<UserEntity>() {
-                                    @Override
-                                    public void call(UserEntity userEntity) {
-                                        if (userEntity == null) {
-                                            G.showToast("分享功能调试中");
-                                            return;
-                                        }
-//                                是否是联通卡分享 1:是 0:不是
-//                                分享链接需要加个 is_unicom  参数
-                                        String url = addUrlQuery(userEntity.getShareLink(), "is_unicom", "1");
-                                        new ShareLinkConfig().setLink(url).setTitle("下载小绵羊,免费领取联通大/小天神卡").toShare(BaseActWeb.this);
-                                    }
-                                });
-                            }
-                        });
-                break;
-        }
-    }
-    @Override
-    public void onStart(SHARE_MEDIA share_media) {
-        //开始分享
-        loadJs(String.format(Locale.CHINA, "callback(\"onStart\", %s)", share_media.getName()));
-    }
-
-    @Override
-    public void onResult(SHARE_MEDIA share_media) {
-        //分享成功 微信分享时,取消也会成功
-        loadJs(String.format(Locale.CHINA, "callback(\"onResult\", %s)", share_media.getName()));
-    }
-
-    @Override
-    public void onError(SHARE_MEDIA share_media, Throwable throwable) {
-        //分享出错
-        String msg = throwable.getMessage();
-        G.showToast(msg != null && msg.contains("没有安装应用") ? "没有安装应用" : msg);
-        loadJs(String.format(Locale.CHINA, "callback(\"onError\", %s)", share_media.getName()));
-    }
-
-    @Override
-    public void onCancel(SHARE_MEDIA share_media) {
-        //取消分享 微信分享时,没有取消
-        loadJs(String.format(Locale.CHINA, "callback(\"onCancel\", %s)", share_media.getName()));
-    }
-
-    protected boolean addSheepUserAgent = true;
-//    protected void webViewLoadUrl(com.tencent.smtt.sdk.WebView webView, String url){
-//        if(addSheepUserAgent){
-//            Map<String, String> extraHeaders = new HashMap<>();
-//            extraHeaders.put("User-Agent", getSheepUserAgent());
-//            webViewLoadUrl(webView, extraHeaders, url);
-//        } else {
-//            webView.loadUrl(url);
-//            if(TestUtil.isDev()){
-//                return;
-//            }
-//            WebViewCacheInterceptorInst.getInstance().loadUrl(url, webView.getSettings().getUserAgentString());
-//        }
-//    }
-
-    public static String getSheepUserAgent(){
-        return BuildConfig.APPLICATION_ID + "/" + SysAppUtil.getUserAgent();
-    }
-
-    protected void webViewLoadUrl(WebView webView, Map<String, String> map, String url){
-        webView.loadUrl(url, map);
-        if(TestUtil.isDev()){
-            return;
-        }
-        WebViewCacheInterceptorInst.getInstance().loadUrl(url, map, webView.getSettings().getUserAgentString());
-    }
-    protected void webViewLoadUrl(WebView webView, String url){
-        if(TestUtil.isDev()){
-            webView.loadUrl(url);
-            return;
-        }
-        WebViewCacheInterceptorInst.getInstance().loadUrl(webView,url);
-    }
-
-    @Override
-    protected boolean needRegisterEventBus() {
-        return true;
-    }
-
-    @Subscribe
-    public void onEventMainThread(PayResp resp) {
-        String result = "";
-        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
-            result = String.valueOf(resp.errCode + 9000);//微信支付 0 为支付成功;支付宝为 "9000" 代表支付成功
-        }
-        loadJs(String.format(Locale.CHINA, "onAlipayResult('%s')", result));
-    }
-
-    protected TaskEty taskEty;
-
-    public void setTaskEty(TaskEty taskEty) {
-        this.taskEty = taskEty;
-    }
-
-    /**
-     * 主要的事件广播接收更新处理
-     *
-     * @param event
-     */
-    @Subscribe
-    public void onEventMainThread(BigEvent event) {
-        if (taskEty != null && event.getData() instanceof DownLoadInfo) {
-            DownLoadInfo task = (DownLoadInfo) event.getData();
-            if (TextUtils.equals(task.getMDownloadUrl(), taskEty.getDownload_link())) {
-                switch (event.getEventTypes()) {
-                    case DOWNLOAD_RUNNING:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_ING));
-                        try {
-                            String btnText = String.format(Locale.CHINA, "%d%%(%s)", Math.abs(task.getMPercent()), task.getAverageSpeed());//添加下载速度
-                            String progressText = String.format(Locale.CHINA, "%d%%", Math.abs(task.getMPercent()));//添加下载速度简单版本
-                            loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", btnText));
-                            loadJs(String.format(Locale.CHINA, "onUpdateDownloadProgress('%s')", progressText));
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                        break;
-                    case DOWNLOAD_STOP:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_PAUSE));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", CommonUtil.CONTINUE_DOWNLOAD));
-                        break;
-                    case DOWNLOAD_COMPLETE:
-                        //在这里处理任务完成的状态
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", CommonUtil.START_INSTALL));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_FINISH));
-                        updateDownloadBtn();
-                        break;
-                    case DOWNLOAD_CANCEL:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_DELETE));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", "已经取消"));
-                        break;
-                    case DOWNLOAD_FAIL:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_FAIL));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", CommonUtil.FAIL_DOWNLOAD));
-                        break;
-                }
-            }
-        }
-    }
-
-    private DownloadUtil downloadUtil;
-    public void updateDownloadBtn() {
-        if (taskEty != null) {
-            if (downloadUtil == null)
-                downloadUtil = new DownloadUtil();
-            DownloadHelper.setBtnStr(taskEty, downloadUtil, object -> runOnUiThread(() -> {
-                if (object instanceof Integer) {
-                    type = (int) object;
-                    loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", (int) object));
-                } else if (object instanceof String) {
-                    loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", (String) object));
-                } else if (object instanceof Boolean) {
-                    loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnEnable(%b)", (boolean) object));
-                }
-            }));
-        }
-    }
-    private int type = DownloadUtil.STATUS_INIT;
-    public void onClickDownloadBtn(){
-        switch (type){
-            case DownloadUtil.STATUS_INIT://开始下载
-            default:
-                downloadApk();
-                break;
-            case DownloadUtil.STATUS_FINISH:
-                ApkUtils.installApk(SheepApp.getInstance(), PackageUtil.isExistsFile(taskEty.getPackage_names(), taskEty.getDownload_link()));
-                break;
-            case DownloadUtil.STATUS_INSTALLED:
-                PackageUtil.startApp(SheepApp.getInstance(), taskEty.getPackage_names());
-                break;
-        }
-    }
-    public void downloadApk(){
-        if (taskEty != null) {
-            if (downloadUtil == null)
-                downloadUtil = new DownloadUtil();
-
-            final DownloadTask task;
-            if (TextUtils.isEmpty(taskEty.getDownload_link()) || !taskEty.getDownload_link().contains("http")) {
-                G.showToast(R.string.error_download_link);
-                return;
-            }
-            task = DownloadUtil.getTask(taskEty);
-            final StatusUtil.Status statusOnStore = StatusUtil.getStatus(task);
-            final DownLoadInfo downLoadInfo = downloadUtil.getDownloadTaskByUrl(taskEty);
-            switch (statusOnStore) {
-                case RUNNING:
-                case PENDING://等待的
-                    OkDownload.with().downloadDispatcher().cancel(task);
-                    break;
-                case IDLE://空闲的
-                case UNKNOWN:
-                    downloadUtil.start(downLoadInfo);
-                    break;
-                case COMPLETED://有可能之前已经下载完成,但是数据库里已经没有数据了,这时只需要修改状态
-                    if (task.getFile() != null) {
-                        if (downloadUtil.checkFinish(downLoadInfo)) {//检查文件是否真的完成
-                            downloadUtil.setDownloadTaskFinish(task.getUrl(), task.getFile().getAbsolutePath());
-                        } else {//重新开始下载
-                            downloadUtil.delete(downLoadInfo);
-                            downloadUtil.start(downloadUtil.getDownloadTaskByUrl(taskEty));
-                            downloadUtil.setDownloadTaskStatus(taskEty.getDownload_link(), DownloadUtil.STATUS_INIT);
-                        }
-                    }
-                    updateDownloadBtn();
-                    break;
-            }
-            new Thread(() -> {
-                if (downloadUtil.addDownloadTask(downLoadInfo)) {
-                    //发送红点信息
-                    EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.TIPS_DOWN_ICON));
-                }
-            }).start();
-            UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
-        }
-    }
-}

+ 0 - 295
app/src/main/java/com/sheep/gamegroup/util/js/BaseActWebX5.java

@@ -1,295 +0,0 @@
-package com.sheep.gamegroup.util.js;
-
-import android.text.TextUtils;
-import android.view.View;
-import android.webkit.WebView;
-
-import com.kfzs.duanduan.utils.ApkUtils;
-import com.liulishuo.okdownload.DownloadTask;
-import com.liulishuo.okdownload.OkDownload;
-import com.liulishuo.okdownload.StatusUtil;
-import com.sheep.gamegroup.absBase.BaseUMActivity;
-import com.sheep.gamegroup.event.BigEvent;
-import com.sheep.gamegroup.event.EventTypes;
-import com.sheep.gamegroup.greendao.download.DownLoadInfo;
-import com.sheep.gamegroup.helper.DownloadHelper;
-import com.sheep.gamegroup.model.api.IWeb;
-import com.sheep.gamegroup.model.entity.TaskEty;
-import com.sheep.gamegroup.model.entity.UserEntity;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.DownloadUtil;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.util.TestUtil;
-import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.gamegroup.util.share.ShareLinkConfig;
-import com.sheep.gamegroup.view.activity.TaskDetailAct;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.G;
-import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
-import com.sheep.jiuyan.samllsheep.utils.SpUtils;
-import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
-import com.tencent.mm.opensdk.constants.ConstantsAPI;
-import com.tencent.mm.opensdk.modelpay.PayResp;
-import com.umeng.socialize.bean.SHARE_MEDIA;
-
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-
-import ren.yale.android.cachewebviewlib.WebViewCacheInterceptorInst;
-import rx.functions.Action1;
-
-/**
- * Created by realicing on 2018/11/23.
- * realicing@sina.com
- */
-public abstract class BaseActWebX5 extends BaseUMActivity implements IWeb {
-
-    public void superFinish(){
-        super.finish();
-    }
-
-
-    public static String addUrlToken(String url) {
-        return addUrlQuery(url, "authorization", SpUtils.getToken(SheepApp.getInstance()));
-    }
-
-    public static String addUrlQuery(String url, String key, String value) {
-        if(url.contains("?"+key+"=") || url.contains("#"+key+"=") || url.contains("&"+key+"=")){
-            return url;
-        }
-        return url + ((url.contains("?") || url.contains("#") && url.contains("=")) ? "&" : "?") + key + "=" + value;
-    }
-    public void setH5Type(String h5Type) {
-        switch (h5Type){
-            case "is_unicom":
-                TitleBarUtils
-                        .getInstance()
-                        .setRightImgBotton(this, R.mipmap.share, new View.OnClickListener() {
-                            @Override
-                            public void onClick(View view) {
-                                CommonUtil.getInstance().callActionWithUserInfo(new Action1<UserEntity>() {
-                                    @Override
-                                    public void call(UserEntity userEntity) {
-                                        if (userEntity == null) {
-                                            G.showToast("分享功能调试中");
-                                            return;
-                                        }
-//                                是否是联通卡分享 1:是 0:不是
-//                                分享链接需要加个 is_unicom  参数
-                                        String url = addUrlQuery(userEntity.getShareLink(), "is_unicom", "1");
-                                        new ShareLinkConfig().setLink(url).setTitle("下载小绵羊,免费领取联通大/小天神卡").toShare(BaseActWebX5.this);
-                                    }
-                                });
-                            }
-                        });
-                break;
-        }
-    }
-    @Override
-    public void onStart(SHARE_MEDIA share_media) {
-        //开始分享
-        loadJs(String.format(Locale.CHINA, "callback(\"onStart\", %s)", share_media.getName()));
-    }
-
-    @Override
-    public void onResult(SHARE_MEDIA share_media) {
-        //分享成功 微信分享时,取消也会成功
-        loadJs(String.format(Locale.CHINA, "callback(\"onResult\", %s)", share_media.getName()));
-    }
-
-    @Override
-    public void onError(SHARE_MEDIA share_media, Throwable throwable) {
-        //分享出错
-        String msg = throwable.getMessage();
-        G.showToast(msg != null && msg.contains("没有安装应用") ? "没有安装应用" : msg);
-        loadJs(String.format(Locale.CHINA, "callback(\"onError\", %s)", share_media.getName()));
-    }
-
-    @Override
-    public void onCancel(SHARE_MEDIA share_media) {
-        //取消分享 微信分享时,没有取消
-        loadJs(String.format(Locale.CHINA, "callback(\"onCancel\", %s)", share_media.getName()));
-    }
-
-    protected boolean addSheepUserAgent = true;
-    protected void webViewLoadUrl(com.tencent.smtt.sdk.WebView webView, String url){
-        if(addSheepUserAgent){
-            Map<String, String> extraHeaders = new HashMap<>();
-            extraHeaders.put("User-Agent", getSheepUserAgent());
-            webViewLoadUrl(webView, extraHeaders, url);
-        } else {
-            webView.loadUrl(url);
-            if(TestUtil.isDev()){
-                return;
-            }
-            WebViewCacheInterceptorInst.getInstance().loadUrl(url, webView.getSettings().getUserAgentString());
-        }
-    }
-
-    public static String getSheepUserAgent(){
-        return BuildConfig.APPLICATION_ID + "/" + SysAppUtil.getUserAgent();
-    }
-
-    protected void webViewLoadUrl(com.tencent.smtt.sdk.WebView webView, Map<String, String> map, String url){
-        webView.loadUrl(url, map);
-        if(TestUtil.isDev()){
-            return;
-        }
-        WebViewCacheInterceptorInst.getInstance().loadUrl(url, map, webView.getSettings().getUserAgentString());
-    }
-    protected void webViewLoadUrl(WebView webView, String url){
-        if(TestUtil.isDev()){
-            webView.loadUrl(url);
-            return;
-        }
-        WebViewCacheInterceptorInst.getInstance().loadUrl(webView,url);
-    }
-
-    @Override
-    protected boolean needRegisterEventBus() {
-        return true;
-    }
-
-    @Subscribe
-    public void onEventMainThread(PayResp resp) {
-        String result = "";
-        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
-            result = String.valueOf(resp.errCode + 9000);//微信支付 0 为支付成功;支付宝为 "9000" 代表支付成功
-        }
-        loadJs(String.format(Locale.CHINA, "onAlipayResult('%s')", result));
-    }
-
-    protected TaskEty taskEty;
-
-    public void setTaskEty(TaskEty taskEty) {
-        this.taskEty = taskEty;
-    }
-
-    /**
-     * 主要的事件广播接收更新处理
-     *
-     * @param event
-     */
-    @Subscribe
-    public void onEventMainThread(BigEvent event) {
-        if (taskEty != null && event.getData() instanceof DownLoadInfo) {
-            DownLoadInfo task = (DownLoadInfo) event.getData();
-            if (TextUtils.equals(task.getMDownloadUrl(), taskEty.getDownload_link())) {
-                switch (event.getEventTypes()) {
-                    case DOWNLOAD_RUNNING:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_ING));
-                        try {
-                            String btnText = String.format(Locale.CHINA, "%d%%(%s)", Math.abs(task.getMPercent()), task.getAverageSpeed());//添加下载速度
-                            String progressText = String.format(Locale.CHINA, "%d%%", Math.abs(task.getMPercent()));//添加下载速度简单版本
-                            loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", btnText));
-                            loadJs(String.format(Locale.CHINA, "onUpdateDownloadProgress('%s')", progressText));
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                        break;
-                    case DOWNLOAD_STOP:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_PAUSE));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", CommonUtil.CONTINUE_DOWNLOAD));
-                        break;
-                    case DOWNLOAD_COMPLETE:
-                        //在这里处理任务完成的状态
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", CommonUtil.START_INSTALL));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_FINISH));
-                        updateDownloadBtn();
-                        break;
-                    case DOWNLOAD_CANCEL:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_DELETE));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", "已经取消"));
-                        break;
-                    case DOWNLOAD_FAIL:
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", DownloadUtil.STATUS_FAIL));
-                        loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", CommonUtil.FAIL_DOWNLOAD));
-                        break;
-                }
-            }
-        }
-    }
-
-    private DownloadUtil downloadUtil;
-    public void updateDownloadBtn() {
-        if (taskEty != null) {
-            if (downloadUtil == null)
-                downloadUtil = new DownloadUtil();
-            DownloadHelper.setBtnStr(taskEty, downloadUtil, object -> runOnUiThread(() -> {
-                if (object instanceof Integer) {
-                    type = (int) object;
-                    loadJs(String.format(Locale.CHINA, "onUpdateDownloadStatus(%d)", (int) object));
-                } else if (object instanceof String) {
-                    loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnText('%s')", (String) object));
-                } else if (object instanceof Boolean) {
-                    loadJs(String.format(Locale.CHINA, "onUpdateDownloadBtnEnable(%b)", (boolean) object));
-                }
-            }));
-        }
-    }
-    private int type = DownloadUtil.STATUS_INIT;
-    public void onClickDownloadBtn(){
-        switch (type){
-            case DownloadUtil.STATUS_INIT://开始下载
-            default:
-                downloadApk();
-                break;
-            case DownloadUtil.STATUS_FINISH:
-                ApkUtils.installApk(SheepApp.getInstance(), PackageUtil.isExistsFile(taskEty.getPackage_names(), taskEty.getDownload_link()));
-                break;
-            case DownloadUtil.STATUS_INSTALLED:
-                PackageUtil.startApp(SheepApp.getInstance(), taskEty.getPackage_names());
-                break;
-        }
-    }
-    public void downloadApk(){
-        if (taskEty != null) {
-            if (downloadUtil == null)
-                downloadUtil = new DownloadUtil();
-
-            final DownloadTask task;
-            if (TextUtils.isEmpty(taskEty.getDownload_link()) || !taskEty.getDownload_link().contains("http")) {
-                G.showToast(R.string.error_download_link);
-                return;
-            }
-            task = DownloadUtil.getTask(taskEty);
-            final StatusUtil.Status statusOnStore = StatusUtil.getStatus(task);
-            final DownLoadInfo downLoadInfo = downloadUtil.getDownloadTaskByUrl(taskEty);
-            switch (statusOnStore) {
-                case RUNNING:
-                case PENDING://等待的
-                    OkDownload.with().downloadDispatcher().cancel(task);
-                    break;
-                case IDLE://空闲的
-                case UNKNOWN:
-                    downloadUtil.start(downLoadInfo);
-                    break;
-                case COMPLETED://有可能之前已经下载完成,但是数据库里已经没有数据了,这时只需要修改状态
-                    if (task.getFile() != null) {
-                        if (downloadUtil.checkFinish(downLoadInfo)) {//检查文件是否真的完成
-                            downloadUtil.setDownloadTaskFinish(task.getUrl(), task.getFile().getAbsolutePath());
-                        } else {//重新开始下载
-                            downloadUtil.delete(downLoadInfo);
-                            downloadUtil.start(downloadUtil.getDownloadTaskByUrl(taskEty));
-                            downloadUtil.setDownloadTaskStatus(taskEty.getDownload_link(), DownloadUtil.STATUS_INIT);
-                        }
-                    }
-                    updateDownloadBtn();
-                    break;
-            }
-            new Thread(() -> {
-                if (downloadUtil.addDownloadTask(downLoadInfo)) {
-                    //发送红点信息
-                    EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.TIPS_DOWN_ICON));
-                }
-            }).start();
-            UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
-        }
-    }
-}

+ 152 - 3
app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java

@@ -4,11 +4,14 @@ import android.Manifest;
 import android.app.Activity;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.net.Uri;
 import android.provider.MediaStore;
 import android.support.v4.app.ActivityCompat;
 import android.support.v4.content.ContextCompat;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.View;
+import android.webkit.CookieSyncManager;
 import android.webkit.JavascriptInterface;
 
 import com.alibaba.fastjson.JSON;
@@ -18,9 +21,13 @@ import com.sheep.gamegroup.event.WebViewEvent;
 import com.sheep.gamegroup.model.api.IWeb;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.DialogConfig;
+import com.sheep.gamegroup.model.entity.GameListType;
+import com.sheep.gamegroup.model.entity.Release_task;
 import com.sheep.gamegroup.model.entity.TaskEty;
+import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.module.find.activity.ActFind;
+import com.sheep.gamegroup.module.login.fragments.AbsLoginFgt;
 import com.sheep.gamegroup.module.pay.activity.ActPayPassword;
 import com.sheep.gamegroup.module.user.activity.ActVip;
 import com.sheep.gamegroup.module.user.model.BuyVipReq;
@@ -29,9 +36,11 @@ import com.sheep.gamegroup.util.ApiJSONUtil;
 import com.sheep.gamegroup.util.ApiUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.ContactUtil;
+import com.sheep.gamegroup.util.DataKey;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.MainTab;
 import com.sheep.gamegroup.util.QQUtil;
@@ -43,17 +52,28 @@ import com.sheep.gamegroup.view.activity.ActInvitation;
 import com.sheep.gamegroup.view.activity.ActMain;
 import com.sheep.gamegroup.view.activity.ChangeWxOrTelAct;
 import com.sheep.gamegroup.view.activity.RealNameAuthenAct;
+import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.bean.UserCenterModule;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+import com.tencent.smtt.sdk.CookieManager;
+import com.umeng.socialize.ShareAction;
+import com.umeng.socialize.UMAuthListener;
+import com.umeng.socialize.UMShareAPI;
+import com.umeng.socialize.UMShareListener;
+import com.umeng.socialize.bean.SHARE_MEDIA;
+import com.umeng.socialize.media.UMImage;
 
 import org.greenrobot.eventbus.EventBus;
 
 import java.net.URI;
+import java.util.HashMap;
 import java.util.Locale;
+import java.util.Map;
 
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.schedulers.Schedulers;
@@ -118,9 +138,6 @@ public class KFZSJs {
     @JavascriptInterface
     public void gotoMain(int tab) {
         Class willClass = ActMain.class;
-        if (tab == MainTab.Fgt_Find.ordinal()) {
-            willClass = ActFind.class;
-        }
         Intent mainIntent = new Intent(activity, willClass);
         mainIntent.putExtra("SWITCH_TAB", tab);
         activity.startActivity(mainIntent);
@@ -143,6 +160,11 @@ public class KFZSJs {
     }
 
     @JavascriptInterface
+    public void gotoH5Game(String url) {
+        Jump2View.getInstance().goH5Game(activity, url);
+    }
+
+    @JavascriptInterface
     public void gotoRecharge() {
         gotoRecharge(false);
     }
@@ -308,6 +330,22 @@ public class KFZSJs {
     }
 
     @JavascriptInterface
+    public void gotoTask(final int type, final int id) {
+        activity.runOnUiThread(() -> {
+            Release_task rt = new Release_task();
+            rt.setId(id);
+            rt.setTask(new TaskEty());
+            rt.getTask().setTask_type(type);
+            Jump2View.getInstance().goEntity(rt);
+        });
+    }
+
+    @JavascriptInterface
+    public void goTryplayView() {
+        Jump2View.getInstance().goTryplayView(activity, null);
+    }
+
+    @JavascriptInterface
     public void setH5Type(final String h5Type) {
         if (h5Type == null)
             return;
@@ -506,6 +544,22 @@ public class KFZSJs {
     }
 
     @JavascriptInterface
+    public void goActPlayGameList(int type) {
+        GameListType gameListType = new GameListType();
+        gameListType.setPort_type(type);
+        gameListType.setTitle("");
+        Jump2View.getInstance().goActPlayGameList(activity, gameListType);
+    }
+
+    @JavascriptInterface
+    public void goZoneGameList(int id, String name) {
+        GameListType type = new GameListType();
+        type.setSpecial_id(id);
+        type.setTitle(name);
+        Jump2View.getInstance().goActPlayGameList(activity, type);
+    }
+
+    @JavascriptInterface
     public void gotoGameGroupDetail(int id) {
         Jump2View.getInstance().goActGameGroupDetail(id);
     }
@@ -548,4 +602,99 @@ public class KFZSJs {
             }
         });
     }
+
+    @JavascriptInterface
+    public void putIntData(String key, int value) {
+        DataUtil.putAsInt(key, value);
+    }
+
+    @JavascriptInterface
+    public int getIntData(String key, int def) {
+        return DataUtil.getAsInt(key, 1);
+    }
+
+    @JavascriptInterface
+    public void goNativeFromUser(String jsonStr) {
+        UserCenterModule module = JSONObject.parseObject(jsonStr, UserCenterModule.class);
+        CommonUtil.getInstance().goNative(activity, module, "个人中心");
+    }
+
+    @JavascriptInterface
+    public void shareThirdPartApp(int type, String title, String desc, String url, String img) {
+        String shareType = null;
+        switch (type) {
+            case 0:
+                shareType = ShareLinkConfig.QQ;
+                break;
+            case 1:
+                shareType = ShareLinkConfig.QZONE;
+                break;
+            case 2:
+                shareType = ShareLinkConfig.WX;
+                break;
+            case 3:
+                shareType = ShareLinkConfig.WEIXIN_CIRCLE;
+                break;
+            default:
+                return;
+        }
+        new ShareLinkConfig().setShareType(shareType).setTitle(title).setDes(desc).setIconUrl(img).setLink(url).toShare(activity, new UMShareListener() {
+            @Override
+            public void onStart(SHARE_MEDIA share_media) {
+
+            }
+
+            @Override
+            public void onResult(SHARE_MEDIA share_media) {
+                iWeb.loadJs("handleShare(0)");
+            }
+
+            @Override
+            public void onError(SHARE_MEDIA share_media, Throwable throwable) {
+                iWeb.loadJs("handleShare(1)");
+            }
+
+            @Override
+            public void onCancel(SHARE_MEDIA share_media) {
+                iWeb.loadJs("handleShare(2)");
+            }
+        });
+    }
+
+    @JavascriptInterface
+    public void loginThirdPartApp(String type) {
+        UMShareAPI.get(SheepApp.getInstance()).doOauthVerify(activity,
+                "wx".equals(type) ? SHARE_MEDIA.WEIXIN : SHARE_MEDIA.QQ,
+                new UMAuthListener() {
+                    @Override
+                    public void onStart(SHARE_MEDIA share_media) {
+
+                    }
+
+                    @Override
+                    public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
+                        Uri uri = Uri.parse(iWeb.getWebUrl());
+                        String host = uri.getHost();
+                        CookieManager cookieManager = CookieManager.getInstance();
+                        Map<String, String> params = new HashMap<>();
+                        params.put("access_token", map.get("access_token"));
+                        params.put("openid", map.get("openid"));
+                        params.put("account_type", type);
+                        params.put("app_id", "wx".equals(type) ? Config.WX_AUTH_APP_ID : Config.QQ_APP_ID);
+                        iWeb.setCookies(host, params);
+                        iWeb.loadJs("handleLogin(1)");
+                    }
+
+                    @Override
+                    public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
+                        G.shortToast(("wx".equals(type) ? "微信" : "QQ") + "授权失败");
+                        iWeb.loadJs("handleLogin(2)");
+                    }
+
+                    @Override
+                    public void onCancel(SHARE_MEDIA share_media, int i) {
+                        iWeb.loadJs("handleLogin(3)");
+                    }
+                });
+    }
 }

+ 4 - 5
app/src/main/java/com/sheep/gamegroup/util/share/ShareLinkConfig.java

@@ -24,7 +24,6 @@ import com.sheep.gamegroup.util.StringUtils;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.ZipChannelUtil;
-import com.sheep.gamegroup.util.js.BaseActWebX5;
 import com.sheep.gamegroup.util.viewHelper.CacheImageUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -420,14 +419,14 @@ public class ShareLinkConfig {
         switch (type) {
             case ShareLinkConfig.WX:
             case ShareLinkConfig.WEIXIN_CIRCLE:
-                return BaseActWebX5.addUrlQuery(url,"type","1");
+                return StringUtils.addUrlQuery(url,"type","1");
             case ShareLinkConfig.QQ:
             case ShareLinkConfig.QZONE:
-                return BaseActWebX5.addUrlQuery(url,"type","2");
+                return StringUtils.addUrlQuery(url,"type","2");
             case ShareLinkConfig.FACE_TO_FACE:
-                return BaseActWebX5.addUrlQuery(url, "type", "4");
+                return StringUtils.addUrlQuery(url, "type", "4");
             default:
-                return BaseActWebX5.addUrlQuery(url,"type","5");
+                return StringUtils.addUrlQuery(url,"type","5");
         }
     }
     public final static String FACE_TO_FACE = "face_to_face";

+ 0 - 677
app/src/main/java/com/sheep/gamegroup/view/activity/ActFindGame.java

@@ -1,677 +0,0 @@
-//package com.sheep.gamegroup.view.activity;
-//
-//import android.app.Activity;
-//import android.content.Intent;
-//import android.os.Bundle;
-//import android.support.annotation.Nullable;
-//import android.support.design.widget.AppBarLayout;
-//import android.support.v7.widget.AppCompatRatingBar;
-//import android.support.v7.widget.RecyclerView;
-//import android.text.TextUtils;
-//import android.view.View;
-//import android.widget.ImageView;
-//import android.widget.ProgressBar;
-//import android.widget.RatingBar;
-//import android.widget.RelativeLayout;
-//import android.widget.TextView;
-//
-//import com.alibaba.fastjson.JSONObject;
-//import com.kfzs.duanduan.utils.StatusBarUtils;
-//import com.sheep.gamegroup.absBase.BaseActivity;
-//import com.sheep.gamegroup.event.BigEvent;
-//import com.sheep.gamegroup.greendao.download.DownLoadInfo;
-//import com.sheep.gamegroup.helper.ImageListHelper;
-//import com.sheep.gamegroup.model.entity.BaseMessage;
-//import com.sheep.gamegroup.model.entity.GameApp;
-//import com.sheep.gamegroup.model.entity.GameAppScore;
-//import com.sheep.gamegroup.model.entity.MyFindAppCore;
-//import com.sheep.gamegroup.model.entity.UserEntity;
-//import com.sheep.gamegroup.model.util.SheepSubscriber;
-//import com.sheep.gamegroup.util.CommonUtil;
-//import com.sheep.gamegroup.util.DataUtil;
-//import com.sheep.gamegroup.util.DownloadUtil;
-//import com.sheep.gamegroup.util.GlideImageLoader;
-//import com.sheep.gamegroup.util.Jump2View;
-//import com.sheep.gamegroup.util.ListUtil;
-//import com.sheep.gamegroup.util.TimeUtil;
-//import com.sheep.gamegroup.util.ViewUtil;
-//import com.sheep.jiuyan.samllsheep.R;
-//import com.sheep.jiuyan.samllsheep.SheepApp;
-//import com.sheep.jiuyan.samllsheep.utils.G;
-//import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
-//import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
-//import com.tencent.smtt.sdk.WebView;
-//
-//import org.afinal.simplecache.ApiKey;
-//import org.greenrobot.eventbus.EventBus;
-//import org.greenrobot.eventbus.Subscribe;
-//
-//import java.util.ArrayList;
-//import java.util.HashMap;
-//import java.util.List;
-//import java.util.Locale;
-//import java.util.Map;
-//
-//import butterknife.BindView;
-//import io.reactivex.android.schedulers.AndroidSchedulers;
-//import rx.functions.Action1;
-//import io.reactivex.schedulers.Schedulers;
-//
-//import static android.content.Intent.ACTION_PACKAGE_ADDED;
-//import static android.content.Intent.ACTION_PACKAGE_REMOVED;
-//import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_SCORE;
-//import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_SHARE;
-//
-///**
-// * Created by realicing on 2018/5/10.
-// * realicing@sina.com
-// */
-//public class ActFindGame extends BaseActivity {
-//    @Override
-//    protected void onCreate(@Nullable Bundle savedInstanceState) {
-//        StatusBarUtils.setTranslucent(this);
-//        super.onCreate(savedInstanceState);
-//    }
-//
-//    @Override
-//    protected int getLayoutId() {
-//        return R.layout.act_find_game;
-//    }
-//
-//    private int id;
-//
-//    @Override
-//    public void initView() {
-//        id = getIntent().getIntExtra("id", 0);
-//        TitleBarUtils.getInstance()
-//                .setTitle(this, "详情")
-//                .setTitleFinish(this)
-//                .setRightImgBotton(this, R.mipmap.share, new View.OnClickListener() {
-//                    @Override
-//                    public void onClick(View view) {
-//                        FIND_SHARE.onEvent("application_id", id);
-//                        Jump2View.getInstance().tryShare(ActFindGame.this, "find_share_url", "application_id", id);
-//                    }
-//                });
-//
-//        EventBus.getDefault().register(this);
-//
-//        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, G.BAR_HEIGHT);
-//        status_height_view.setLayoutParams(params);
-//        /*
-//          标题显示和隐藏的监听
-//         */
-//        ((AppBarLayout) findViewById(R.id.appbar_act_game_details)).addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
-//            @Override
-//            public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
-//                int nameWidth = find_game_name_tv.getWidth();
-//                if (nameWidth == 0) {
-//                    find_game_name_tv.measure(0, 0);
-//                    nameWidth = find_game_name_tv.getMeasuredWidth();
-//                }
-//                int infoWidth = find_game_info_tv.getWidth();
-//                if (infoWidth == 0) {
-//                    find_game_info_tv.measure(0, 0);
-//                    infoWidth = find_game_info_tv.getMeasuredWidth();
-//                }
-//                //图标位置变化
-//                int find_game_top = getResources().getDimensionPixelSize(R.dimen.find_game_top);
-//                int find_icon_with = getResources().getDimensionPixelSize(R.dimen.find_icon_with);
-////                int leftMargin = getResources().getDimensionPixelSize(R.dimen.content_padding_5);
-//                int titleHeight = img_baseactivity_title.getHeight();
-//                int titleWidth = img_baseactivity_title.getWidth();
-//                int topRow = (titleHeight - find_game_name_tv.getHeight() - find_game_info_tv.getHeight()) / 5;
-//                int topRow2 = (titleHeight - find_game_name_tv.getHeight()) / 2;
-//                int leftRow = topRow2 / 4;//isNeedReservation ? topRow : 5 * topRow;
-//
-//                int willTop = Math.max(topRow / 2, find_game_top + verticalOffset);
-//                int row = (find_icon_with * willTop + titleHeight * (find_game_top - willTop)) / find_game_top - topRow;
-//                RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) find_game_iv.getLayoutParams();
-//                layoutParams.leftMargin = Math.max(titleWidth, (G.WIDTH - find_icon_with) / 2 + verticalOffset);
-//                layoutParams.topMargin = willTop;
-//                layoutParams.width = row;
-//                layoutParams.height = row;
-//                find_game_iv.setLayoutParams(layoutParams);
-//                //名字位置变化
-//                RelativeLayout.LayoutParams layoutParams2 = (RelativeLayout.LayoutParams) find_game_name_tv.getLayoutParams();
-//                layoutParams2.leftMargin = Math.max(titleWidth + row + 2 * leftRow, (G.WIDTH - nameWidth) / 2 + verticalOffset);
-//                layoutParams2.topMargin = Math.max(topRow2, getResources().getDimensionPixelSize(R.dimen.find_game_top2) + verticalOffset);
-//                find_game_name_tv.setLayoutParams(layoutParams2);
-//                //信息位置变化
-//                RelativeLayout.LayoutParams layoutParams3 = (RelativeLayout.LayoutParams) find_game_info_tv.getLayoutParams();
-//                int left1 = (G.WIDTH - infoWidth) / 2;
-//                int left2 = titleWidth + row + 2 * leftRow;
-//                layoutParams3.leftMargin = left1;//left2 > left1 ? Math.min(left2, left1 - verticalOffset) : Math.max(left2, left1 + verticalOffset);
-//                layoutParams3.topMargin = /*Math.max(find_game_name_tv.getHeight() + 4 * topRow, */getResources().getDimensionPixelSize(R.dimen.find_game_top3) + verticalOffset/*)*/;
-//                find_game_info_tv.setLayoutParams(layoutParams3);
-//                //下载按钮位置变化
-//                RelativeLayout.LayoutParams layoutParams4 = (RelativeLayout.LayoutParams) find_game_down_tv.getLayoutParams();
-//                layoutParams4.setMarginEnd(Math.max(ibtn_baseactivity_right.getWidth(), (G.WIDTH - find_game_down_tv.getWidth()) / 2 + verticalOffset));
-//                layoutParams4.topMargin = Math.max((titleHeight - find_game_down_tv.getHeight()) / 2, getResources().getDimensionPixelSize(R.dimen.find_game_top4) + verticalOffset);// Math.max(topRow, getResources().getDimensionPixelSize(R.dimen.find_game_top4) + verticalOffset);
-//                find_game_down_tv.setLayoutParams(layoutParams4);
-//                //星级位置变化
-//                RelativeLayout.LayoutParams layoutParams5 = (RelativeLayout.LayoutParams) find_game_xin.getLayoutParams();
-//                layoutParams5.topMargin = getResources().getDimensionPixelSize(R.dimen.find_game_top5) + verticalOffset;
-//                find_game_xin.setLayoutParams(layoutParams5);
-//                if (willTop == topRow / 2) {
-//                    if (mIsExpanded) {
-////                        txt_baseactivity_title.setVisibility(View.INVISIBLE);
-//                        find_game_bar.setVisibility(View.VISIBLE);
-//                        title_bottom_line.setVisibility(View.VISIBLE);
-//                        img_baseactivity_title.setImageLevel(1);
-//                        mIsExpanded = false;//修改状态标记为折叠
-//                    }
-//                } else {
-//                    if (!mIsExpanded) {
-//                        mIsExpanded = true;//修改状态标记为展开
-////                        txt_baseactivity_title.setVisibility(View.VISIBLE);
-//                        find_game_bar.setVisibility(View.INVISIBLE);
-//                        title_bottom_line.setVisibility(View.INVISIBLE);
-//                        img_baseactivity_title.setImageLevel(0);
-//                    }
-//                }
-//            }
-//        });
-//        txt_baseactivity_title.setVisibility(View.INVISIBLE);//不显示标题栏
-//        bindBanner();
-//        resetData();
-//        resetAppScoreNum();
-//        resetMyAppScore();
-//        resetUserInfo();
-//        if (isShowAppScore) {
-//            find_game_score_no.setVisibility(View.VISIBLE);
-//            find_game_score_my.setVisibility(View.VISIBLE);
-//        }
-//    }
-//
-//    private boolean mIsExpanded = false;//是否是折叠状态
-//    private boolean isShowAppScore = false;//是否显示评分模块
-//
-//    @Override
-//    public void initListener() {
-//
-//    }
-//
-//    @Override
-//    public void initData() {
-//        GameApp findApp = DataUtil.getInstance().getCacheResult(ApiKey.applications(id), GameApp.class);
-//        if (findApp != null) {
-//            loadApp(findApp);
-//        }
-//        initFindAppFromNet();
-//        if (isShowAppScore) {
-//            initAppScoreNum();
-//            initMyAppScore();
-//        }
-//        UserEntity userEntity = DataUtil.getInstance().getUserEntity();
-//        if (userEntity == null) {
-//            CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
-//                @Override
-//                public void call(UserEntity userEntity) {
-//                    if (userEntity != null) {
-//                        loadUserInfo(userEntity);
-//                    } else {
-//                        resetUserInfo();
-//                    }
-//                }
-//            });
-//        } else {
-//            loadUserInfo(userEntity);
-//        }
-//    }
-//
-//    private void initFindAppFromNet() {
-//        showProgress();
-//        SheepApp.getInstance().getNetComponent().getApiService().getAppDetail(id)
-//                .subscribeOn(Schedulers.io())
-//                .observeOn(AndroidSchedulers.mainThread())
-//                .subscribe(new SheepSubscriber<BaseMessage>(this) {
-//                    @Override
-//                    public void onNext(BaseMessage baseMessage) {
-//                        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.applications(id));
-//                        if (isNewData) {
-//                            GameApp findApp = baseMessage.getData(GameApp.class);
-//                            loadApp(findApp);
-//                        }
-//                        hideProgress();
-//                    }
-//
-//                    @Override
-//                    public void onError(BaseMessage baseMessage) {
-//                        G.showToast(baseMessage);
-//                        resetData();
-//                        hideProgress();
-//                    }
-//                });
-//    }
-//
-//    private void loadApp(GameApp findApp) {
-//        if (findApp != null) {
-//            loadData(findApp);
-//        } else {
-//            resetData();
-//        }
-//    }
-//
-//    private void initAppScoreNum() {
-//        List<GameAppScore> findAppScoreList = DataUtil.getInstance().getCacheList(ApiKey.score_num(id), GameAppScore.class);
-//        if (!findAppScoreList.isEmpty()) {
-//            loadAppScoreNum(findAppScoreList);
-//        }
-//        SheepApp.getInstance().getNetComponent().getApiService().getAppScoreNum(id)
-//                .subscribeOn(Schedulers.io())
-//                .observeOn(AndroidSchedulers.mainThread())
-//                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-//                    @Override
-//                    public void onNext(BaseMessage baseMessage) {
-//                        List<GameAppScore> findAppScoreList = baseMessage.getDataList(GameAppScore.class);
-//                        if (ListUtil.isEmpty(findAppScoreList))
-//                            resetAppScoreNum();
-//                        else
-//                            loadAppScoreNum(findAppScoreList);
-//                    }
-//
-//                    @Override
-//                    public void onError(BaseMessage baseMessage) {
-//                        G.showToast(baseMessage);
-//                    }
-//                });
-//    }
-//
-//    private void initMyAppScore() {
-//        MyFindAppCore myFindAppCore = DataUtil.getInstance().getCacheResult(ApiKey.my_score(id), MyFindAppCore.class);
-//        if (myFindAppCore == null) {
-//            SheepApp.getInstance().getNetComponent().getApiService().getMyAppScore(id)
-//                    .subscribeOn(Schedulers.io())
-//                    .observeOn(AndroidSchedulers.mainThread())
-//                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-//                        @Override
-//                        public void onNext(BaseMessage baseMessage) {
-//                            MyFindAppCore myFindAppCore = baseMessage.getData(MyFindAppCore.class);
-//                            if (myFindAppCore == null)
-//                                resetMyAppScore();
-//                            else
-//                                loadMyAppScore(myFindAppCore);
-//                        }
-//
-//                        @Override
-//                        public void onError(BaseMessage baseMessage) {
-//                            resetMyAppScore();
-//                        }
-//                    });
-//        } else {
-//            loadMyAppScore(myFindAppCore);
-//        }
-//    }
-//
-//    @BindView(R.id.find_game_iv)
-//    ImageView find_game_iv;
-//    @BindView(R.id.find_game_bar)
-//    View find_game_bar;
-//    @BindView(R.id.title_bottom_line)
-//    View title_bottom_line;
-//    @BindView(R.id.img_baseactivity_title)
-//    ImageView img_baseactivity_title;
-//    @BindView(R.id.txt_baseactivity_title)
-//    View txt_baseactivity_title;
-//    @BindView(R.id.ibtn_baseactivity_right)
-//    ImageView ibtn_baseactivity_right;
-//    @BindView(R.id.status_height_view)
-//    View status_height_view;
-//
-//    //游戏banner图片
-//    @BindView(R.id.find_game_list)
-//    RecyclerView find_game_list;
-//    private ArrayList<String> pictureList = ListUtil.emptyList();
-//
-//    private void bindBanner() {
-//        ImageListHelper.initList(this, find_game_list, pictureList);
-//    }
-//
-//    //游戏简介与下载
-//    @BindView(R.id.find_game_name_tv)
-//    TextView find_game_name_tv;
-//    @BindView(R.id.find_game_info_tv)
-//    TextView find_game_info_tv;
-//    @BindView(R.id.find_game_xin)
-//    RatingBar find_game_xin;
-//    @BindView(R.id.find_game_down_tv)
-//    TextView find_game_down_tv;
-//
-//    private GameApp findApp;
-//    private boolean isNeedReservation = false;
-//
-//    private void loadData(final GameApp findApp) {
-//        this.findApp = findApp;
-//        //游戏简介与下载
-//        GlideImageLoader.setGameImage(find_game_iv, findApp.getIcon());
-//        ViewUtil.setText(find_game_name_tv, findApp.getName());
-//        isNeedReservation = !findApp.isCanDownload();//这里认为只有两种状态:可下载与预约下载
-//        if (isNeedReservation)
-//            ViewUtil.setText(find_game_info_tv, String.format(Locale.CHINA, "开放时间:%s", TimeUtil.TimeStamp2Date(findApp.getDownload_at(), "yyyy-MM-dd\u0020HH:mm")));
-//        else {
-//            String format = !TextUtils.isEmpty(findApp.getManufacturer()) && findApp.getManufacturer().length() > 5 ? "厂商:%s\n版本号:%s | 包体大小:%sM" : "厂商:%s | 版本号:%s\n包体大小:%sM";
-//            ViewUtil.setText(find_game_info_tv, String.format(Locale.CHINA, format, findApp.getManufacturer(), findApp.getVersions(), findApp.getPackage_size()));
-//        }
-//
-//        find_game_xin.setRating(findApp.getScore() / 2);
-//
-//        updateView(this, findApp, find_game_down_tv);
-//
-//        //游戏图片banner
-//        String pictures = findApp.getPictures();
-//        if (!TextUtils.isEmpty(pictures) && pictures.contains(";")) {
-//            pictureList.clear();
-//            ListUtil.addAll(pictureList, pictures.split(";"));
-//            find_game_list.setVisibility(View.VISIBLE);
-//            find_game_list.getAdapter().notifyDataSetChanged();
-//        } else {
-//            find_game_list.setVisibility(View.GONE);
-//        }
-//        //应用评分情况
-//        find_game_xin2.setRating(findApp.getScore() / 2);
-//        ViewUtil.setText(find_game_score, String.format(Locale.CHINA, "%.1f分", findApp.getScore()));
-//        int max = Math.max(1, findApp.getScore_count());
-//        find_game_progress_1.setMax(max);
-//        find_game_progress_2.setMax(max);
-//        find_game_progress_3.setMax(max);
-//        find_game_progress_4.setMax(max);
-//        find_game_progress_5.setMax(max);
-//        //游戏介绍
-//        loadAppInfo(findApp);
-//    }
-//
-//    private void resetData() {
-//        //游戏简介与下载
-//        ViewUtil.setText(find_game_name_tv);
-//        ViewUtil.setText(find_game_info_tv);
-//        ViewUtil.setText(find_game_down_tv);
-//        find_game_xin.setRating(0.0f);
-//        //应用评分情况
-//        find_game_xin2.setRating(0);
-//        ViewUtil.setText(find_game_score, "0.0分");
-//        //游戏介绍
-//    }
-//
-//    //应用评分情况
-//    @BindView(R.id.find_game_score_no)
-//    View find_game_score_no;
-//    @BindView(R.id.find_game_score_my)
-//    View find_game_score_my;
-//    @BindView(R.id.find_game_xin2)
-//    AppCompatRatingBar find_game_xin2;
-//    @BindView(R.id.find_game_progress_5)
-//    ProgressBar find_game_progress_5;
-//    @BindView(R.id.find_game_progress_4)
-//    ProgressBar find_game_progress_4;
-//    @BindView(R.id.find_game_progress_3)
-//    ProgressBar find_game_progress_3;
-//    @BindView(R.id.find_game_progress_2)
-//    ProgressBar find_game_progress_2;
-//    @BindView(R.id.find_game_progress_1)
-//    ProgressBar find_game_progress_1;
-//    @BindView(R.id.find_game_score)
-//    TextView find_game_score;
-//
-//    private void loadAppScoreNum(List<GameAppScore> findAppScoreList) {
-//        for (GameAppScore findAppScore : findAppScoreList) {
-//            switch (findAppScore.getStar()) {
-//                case 1:
-//                    find_game_progress_1.setProgress(findAppScore.getNum());
-//                    break;
-//                case 2:
-//                    find_game_progress_2.setProgress(findAppScore.getNum());
-//                    break;
-//                case 3:
-//                    find_game_progress_3.setProgress(findAppScore.getNum());
-//                    break;
-//                case 4:
-//                    find_game_progress_4.setProgress(findAppScore.getNum());
-//                    break;
-//                case 5:
-//                    find_game_progress_5.setProgress(findAppScore.getNum());
-//                    break;
-//            }
-//        }
-//    }
-//
-//    private void resetAppScoreNum() {
-//    }
-//
-//    //用户信息与提交评分
-//    @BindView(R.id.find_game_user_iv)
-//    ImageView find_game_user_iv;
-//    @BindView(R.id.find_game_user_name_tv)
-//    TextView find_game_user_name_tv;
-//    @BindView(R.id.find_game_user_xin)
-//    AppCompatRatingBar find_game_user_xin;
-//    @BindView(R.id.find_game_user_commit_tv)
-//    TextView find_game_user_commit_tv;
-//
-//    private void loadUserInfo(final UserEntity userEntity) {
-//        GlideImageLoader.setAvatar(find_game_user_iv, userEntity.getAvatar());
-//        ViewUtil.setText(find_game_user_name_tv, userEntity.getNickname());
-//        find_game_user_commit_tv.setOnClickListener(new View.OnClickListener() {
-//            @Override
-//            public void onClick(View view) {
-//                commitMyAppScore((int) (find_game_user_xin.getRating() * 2));
-//            }
-//        });
-//    }
-//
-//    private void loadMyAppScore(MyFindAppCore myFindAppCore) {
-//        find_game_user_xin.setRating(myFindAppCore.getScore() / 2);
-//        find_game_user_commit_tv.setText("重新评分");
-//    }
-//
-//    /**
-//     * "application_id": 0,
-//     * "score": 0,
-//     *
-//     * @param score 要提交的分数
-//     */
-//    private void commitMyAppScore(int score) {
-//        FIND_SCORE.onEvent("application_id", id);
-//        JSONObject jsonObject = new JSONObject();
-//        jsonObject.put("application_id", id);
-//        jsonObject.put("score", score);
-//        SheepApp.getInstance().getNetComponent().getApiService().commitAppScore(jsonObject)
-//                .subscribeOn(Schedulers.io())
-//                .observeOn(AndroidSchedulers.mainThread())
-//                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-//                    @Override
-//                    public void onNext(BaseMessage baseMessage) {
-//                        find_game_user_commit_tv.setText("重新评分");
-//                        G.showToast(baseMessage);
-//                        //更新评分与我的评分
-//                        initAppScoreNum();
-//                        initMyAppScore();
-//                    }
-//
-//                    @Override
-//                    public void onError(BaseMessage baseMessage) {
-//                        G.showToast(baseMessage);
-//                    }
-//                });
-//    }
-//
-//    private void resetUserInfo() {
-//        ViewUtil.setText(find_game_user_name_tv);
-//    }
-//
-//    private void resetMyAppScore() {
-//        find_game_user_xin.setRating(0.0f);
-//    }
-//
-//    //游戏介绍
-//    @BindView(R.id.find_game_info_wv)
-//    WebView find_game_info_wv;
-//
-//    private void loadAppInfo(final GameApp findApp) {
-//        ViewUtil.loadDataWithBaseURL(find_game_info_wv, findApp.getIntro());
-//    }
-//
-//
-//    private Map<String, TextView> downLoadTextViewMap = new HashMap<>();
-//
-//    //获取任务对应的TextView来更新进度
-//    private TextView getTextViewByTask(DownLoadInfo task) {
-//        return getTextViewByKey(task.getMDownloadUrl());
-//    }
-//
-//    private TextView getTextViewByKey(String key) {
-//        if (downLoadTextViewMap.containsKey(key))
-//            return downLoadTextViewMap.get(key);
-//        return null;
-//    }
-//
-//    //更新按钮状态与添加点击事件
-//    private void updateView(Activity activity, GameApp findApp, TextView textView) {
-//        if (findApp.getAvailable_receive() == 0 && findApp.getReceive_account() == 0) {//未领取账号
-//
-//            CommonUtil.getInstance()
-//                    .xiaomiRevieceAcctoun(find_game_down_tv, findApp, activity);
-//        } else if (findApp.isCanDownload()) {//可下载
-//            downLoadTextViewMap.put(findApp.getDownload_link(), textView);
-//            downLoadTextViewMap.put(findApp.getPackage_name(), textView);
-//            findApp.getFindAppHelper().updateDownloadTaskView(activity, findApp, textView);
-//        } else {//预约下载
-//            findApp.getFindAppHelper().updateReservationView(activity, findApp, textView);
-//        }
-//    }
-//
-//    //下载状态监听
-//    void onPre(DownLoadInfo task) {
-//        TextView textView = getTextViewByTask(task);
-//        if (textView != null) {
-//            textView.setText("准备下载中");
-//        }
-//    }
-//
-//    void taskStart(DownLoadInfo task) {
-//        TextView textView = getTextViewByTask(task);
-//        if (textView != null) {
-//            textView.setText("开始下载中");
-//        }
-//    }
-//
-//    void taskResume(DownLoadInfo task) {
-//        TextView textView = getTextViewByTask(task);
-//        if (textView != null) {
-//            textView.setText("恢复下载中");
-//        }
-//    }
-//
-//    //在这里处理任务执行中的状态,如进度进度条的刷新
-//    protected void running(DownLoadInfo task) {
-//        TextView textView = getTextViewByTask(task);
-//        if (textView != null) {
-//            textView.setText(String.format(Locale.CHINA, "%d%%(%s)", Math.abs(task.getMPercent()), task.getAverageSpeed()));//添加下载速度
-//        }
-//    }
-//
-//    void taskStop(DownLoadInfo task) {
-//        TextView textView = getTextViewByTask(task);
-//        if (textView != null) {
-//            textView.setText(CommonUtil.CONTINUE_DOWNLOAD);
-//        }
-//    }
-//
-//    void taskCancel(DownLoadInfo task) {
-//        TextView textView = getTextViewByTask(task);
-//        if (textView != null) {
-//            textView.setText("已经取消");
-//        }
-//    }
-//
-//    void taskFail(DownLoadInfo task) {
-//        TextView textView = getTextViewByTask(task);
-//        if (textView != null) {
-//            textView.setText(CommonUtil.FAIL_DOWNLOAD);
-//        }
-//    }
-//
-//    void taskComplete(DownLoadInfo task) {
-//        TextView textView = getTextViewByTask(task);
-//        if (textView != null) {
-//            textView.setText(CommonUtil.START_INSTALL);
-//        }
-//        if (findApp != null && TextUtils.equals(task.getMDownloadUrl(), findApp.getDownload_link()))
-//            findApp.updateState(DownloadUtil.STATUS_FINISH);
-//    }
-//
-//    @Subscribe
-//    public void onEventMainThread(Intent intent) {
-//        if (intent != null && intent.getAction() != null && intent.getDataString() != null && intent.getDataString().contains("package:")) {
-//            String packageName = intent.getDataString().replace("package:", "");
-//
-//            TextView textView = getTextViewByKey(packageName);
-//            if (textView != null && findApp != null) {
-//                switch (intent.getAction()) {
-//                    case ACTION_PACKAGE_ADDED:
-//                        textView.setText(CommonUtil.GAME_OPEN);
-//                        break;
-//                    case ACTION_PACKAGE_REMOVED:
-//                        String path = PackageUtil.isExistsFile(packageName, findApp.getDownload_url());
-//                        if (TextUtils.isEmpty(path)) {
-//                            textView.setText(CommonUtil.START_DOWNLOAD);
-//                        } else {
-//                            textView.setText(CommonUtil.START_INSTALL);
-//                        }
-//                        break;
-//                }
-//            }
-//
-//            if (findApp != null && TextUtils.equals(packageName, findApp.getPackage_names())) {
-//                switch (intent.getAction()) {
-//                    case ACTION_PACKAGE_ADDED:
-//                        findApp.updateState(DownloadUtil.STATUS_INSTALLED);
-//                        break;
-//                    case ACTION_PACKAGE_REMOVED:
-//                        String path = PackageUtil.isExistsFile(packageName, findApp.getDownload_url());
-//                        if (TextUtils.isEmpty(path)) {
-//                            findApp.updateState(DownloadUtil.STATUS_INIT);
-//                        } else {
-//                            findApp.updateState(DownloadUtil.STATUS_FINISH);
-//                        }
-//                        break;
-//                }
-//            }
-//        }
-//    }
-//
-//    @Subscribe
-//    public void onEventMainThread(BigEvent event) {
-//        switch (event.getEventTypes()) {
-//            case REFRESH_XIAOMI_GAME_LIST:
-//                initData();
-//                break;
-//        }
-//        if (event.getData() instanceof DownLoadInfo) {
-//            DownLoadInfo task = (DownLoadInfo) event.getData();
-//            switch (event.getEventTypes()) {
-//                case DOWNLOAD_RUNNING:
-//                    running(task);
-//                    break;
-//                case DOWNLOAD_STOP:
-//                    taskStop(task);
-//                    break;
-//                case DOWNLOAD_COMPLETE:
-//                    taskComplete(task);
-//                    break;
-//                case DOWNLOAD_CANCEL:
-//                    taskCancel(task);
-//                    break;
-//                case DOWNLOAD_FAIL:
-//                    taskFail(task);
-//                    break;
-//            }
-//        }
-//    }
-//
-//    @Override
-//    protected void onDestroy() {
-//        super.onDestroy();
-//        EventBus.getDefault().unregister(this);
-//    }
-//}

+ 2 - 2
app/src/main/java/com/sheep/gamegroup/view/activity/ActInvitation.java

@@ -43,10 +43,10 @@ import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.LogUtil;
+import com.sheep.gamegroup.util.StringUtils;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.ViewHolder;
 import com.sheep.gamegroup.util.ViewUtil;
-import com.sheep.gamegroup.util.js.BaseActWebX5;
 import com.sheep.gamegroup.util.share.ShareLinkConfig;
 import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
 import com.sheep.gamegroup.view.adapter.ArrayPagerAdapter;
@@ -343,7 +343,7 @@ public class ActInvitation extends BaseUMActivity {
                     float radius = 4 / 216F;
                     float topRadius = 2 / 216F;
                     float logoRadius = rqRadius * 16 / 68;
-                    GlideImageLoader.saveAndSetRqImage(image_bottom, TestUtil.isSheep() ? item.getLink() : BaseActWebX5.addUrlQuery(userEntity.getShareLink(), "flag", item.getFlag()), 400, new RequestOptions().disallowHardwareConfig().override((int) (imgWidth * rqRadius)));
+                    GlideImageLoader.saveAndSetRqImage(image_bottom, TestUtil.isSheep() ? item.getLink() : StringUtils.addUrlQuery(userEntity.getShareLink(), "flag", item.getFlag()), 400, new RequestOptions().disallowHardwareConfig().override((int) (imgWidth * rqRadius)));
                     //重新设置logo的宽高
                     ViewGroup.LayoutParams layoutParams = image_logo.getLayoutParams();
                     layoutParams.width = (int) (imgWidth * logoRadius);

+ 15 - 49
app/src/main/java/com/sheep/gamegroup/view/activity/ActMain.java

@@ -108,7 +108,7 @@ public class ActMain extends BaseActYmPermissionCheck {
     @Override
     public void onWindowFocusChanged(boolean hasFocus) {
         super.onWindowFocusChanged(hasFocus);
-        setSystemUiVisibility(true);
+        setSystemUiVisibility(false);
     }
 
     private void setSystemUiVisibility(boolean isDark) {
@@ -145,8 +145,6 @@ public class ActMain extends BaseActYmPermissionCheck {
     LinearLayout tab_container;
     @BindView(R.id.main_layout)
     RelativeLayout main_layout;
-    @BindView(R.id.person_center_red_dot)
-    View person_center_red_dot;
 
     @Override
     protected int getLayoutId() {
@@ -163,7 +161,6 @@ public class ActMain extends BaseActYmPermissionCheck {
 //        }
         if (!TestUtil.isDev())
             CommonUtil.getInstance().initMiDong(this, DataUtil.getInstance().getUserId());
-        ViewUtil.setVisibility(person_center_red_dot, SpUtils.isVoucherFirst());
     }
 
     @Override
@@ -213,11 +210,9 @@ public class ActMain extends BaseActYmPermissionCheck {
             View view = tab_container.getChildAt(index);
             if (view instanceof TextView) {
                 ((TextView) view).setText(mainTab.getStringId());
-                if (mainTab.getDrawableId() == R.drawable.drawable_selector_askgetmoney) {
-//                    166x137 204x170
-                    new DrawablesHelper((TextView) view).direction(DrawablesHelper.TOP).drawable(mainTab.getDrawableId(), 150 / 170.0f).commit();
-//                    testView = view;
-                }
+//                if (mainTab.getDrawableId() == R.drawable.drawable_selector_askgetmoney) {
+//                    new DrawablesHelper((TextView) view).direction(DrawablesHelper.TOP).drawable(mainTab.getDrawableId(), 150 / 170.0f).commit();
+//                }
             }
             tabs.add(view);
             final int position = index;
@@ -234,27 +229,6 @@ public class ActMain extends BaseActYmPermissionCheck {
         transaction.commitAllowingStateLoss();
         tabs.get(lastPosition).setActivated(true);
     }
-//    private View testView;
-//
-//    @Override
-//    public boolean onKeyDown(int keyCode, KeyEvent event) {
-//        switch (event.getKeyCode()){
-//            case KeyEvent.KEYCODE_8:
-//                addTestViewH(1);
-//                break;
-//            case KeyEvent.KEYCODE_2:
-//                addTestViewH(-1);
-//                break;
-//        }
-//        return super.onKeyDown(keyCode, event);
-//    }
-//
-//    private int defaultTestViewH = 65;
-//    private void addTestViewH(int add) {
-//        defaultTestViewH += add;
-//        LayoutParamsUtil.resetLayoutParams(testView, new Lp(G.DENSITY).setHeight(defaultTestViewH).setWidth((int) (defaultTestViewH * 204 / 170.0f)));
-//        LogUtil.println("addTestViewH add =", defaultTestViewH);
-//    }
 
     private void switchFragment(int position) {
         View lastTab = ListUtil.getItem(tabs, lastPosition);
@@ -294,10 +268,10 @@ public class ActMain extends BaseActYmPermissionCheck {
     private void checkWhichPage(int position) {
         if (position == MainTab.FgtSmallSheep.ordinal()) {//赚钱
             UMConfigUtils.Event.TAB_SHEEP.onEvent();
-        } else if (position == MainTab.Fgt_Find.ordinal()) {//发现
-            UMConfigUtils.Event.TAB_FIND.onEvent();
-        } else if (position == MainTab.FgtPersonnalCenter.ordinal()) {//个人中心
-            UMConfigUtils.Event.TAB_USER.onEvent();
+        } else if (position == MainTab.FgtGameCenter.ordinal()) {//发现
+            UMConfigUtils.Event.TAB_GAME.onEvent();
+//        } else if (position == MainTab.FgtPersonnalCenter.ordinal()) {//个人中心
+//            UMConfigUtils.Event.TAB_USER.onEvent();
         }
     }
 
@@ -518,27 +492,19 @@ public class ActMain extends BaseActYmPermissionCheck {
 
     }
 
-
-    public static final String KEY_HAS_APPOINT_TASK = "hasAppointTask";
-
     @Subscribe
     public void onEventMainThread(ShowRedDot showRedDot) {
         switch (showRedDot.getWhere()) {
             case ShowRedDot.WHERE_PERSONAL_CENTER://个人中心是否显示红点
-                DataUtil.putAsBoolean(KEY_HAS_APPOINT_TASK, showRedDot.isShow());
-                ViewUtil.setVisibility(person_center_red_dot, showRedDot.isShow() || SpUtils.isVoucherFirst());
-                Fragment fragment = getSupportFragmentManager().findFragmentByTag("fragment_" + MainTab.FgtPersonnalCenter.ordinal());
-                if (fragment instanceof FgtPersonalCenter)
-                    ((FgtPersonalCenter) fragment).setPcMmRedDotVisible(showRedDot.isShow());
-                else if (TestUtil.isTest())
-                    G.showToast("测试:程序出错,设置个人中心我的资产小红点失败");
+//                DataUtil.putAsBoolean(KEY_HAS_APPOINT_TASK, showRedDot.isShow());
+//                ViewUtil.setVisibility(person_center_red_dot, showRedDot.isShow() || SpUtils.isVoucherFirst());
+//                Fragment fragment = getSupportFragmentManager().findFragmentByTag("fragment_" + MainTab.FgtPersonnalCenter.ordinal());
+//                if (fragment instanceof FgtPersonalCenter)
+//                    ((FgtPersonalCenter) fragment).setPcMmRedDotVisible(showRedDot.isShow());
+//                else if (TestUtil.isTest())
+//                    G.showToast("测试:程序出错,设置个人中心我的资产小红点失败");
                 break;
         }
     }
 
-    @Subscribe
-    public void whenPersonVoucherClick(FgtPersonalCenter.PersonVoucherClickEvent ev) {
-        ViewUtil.setVisibility(person_center_red_dot, DataUtil.getAsBoolean(KEY_HAS_APPOINT_TASK, false));
-    }
-
 }

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActMyMoney.java

@@ -25,6 +25,7 @@ import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserAssets;
 import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.module.home.fragment.FgtHome;
 import com.sheep.gamegroup.module.personal.fragment.FgtRechargeBalanceLog;
 import com.sheep.gamegroup.module.personal.fragment.FgtRechargeLog;
 import com.sheep.gamegroup.module.personal.fragment.FgtWithdraw;
@@ -112,7 +113,7 @@ public class ActMyMoney extends BaseActivity {
         TitleBarUtils.getInstance()
                 .setTitle(this, "我的资产")
                 .setTitleFinish(this);
-        ViewUtil.setVisibility(mm_at_red_dot_v, DataUtil.getAsBoolean(ActMain.KEY_HAS_APPOINT_TASK, false));
+        ViewUtil.setVisibility(mm_at_red_dot_v, DataUtil.getAsBoolean(FgtHome.KEY_HAS_APPOINT_TASK, false));
         //顶部背景添加弧度
         GlideImageLoader.setImage(act_my_money_bg_iv, ViewUtil.getNetImgByName("home_blue_bg_hb"), R.mipmap.home_blue_bg);
         mAdapter = new TitleFragmentListAdapter(getSupportFragmentManager());

+ 0 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActPay.java

@@ -222,7 +222,6 @@ public class ActPay extends BaseActivity {
                         } else {
                             temp.append("respCode=").append(resp.respCode).append("\n").append("respMsg=").append(resp.respMsg);
                         }
-//                        Toast.makeText(RechargeAct.this, "onIpaynowTransResult:" + temp.toString(), Toast.LENGTH_LONG).show();
                         Log.e("PayRet----", temp.toString());
                         if (resp.respCode.equals("00")) {
                             status = STATUS_PAY_ORDER_SUCCESS;

+ 60 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/ActTest.java

@@ -0,0 +1,60 @@
+package com.sheep.gamegroup.view.activity;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.design.widget.AppBarLayout;
+import android.support.v7.widget.AppCompatRatingBar;
+import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.ProgressBar;
+import android.widget.RatingBar;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSONObject;
+import com.kfzs.duanduan.utils.StatusBarUtils;
+import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+/**
+ * Created by realicing on 2018/5/10.
+ * realicing@sina.com
+ */
+public class ActTest extends BaseActivity {
+
+    @BindView(R.id.url_tv)
+    EditText urlBox;
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.act_test;
+    }
+
+    @Override
+    public void initView() {
+        TitleBarUtils.getInstance()
+                .setTitle(this, "测试")
+                .setTitleFinish(this);
+    }
+
+    @OnClick(R.id.open_bt)
+    public void openWeb() {
+        Jump2View.getInstance().goH5Game(this, urlBox.getText().toString());
+    }
+
+    @Override
+    public void initListener() {
+
+    }
+
+}

+ 6 - 61
app/src/main/java/com/sheep/gamegroup/view/activity/ActWebX5.java

@@ -1,75 +1,15 @@
 package com.sheep.gamegroup.view.activity;
 
-import android.annotation.SuppressLint;
-import android.app.Activity;
-import android.content.DialogInterface;
 import android.content.Intent;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.os.Build;
-import android.os.Bundle;
-import android.os.Environment;
-import android.provider.MediaStore;
-import android.support.annotation.Nullable;
-import android.support.annotation.RequiresApi;
 import android.support.v4.app.Fragment;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
-import android.text.TextUtils;
-import android.view.View;
-import android.view.animation.Animation;
-import android.view.animation.AnimationUtils;
-import android.widget.ImageView;
-import android.widget.ProgressBar;
 
 import com.sheep.gamegroup.absBase.BaseContainerActivity;
 import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.module.webview.fragment.FgtWeb;
 import com.sheep.gamegroup.module.webview.fragment.FgtWebX5;
-import com.sheep.gamegroup.module.webview.util.WebResourceRequestAdapter;
-import com.sheep.gamegroup.module.webview.util.WebResourceResponseAdapter;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.Constant;
-import com.sheep.gamegroup.util.DataUtil;
-import com.sheep.gamegroup.util.DeviceUtil;
-import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.LogUtil;
-import com.sheep.gamegroup.util.NetUtil;
-import com.sheep.gamegroup.util.StringUtils;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.util.TestUtil;
-import com.sheep.gamegroup.util.ViewUtil;
-import com.sheep.gamegroup.util.js.BaseActWebX5;
-import com.sheep.gamegroup.util.js.KFZSJs;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
-import com.sheep.jiuyan.samllsheep.Config;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
-import com.sheep.jiuyan.samllsheep.utils.G;
-import com.sheep.jiuyan.samllsheep.utils.SpUtils;
-import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.snail.antifake.jni.EmulatorDetectUtil;
-import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
-import com.tencent.smtt.export.external.interfaces.WebResourceResponse;
-import com.tencent.smtt.sdk.ValueCallback;
-import com.tencent.smtt.sdk.WebChromeClient;
-import com.tencent.smtt.sdk.WebSettings;
-import com.tencent.smtt.sdk.WebView;
-import com.tencent.smtt.sdk.WebViewClient;
-import com.yalantis.ucrop.util.FileUtils;
-import com.zhy.http.okhttp.OkHttpUtils;
-import com.zhy.http.okhttp.callback.StringCallback;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import butterknife.BindView;
-import okhttp3.Call;
-import ren.yale.android.cachewebviewlib.WebViewCacheInterceptorInst;
-
+import com.umeng.socialize.UMShareAPI;
 
 /**
  * web页面--含有所有js及url后添加authorization
@@ -118,6 +58,11 @@ public class ActWebX5 extends BaseContainerActivity {
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         fragment.onActivityResult(requestCode, resultCode, data);
+        try {
+            UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
 }

+ 2 - 2
app/src/main/java/com/sheep/gamegroup/view/activity/MiddleAct.java

@@ -172,8 +172,8 @@ public class MiddleAct extends Activity {
                 Jump2View.getInstance().goSignCardAct(activity, null);
                 break;
             case GO_FIND_CENTER://跳转发现中心
-                ActionUtil.getInstance().addNextAction(ActMain.class.getSimpleName(), MainTab.Fgt_Find);
-                Jump2View.getInstance().newTaskTopStartAct(activity, SplashAct.class, bundle);
+//                ActionUtil.getInstance().addNextAction(ActMain.class.getSimpleName(), MainTab.Fgt_Find);
+//                Jump2View.getInstance().gofind(activity, SplashAct.class, bundle);
                 break;
             case IDConstant.JUMP_GMAE://游戏详情
                 Jump2View.getInstance().goPlayGameDetail(msg.getId());

+ 7 - 25
app/src/main/java/com/sheep/gamegroup/view/activity/MiddleSchemeAct.java

@@ -81,7 +81,10 @@ public class MiddleSchemeAct extends Activity {
             return;
         }
         //尝试解密数据
-        String json = BaseMessageConverter.decrypt(uri.getQueryParameter("data"));
+        String json = uri.getQueryParameter("data");
+        if (!type.equals("h5game")) {
+            json = BaseMessageConverter.decrypt(json);
+        }
         switch (type) {
             default://尝试获取game_id
                 tryGoSplashAct(context, uri);
@@ -186,31 +189,10 @@ public class MiddleSchemeAct extends Activity {
                 int min = NumberFormatUtils.parseInteger(uri.getQueryParameter("min"), 5);
                 SysAppUtil.startAlermApp(context, context.getString(R.string.smallsheep_checkin_task), hour, min);
                 break;
+            case "h5game":
+                Jump2View.getInstance().goH5Game(SheepApp.getInstance(), json);
+                break;
         }
-//                    LogUtil.println("ActMain", "checkScheme","url: " + url);
-//                    // scheme部分
-//                    String scheme = uri.getScheme();
-//                    LogUtil.println("ActMain", "checkScheme","scheme: " + scheme);
-//                    // host部分
-//                    String host = uri.getHost();
-//                    LogUtil.println("ActMain", "checkScheme","host: " + host);
-//                    //port部分
-//                    int port = uri.getPort();
-//                    LogUtil.println("ActMain", "checkScheme","port: " + port);
-//                    // 访问路劲
-//                    String path = uri.getPath();
-//                    LogUtil.println("ActMain", "checkScheme","path: " + path);
-//                    List<String> pathSegments = uri.getPathSegments();
-//                    LogUtil.println("ActMain", "checkScheme","pathSegments:", JSON.toJSONString(pathSegments));
-//                    // Query部分
-//                    String query = uri.getQuery();
-//                    LogUtil.println("ActMain", "checkScheme","query: " + query);
-//                    //获取指定参数值
-//                    String code = uri.getQueryParameter("code");
-//                    LogUtil.println("ActMain", "checkScheme","code: " + code);
-//                    if(TextUtils.equals(code, "0")){
-//                        finish();
-//                    }
     }
 
     public static void runApp(Context context, String packageName, String className) {

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/NewYearActMyMoney.java

@@ -24,6 +24,7 @@ import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserAssets;
 import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.module.home.fragment.FgtHome;
 import com.sheep.gamegroup.module.personal.fragment.FgtRechargeBalanceLog;
 import com.sheep.gamegroup.module.personal.fragment.FgtRechargeLog;
 import com.sheep.gamegroup.module.personal.fragment.FgtWithdraw;
@@ -103,7 +104,7 @@ public class NewYearActMyMoney extends BaseActivity {
         TitleBarUtils.getInstance()
                 .setTitle(this, "我的资产")
                 .setTitleFinish(this);
-        ViewUtil.setVisibility(mm_at_red_dot_v, DataUtil.getAsBoolean(ActMain.KEY_HAS_APPOINT_TASK, false));
+        ViewUtil.setVisibility(mm_at_red_dot_v, DataUtil.getAsBoolean(FgtHome.KEY_HAS_APPOINT_TASK, false));
         mAdapter = new TitleFragmentListAdapter(getSupportFragmentManager());
         mAdapter.add(new FgtRechargeBalanceLog(), tabNames[0]);
         mAdapter.add(new FgtWithdraw(), tabNames[1]);

+ 9 - 4
app/src/main/java/com/sheep/gamegroup/view/activity/PersonalCenterAct.java

@@ -4,6 +4,7 @@ import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentTransaction;
 
+import com.kfzs.duanduan.utils.StatusBarUtils;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.view.fragment.FgtPersonalCenter;
 import com.sheep.jiuyan.samllsheep.R;
@@ -15,10 +16,15 @@ import com.sheep.jiuyan.samllsheep.R;
 
 public class PersonalCenterAct extends BaseActivity {
 
+    @Override
+    protected void onCreate(Bundle bundle){
+        StatusBarUtils.setTranslucent(this);
+        super.onCreate(bundle);
+    }
 
     @Override
     protected int getLayoutId() {
-        return R.layout.common_container;
+        return R.layout.main_frame_layout;
     }
 
     @Override
@@ -31,13 +37,12 @@ public class PersonalCenterAct extends BaseActivity {
             fragment = new FgtPersonalCenter();
             fragment.setArguments(bundle);
             transaction.add(R.id.frame_container, fragment, "tag");
-            transaction.commitAllowingStateLoss();
+            transaction.show(fragment);
         } else {
             fragment.setArguments(bundle);
             transaction.replace(R.id.frame_container, fragment);
-            transaction.commitAllowingStateLoss();
         }
-
+        transaction.commitAllowingStateLoss();
     }
 
 }

+ 23 - 22
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPersonalCenter.java

@@ -33,6 +33,7 @@ import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.share.ShareLinkConfig;
+import com.sheep.gamegroup.view.activity.ActMain;
 import com.sheep.gamegroup.view.activity.PersonalCenterAct;
 import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.R;
@@ -90,8 +91,6 @@ public class FgtPersonalCenter extends BaseFragment {
     ImageView ivRedpackage;
     @BindView(R.id.ibtn_baseactivity_right)
     View ibtn_baseactivity_right;
-    @BindView(R.id.txt_baseactivity_title)
-    View txt_baseactivity_title;
     @BindView(R.id.img_baseactivity_title)
     View img_baseactivity_title;
     @BindView(R.id.audit_activity)
@@ -146,6 +145,10 @@ public class FgtPersonalCenter extends BaseFragment {
     @Override
     public void onViewCreated() {
         activity = getActivity();
+        if (activity instanceof PersonalCenterAct) {
+            initViewOnVisibleToUser();
+            initDataOnVisibleToUser();
+        }
     }
 
     @Override
@@ -158,7 +161,6 @@ public class FgtPersonalCenter extends BaseFragment {
         });
 
         if (activity instanceof PersonalCenterAct) {
-            txt_baseactivity_title.setVisibility(View.VISIBLE);
             img_baseactivity_title.setVisibility(View.VISIBLE);
             img_baseactivity_title.setOnClickListener(new View.OnClickListener() {
                 @Override
@@ -168,7 +170,6 @@ public class FgtPersonalCenter extends BaseFragment {
             });
         } else {
             img_baseactivity_title.setVisibility(View.INVISIBLE);
-            txt_baseactivity_title.setVisibility(View.INVISIBLE);
         }
         ViewUtil.setText(audit_activity, getString(R.string.audit_activity, ViewUtil.INDENT));
         ViewUtil.setVisibility(audit_activity_oval, false);
@@ -240,23 +241,23 @@ public class FgtPersonalCenter extends BaseFragment {
 
     private void initMyPetState() {
         SheepApp.getInstance().getNetComponent().getApiService().missionGetinfo(5, 3)
-                        .subscribeOn(Schedulers.io())
-                        .observeOn(AndroidSchedulers.mainThread())
-                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                            @Override
-                            public void onNext(BaseMessage baseMessage) {
-                                Mission result = baseMessage.getData(Mission.class);
-                                boolean hasPet = result != null && result.getId() > 0;
-                                ViewUtil.setVisibility(my_pet_layout, hasPet);
-                                ViewUtil.setVisibility(fgt_pc_item_my_pet_v, hasPet);
-                            }
-
-                            @Override
-                            public void onError(BaseMessage baseMessage) {
-                                ViewUtil.setVisibility(my_pet_layout, false);
-                                ViewUtil.setVisibility(fgt_pc_item_my_pet_v, false);
-                            }
-                        });
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        Mission result = baseMessage.getData(Mission.class);
+                        boolean hasPet = result != null && result.getId() > 0;
+                        ViewUtil.setVisibility(my_pet_layout, hasPet);
+                        ViewUtil.setVisibility(fgt_pc_item_my_pet_v, hasPet);
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        ViewUtil.setVisibility(my_pet_layout, false);
+                        ViewUtil.setVisibility(fgt_pc_item_my_pet_v, false);
+                    }
+                });
     }
 
 
@@ -566,7 +567,7 @@ public class FgtPersonalCenter extends BaseFragment {
         }
     }
 
-    public class PersonVoucherClickEvent{
+    public class PersonVoucherClickEvent {
 
     }
 

+ 9 - 107
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtSmallSheep.java

@@ -40,6 +40,7 @@ import android.widget.TextView;
 
 import com.alibaba.fastjson.JSONArray;
 import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
 import com.bumptech.glide.request.RequestOptions;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.scwang.smartrefresh.layout.SmartRefreshLayout;
@@ -176,16 +177,10 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
     TextView test_change_user;
     @BindView(R.id.list_title)
     LinearLayout listTitle;
-    @BindView(R.id.to_search_but_rl)
-    View to_search_but_rl;
-    @BindView(R.id.to_search_but)
-    LinearLayout to_search_but;
     @BindView(R.id.title_car)
     LinearLayout titleCardLayout;
     @BindView(R.id.home_award_container)
     View home_award_container;
-    @BindView(R.id.search_text_view)
-    TextView search_text_view;
     /* 记录滑动坐标的数组 */
     int[] locate = new int[2];
 
@@ -215,7 +210,7 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
     private static final RecyleObj NULL = RecyleObj.make(RecyleType.NONE, null);//空数据
     public static final int WHAT_LOAD_RUN_TASK = 1;//加载正在进行的任务列表
     public static final int WHAT_TRY_SHOW_HB = 7;//尝试显示红包
-    public static final int WHAT_REFRESH_MSG_COUNT = 8;//尝试显示红包
+
 
     public boolean needRefreshMsgCount = false;
 
@@ -243,9 +238,6 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
                 case WHAT_TRY_SHOW_HB:
                     isShowRedPackages(activity);
                     break;
-                case WHAT_REFRESH_MSG_COUNT:
-                    getUnReadMessageCounts();
-                    break;
             }
 
         }
@@ -317,21 +309,6 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
         ivClose.setOnClickListener(view12 -> popupWindow.dismiss());
     }
 
-    @OnClick(R.id.to_search_but)
-    public void toSearchActivity() {
-        Jump2View.getInstance().goActSearch(getActivity());
-    }
-
-    @OnClick(R.id.home_search_sbd_iv)
-    public void toActWebX5Sbd() {
-        Jump2View.getInstance().goWeb(activity, new WebParams(Config.getUrlByPath(Config.PATH_SBD_HOME), Config.SBD_NAME));
-    }
-
-    @OnClick(R.id.home_search_msg_iv)
-    public void toActMsg() {
-        startActivity(new Intent(activity, ActMsg.class));
-    }
-
     /**
      * 兑换红包
      *
@@ -632,7 +609,7 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
 //        bannerLayoutParams.height = G.WIDTH * 25 / 72;
 //        banner.setLayoutParams(bannerLayoutParams);
         LayoutParamsUtil.resetLayoutParams(banner, new Lp().setHeight(bannerHeight));
-
+        banner.setPadding(G.getRealPix(8), G.getRealPix(8), G.getRealPix(8), G.getRealPix(8));
         /**
          * tablayout
          */
@@ -707,8 +684,6 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
                 });
             }
         });
-        //上面的搜索
-        ViewUtil.setVisibility(home_search_msg_tv, false);
     }
 
     private int curPosition = 0;
@@ -896,11 +871,11 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
 
     //fullHomeList有数据时,要让fullHomeList上下遮盖相邻组件
     private void checkFullHomeList() {
-        if (/*SkinUtil.curPlugin == Plugin.skin_new_year && */!fullHomeList.isEmpty()) {
+        if (!fullHomeList.isEmpty()) {
             LayoutParamsUtil.resetLayoutParams(full_home_list_rv, new Lp(G.DENSITY).setTopMargin(-3).setBottomMargin(0));
             LayoutParamsUtil.resetLayoutParams(home_notice_ll, new Lp().setTopMargin(0));
         } else {
-            LayoutParamsUtil.resetLayoutParams(full_home_list_rv, new Lp().setTopMargin(0).setBottomMargin(0));
+            LayoutParamsUtil.resetLayoutParams(full_home_list_rv, new Lp().setTopMargin(G.getRealPix(6)).setBottomMargin(0));
             LayoutParamsUtil.resetLayoutParams(home_notice_ll, new Lp(G.DENSITY).setTopMargin(12));
         }
     }
@@ -920,8 +895,6 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
                 notifyDataSetChanged();
             }
         });
-        getUnReadMessageCounts();
-        getSearchHotKeyword();
         if (upview1 != null) {
             //停止滚动
             upview1.stopFlipping();
@@ -971,32 +944,6 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
         isFirst = false;
     }
 
-    private void getSearchHotKeyword() {
-        SheepApp.getInstance().getNetComponent().getApiService().keywords()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        List<Keyword> hotKeywords = baseMessage.getDatas(Keyword.class);
-                        Iterator<Keyword> it = hotKeywords.iterator();
-                        while (it.hasNext()) {
-                            Keyword keyword = it.next();
-                            if (keyword.getPosition() == 2) {
-                                search_text_view.setText(keyword.getKeyword());
-                                break;
-                            }
-                        }
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-
-                    }
-
-                });
-    }
-
     private boolean isFirst = true;
 
     /**
@@ -1262,13 +1209,6 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
         CommonUtil.getInstance().callActionWithUserInfo(item -> userEntity = item);
         if (onResumeCount > 0)
             refreshTaskList();
-        if (!hasShowSbd && activity instanceof ActMain && ((ActMain) activity).getLastPosition() == MainTab.FgtSmallSheep.ordinal()) {
-            hasShowSbd = true;
-            //延时显示随便打弹出框提示
-            PopupWindowUtil.delayShowLayout(activity, new PopupWindowUtil.PopupWindowParams(R.layout.pop_show_sbd_tip).setAnchor(to_search_but_rl)
-                    .setGravity(Gravity.BOTTOM).setXoff(G.getRealPix(16))
-                    .setDelay(100L).setShowTime(5000L).setOutsideTouchable(true).setFocusable(false));
-        }
         onResumeCount++;
     }
 
@@ -1326,9 +1266,6 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
             case FGT_SHEEP_SHOW_NEW_USER_HONG_BAO:
                 mHandler.sendEmptyMessage(WHAT_TRY_SHOW_HB);
                 break;
-            case FGT_SHEEP_HOME_MESSAGE_COUNT:
-                mHandler.sendEmptyMessage(WHAT_REFRESH_MSG_COUNT);
-                break;
         }
     }
 
@@ -1365,10 +1302,10 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
             @Override
             public void displayImage(Context context, Object o, ImageView imageView) {
                 try {
-                    if (o instanceof SlideshowEty && activity != null && !activity.isDestroyed())
-                        Glide.with(context).load(((SlideshowEty) o).getUrl()).apply(new RequestOptions().centerCrop()).into(imageView);
-//                        Glide.with(context).load(((SlideshowEty) o).getUrl()).apply(new RequestOptions().centerCrop().transform(new RoundedCorners(G.getRealPix(10)))).into(imageView);
-//                        Glide.with(context).load(((SlideshowEty) o).getUrl()).apply(new RequestOptions().transform(new RoundedCornersTransformation(G.getRealPix(10), 0))).into(imageView);
+                    if (o instanceof SlideshowEty && activity != null && !activity.isDestroyed()) {
+//                        GlideImageLoader.roundedCornersImage(imageView, ((SlideshowEty) o).getUrl(), G.getRealPix(10));
+                        Glide.with(context).load(((SlideshowEty) o).getUrl()).apply(new RequestOptions().centerCrop().transform(new RoundedCorners(G.getRealPix(8)))).into(imageView);
+                    }
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -1644,39 +1581,4 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
         }
     }
 
-    @BindView(R.id.home_search_sbd_tv)
-    TextView home_search_sbd_tv;
-    @BindView(R.id.home_search_msg_tv)
-    TextView home_search_msg_tv;
-
-    /**
-     * 获取是否有未读消息并更新图标
-     */
-    private void getUnReadMessageCounts() {
-        SheepApp.getInstance()
-                .getNetComponent()
-                .getApiService()
-                .getMessageUnReadNum(DataUtil.getInstance().getUserId())
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        MessageUnReadEntity entity = baseMessage.getData(MessageUnReadEntity.class);
-                        if (entity != null && entity.getNum() > 0) {
-                            ViewUtil.setVisibility(home_search_msg_tv, true);
-                            ViewUtil.setText(home_search_msg_tv, entity.getNum());
-                            DialogNotificationOfArrival.checkNotificationOfArrivalList(activity);
-                        } else {
-                            ViewUtil.setVisibility(home_search_msg_tv, false);
-                        }
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                    }
-                });
-
-    }
-
 }

+ 5 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/Config.java

@@ -83,6 +83,7 @@ public class Config {
     public static final String PATH_SBD_HOME = STATION_SUI_BIAN_DA + "/";
     //福利
     public static final String PATH_WELFARE_HOME = STATION_WELFARE + "/home";
+    public static final String PATH_GAME_HOME = STATION_WELFARE + "/game-center";
     public static final String PATH_WELFARE_DETAIL = STATION_WELFARE + "/detail";
     //游戏商城
     public static final String PATH_GAME_SHOP_HOME = STATION_GAME_SHOP + "/gameMallHome";
@@ -93,6 +94,7 @@ public class Config {
     //邀请赚钱主页
     public static final String PATH_SMALL_SHEEP_INVITATION_HOME = STATION_SMALL_SHEEP_INVITATION + "/home-page";
     public static final String NAME_WELFARE_MONEY_REWARD_LIST = "赏金任务";
+    public static final String STATION_SMALL_SHEEP_H5GAME = "/small_sheep_h5game_plugin";
     //small_station地址 key
     public static final String KEY_SMALL_STATION_URL = "small_station_url";
     //small_station地址
@@ -125,6 +127,9 @@ public class Config {
     //微信支付app_id
     public static final String WX_PAY_APP_ID = "wx427e8e74e8dd27a6";
 
+    public static final String WX_AUTH_APP_ID = "wx2be7f59bb7bb963f";
+    public static final String QQ_APP_ID = "101461115";
+
 
     //缓存数据的key
     public static final String KEY_ENABLE_CHECK_COPY_TEXT = "enable_check_copy_text";//是否开启粘贴板助手的key boolean

+ 5 - 5
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -159,11 +159,11 @@ public class SheepApp extends MultiDexApplication {
             boolean isNotSupport = Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR1;
             ContextHolder.setContext(this);
             connectAddress = ConnectAddress.sheep.getDefaultConnectAddress();
-            if(!isNotSupport) {
+            if (!isNotSupport) {
                 registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
             }
             initNet();
-            if(isNotSupport){
+            if (isNotSupport) {
                 return;
             }
             initUtils();
@@ -255,8 +255,8 @@ public class SheepApp extends MultiDexApplication {
         UMConfigure.setLogEnabled(true);
         UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "5ab0a1da8f4a9d742900035f");
 //        UMShareAPI.get(this);
-        PlatformConfig.setWeixin("wx2be7f59bb7bb963f", "6cf7ca0f6c6ac97c6961d901fee8adb9");
-        PlatformConfig.setQQZone("101461115", "b874bc950bcf066f17fd52cf2bb959e9");
+        PlatformConfig.setWeixin(Config.WX_AUTH_APP_ID, "6cf7ca0f6c6ac97c6961d901fee8adb9");
+        PlatformConfig.setQQZone(Config.QQ_APP_ID, "b874bc950bcf066f17fd52cf2bb959e9");
 
         //极光推送
         JPushInterface.setDebugMode(org.xutils.BuildConfig.DEBUG);
@@ -508,7 +508,7 @@ public class SheepApp extends MultiDexApplication {
                     CommonUtil.getInstance().checkCopyText();
                     //检查url,实现深度链接
                     Object action = ActionUtil.getInstance().getAction("scheme");
-                    if(action instanceof Uri)
+                    if (action instanceof Uri)
                         MiddleSchemeAct.parseAndJumpUri(activity, (Uri) action);
                 }
             }

+ 12 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/base/BaseFragment.java

@@ -1,5 +1,6 @@
 package com.sheep.jiuyan.samllsheep.base;
 
+import android.content.pm.ActivityInfo;
 import android.os.Bundle;
 import android.support.annotation.IdRes;
 import android.support.annotation.Nullable;
@@ -9,6 +10,7 @@ import android.view.View;
 import android.view.ViewGroup;
 
 import com.sheep.gamegroup.absBase.AbsObserver;
+import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.model.api.BackHandleInterface;
 import com.sheep.gamegroup.util.ActionUtil;
 import com.sheep.gamegroup.util.TestUtil;
@@ -213,4 +215,14 @@ public abstract class BaseFragment extends RxFragment {
         super.onStart();
         backHandleInterface.onSelectedFragment(this);
     }
+
+    public void setLandscape() {
+        getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+    }
+
+    public void setFullScreen() {
+        BaseActivity act = (BaseActivity) getActivity();
+        act.hideSystemNavBar();
+        act.hideSystemStatusBar();
+    }
 }

+ 32 - 34
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/G.java

@@ -69,59 +69,55 @@ public class G {
      * @param duration 显示的时长
      */
     public static void showToast(String msg, int duration) {
-        if(TextUtils.isEmpty(msg)){
+        if (TextUtils.isEmpty(msg)) {
+            return;
+        }
+        if (msg.contains("<html>")) {
             return;
         }
         Toast.makeText(SheepApp.getInstance(), msg, duration).show();
-//        if (mToast == null) {
-//            mToast = Toast.makeText(SheepApp.getInstance(), msg, duration);
-//            mToast.setGravity(Gravity.CENTER, 0, getRealPix(200));//居中靠下
-//            if (mToast.getView() instanceof ViewGroup
-//                    && ((ViewGroup) mToast.getView()).getChildAt(0) instanceof TextView) {
-//                ((TextView) ((ViewGroup) mToast.getView()).getChildAt(0)).setSingleLine(false);
-//            }
-//        } else if (msg == null || msg.equals(""))
-//            mToast.cancel();
-//        else {
-//            mToast.setText(msg);
-//        }
-//        mToast.show();
     }
 
-    public static void shortToast(BaseMessage msg){
-        if(TextUtils.isEmpty(msg.getMsg())){
+    public static void shortToast(BaseMessage msg) {
+        if (TextUtils.isEmpty(msg.getMsg())) {
             G.shortToast(SheepApp.getInstance().getString(R.string.unknown_error));
+        } else if(msg.getCode() == 404 || msg.getCode() == 503) {
+            G.shortToast("错误: " + msg.getCode());
         } else {
             G.shortToast(msg.getMsg() + (BuildConfig.DEBUG ? "[" + msg.getCode() + "]" : ""));
         }
     }
 
-    public static void shortToast(String msg){
-        Toast t = Toast.makeText(SheepApp.getInstance(), msg, Toast.LENGTH_SHORT);
-        t.setGravity(Gravity.CENTER, 0, getRealPix(200));//居中靠下
-        t.show();
+    public static void shortToast(String msg) {
+        showToast(msg);
     }
 
     public static void showToast(String msg) {
         showToast(msg, Toast.LENGTH_SHORT);
     }
+
     public static void showToast(int resId) {
         showToast(SheepApp.getInstance().getString(resId), Toast.LENGTH_SHORT);
     }
+
     public static void showToast(BaseMessage baseMessage) {
-        if(TextUtils.isEmpty(baseMessage.getMsg())){
+        if (TextUtils.isEmpty(baseMessage.getMsg())) {
             G.showToast(R.string.unknown_error);
+        } else if(baseMessage.getCode() == 404 || baseMessage.getCode() == 503) {
+            G.shortToast("错误: " + baseMessage.getCode());
         } else {
             G.showToast(baseMessage.getMsg() + (BuildConfig.DEBUG ? "[" + baseMessage.getCode() + "]" : ""));
         }
     }
+
     public static void showToast(Throwable throwable) {
-        if(throwable != null && !TextUtils.isEmpty(throwable.getMessage())){
+        if (throwable != null && !TextUtils.isEmpty(throwable.getMessage())) {
             G.showToast(throwable.getMessage());
         } else {
             G.showToast(R.string.unknown_error);
         }
     }
+
     /**
      * 通过反射,获取包含虚拟键的整体屏幕高度
      *
@@ -144,6 +140,7 @@ public class G {
         }
         return dpi;
     }
+
     /**
      * 获取屏幕尺寸,但是不包括虚拟功能高度
      *
@@ -156,6 +153,7 @@ public class G {
 
     /**
      * 获取是否存在NavigationBar
+     *
      * @param context
      * @return
      */
@@ -181,8 +179,6 @@ public class G {
     }
 
 
-
-
     /**
      * 获取剩余空间
      *
@@ -199,6 +195,7 @@ public class G {
         }
         return sizes / ((1024 * 1024));
     }
+
     public static long getFreeSpaceB() {
         File file = Environment.getDataDirectory();
         StatFs dataFs = new StatFs(file.getPath());
@@ -208,7 +205,7 @@ public class G {
         } else {
             sizes = (long) dataFs.getFreeBlocks() * (long) dataFs.getBlockSize();
         }
-        return sizes ;
+        return sizes;
     }
 
 
@@ -227,7 +224,7 @@ public class G {
      * 判断sd卡是否可用
      * return true 可用  false 不可用
      */
-    public static boolean isSDCardEnable(){
+    public static boolean isSDCardEnable() {
         return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());
     }
 
@@ -236,9 +233,9 @@ public class G {
      *
      * @return SD卡剩余空间
      */
-    public static long getSdkFreeSpace(){
-        try{
-            if(!isSDCardEnable()){
+    public static long getSdkFreeSpace() {
+        try {
+            if (!isSDCardEnable()) {
                 return 0;
             }//获取SDCard根目录
             File path = Environment.getExternalStorageDirectory();
@@ -253,7 +250,7 @@ public class G {
             }
 
             return availableBlocks * blockSize;
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
             return 0;
         }
@@ -263,18 +260,19 @@ public class G {
     /**
      * 判断文件空间大小
      */
-    public static void showInstallToast(Context context, File file){
-        try{
+    public static void showInstallToast(Context context, File file) {
+        try {
             if (0 <= file.length() && (
                     file.length() > getFreeSpaceB() / 2
                             && file.length() > getSdkFreeSpace() / 2
             )) {
                 DialogStorageLow.showDialog(null);
             }
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
         }
     }
+
     /**
      * 获取手机屏幕密度
      */
@@ -326,7 +324,7 @@ public class G {
      */
     public static int getTitleBarHeight(AppCompatActivity mActivity) {
         ActionBar actionBar = mActivity.getSupportActionBar();
-        if(actionBar == null){
+        if (actionBar == null) {
             return 0;
         }
         int titleBarHeight = actionBar.getHeight();

+ 11 - 0
app/src/main/res/color/selector_color_tab_game.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_enabled="false" android:color="@color/main_tab" />
+    <item android:state_activated="true" android:color="#8c22e7" />
+    <item android:state_focused="true" android:color="#8c22e7" />
+    <item android:state_checked="true" android:color="#8c22e7"/>
+    <item android:state_selected="true" android:color="#8c22e7"/>
+    <item android:state_pressed="true" android:color="#8c22e7"/>
+    <item android:color="@color/main_tab"/>
+</selector>

+ 11 - 0
app/src/main/res/color/selector_color_tab_home.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_enabled="false" android:color="@color/main_tab" />
+    <item android:state_activated="true" android:color="#fb8b01" />
+    <item android:state_focused="true" android:color="#fb8b01" />
+    <item android:state_checked="true" android:color="#fb8b01"/>
+    <item android:state_selected="true" android:color="#fb8b01"/>
+    <item android:state_pressed="true" android:color="#fb8b01"/>
+    <item android:color="@color/main_tab"/>
+</selector>

BIN
app/src/main/res/drawable-xxhdpi/homepage_zhuanqian.png


BIN
app/src/main/res/drawable-xxhdpi/homepage_zhuanqian_click.png


BIN
app/src/main/res/drawable-xxhdpi/tab_big_yq.png


BIN
app/src/main/res/drawable-xxhdpi/tab_game.png


BIN
app/src/main/res/drawable-xxhdpi/tab_game.webp


BIN
app/src/main/res/drawable-xxhdpi/tab_game_blue.png


BIN
app/src/main/res/drawable-xxhdpi/tab_game_blue.webp


+ 18 - 53
app/src/main/res/layout/act_bottom_bar.xml

@@ -5,6 +5,12 @@
     android:layout_height="match_parent"
     android:clipChildren="false">
 
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:adjustViewBounds="true"
+        android:src="@mipmap/home_blue_bg" />
+
     <include
         layout="@layout/main_frame_layout"
         android:layout_width="match_parent"
@@ -15,9 +21,10 @@
     <View
         android:id="@+id/tab_line"
         android:layout_width="match_parent"
-        android:layout_height="1px"
+        android:layout_height="2px"
         android:layout_above="@id/tab_container"
         android:background="#e6e6e6" />
+
     <RadioGroup
         android:id="@+id/tab_container"
         android:layout_width="match_parent"
@@ -39,75 +46,33 @@
             android:gravity="center"
             android:paddingTop="@dimen/bottom_tab_pt"
             android:text="@string/tab_viewpager_gamestore"
-            android:textColor="@color/selector_color_main_tab"
+            android:textColor="@color/selector_color_tab_home"
             android:textSize="10sp" />
 
         <RadioButton
             android:id="@+id/tab_2"
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:background="#000000ff"
-            android:button="@null"
-            android:drawableTop="@drawable/drawable_selector_game_center"
-            android:gravity="center"
-            android:paddingTop="@dimen/bottom_tab_pt"
-            android:text="@string/tab_viewpager_classification"
-            android:textColor="@color/selector_color_main_tab"
-            android:textSize="10sp" />
-
-        <RadioButton
-            android:id="@+id/tab_3"
-            android:layout_width="0dip"
-            android:layout_height="65dp"
+            android:layout_width="75dp"
+            android:layout_height="68dp"
             android:layout_gravity="bottom"
-            android:layout_weight="1"
-            android:background="#0000ff00"
+            android:background="@drawable/tab_big_yq"
             android:button="@null"
-            android:drawableTop="@drawable/drawable_selector_askgetmoney"
             android:gravity="center"
-            android:text="@string/mine_hoggerel"
-            android:textColor="@color/selector_color_main_tab"
-            android:textSize="10sp" />
-
-        <RadioButton
-            android:id="@+id/tab_4"
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:background="#00ffff00"
-            android:button="@null"
-            android:drawableTop="@drawable/drawable_selector_find"
-            android:gravity="center"
-            android:paddingTop="@dimen/bottom_tab_pt"
-            android:text="@string/main_tab_find"
-            android:textColor="@color/selector_color_main_tab"
-            android:textSize="10sp" />
+            android:textSize="0sp" />
 
         <RadioButton
-            android:id="@+id/tab_5"
+            android:id="@+id/tab_3"
             android:layout_width="0dp"
             android:layout_height="match_parent"
             android:layout_weight="1"
-            android:background="#00ff0000"
+            android:background="#000000ff"
             android:button="@null"
-            android:drawableTop="@drawable/drawable_selector_personalcenter"
+            android:drawableTop="@drawable/drawable_selector_game_center"
             android:gravity="center"
             android:paddingTop="@dimen/bottom_tab_pt"
-            android:text="@string/personal_center"
-            android:textColor="@color/selector_color_main_tab"
+            android:text="@string/tab_viewpager_classification"
+            android:textColor="@color/selector_color_tab_game"
             android:textSize="10sp" />
 
     </RadioGroup>
-    <View
-        android:id="@+id/person_center_red_dot"
-        android:visibility="gone"
-        android:layout_width="8dp"
-        android:layout_height="8dp"
-        android:layout_marginBottom="@dimen/dp_40"
-        android:layout_marginEnd="16dp"
-        android:layout_alignParentEnd="true"
-        android:layout_alignParentBottom="true"
-        android:background="@drawable/shape_oval_red" />
 
 </RelativeLayout>

+ 6 - 38
app/src/main/res/layout/act_main.xml

@@ -4,6 +4,12 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
+    <ImageView
+        android:src="@mipmap/home_blue_bg"
+        android:adjustViewBounds="true"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+
     <include
         layout="@layout/main_frame_layout"
         android:layout_width="match_parent"
@@ -39,20 +45,7 @@
             android:layout_height="@dimen/tab_height"
             android:layout_weight="2" />
 
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="@dimen/tab_height"
-            android:drawableTop="@drawable/drawable_selector_game_center"
-            android:gravity="center"
-            android:minWidth="@dimen/tab_width"
-            android:text="@string/tab_viewpager_classification"
-            android:textColor="@color/selector_color_main_tab"
-            android:textSize="10sp" />
 
-        <View
-            android:layout_width="0dp"
-            android:layout_height="@dimen/tab_height"
-            android:layout_weight="2" />
 
         <TextView
             android:layout_width="wrap_content"
@@ -64,20 +57,7 @@
             android:textColor="@color/selector_color_main_tab"
             android:textSize="10sp" />
 
-        <View
-            android:layout_width="0dp"
-            android:layout_height="@dimen/tab_height"
-            android:layout_weight="2" />
 
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="@dimen/tab_height"
-            android:drawableTop="@drawable/drawable_selector_find"
-            android:gravity="center"
-            android:minWidth="@dimen/tab_width"
-            android:text="@string/tab_viewpager_borrowplay"
-            android:textColor="@color/selector_color_main_tab"
-            android:textSize="10sp" />
 
         <View
             android:layout_width="0dp"
@@ -101,18 +81,6 @@
     </LinearLayout>
 
     <View
-        android:id="@+id/person_center_red_dot"
-        android:visibility="gone"
-        android:layout_width="8dp"
-        android:layout_height="8dp"
-        android:layout_marginBottom="@dimen/dp_40"
-        android:layout_marginRight="16dp"
-        android:layout_alignParentEnd="true"
-        android:layout_alignParentBottom="true"
-        android:background="@drawable/shape_oval_red" />
-
-
-    <View
         android:id="@+id/tab_line"
         android:layout_width="match_parent"
         android:layout_height="1px"

+ 21 - 0
app/src/main/res/layout/act_test.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center_horizontal"
+    android:orientation="vertical"
+    android:background="@color/white"
+    android:padding="16dp">
+
+    <EditText
+        android:id="@+id/url_tv"
+        android:hint="输入一个url"
+        android:layout_width="match_parent"
+        android:layout_height="100dp" />
+
+    <Button
+        android:id="@+id/open_bt"
+        android:layout_width="100dp"
+        android:layout_height="wrap_content"
+        android:text="打开" />
+</LinearLayout>

+ 0 - 62
app/src/main/res/layout/app_special_left.xml

@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="100dp"
-    android:orientation="horizontal">
-
-
-    <ImageView
-        android:id="@+id/theme_view"
-        android:layout_width="match_parent"
-        android:layout_height="100dp"
-        android:layout_weight="1"
-        android:scaleType="centerCrop" />
-
-    <RelativeLayout
-        android:layout_width="match_parent"
-        android:layout_height="100dp"
-        android:layout_weight="2"
-        android:orientation="horizontal">
-
-        <ImageView
-            android:id="@+id/bg_view"
-            android:layout_width="match_parent"
-            android:layout_height="100dp"
-            android:scaleType="centerCrop" />
-
-        <TextView
-            android:id="@+id/title_view"
-            android:layout_width="match_parent"
-            android:layout_height="60dp"
-            android:gravity="center"
-            android:text="腾讯专区\nGO>>"
-            android:textColor="@color/white"
-            android:textSize="13sp" />
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="50dp"
-            android:layout_alignParentBottom="true"
-            android:gravity="center"
-            android:orientation="horizontal">
-
-            <ImageView
-                android:id="@+id/icon_1"
-                android:layout_width="32dp"
-                android:layout_height="32dp" />
-
-            <ImageView
-                android:id="@+id/icon_2"
-                android:layout_width="32dp"
-                android:layout_height="32dp"
-                android:layout_marginLeft="6dp"
-                android:layout_marginRight="6dp" />
-
-            <ImageView
-                android:id="@+id/icon_3"
-                android:layout_width="32dp"
-                android:layout_height="32dp" />
-        </LinearLayout>
-    </RelativeLayout>
-
-</LinearLayout>

+ 13 - 19
app/src/main/res/layout/app_special_right.xml

@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="100dp"
-    android:orientation="horizontal">
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_marginLeft="8dp"
+    android:layout_width="277dp"
+    android:layout_height="100dp">
+
+    <ImageView
+        android:id="@+id/theme_view"
+        android:layout_width="277dp"
+        android:layout_height="100dp"
+        android:scaleType="centerCrop" />
 
     <RelativeLayout
-        android:layout_width="match_parent"
+        android:layout_alignParentRight="true"
+        android:layout_width="120dp"
         android:layout_height="100dp"
-        android:layout_weight="2"
         android:orientation="horizontal">
 
-        <ImageView
-            android:id="@+id/bg_view"
-            android:layout_width="match_parent"
-            android:layout_height="100dp"
-            android:scaleType="centerCrop" />
-
         <TextView
             android:id="@+id/title_view"
             android:layout_width="match_parent"
@@ -50,11 +50,5 @@
                 android:layout_height="32dp" />
         </LinearLayout>
     </RelativeLayout>
-    <ImageView
-        android:id="@+id/theme_view"
-        android:layout_width="match_parent"
-        android:layout_height="100dp"
-        android:layout_weight="1"
-        android:scaleType="centerCrop" />
 
-</LinearLayout>
+</RelativeLayout>

+ 8 - 2
app/src/main/res/layout/fgt_find.xml

@@ -13,11 +13,17 @@
 
     <android.support.design.widget.TabLayout
         android:id="@+id/indicator"
-        style="@style/style_tab_2"
-        android:layout_marginTop="26dp" />
+        style="@style/style_tab_3" />
+
+    <View
+        android:layout_below="@+id/indicator"
+        android:layout_width="match_parent"
+        android:layout_height="0.5dp"
+        android:background="@color/media_white_DEDEDE"/>
 
     <android.support.v4.view.ViewPager
         android:id="@+id/pager"
+        android:layout_marginTop="0.5dp"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_below="@id/indicator" />

+ 29 - 48
app/src/main/res/layout/fgt_game_center.xml

@@ -1,16 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:background="@color/bg">
-
-    <ImageView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:adjustViewBounds="true"
-        android:scaleType="fitXY"
-        android:src="@drawable/skin_drawable_selector_bg_home_search" />
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
 
     <RelativeLayout
         android:id="@+id/top_bar"
@@ -19,64 +11,53 @@
         android:layout_marginTop="26dp">
 
         <ImageView
-            android:id="@+id/back_btn"
-            android:layout_width="@dimen/content_padding_36"
-            android:layout_height="@dimen/content_padding_36"
-            android:scaleType="centerInside"
-            android:src="@drawable/narrow_back_black"
-            android:visibility="gone" />
-
-        <android.support.design.widget.TabLayout
-            android:id="@+id/indicator"
-            style="@style/style_tab_2"
-            android:layout_marginLeft="@dimen/content_padding_36"
-            android:layout_marginRight="@dimen/content_padding_36"
-            app:tabGravity="fill"
-            app:tabMode="fixed"/>
-
-        <ImageView
             android:id="@+id/download_btn"
             android:layout_width="@dimen/content_padding_36"
             android:layout_height="@dimen/content_padding_36"
-            android:padding="8dp"
             android:layout_alignParentEnd="true"
             android:layout_centerVertical="true"
             android:gravity="center"
-            android:src="@drawable/drawable_selector_ic_home_download" />
+            android:padding="8dp"
+            android:layout_marginRight="16dp"
+            android:src="@drawable/drawable_selector_ic_home_download"
+            android:tint="@color/white" />
+
+        <TextView
+            android:text="玩转游戏"
+            android:textSize="16sp"
+            android:textColor="@color/white"
+            android:layout_centerInParent="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
 
         <ImageView
             android:id="@+id/search_btn"
             android:layout_width="@dimen/content_padding_36"
             android:layout_height="@dimen/content_padding_36"
-            android:padding="8dp"
             android:layout_centerVertical="true"
             android:gravity="center"
-            android:src="@drawable/drawable_selector_ic_home_search" />
+            android:padding="8dp"
+            android:layout_marginLeft="16dp"
+            android:src="@drawable/drawable_selector_ic_home_search"
+            android:tint="@color/white" />
 
-        <Button
-            android:id="@+id/my_walfare_btn"
-            style="?android:attr/borderlessButtonStyle"
-            android:layout_width="wrap_content"
-            android:layout_height="@dimen/content_padding_36"
-            android:layout_alignParentTop="true"
-            android:layout_alignParentEnd="true"
-            android:background="@null"
-            android:gravity="center_vertical|end"
-            android:lines="1"
-            android:paddingStart="17dp"
-            android:paddingEnd="17dp"
-            android:text="我的礼包"
-            android:textColor="@color/tc_home_search_2"
-            android:textSize="12sp"
-            android:visibility="gone" />
     </RelativeLayout>
 
+    <android.support.design.widget.TabLayout
+        android:id="@+id/indicator"
+        style="@style/style_tab_2"
+        android:layout_below="@+id/top_bar"
+        android:layout_marginLeft="@dimen/content_padding_36"
+        android:layout_marginRight="@dimen/content_padding_36"
+        android:layout_marginBottom="4dp"
+        app:tabGravity="fill"
+        app:tabMode="fixed" />
+
     <android.support.v4.view.ViewPager
         android:id="@+id/pager"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_below="@+id/top_bar"
-        android:background="@color/white" />
+        android:layout_below="@+id/indicator" />
 
     <com.kfzs.duanduan.view.DragRelativeLayout
         android:id="@+id/fgt_gc_hb_500_yuan_drl"

+ 211 - 0
app/src/main/res/layout/fgt_home.xml

@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="40dp"
+        android:layout_marginTop="26dp">
+
+        <ImageView
+            android:id="@+id/iv_user_face"
+            android:layout_width="40dp"
+            android:layout_height="40dp"
+            android:layout_marginStart="@dimen/content_padding_16"
+            android:src="@drawable/avatar" />
+
+        <View
+            android:id="@+id/v_red_dot"
+            android:layout_width="8dp"
+            android:layout_height="8dp"
+            android:layout_marginLeft="45dp"
+            android:background="@drawable/shape_oval_red"
+            android:visibility="visible" />
+
+        <TextView
+            android:id="@+id/tv_nickname"
+            android:layout_width="wrap_content"
+            android:layout_height="20dp"
+            android:layout_marginLeft="12dp"
+            android:layout_marginTop="2dp"
+            android:layout_toRightOf="@+id/iv_user_face"
+            android:text="七天的绵羊"
+            android:textColor="@color/white"
+            android:textSize="14sp" />
+
+        <TextView
+            android:id="@+id/tv_coin_flag"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignBottom="@+id/iv_user_face"
+            android:layout_marginLeft="12dp"
+            android:layout_toRightOf="@+id/iv_user_face"
+            android:text="绵羊币:"
+            android:textColor="@color/white"
+            android:textSize="11sp" />
+
+        <TextView
+            android:id="@+id/tv_user_asset"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignBottom="@+id/iv_user_face"
+            android:layout_marginLeft="4dp"
+            android:layout_toRightOf="@+id/tv_coin_flag"
+            android:text="100"
+            android:textColor="@color/white"
+            android:textSize="11sp"
+            android:textStyle="bold" />
+
+        <ImageView
+            android:id="@+id/iv_flag_vip"
+            android:layout_width="28dp"
+            android:layout_height="13dp"
+            android:layout_marginLeft="@dimen/content_padding_4"
+            android:layout_marginTop="4dp"
+            android:layout_toRightOf="@+id/tv_nickname"
+            android:src="@mipmap/level_vip" />
+
+        <ImageView
+            android:id="@+id/iv_msg"
+            android:layout_width="40dp"
+            android:layout_height="40dp"
+            android:layout_alignParentEnd="true"
+            android:layout_marginEnd="8dp"
+            android:padding="10dp"
+            android:src="@mipmap/ic_msg"
+            android:tint="@color/white" />
+
+        <TextView
+            android:id="@+id/tv_msg_count"
+            android:layout_width="wrap_content"
+            android:layout_height="14dp"
+            android:layout_alignParentEnd="true"
+            android:layout_marginTop="8dp"
+            android:layout_marginEnd="8dp"
+            android:background="@drawable/shape_f81b5f_rec_7"
+            android:gravity="center"
+            android:minWidth="14dp"
+            android:paddingStart="4dp"
+            android:paddingEnd="8dp"
+            android:text="0"
+            android:textColor="@color/white"
+            android:textSize="9sp" />
+
+        <ImageView
+            android:id="@+id/iv_download"
+            android:layout_width="40dp"
+            android:layout_height="40dp"
+            android:layout_alignParentEnd="true"
+            android:layout_marginEnd="40dp"
+            android:padding="10dp"
+            android:src="@drawable/drawable_selector_ic_home_download"
+            android:tint="@color/white" />
+
+        <ImageView
+            android:id="@+id/iv_search"
+            android:layout_width="40dp"
+            android:layout_height="40dp"
+            android:layout_alignParentEnd="true"
+            android:layout_marginEnd="74dp"
+            android:padding="10dp"
+            android:src="@drawable/drawable_selector_ic_home_search"
+            android:tint="@color/white" />
+
+    </RelativeLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="40dp"
+        android:orientation="horizontal">
+
+        <RelativeLayout
+            android:id="@+id/recommend_btn"
+            android:layout_weight="1"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+            <TextView
+                android:id="@+id/tv_recommend"
+                android:text="推荐"
+                android:textSize="15sp"
+                android:textColor="@color/white"
+                android:layout_centerInParent="true"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content" />
+            <View
+                android:id="@+id/line_recommend"
+                android:layout_width="40dp"
+                android:layout_height="2dp"
+                android:layout_centerHorizontal="true"
+                android:layout_below="@+id/tv_recommend"
+                android:layout_marginTop="4dp"
+                android:background="@color/white"/>
+        </RelativeLayout>
+        <RelativeLayout
+            android:id="@+id/news_btn"
+            android:layout_weight="1"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+            <TextView
+                android:id="@+id/tv_news"
+                android:text="资讯"
+                android:textSize="15sp"
+                android:alpha="0.8"
+                android:textColor="@color/white"
+                android:layout_centerInParent="true"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content" />
+            <View
+                android:id="@+id/line_news"
+                android:layout_width="40dp"
+                android:layout_height="2dp"
+                android:layout_centerHorizontal="true"
+                android:layout_below="@+id/tv_news"
+                android:layout_marginTop="4dp"
+                android:visibility="gone"
+                android:background="@color/white"/>
+            <ImageView
+                android:id="@+id/tip_news"
+                android:layout_alignRight="@+id/tv_news"
+                android:layout_marginRight="-20dp"
+                android:layout_marginTop="3dp"
+                android:src="@mipmap/tip_news"
+                android:adjustViewBounds="true"
+                android:layout_width="23dp"
+                android:layout_height="wrap_content" />
+        </RelativeLayout>
+        <RelativeLayout
+            android:id="@+id/mall_btn"
+            android:layout_weight="1"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+            <TextView
+                android:id="@+id/tv_mall"
+                android:text="购物商城"
+                android:textSize="15sp"
+                android:alpha="0.8"
+                android:textColor="@color/white"
+                android:layout_centerInParent="true"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content" />
+            <ImageView
+                android:id="@+id/tip_discount"
+                android:layout_alignRight="@+id/tv_mall"
+                android:layout_marginLeft="20dp"
+                android:layout_marginTop="3dp"
+                android:src="@mipmap/tip_discount"
+                android:adjustViewBounds="true"
+                android:layout_width="30dp"
+                android:layout_height="wrap_content" />
+        </RelativeLayout>
+    </LinearLayout>
+
+    <FrameLayout
+        android:id="@+id/fragment_container"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+    </FrameLayout>
+</LinearLayout>

+ 18 - 13
app/src/main/res/layout/fgt_play_game.xml

@@ -19,7 +19,8 @@
             android:focusableInTouchMode="true"
             android:orientation="vertical">
 
-            <include layout="@layout/homepage_item_banner" />
+            <include
+                layout="@layout/homepage_item_banner" />
 
             <include
                 android:id="@+id/play_game_focus"
@@ -29,12 +30,9 @@
                 android:id="@+id/play_game_news"
                 layout="@layout/item_game_news" />
 
-            <LinearLayout
-                android:id="@+id/special_container"
-                android:background="@color/white"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="vertical"></LinearLayout>
+            <include
+                android:id="@+id/play_game_special"
+                layout="@layout/play_game_special"></include>
 
             <android.support.v7.widget.RecyclerView
                 android:id="@+id/play_game_center_type_list"
@@ -43,6 +41,7 @@
                 android:layout_marginStart="2dp"
                 android:layout_marginEnd="2dp"
                 android:layout_marginBottom="10dp"
+                android:background="@color/bg"
                 android:visibility="gone" />
 
             <include
@@ -55,17 +54,20 @@
             <android.support.v7.widget.RecyclerView
                 android:id="@+id/play_game_act"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
+                android:layout_height="wrap_content"
+                android:background="@color/bg" />
 
             <android.support.v7.widget.RecyclerView
                 android:id="@+id/play_game_list_3_rv"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
+                android:layout_height="wrap_content"
+                android:background="@color/bg" />
 
             <android.support.v7.widget.RecyclerView
                 android:id="@+id/play_game_list_2_rv"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
+                android:layout_height="wrap_content"
+                android:background="@color/bg" />
 
             <include
                 android:id="@+id/play_game_task"
@@ -74,16 +76,19 @@
             <android.support.v7.widget.RecyclerView
                 android:id="@+id/play_game_list_2_rv2"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
+                android:layout_height="wrap_content"
+                android:background="@color/bg" />
 
             <include
                 android:id="@+id/play_game_promote_goods"
-                layout="@layout/item_game_promote_goods" />
+                layout="@layout/item_game_promote_goods"
+                android:background="@color/bg" />
 
             <android.support.v7.widget.RecyclerView
                 android:id="@+id/play_game_list_x_rv"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
+                android:layout_height="wrap_content"
+                android:background="@color/bg" />
 
 
         </LinearLayout>

+ 17 - 9
app/src/main/res/layout/homepage_act_layout.xml

@@ -4,18 +4,12 @@
     android:id="@+id/home_root_rl"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@color/bg_home_color"
     android:clipChildren="true">
 
-    <include
-        android:id="@+id/to_search_but_rl"
-        layout="@layout/include_home_search" />
-
     <com.scwang.smartrefresh.layout.SmartRefreshLayout
         android:id="@+id/refresh"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/to_search_but_rl">
+        android:layout_height="wrap_content">
 
         <android.support.v4.widget.NestedScrollView
             android:id="@+id/scrollView"
@@ -69,6 +63,12 @@
                         android:visibility="gone" />
                 </LinearLayout>
 
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="8dp"
+                    android:layout_below="@id/home_notice_ll"
+                    android:background="@color/bg_home_color"/>
+
                 <android.support.v7.widget.RecyclerView
                     android:id="@+id/home_list_rv"
                     android:layout_width="match_parent"
@@ -77,11 +77,19 @@
                     android:layout_marginTop="13dp"
                     android:background="@android:color/white" />
 
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="18dp"
+                    android:layout_alignTop="@id/home_list_more_iv"
+                    android:background="@color/bg_home_color"/>
+
                 <!--超维对决HomeList-->
                 <android.support.v7.widget.RecyclerView
                     android:id="@+id/full_home_list_rv"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:background="@color/bg_home_color"
+                    android:layout_marginTop="6dp"
                     android:layout_below="@id/home_list_more_iv" />
 
                 <ImageView
@@ -93,6 +101,7 @@
                     android:layout_marginTop="-1dp"
                     android:src="@drawable/bg_to_bottom" />
 
+
                 <LinearLayout
                     android:id="@+id/home_award_container"
                     android:layout_width="match_parent"
@@ -196,7 +205,6 @@
         layout="@layout/view_float_title_card"
         android:visibility="gone"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/to_search_but_rl" />
+        android:layout_height="wrap_content" />
 
 </RelativeLayout>

+ 17 - 12
app/src/main/res/layout/homepage_item_notice_and_currenttime.xml

@@ -5,23 +5,21 @@
     android:layout_height="wrap_content"
     android:padding="7dp">
 
-    <ImageView
-        android:id="@+id/notice_currenttime_iv"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_centerVertical="true"
-        android:layout_marginStart="3dp"
-        android:layout_marginEnd="5dp"
-        android:src="@mipmap/homepage_mianyangtt" />
-
     <LinearLayout
         android:id="@+id/homepage_notice_layout"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_toRightOf="@+id/notice_currenttime_iv"
         android:gravity="center"
         android:orientation="horizontal">
 
+        <ImageView
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:layout_marginStart="3dp"
+            android:padding="4dp"
+            android:layout_marginEnd="5dp"
+            android:src="@mipmap/ic_notify" />
+
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
@@ -55,15 +53,22 @@
         android:textSize="10sp"
         android:textColor="#37C1F3"
         android:layout_marginEnd="9dp"
-        android:text="详情"/>
+        android:text="查看详情"/>
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_below="@+id/homepage_notice_layout"
-        android:layout_toRightOf="@+id/notice_currenttime_iv"
         android:gravity="center"
         android:orientation="horizontal">
 
+        <ImageView
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:padding="4dp"
+            android:layout_marginStart="3dp"
+            android:layout_marginEnd="5dp"
+            android:src="@mipmap/ic_trend" />
+
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"

+ 1 - 2
app/src/main/res/layout/include_home_search.xml

@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="@color/bg">
+    android:layout_height="wrap_content">
 
     <View
         android:id="@+id/home_search_top"

+ 5 - 0
app/src/main/res/layout/inclue_hp_refresh_welfare_box.xml

@@ -6,6 +6,11 @@
     android:background="@color/white"
     android:orientation="vertical">
 
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="10dp"
+        android:background="@color/bg_home_color" />
+
     <include
         android:id="@+id/hp_game_welfare_entrance"
         android:layout_width="match_parent"

+ 18 - 17
app/src/main/res/layout/item_game_focus.xml

@@ -1,23 +1,24 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:background="@color/bg"
     android:orientation="vertical">
 
     <ImageView
         android:id="@+id/notice_bar"
-        android:visibility="gone"
-        android:adjustViewBounds="true"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content" />
+        android:layout_height="wrap_content"
+        android:adjustViewBounds="true"
+        android:visibility="gone" />
 
     <TextView
         android:id="@+id/hp_focus_tv1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="10dp"
         android:layout_marginStart="16dp"
+        android:layout_marginTop="10dp"
         android:background="@drawable/shape_solid_ffcad7_radius_4"
         android:paddingStart="5dp"
         android:paddingTop="4dp"
@@ -63,12 +64,12 @@
             android:id="@+id/item_focus_game_tags"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
+            android:layout_marginTop="5dp"
             android:gravity="center_vertical"
             android:orientation="horizontal"
-            android:layout_marginTop="5dp"
-            app:layout_constraintTop_toBottomOf="@+id/item_focus_name_tv"
             app:layout_constraintEnd_toEndOf="@id/item_focus_name_tv"
-            app:layout_constraintStart_toStartOf="@id/item_focus_name_tv" >
+            app:layout_constraintStart_toStartOf="@id/item_focus_name_tv"
+            app:layout_constraintTop_toBottomOf="@+id/item_focus_name_tv">
 
 
             <TextView
@@ -76,13 +77,13 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:background="@drawable/shape_red_stroke_rectangle_3_corner"
+                android:paddingLeft="5dp"
                 android:paddingTop="3dp"
-                android:paddingBottom="3dp"
                 android:paddingRight="5dp"
-                android:paddingLeft="5dp"
+                android:paddingBottom="3dp"
                 android:textColor="@color/red_FD2D54"
-                android:visibility="gone"
-                android:textSize="9sp" />
+                android:textSize="9sp"
+                android:visibility="gone" />
 
             <TextView
                 android:id="@+id/item_focus_num_tv1"
@@ -90,10 +91,10 @@
                 android:layout_height="wrap_content"
                 android:layout_marginStart="@dimen/content_padding"
                 android:background="@drawable/shape_red_stroke_rectangle_3_corner"
+                android:paddingLeft="5dp"
                 android:paddingTop="3dp"
-                android:paddingBottom="3dp"
                 android:paddingRight="5dp"
-                android:paddingLeft="5dp"
+                android:paddingBottom="3dp"
                 android:singleLine="true"
                 android:text=""
                 android:textColor="@color/red_FD2D54"
@@ -104,12 +105,12 @@
                 android:id="@+id/item_focus_num_tv2"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/content_padding"
                 android:background="@drawable/shape_red_stroke_rectangle_3_corner"
+                android:paddingLeft="5dp"
                 android:paddingTop="3dp"
-                android:paddingBottom="3dp"
                 android:paddingRight="5dp"
-                android:paddingLeft="5dp"
-                android:layout_marginStart="@dimen/content_padding"
+                android:paddingBottom="3dp"
                 android:singleLine="true"
                 android:text=""
                 android:textColor="@color/red_FD2D54"

+ 13 - 13
app/src/main/res/layout/item_game_news.xml

@@ -2,7 +2,8 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
+    android:layout_height="wrap_content"
+    android:background="@color/bg">
 
     <View
         android:layout_width="match_parent"
@@ -10,30 +11,29 @@
         android:background="@color/bg_home_color" />
 
     <View
-        android:background="@mipmap/recommend_italic"
-        android:layout_marginTop="10dp"
-        android:layout_alignParentRight="true"
         android:layout_width="50dp"
-        android:layout_height="40dp"/>
+        android:layout_height="40dp"
+        android:layout_alignParentRight="true"
+        android:layout_marginTop="10dp"
+        android:background="@mipmap/recommend_italic" />
 
     <LinearLayout
         android:id="@+id/recommend_news_layout"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
         android:layout_marginTop="10dp"
         android:layout_marginRight="20dp"
-        android:layout_marginLeft="10dp"
-        android:paddingTop="10dp"
-        android:paddingBottom="10dp"
+        android:orientation="vertical"
         android:paddingLeft="8dp"
-        android:orientation="vertical">
-    </LinearLayout>
+        android:paddingTop="10dp"
+        android:paddingBottom="10dp"></LinearLayout>
 
     <View
-        android:layout_below="@+id/recommend_news_layout"
         android:layout_width="match_parent"
         android:layout_height="10dp"
-        android:visibility="gone"
-        android:background="@color/bg_home_color" />
+        android:layout_below="@+id/recommend_news_layout"
+        android:background="@color/bg_home_color"
+        android:visibility="gone" />
 
 </RelativeLayout>

+ 1 - 0
app/src/main/res/layout/item_game_task.xml

@@ -2,6 +2,7 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:background="@color/bg"
     android:orientation="vertical">
     <View
         android:layout_width="match_parent"

+ 24 - 0
app/src/main/res/layout/play_game_special.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:background="@color/white">
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="10dp"
+        android:background="@color/bg_home_color" />
+
+    <TextView
+        style="@style/style_wc_line_title"
+        android:text="热门专区" />
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/special_zone_list_view"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="8dp"
+        android:layout_marginBottom="8dp"/>
+
+</LinearLayout>

BIN
app/src/main/res/mipmap-xhdpi/homepage_mianyangtt.webp


BIN
app/src/main/res/mipmap-xxhdpi/homepage_mianyangtt.webp


BIN
app/src/main/res/mipmap-xxhdpi/ic_notify.png


BIN
app/src/main/res/mipmap-xxhdpi/ic_trend.png


BIN
app/src/main/res/mipmap-xxhdpi/level_vip.png


BIN
app/src/main/res/mipmap-xxhdpi/tip_discount.png


BIN
app/src/main/res/mipmap-xxhdpi/tip_news.png


+ 17 - 3
app/src/main/res/values/dd_styles.xml

@@ -402,12 +402,26 @@
         <item name="android:layout_height">36dp</item>
         <item name="tabBackground">@android:color/transparent</item>
         <item name="tabIndicatorHeight">2dp</item>
+        <item name="tabIndicatorFullWidth">false</item>
         <item name="tabGravity">center</item>
-        <item name="tabIndicatorColor">#2ebef2</item>
+        <item name="tabIndicatorColor">@color/white</item>
         <item name="tabMode">scrollable</item>
         <item name="tabTextAppearance">@style/SheepTabLayoutTextAppearance2</item>
-        <item name="tabSelectedTextColor">#2ebef2</item>
-        <item name="tabTextColor">@android:color/darker_gray</item>
+        <item name="tabSelectedTextColor">@color/white</item>
+        <item name="tabTextColor">#90ffffff</item>
+    </style>
+
+    <style name="style_tab_3">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">36dp</item>
+        <item name="tabBackground">@android:color/transparent</item>
+        <item name="tabIndicatorHeight">2dp</item>
+        <item name="tabGravity">center</item>
+        <item name="tabIndicatorColor">@color/white</item>
+        <item name="tabMode">scrollable</item>
+        <item name="tabTextAppearance">@style/SheepTabLayoutTextAppearance2</item>
+        <item name="tabSelectedTextColor">@color/black_333333</item>
+        <item name="tabTextColor">@color/black_999999</item>
     </style>
 
     <style name="style_tab_askgetmoney">

+ 1 - 0
app/src/main/res/values/str_appstore_strings.xml

@@ -27,5 +27,6 @@
 
 
     <string name="label_download_mgr">下载管理</string>
+    <string name="empty"></string>
 
 </resources>