package com.wisdom.hydroponics.ui.fragment; import android.content.Intent; import android.graphics.Rect; import android.os.Handler; import android.os.Message; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.bumptech.glide.Glide; import com.bumptech.glide.load.resource.bitmap.CircleCrop; import com.bumptech.glide.request.RequestOptions; import com.google.gson.Gson; import com.wisdom.hydroponics.R; import com.wisdom.hydroponics.adapters.Grid_Image_Adapter; import com.wisdom.hydroponics.base.BaseFragment; import com.wisdom.hydroponics.bean.HomeDeviceItemBean; import com.wisdom.hydroponics.ui.activity.AddDevice_1_Activity; import com.wisdom.hydroponics.ui.activity.DeviceDetailActivity; import com.wisdom.hydroponics.utils.SPUtil; import com.wisdom.hydroponics.utils.WQNetUtil; import com.wisdom.hydroponics.utils.WQUtils; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.OnClick; /** * Created by wq on 2018/1/16. */ public class HomeFragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener { @BindView(R.id.iv_home_icon) ImageView ivHomeIcon; @BindView(R.id.tv_home_name) TextView tvHomeName; @BindView(R.id.tv_home_add) TextView tvHomeAdd; @BindView(R.id.mRecyclerView) RecyclerView mRecyclerView; @BindView(R.id.refreshLayout) SwipeRefreshLayout refreshLayout; @Override public View initView(LayoutInflater inflater, ViewGroup container) { View view = inflater.inflate(R.layout.fragment_home, container, false); return view; } @Override public void initData() { refreshLayout.setOnRefreshListener(this); refreshLayout.setColorScheme(R.color.base_online, R.color.base_down, R.color.base_error, R.color.base_todo); tvHomeName.setText("阿打 >"); Glide.with(context).load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201409%2F22%2F20140922122621_fxvj8.thumb.700_0.jpeg&refer=http%3A%2F%2Fb-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1624158465&t=90c78370fbc0a5322f02c04f8d991d39") .apply(RequestOptions.bitmapTransform(new CircleCrop())) .into(ivHomeIcon); String user_id = SPUtil.getString(context, "User_ID"); if (!TextUtils.isEmpty(user_id)) { getData(user_id); } } private void getData(String user_id) { JSONObject jsonObj = new JSONObject(); try { jsonObj.put("PageIndex", 1); jsonObj.put("PageSize", 10); jsonObj.put("KeyWords", ""); jsonObj.put("Sort", ""); jsonObj.put("IsAsc", true); jsonObj.put("UserID", user_id); } catch (JSONException e) { e.printStackTrace(); } // 发送网络请求 WQNetUtil.postHttp(context, jsonObj, SPUtil.getString(context, "URL") + "Device/GetAllUserBindMac", handler); } private List list; private Handler handler = new Handler() { public void handleMessage(Message msg) { String json = (String) msg.obj; Gson gson = new Gson(); HomeDeviceItemBean homeDeviceItemBean = gson.fromJson(json, HomeDeviceItemBean.class); if (homeDeviceItemBean != null && homeDeviceItemBean.getReturnCode() == 200) { if (homeDeviceItemBean.getResult() != null && homeDeviceItemBean.getResult().getModels() != null && homeDeviceItemBean.getResult().getModels().size() > 0) { list = homeDeviceItemBean.getResult().getModels(); initHomeData(); } } else { WQUtils.tip(context, homeDeviceItemBean.getMessage() + ""); } } }; private Grid_Image_Adapter.OnRecyclerviewItemClickListener onRecyclerviewItemClickListener; private void initHomeData() { mRecyclerView.setItemAnimator(new DefaultItemAnimator()); GridLayoutManager mLayoutManager = new GridLayoutManager(context, 2); mRecyclerView.addItemDecoration(new RecyclerView.ItemDecoration() { @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { super.getItemOffsets(outRect, view, parent, state); // outRect.bottom = 15; // outRect.right = 15; } }); mRecyclerView.setLayoutManager(mLayoutManager); onRecyclerviewItemClickListener = new Grid_Image_Adapter.OnRecyclerviewItemClickListener() { @Override public void onItemClickListener(View v, int position) { Intent intent = new Intent(context, DeviceDetailActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.putExtra("Device_Mac", list.get(position).getDeviceMac()); intent.putExtra("FaultStatus", list.get(position).getFaultStatus()); context.startActivity(intent); } }; Grid_Image_Adapter adapter = new Grid_Image_Adapter(context, list, onRecyclerviewItemClickListener); mRecyclerView.setAdapter(adapter); } @Override public void onRefresh() { new Handler().postDelayed(new Runnable() {//模拟耗时操作 @Override public void run() { String user_id = SPUtil.getString(context, "User_ID"); if (!TextUtils.isEmpty(user_id)) { getData(user_id); } refreshLayout.setRefreshing(false);//取消刷新 } }, 2700); } @OnClick({R.id.iv_home_icon, R.id.tv_home_name, R.id.tv_home_add}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.iv_home_icon: break; case R.id.tv_home_name: break; case R.id.tv_home_add: WQUtils.startActivity(context, AddDevice_1_Activity.class); break; } } }