admin
2022-01-28 760aee20870a34e6130a1c12237c5b747e2b00bd
MGVideo/src/com/mugua/mgvideo/ui/main/ShopFragment.java
@@ -15,7 +15,9 @@
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.provider.Settings;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
@@ -44,191 +46,205 @@
 * 商城
 */
public class ShopFragment extends RetainViewFragment implements OnClickListener {
   private TextView tv_no_network;
   private TextView tv_top_left;
    private TextView tv_no_network;
    private TextView tv_top_left;
   private ConnectivityChangeHelper mChangeHelper;
   private ListView lv_res;
   private RefreshLayout rl_discover;
   private int warePage = 1;
    private ConnectivityChangeHelper mChangeHelper;
    private ListView lv_res;
    private RefreshLayout rl_discover;
    private int warePage = 1;
   private GoodsAdapter adapter;
   private List<GoodsInfo> mList = new ArrayList<>();
    private GoodsAdapter adapter;
    private List<GoodsInfo> mList = new ArrayList<>();
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      try {
         DiskLruCache.open(
               new File(StorageUtils.getCacheDirectory(getActivity())
                     .toString(), "http"), getVersionNum(getActivity()),
               1, 1024 * 1024);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
    public static ShopFragment newInstance(boolean nav) {
        ShopFragment fragment = new ShopFragment();
        Bundle bundle = new Bundle();
        bundle.putBoolean("nav", nav);
        fragment.setArguments(bundle);
        return fragment;
    }
   @Override
   public int getContentResource() {
      return R.layout.fragment_shop;
   }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        try {
            DiskLruCache.open(
                    new File(StorageUtils.getCacheDirectory(getActivity())
                            .toString(), "http"), getVersionNum(getActivity()),
                    1, 1024 * 1024);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
   @Override
   public void onCreateView(View contentView, Bundle savedInstanceState) {
    @Override
    public int getContentResource() {
        return R.layout.fragment_shop;
    }
      tv_no_network = (TextView) contentView.findViewById(R.id.tv_no_network);
      tv_top_left = (TextView) contentView.findViewById(R.id.tv_top_bar_left);
      tv_top_left.setVisibility(View.GONE);
      tv_no_network.setOnClickListener(this);
      contentView.findViewById(R.id.tv_top_bar_left).setOnClickListener(this);
      mChangeHelper = new ConnectivityChangeHelper(
            tv_no_network.getContext(), new OnConnectivityChangeListener() {
    @Override
    public void onCreateView(View contentView, Bundle savedInstanceState) {
               @Override
               public void onNetworkUnAvailable() {
                  tv_no_network.setVisibility(View.VISIBLE);
               }
        if (getArguments() != null && getArguments().getBoolean("nav", false)) {
            contentView.findViewById(R.id.rl_nav).setVisibility(View.VISIBLE);
        } else {
            contentView.findViewById(R.id.rl_nav).setVisibility(View.GONE);
        }
               @Override
               public void onWiFiAvailable() {
                  tv_no_network.setVisibility(View.GONE);
               }
        tv_no_network = (TextView) contentView.findViewById(R.id.tv_no_network);
        tv_top_left = (TextView) contentView.findViewById(R.id.tv_top_bar_left);
        tv_top_left.setVisibility(View.GONE);
        tv_no_network.setOnClickListener(this);
        contentView.findViewById(R.id.tv_top_bar_left).setOnClickListener(this);
        mChangeHelper = new ConnectivityChangeHelper(
                tv_no_network.getContext(), new OnConnectivityChangeListener() {
               @Override
               public void onMobileAvailable() {
                  tv_no_network.setVisibility(View.GONE);
               }
            });
            @Override
            public void onNetworkUnAvailable() {
                tv_no_network.setVisibility(View.VISIBLE);
            }
      rl_discover = (RefreshLayout) contentView
            .findViewById(R.id.rl_discover);
      ProgressBar pb = new ProgressBar(tv_no_network.getContext());
      rl_discover.setFooter(pb);
      rl_discover
            .setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
               @Override
               public void onRefresh() {
                  mList.clear();
                  warePage = 1;
                  getGoodsList();
               }
            });
      rl_discover.setOnLoadListener(new RefreshLayout.OnLoadListener() {
         @Override
         public void onLoad() {
            warePage++;
            getGoodsList();
         }
      });
      lv_res = (ListView) contentView
            .findViewById(R.id.lv_fragment_discover_res);
      adapter = new GoodsAdapter(tv_no_network.getContext(), mList);
      lv_res.setAdapter(adapter);
      tv_no_network.post(new Runnable() {
         @Override
         public void run() {
            getGoodsList();
         }
      });
            @Override
            public void onWiFiAvailable() {
                tv_no_network.setVisibility(View.GONE);
            }
   }
            @Override
            public void onMobileAvailable() {
                tv_no_network.setVisibility(View.GONE);
            }
        });
   @Override
   public void onResume() {
      super.onResume();
      mChangeHelper.registerReceiver();
   }
        rl_discover = (RefreshLayout) contentView
                .findViewById(R.id.rl_discover);
        ProgressBar pb = new ProgressBar(tv_no_network.getContext());
        rl_discover.setFooter(pb);
        rl_discover
                .setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
                    @Override
                    public void onRefresh() {
                        mList.clear();
                        warePage = 1;
                        getGoodsList();
                    }
                });
        rl_discover.setOnLoadListener(new RefreshLayout.OnLoadListener() {
            @Override
            public void onLoad() {
                warePage++;
                getGoodsList();
            }
        });
        lv_res = (ListView) contentView
                .findViewById(R.id.lv_fragment_discover_res);
        adapter = new GoodsAdapter(tv_no_network.getContext(), mList);
        lv_res.setAdapter(adapter);
        tv_no_network.post(new Runnable() {
            @Override
            public void run() {
                getGoodsList();
            }
        });
   @Override
   public void onPause() {
      super.onPause();
      mChangeHelper.unregisterReceiver();
   }
    }
   @Override
   public void onDestroy() {
      super.onDestroy();
   }
    @Override
    public void onResume() {
        super.onResume();
        mChangeHelper.registerReceiver();
    }
   @Override
   public void onClick(View v) {
      switch (v.getId()) {
      case R.id.tv_go_search: {
         Intent intent = new Intent(getActivity(), SearchActivity.class);
         startActivity(intent);
      }
         break;
      case R.id.tv_no_network: {
         Intent intent = new Intent(Settings.ACTION_SETTINGS);
         startActivity(intent);
      }
         break;
      default:
         break;
      }
   }
    @Override
    public void onPause() {
        super.onPause();
        mChangeHelper.unregisterReceiver();
    }
   /**
    * 获取商品列表
    */
   private void getGoodsList() {
      SharedPreferences sp = tv_no_network.getContext().getSharedPreferences(
            "user", Context.MODE_PRIVATE);
      String uid = sp.getString("uid", "");
      MGVideoAPI.getWareList(tv_no_network.getContext(), uid, warePage
            + "", new BasicTextHttpResponseHandler() {
         @Override
         public void onSuccessPerfect(int statusCode, Header[] headers,
               JSONObject jsonObject) throws Exception {
            if (jsonObject.optBoolean("IsPost")) {
               Gson gson = new GsonBuilder()
                     .setPrettyPrinting()
                     .setFieldNamingPolicy(
                           FieldNamingPolicy.UPPER_CAMEL_CASE)
                     .excludeFieldsWithoutExposeAnnotation().create();
               List<GoodsInfo> list = gson.fromJson(jsonObject
                     .getJSONObject("Data").getJSONArray("data")
                     .toString(), new TypeToken<List<GoodsInfo>>() {
               }.getType());
               if (Integer.parseInt(jsonObject.optJSONObject("Data")
                     .optString("count")) > list.size()) {
                  rl_discover.isMore = true;
               } else if (Integer.parseInt(jsonObject
                     .optJSONObject("Data").optString("count")) <= list
                     .size()) {
                  rl_discover.isMore = false;
               }
               mList.addAll(list);
               adapter.notifyDataSetChanged();
            }
         }
    @Override
    public void onDestroy() {
        super.onDestroy();
    }
         @Override
         public void onFinish() {
            super.onFinish();
            rl_discover.setLoading(false);
            rl_discover.setRefreshing(false);
         }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.tv_go_search: {
                Intent intent = new Intent(getActivity(), SearchActivity.class);
                startActivity(intent);
            }
            break;
            case R.id.tv_no_network: {
                Intent intent = new Intent(Settings.ACTION_SETTINGS);
                startActivity(intent);
            }
            break;
            default:
                break;
        }
    }
         @Override
         public void onFailure(int statusCode, Header[] headers,
               String responseString, Throwable throwable) {
            super.onFailure(statusCode, headers, responseString, throwable);
            Log.i("mResult", "请求失败");
            rl_discover.isMore = false;
         }
      });
    /**
     * 获取商品列表
     */
    private void getGoodsList() {
        SharedPreferences sp = tv_no_network.getContext().getSharedPreferences(
                "user", Context.MODE_PRIVATE);
        String uid = sp.getString("uid", "");
        MGVideoAPI.getWareList(tv_no_network.getContext(), uid, warePage
                + "", new BasicTextHttpResponseHandler() {
            @Override
            public void onSuccessPerfect(int statusCode, Header[] headers,
                                         JSONObject jsonObject) throws Exception {
                if (jsonObject.optBoolean("IsPost")) {
                    Gson gson = new GsonBuilder()
                            .setPrettyPrinting()
                            .setFieldNamingPolicy(
                                    FieldNamingPolicy.UPPER_CAMEL_CASE)
                            .excludeFieldsWithoutExposeAnnotation().create();
                    List<GoodsInfo> list = gson.fromJson(jsonObject
                            .getJSONObject("Data").getJSONArray("data")
                            .toString(), new TypeToken<List<GoodsInfo>>() {
                    }.getType());
                    if (Integer.parseInt(jsonObject.optJSONObject("Data")
                            .optString("count")) > list.size()) {
                        rl_discover.isMore = true;
                    } else if (Integer.parseInt(jsonObject
                            .optJSONObject("Data").optString("count")) <= list
                            .size()) {
                        rl_discover.isMore = false;
                    }
                    mList.addAll(list);
                    adapter.notifyDataSetChanged();
                }
            }
   }
            @Override
            public void onFinish() {
                super.onFinish();
                rl_discover.setLoading(false);
                rl_discover.setRefreshing(false);
            }
   public static int getVersionNum(Context context) {
      try {
         PackageInfo pi = context.getPackageManager().getPackageInfo(
               context.getPackageName(), 0);
         return pi.versionCode;
      } catch (NameNotFoundException e) {
         e.printStackTrace();
         return 1;
      }
   }
            @Override
            public void onFailure(int statusCode, Header[] headers,
                                  String responseString, Throwable throwable) {
                super.onFailure(statusCode, headers, responseString, throwable);
                Log.i("mResult", "请求失败");
                rl_discover.isMore = false;
            }
        });
    }
    public static int getVersionNum(Context context) {
        try {
            PackageInfo pi = context.getPackageManager().getPackageInfo(
                    context.getPackageName(), 0);
            return pi.versionCode;
        } catch (NameNotFoundException e) {
            e.printStackTrace();
            return 1;
        }
    }
}