| | |
| | | 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; |
| | |
| | | * 商城 |
| | | */ |
| | | 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; |
| | | } |
| | | } |
| | | } |