diff --git a/app/src/main/java/com/sl/house_property/MainFragment.java b/app/src/main/java/com/sl/house_property/MainFragment.java index b2c5aeb..3a4046a 100644 --- a/app/src/main/java/com/sl/house_property/MainFragment.java +++ b/app/src/main/java/com/sl/house_property/MainFragment.java @@ -3,29 +3,44 @@ package com.sl.house_property; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; +import android.graphics.Rect; import android.net.Uri; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.Fragment; +import android.support.v7.widget.LinearLayoutManager; import android.text.TextPaint; +import android.text.TextUtils; import android.view.Gravity; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; +import android.view.ViewTreeObserver; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Toast; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.cutil.ScreenUtils; import com.google.gson.Gson; import com.google.gson.internal.LinkedTreeMap; import com.google.gson.reflect.TypeToken; +import com.gyf.immersionbar.ImmersionBar; +import com.lxj.xpopup.XPopup; +import com.lzy.ninegrid.ImageInfo; +import com.lzy.ninegrid.preview.NineGridViewClickAdapter; import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.listener.OnRefreshListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener; import com.selectpicker.OptionsPopupWindow; import com.sl.house_property.databinding.FragmentMainBinding; -import com.sl.house_property.databinding.FragmentRecyclerviewHorizationItemBinding; -import com.sl.house_property.databinding.FragmentRecyclerviewVorizationItemBinding; +import com.sl.house_property.databinding.ItemCommentBinding; +import com.sl.house_property.databinding.ItemDiscoveryBinding; +import com.sl.house_property.discovery.GoodsInfoDialog; +import com.sl.house_property.discovery.HistoryRecordActivity; import com.sl.house_property.discovery.ShareCodeActivity; +import com.sl.house_property.order.SettleActivity; import com.sl.house_property.user.MyMarketShopActivity; import com.squareup.picasso.Picasso; import com.youth.banner.Banner; @@ -45,20 +60,25 @@ import java.util.Map; import adapter.BaseRecycleViewAdapter; import entity.Advert_carouseleEntity; -import entity.Advertorial_listEntity; +import entity.DiscoveryListEntity; +import entity.GoodsDetailEntity; import entity.HomelistitemEntity; import entity.MainF1Entity; -import entity.Message_listEntity; import entity.RegisterUser; import http.ApiConfig; import my_loader.Loader; import my_loader.Resultcode; +import my_view.CommentDialog; import my_view.tao_bao_refresh.FullyGridLayoutManager; import rx.Subscription; import rx.functions.Action1; import tools.Config; import tools.PicassoRoundTransform; +import utils.CommonUtils; +import utils.DateUtils; +import utils.KeyboardUtil; import utils.Md5; +import utils.UtilHelpers; /** @@ -69,7 +89,7 @@ import utils.Md5; * Use the {@link Main1Fragment#newInstance} factory method to * create an instance of this fragment. */ -public class MainFragment extends BaseFragment implements View.OnClickListener { +public class MainFragment extends BaseFragment implements View.OnClickListener, MainTabActivity.MyOnTouchListener { // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER private static final String ARG_PARAM1 = "param1"; @@ -78,9 +98,9 @@ public class MainFragment extends BaseFragment implements V // TODO: Rename and change types of parameters private String mParam1; private String mParam2; - + private ArrayList discoveryListEntities = new ArrayList<>(); private OnFragmentInteractionListener mListener; - private ProgressDialog progressDialog; + private ProgressDialog progressDialog ; private Loader mGankLoader; private ArrayList mBannerImages; @@ -152,8 +172,9 @@ public class MainFragment extends BaseFragment implements V } + private void getGankList(final String myurl, Map map, String string, final int getcode1) { - progressDialog = new ProgressDialog(getContext()); + progressDialog.setMessage(string); //map.put("") @@ -244,8 +265,10 @@ public class MainFragment extends BaseFragment implements V // progressDialog = new ProgressDialog(baseActivity); // progressDialog.show(); // progressDialog.setMessage(getActivity().getString(R.string.loading)); + progressDialog = new ProgressDialog(getContext()); + intRecycleView(); //getGankList(ApiConfig.GETHOMEBANNER,new HashMap(),getString(R.string.loading),0); - mDataBinding.taobaoRefreshLayout.setOnRefreshListener(onrefalshlister); + mDataBinding.taobaoRefreshLayout.setOnRefreshLoadMoreListener(onrefalshlister); // mDataBinding.taobaoRefreshLayout.postDelayed(new Runnable() { // @Override // public void run() { @@ -270,7 +293,7 @@ public class MainFragment extends BaseFragment implements V mDataBinding.entrancegurd.setOnClickListener(this); mDataBinding.cargara.setOnClickListener(this); mDataBinding.moew1.setOnClickListener(this); - mDataBinding.moew2.setOnClickListener(this); + //mDataBinding.moew2.setOnClickListener(this); View banner = mDataBinding.l3; LinearLayout.LayoutParams bannerLP = (LinearLayout.LayoutParams) banner.getLayoutParams(); bannerLP.width = ScreenUtils.getScreenWidth(); @@ -315,6 +338,23 @@ public class MainFragment extends BaseFragment implements V } }); + + MainTabActivity activity = (MainTabActivity) getActivity(); + activity.registerMyOnTouchListener(this); + RegisterUser user = + Config.getInstance(getActivity()).getUser(); + Map map = new HashMap<>(); + if (user != null) { + map.put("userid", user.getUserid()); + } else { + map.put("userid", 0 + ""); + } + map.put("app", "Advert"); + map.put("class", "Advertr_an_AdvertHomeList"); + map.put("sign", Md5.md5("Advert" + "Advertr_an_AdvertHomeList" + Md5.secret)); + getGankList(ApiConfig.BASE_URL, map, getResources().getString(R.string.requsting), 0, false); + + } // TODO: Rename method, update argument and hook method into UI event @@ -330,8 +370,8 @@ public class MainFragment extends BaseFragment implements V if (context instanceof OnFragmentInteractionListener) { mListener = (OnFragmentInteractionListener) context; } else { - throw new RuntimeException(context.toString() - + " must implement OnFragmentInteractionListener"); +// throw new RuntimeException(context.toString() +// + " must implement OnFragmentInteractionListener"); } } @@ -372,7 +412,7 @@ public class MainFragment extends BaseFragment implements V startActivity(intent); break; case R.id.cargara://车库 - Toast.makeText(getContext(),"功能正在开发",Toast.LENGTH_SHORT).show(); + Toast.makeText(getContext(), "功能正在开发", Toast.LENGTH_SHORT).show(); // if ((Config.getInstance(MainFragment.this.getContext()).getUser() == null)) { // intent = new Intent(MainFragment.this.getContext(), LoginActivity.class); // } else { @@ -384,14 +424,14 @@ public class MainFragment extends BaseFragment implements V intent = new Intent(getActivity(), MyMarketShopActivity.class); startActivity(intent); break; - case R.id.moew2: - if ((Config.getInstance(MainFragment.this.getContext()).getUser() == null)) { - intent = new Intent(MainFragment.this.getContext(), LoginActivity.class); - } else { - intent = new Intent(getActivity(), NewlistActivity.class); - } - startActivity(intent); - break; +// case R.id.moew2: +// if ((Config.getInstance(MainFragment.this.getContext()).getUser() == null)) { +// intent = new Intent(MainFragment.this.getContext(), LoginActivity.class); +// } else { +// intent = new Intent(getActivity(), NewlistActivity.class); +// } +// startActivity(intent); +// break; } } @@ -453,93 +493,531 @@ public class MainFragment extends BaseFragment implements V TextPaint tp = mDataBinding.usershoptextid.getPaint(); tp.setFakeBoldText(true); - TextPaint tp1 = mDataBinding.userommunitybutextid.getPaint(); - tp1.setFakeBoldText(true); + // TextPaint tp1 = mDataBinding.userommunitybutextid.getPaint(); + // tp1.setFakeBoldText(true); } + private int currentKeyboardH; + private int editTextBodyHeight; - public void intRecycleHorization(final ArrayList advertorial_list) { + public void updateEditTextBodyVisible(int visibility) { + mDataBinding.llComment.setVisibility(visibility); + if (View.VISIBLE == visibility) { + mDataBinding.llComment.requestFocus(); + //弹出键盘 + CommonUtils.showSoftInput(mDataBinding.etComment.getContext(), mDataBinding.etComment); - FullyGridLayoutManager mgr = new FullyGridLayoutManager(getActivity(), 1); - mgr.setOrientation(FullyGridLayoutManager.HORIZONTAL); - mgr.setSmoothScrollbarEnabled(true); - mDataBinding.fragmentRecyclerviewHorization.setLayoutManager(mgr); - baseRecycleViewAdapterh = new BaseRecycleViewAdapter(getActivity(), R.layout.fragment_recyclerview_horization_item); + } else if (View.GONE == visibility) { + //隐藏键盘 + MainTabActivity activity = (MainTabActivity) getActivity(); + activity.visibilyBottom(View.VISIBLE); + CommonUtils.hideSoftInput(mDataBinding.etComment.getContext(), mDataBinding.etComment); + } + } - baseRecycleViewAdapterh.setOnBindViewHolder(new BaseRecycleViewAdapter.BindView() { + private void setViewTreeObserver() { + final ViewTreeObserver swipeRefreshLayoutVTO = mDataBinding.myl1.getViewTreeObserver(); + swipeRefreshLayoutVTO.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override - public void onBindViewHolder(Object b, final int position) { - FragmentRecyclerviewHorizationItemBinding homeGridAdapterItemBinding = (FragmentRecyclerviewHorizationItemBinding) b; - homeGridAdapterItemBinding.setMyentity(advertorial_list.get(position)); - if (advertorial_list.get(position).getAdvertorial_picture_array().size() > 0) { - Picasso.with(getActivity()).load(advertorial_list.get(position).getAdvertorial_picture_array().get(0)) - .placeholder(R.mipmap.icon_default_rectangle) - .transform(new PicassoRoundTransform()) - .into(homeGridAdapterItemBinding.imageView); + public void onGlobalLayout() { + Rect r = new Rect(); + mDataBinding.myl1.getWindowVisibleDisplayFrame(r); + int statusBarH = ImmersionBar.getStatusBarHeight(getActivity());//状态栏高度 + int screenH = mDataBinding.myl1.getRootView().getHeight(); + if (r.top != statusBarH) { + //r.top代表的是状态栏高度,在沉浸式状态栏时r.top=0,通过getStatusBarHeight获取状态栏高度 + r.top = statusBarH; } - homeGridAdapterItemBinding.fragmentRecyclerviewHorizationItem.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - Intent intent = new Intent(getActivity(), NewsDetailActivity.class); - intent.putExtra("url", advertorial_list.get(position).getAdvertorial_url()); - intent.putExtra("titile", advertorial_list.get(position).getAdvertorial_title()); - startActivity(intent); - /* Intent intent=new Intent(getActivity(),CommodityActivity.class); - intent.putExtra("homegridentity",advertorial_list.get(position)); - startActivity(intent);*/ - } - }); + int keyboardH = screenH - (r.bottom - r.top); + if (keyboardH == currentKeyboardH) {//有变化时才处理,否则会陷入死循环 + return; + } + currentKeyboardH = keyboardH; + editTextBodyHeight = mDataBinding.llComment.getHeight(); + if (keyboardH < 150) {//说明是隐藏键盘的情况 + updateEditTextBodyVisible(View.GONE); + return; + } } }); - - mDataBinding.fragmentRecyclerviewHorization.setAdapter(baseRecycleViewAdapterh); - baseRecycleViewAdapterh.setData(advertorial_list); - - } - private void intRecycleVerization(final ArrayList message_list) { - mDataBinding.myversion.setVisibility(View.VISIBLE); - FullyGridLayoutManager mgr = new FullyGridLayoutManager(getActivity(), 1); - mgr.setOrientation(FullyGridLayoutManager.VERTICAL); - mgr.setSmoothScrollbarEnabled(true); - mDataBinding.recyView.setLayoutManager(mgr); - baseRecycleViewAdapterv = new BaseRecycleViewAdapter(getActivity(), R.layout.fragment_recyclerview_vorization_item); + private void getlist(int mypage) { + RegisterUser user = + Config.getInstance(getContext()).getUser(); + Map map = new HashMap<>(); + if (user != null) { + map.put("userid", user.getUserid()); + } else { + map.put("userid", 0 + ""); + } + map.put("app", "Goods"); + map.put("type", "1"); + map.put("class", "IndexGoodsLists"); + map.put("page", mypage + ""); + map.put("sign", Md5.md5("Goods" + "IndexGoodsLists" + Md5.secret)); + getGankList2(ApiConfig.BASE_URL, map, getResources().getString(R.string.requsting), mypage); + } - baseRecycleViewAdapterv.setOnBindViewHolder(new BaseRecycleViewAdapter.BindView() { + /** + * 获取控件左上顶点Y坐标 + * + * @param view + * @return + */ + private int getCoordinateY(View view) { + int[] coordinate = new int[2]; + view.getLocationOnScreen(coordinate); + return coordinate[1]; + } + + private void intRecycleView() { + mDataBinding.tvSendComment.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + setViewTreeObserver(); + } + }); + mDataBinding.scrollViewExtend.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + if (mDataBinding.llComment.getVisibility() == View.VISIBLE) { + updateEditTextBodyVisible(View.GONE); + return true; + } + return false; + } + }); + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(baseActivity); + mDataBinding.recyView.setNestedScrollingEnabled(false);//禁止rcyc嵌套滑动 + mDataBinding.recyView.setLayoutManager(linearLayoutManager); + BaseRecycleViewAdapter baseRecycleViewAdapter = new BaseRecycleViewAdapter(getActivity(), R.layout.item_discovery); + baseRecycleViewAdapter.setHasStableIds(true); + + discoveryListEntities = new ArrayList<>(); + baseRecycleViewAdapter.setOnBindViewHolder(new BaseRecycleViewAdapter.BindView() { @Override public void onBindViewHolder(Object b, final int position) { - if (!(position >= message_list.size())) { - FragmentRecyclerviewVorizationItemBinding homeGridAdapterItemBinding = (FragmentRecyclerviewVorizationItemBinding) b; - homeGridAdapterItemBinding.setMyentity(message_list.get(position)); + if (!(position >= discoveryListEntities.size())) { + final ItemDiscoveryBinding homeGridAdapterItemBinding = (ItemDiscoveryBinding) b; + // homeGridAdapterItemBinding.setMyentity(discoveryListEntities.get(position)); + final DiscoveryListEntity discoveryListEntity = discoveryListEntities.get(position); + homeGridAdapterItemBinding.tvNikeName.setText(discoveryListEntity.getNickname()); + homeGridAdapterItemBinding.tvContent.setText(discoveryListEntity.getGoods_detail()); - Picasso.with(getActivity()).load(message_list.get(position).getMessage_picture()) - .placeholder(R.mipmap.icon_default_rectangle) - .transform(new PicassoRoundTransform()) - .into(homeGridAdapterItemBinding.imageView); - homeGridAdapterItemBinding.fragmentRecyclerviewVorizationItem.setOnClickListener(new View.OnClickListener() { +// Picasso.with(getActivity()).load(discoveryListEntity.getAvatar()) +// .placeholder(R.mipmap.icon_default_rectangle) +// .transform(new PicassoRoundTransform()) +// .into(homeGridAdapterItemBinding.imageHead); + mDataBinding.tvSendComment.setOnClickListener(new View.OnClickListener() { @Override - public void onClick(View view) { + public void onClick(View v) { + + MainTabActivity activity = (MainTabActivity) getActivity(); + CommonUtils.hideSoftInput(getContext(), mDataBinding.etComment); + mDataBinding.llComment.setVisibility(View.GONE); + activity.visibilyBottom(View.VISIBLE); + comment(discoveryListEntity.getGoods_id(), position, "", mDataBinding.etComment.getText().toString()); + } + }); + homeGridAdapterItemBinding.ivComment.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(final View v) { + final CommentDialog commentDialog = new CommentDialog(baseActivity); + commentDialog.setShowBug(discoveryListEntity.getType() == 2); + commentDialog.setPraise(discoveryListEntity.getIs_like() == 1); + final int mBottomY = getCoordinateY(homeGridAdapterItemBinding.ivComment) + homeGridAdapterItemBinding.ivComment.getHeight(); + commentDialog.setOnCommentOperateListener(new CommentDialog.OnCommentOperateListener() { + @Override + public void click(int type) { + + if (type == 1 || type == 2) { + //点赞/取消 + commentDialog.dismiss(); + like(discoveryListEntity.getGoods_id(), position); + } else if (type == 3) { + mDataBinding.llComment.setVisibility(View.VISIBLE); + mDataBinding.etComment.requestFocus(); + mDataBinding.etComment.setHint("评论"); + MainTabActivity activity = (MainTabActivity) getActivity(); + KeyboardUtil.showSoftInput(getContext()); + activity.visibilyBottom(View.GONE); + + commentDialog.dismiss(); + mDataBinding.etComment.setText(""); + homeGridAdapterItemBinding.ivComment.postDelayed(new Runnable() { + @Override + public void run() { + int y = getCoordinateY(mDataBinding.llComment) - 20; + //评论时滑动到对应item底部和输入框顶部对齐 + mDataBinding.scrollViewExtend.smoothScrollBy(0, mBottomY - y); + } + }, 300); - Intent intent = new Intent(getActivity(), NewsDetailActivity.class); - intent.putExtra("url", message_list.get(position).getMessage_url()); - intent.putExtra("titile", message_list.get(position).getMessage_title()); + } else if (type == 4) { + // addCart(discoveryListEntity.getGoods_id(),discoveryListEntity.) + getGoodsDetail(discoveryListEntity.getGoods_id(), discoveryListEntity, type); + commentDialog.dismiss(); + + } else if (type == 5) { + getGoodsDetail(discoveryListEntity.getGoods_id(), discoveryListEntity, type); + commentDialog.dismiss(); + } + } + }); + new XPopup.Builder(baseActivity).hasShadowBg(false).atView(homeGridAdapterItemBinding.ivComment).asCustom(commentDialog) + .show(); + + } + }); + + + if (discoveryListEntity.getLike().isEmpty()) { + homeGridAdapterItemBinding.tvLike.setVisibility(View.GONE); + } else { + homeGridAdapterItemBinding.tvLike.setVisibility(View.VISIBLE); + StringBuilder likeString = new StringBuilder(); + for (int i = 0; i < discoveryListEntity.getLike().size(); i++) { + if (i == 0) { + likeString.append("❤"); + + } else { + likeString.append(","); + } + likeString.append(discoveryListEntity.getLike().get(i).getNickname()); + } + homeGridAdapterItemBinding.tvLike.setText(likeString.toString()); + + homeGridAdapterItemBinding.tvTime.setText(DateUtils.getDate(discoveryListEntity.getCtime())); + + } + if (discoveryListEntity.getDis_content().isEmpty()) { + homeGridAdapterItemBinding.rvComment.setVisibility(View.GONE); + } else { + homeGridAdapterItemBinding.rvComment.setVisibility(View.VISIBLE); + FullyGridLayoutManager mgr = new FullyGridLayoutManager(getActivity(), 1); + mgr.setOrientation(FullyGridLayoutManager.VERTICAL); + mgr.setSmoothScrollbarEnabled(true); + homeGridAdapterItemBinding.rvComment.setLayoutManager(mgr); + BaseRecycleViewAdapter baseRecycleViewAdapter = new BaseRecycleViewAdapter(getActivity(), R.layout.item_comment); + homeGridAdapterItemBinding.rvComment.setAdapter(baseRecycleViewAdapter); + final ArrayList dis_content = discoveryListEntity.getDis_content(); + baseRecycleViewAdapter.setOnBindViewHolder(new BaseRecycleViewAdapter.BindView() { + @Override + public void onBindViewHolder(Object b, int position) { + ItemCommentBinding itemCommentBinding = (ItemCommentBinding) b; + itemCommentBinding.tvName.setText(dis_content.get(position).getNickname() + ": "); + itemCommentBinding.tvInfo.setText(dis_content.get(position).getContents()); + if (dis_content.get(position).getReply().isEmpty()) { + itemCommentBinding.llHf.setVisibility(View.GONE); + + } else { + itemCommentBinding.llHf.setVisibility(View.VISIBLE); + itemCommentBinding.tvName2.setText(discoveryListEntity.getNickname()); + itemCommentBinding.tvInfo2.setText("回复"); + itemCommentBinding.tvName3.setText(dis_content.get(position).getNickname() + ":"); + itemCommentBinding.tvInfo3.setText(dis_content.get(position).getReply()); + + } + } + }); + baseRecycleViewAdapter.setData(dis_content); + + } + + + RequestOptions requestOptions = new RequestOptions(); + requestOptions.placeholder(R.mipmap.icon_default_rectangle); + requestOptions.error(R.mipmap.icon_default_rectangle); + + Glide.with(getContext()).load(discoveryListEntity.getAvatar()) + .apply(requestOptions) + .into(homeGridAdapterItemBinding.imageHead); + homeGridAdapterItemBinding.imageHead.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getContext(), HistoryRecordActivity.class); + intent.putExtra("userId", discoveryListEntity.getUserid()); + intent.putExtra("userName", discoveryListEntity.getNickname()); startActivity(intent); } }); + ArrayList imageInfos = new ArrayList<>(); + + if (discoveryListEntity.getPic().size() > 0) { + + // Log.e("pic", discoveryListEntity.getPic().get(0)); + for (int i = 0; i < discoveryListEntity.getPic().size(); i++) { + if (discoveryListEntity.getPic().get(i).endsWith(".mp4") || discoveryListEntity.getPic().get(i).endsWith(".avi")) { + ImageInfo imageInfo = new ImageInfo(); + imageInfo.setType(2); + imageInfo.setBigImageUrl(discoveryListEntity.getPic().get(i)); + imageInfo.setThumbnailUrl(discoveryListEntity.getPic().get(i)); + imageInfos.add(imageInfo); + } else { + ImageInfo imageInfo = new ImageInfo(); + imageInfo.setType(1); + imageInfo.setBigImageUrl(discoveryListEntity.getPic().get(i)); + imageInfo.setThumbnailUrl(discoveryListEntity.getPic().get(i)); + imageInfos.add(imageInfo); + } + + } + + } else { + ImageInfo imageInfo = new ImageInfo(); + imageInfo.setType(1); + imageInfo.setBigImageUrl(discoveryListEntity.getThumb()); + imageInfo.setThumbnailUrl(discoveryListEntity.getThumb()); + imageInfos.add(imageInfo); + } + homeGridAdapterItemBinding.nineGrid.setAdapter(new NineGridViewClickAdapter(getContext(), imageInfos)); + } + } + }); + mDataBinding.recyView.setAdapter(baseRecycleViewAdapter); + + baseRecycleViewAdapter.setData(discoveryListEntities); + } + + @Override + public boolean onTouch(MotionEvent ev) { + switch (ev.getAction()) { + + case MotionEvent.ACTION_DOWN: + //点击空白处隐藏键盘,隐藏输入框相关 + if (getActivity().getCurrentFocus() != null && getActivity().getCurrentFocus().getId() == R.id.tv_send_comment) { + return false; + } + boolean b = UtilHelpers.hideKeyboard(ev, getActivity().getCurrentFocus(), getActivity()); + if (b) { + CommonUtils.hideSoftInput(mDataBinding.etComment.getContext(), mDataBinding.etComment); + MainTabActivity activity = (MainTabActivity) getActivity(); + activity.visibilyBottom(View.VISIBLE); + mDataBinding.llComment.setVisibility(View.GONE); + } + break; + } + return false; + } + + private void getGoodsDetail(final String goodsId, final DiscoveryListEntity entity, final int goodtype) { + final RegisterUser user = + Config.getInstance(getContext()).getUser(); + Map map = new HashMap<>(); + if (user != null) { + map.put("userid", user.getUserid()); + } else { + map.put("userid", 0 + ""); + } + map.put("app", "Goods"); + map.put("class", "GoodsInfo"); + map.put("goods_id", goodsId); + map.put("sign", Md5.md5("Goods" + "GoodsInfo" + Md5.secret)); + progressDialog.setMessage("获取信息中"); + progressDialog.setCancelable(false); + mGankLoader = new Loader(); + Subscription subscription = mGankLoader.getMovie(ApiConfig.BASE_URL, map) + .subscribe(new Action1() { + @Override + public void call(Resultcode resultcode) { + progressDialog.dismiss(); + if (resultcode.status == 0) { + Gson gs = new Gson(); + LinkedTreeMap adta = (LinkedTreeMap) resultcode.data; + String s = gs.toJson(adta); + + try { + + JSONObject jsonObject = new JSONObject(s); + org.json.JSONArray array = jsonObject.getJSONArray("info"); + final Type type = new TypeToken>() { + }.getType(); + ArrayList o = gs.fromJson(array.toString(), type); + + GoodsInfoDialog goodsInfoDialog = new GoodsInfoDialog(baseActivity, entity, o); + goodsInfoDialog.setOnConfirmListener(new GoodsInfoDialog.OnGoodsSelectPropertyListener() { + @Override + public void onSelect(String code, int num) { + if (goodtype == 4) { + Intent intent = new Intent(baseActivity, SettleActivity.class); + intent.putExtra("goodsType", 1); + intent.putExtra("goods_id", goodsId); + intent.putExtra("product_code", code); + intent.putExtra("sale_num", num + ""); + startActivity(intent); + } else if (goodtype == 5) { + addCart(goodsId, code, num + ""); + } + + } + }); + new XPopup.Builder(baseActivity).asCustom(goodsInfoDialog).show(); + + } catch (JSONException e) { + e.printStackTrace(); + } + + } else { + baseActivity.setToast(resultcode.msg); + } + } + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + baseActivity.setToast(2, "获取信息失败"); + throwable.printStackTrace(); + } + }); + baseActivity.addSubscription(subscription); + } + + private void comment(String goodsId, final int position, String reply_id, final String content) { + final RegisterUser user = + Config.getInstance(getContext()).getUser(); + Map map = new HashMap<>(); + if (user != null) { + map.put("userid", user.getUserid()); + } else { + map.put("userid", 0 + ""); + } + map.put("app", "Goods"); + map.put("class", "DisGoods"); + map.put("goods_id", goodsId); + if (!TextUtils.isEmpty(reply_id)) { + map.put("reply_id", reply_id); + } + + map.put("contents", content); + map.put("sign", Md5.md5("Goods" + "DisGoods" + Md5.secret)); + progressDialog.setMessage("提交中"); + progressDialog.setCancelable(false); +// progressDialog.show(); + + mGankLoader = new Loader(); + Subscription subscription = mGankLoader.getMovie(ApiConfig.BASE_URL, map).subscribe(new Action1() { + + + @Override + public void call(Resultcode resultcode) { + + progressDialog.dismiss(); + if (!(resultcode.status == 0)) { + baseActivity.setToast(1, resultcode.msg); + } + if (resultcode.status == 0) { + +// BaseRecycleViewAdapter adapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); +// if (discoveryListEntities.get(position).getDis_content().isEmpty()) { +// DiscoveryListEntity.Dis_content dis_content = new DiscoveryListEntity.Dis_content(); +// dis_content.setContents(content); +// +// } +// +// adapter.upDateOne(position, discoveryListEntities.get(position)); } } + + + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + baseActivity.setToast(2, "提交失败"); + throwable.printStackTrace(); + } }); - mDataBinding.recyView.setAdapter(baseRecycleViewAdapterv); - baseRecycleViewAdapterv.setData(message_list); + baseActivity.addSubscription(subscription); } +// public void intRecycleHorization(final ArrayList advertorial_list) { +// +// FullyGridLayoutManager mgr = new FullyGridLayoutManager(getActivity(), 1); +// mgr.setOrientation(FullyGridLayoutManager.HORIZONTAL); +// mgr.setSmoothScrollbarEnabled(true); +// // mDataBinding.fragmentRecyclerviewHorization.setLayoutManager(mgr); +// baseRecycleViewAdapterh = new BaseRecycleViewAdapter(getActivity(), R.layout.fragment_recyclerview_horization_item); +// +// baseRecycleViewAdapterh.setOnBindViewHolder(new BaseRecycleViewAdapter.BindView() { +// @Override +// public void onBindViewHolder(Object b, final int position) { +// FragmentRecyclerviewHorizationItemBinding homeGridAdapterItemBinding = (FragmentRecyclerviewHorizationItemBinding) b; +// homeGridAdapterItemBinding.setMyentity(advertorial_list.get(position)); +// if (advertorial_list.get(position).getAdvertorial_picture_array().size() > 0) { +// Picasso.with(getActivity()).load(advertorial_list.get(position).getAdvertorial_picture_array().get(0)) +// .placeholder(R.mipmap.icon_default_rectangle) +// .transform(new PicassoRoundTransform()) +// .into(homeGridAdapterItemBinding.imageView); +// } +// homeGridAdapterItemBinding.fragmentRecyclerviewHorizationItem.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// Intent intent = new Intent(getActivity(), NewsDetailActivity.class); +// intent.putExtra("url", advertorial_list.get(position).getAdvertorial_url()); +// intent.putExtra("titile", advertorial_list.get(position).getAdvertorial_title()); +// startActivity(intent); +// /* Intent intent=new Intent(getActivity(),CommodityActivity.class); +// intent.putExtra("homegridentity",advertorial_list.get(position)); +// startActivity(intent);*/ +// } +// }); +// +// } +// }); +// +// mDataBinding.fragmentRecyclerviewHorization.setAdapter(baseRecycleViewAdapterh); +// baseRecycleViewAdapterh.setData(advertorial_list); +// +// +// } + +// private void intRecycleVerization(final ArrayList message_list) { +// mDataBinding.myversion.setVisibility(View.VISIBLE); +// FullyGridLayoutManager mgr = new FullyGridLayoutManager(getActivity(), 1); +// mgr.setOrientation(FullyGridLayoutManager.VERTICAL); +// mgr.setSmoothScrollbarEnabled(true); +// mDataBinding.recyView.setLayoutManager(mgr); +// baseRecycleViewAdapterv = new BaseRecycleViewAdapter(getActivity(), R.layout.fragment_recyclerview_vorization_item); +// +// baseRecycleViewAdapterv.setOnBindViewHolder(new BaseRecycleViewAdapter.BindView() { +// @Override +// public void onBindViewHolder(Object b, final int position) { +// if (!(position >= message_list.size())) { +// FragmentRecyclerviewVorizationItemBinding homeGridAdapterItemBinding = (FragmentRecyclerviewVorizationItemBinding) b; +// homeGridAdapterItemBinding.setMyentity(message_list.get(position)); +// +// Picasso.with(getActivity()).load(message_list.get(position).getMessage_picture()) +// .placeholder(R.mipmap.icon_default_rectangle) +// .transform(new PicassoRoundTransform()) +// .into(homeGridAdapterItemBinding.imageView); +// homeGridAdapterItemBinding.fragmentRecyclerviewVorizationItem.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// +// +// Intent intent = new Intent(getActivity(), NewsDetailActivity.class); +// intent.putExtra("url", message_list.get(position).getMessage_url()); +// intent.putExtra("titile", message_list.get(position).getMessage_title()); +// startActivity(intent); +// } +// }); +// } +// +// } +// }); +// +// mDataBinding.recyView.setAdapter(baseRecycleViewAdapterv); +// baseRecycleViewAdapterv.setData(message_list); +// +// } + //如果你需要考虑更好的体验,可以这么操作 @Override @@ -555,36 +1033,108 @@ public class MainFragment extends BaseFragment implements V //结束轮播 mDataBinding.banner.stopAutoPlay(); } + private int page = 1; + private OnRefreshLoadMoreListener onrefalshlister = new OnRefreshLoadMoreListener() { + @Override + public void onLoadMore(@NonNull RefreshLayout refreshLayout) { + page = 1; + getlist(page); + } - private OnRefreshListener onrefalshlister = new OnRefreshListener() { @Override public void onRefresh(@NonNull RefreshLayout refreshLayout) { - RegisterUser user = - Config.getInstance(getActivity()).getUser(); - Map map = new HashMap<>(); - if (user != null) { - map.put("userid", user.getUserid()); - } else { - map.put("userid", 0 + ""); - } - map.put("app", "Advert"); - map.put("class", "Advertr_an_AdvertHomeList"); - map.put("sign", Md5.md5("Advert" + "Advertr_an_AdvertHomeList" + Md5.secret)); - getGankList(ApiConfig.BASE_URL, map, getResources().getString(R.string.requsting), 0, false); + getlist(1); } - }; + }; + private void getGankList2(String myurl, Map map, String msg, final int requstecode) { + progressDialog.setMessage(msg); + progressDialog.setCancelable(false); +// if (page>1){ +// progressDialog.show(); +// } + + + mGankLoader = new Loader(); + Subscription subscription = mGankLoader.getMovie(myurl, map).subscribe(new Action1() { + + + @Override + public void call(Resultcode resultcode) { + + mDataBinding.taobaoRefreshLayout.finishRefresh(); + mDataBinding.taobaoRefreshLayout.finishLoadMore(); + progressDialog.dismiss(); + if (!(resultcode.status == 0)) { + baseActivity.setToast(1, resultcode.msg); + } + if (resultcode.status == 0) { + // intRecycleView(); + Gson gs = new Gson(); + LinkedTreeMap adta = (LinkedTreeMap) resultcode.data; + String s = gs.toJson(adta); + try { + JSONObject jsonObject = new JSONObject(s); + org.json.JSONArray array = jsonObject.getJSONArray("info"); + Type type = new TypeToken>() { + }.getType(); + ArrayList o = new Gson().fromJson(array.toString(), type); + if (page == 1) { + + discoveryListEntities.clear(); + discoveryListEntities.addAll(o); + BaseRecycleViewAdapter baseRecycleViewAdapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); + baseRecycleViewAdapter.setData(discoveryListEntities); + page++; + } else { + discoveryListEntities.addAll(o); + + BaseRecycleViewAdapter baseRecycleViewAdapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); + baseRecycleViewAdapter.setData(discoveryListEntities); + // Log.e("sizi", discoveryListEntities.size() + ""); + // int count = jsonObject.getInt("count"); + if (o.isEmpty()) { + mDataBinding.taobaoRefreshLayout.finishLoadMoreWithNoMoreData(); + } else { + + page++; + + } + } + + + } catch (Exception e) { + e.fillInStackTrace(); + } + } + + } + + + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + mDataBinding.taobaoRefreshLayout.finishRefresh(); + mDataBinding.taobaoRefreshLayout.finishLoadMore(); + baseActivity.setToast(2, getString(R.string.getdatafailure)); + throwable.printStackTrace(); + } + }); + + baseActivity.addSubscription(subscription); + } private void getGankList(String myurl, Map map, String msg, final int requstecode, final boolean isshowdilaog) { mGankLoader = new Loader(); Subscription subscription = mGankLoader.getMovie(myurl, map).subscribe(new Action1() { @Override public void call(Resultcode resultcode) { - mDataBinding.taobaoRefreshLayout.finishRefresh(); + // mDataBinding.taobaoRefreshLayout.finishRefresh(); if (!(resultcode.status == 0)) { baseActivity.setToast(1, resultcode.msg); } @@ -596,8 +1146,8 @@ public class MainFragment extends BaseFragment implements V String s = gs.toJson(adta); MainF1Entity user = gs.fromJson(s, MainF1Entity.class);//把JSON字符串转为对象 configFragments(user.getAdvert_carousel()); - intRecycleHorization(user.getAdvertorial_list()); - intRecycleVerization(user.getMessage_list()); + //intRecycleHorization(user.getAdvertorial_list()); + // intRecycleVerization(user.getMessage_list()); } } @@ -608,7 +1158,7 @@ public class MainFragment extends BaseFragment implements V }, new Action1() { @Override public void call(Throwable throwable) { - mDataBinding.taobaoRefreshLayout.finishRefresh(); + // mDataBinding.taobaoRefreshLayout.finishRefresh(); baseActivity.setToast(2, getString(R.string.getdatafailure)); throwable.printStackTrace(); } @@ -617,5 +1167,109 @@ public class MainFragment extends BaseFragment implements V baseActivity.addSubscription(subscription); } + private void like(String goodsId, final int position) { + final RegisterUser user = + Config.getInstance(getContext()).getUser(); + Map map = new HashMap<>(); + if (user != null) { + map.put("userid", user.getUserid()); + } else { + map.put("userid", 0 + ""); + } + map.put("app", "Goods"); + map.put("class", "AddUp"); + map.put("goods_id", goodsId); + map.put("sign", Md5.md5("Goods" + "AddUp" + Md5.secret)); + progressDialog.setMessage("提交中"); + progressDialog.setCancelable(false); +// progressDialog.show(); + mGankLoader = new Loader(); + Subscription subscription = mGankLoader.getMovie(ApiConfig.BASE_URL, map).subscribe(new Action1() { + + + @Override + public void call(Resultcode resultcode) { + + progressDialog.dismiss(); + if (!(resultcode.status == 0)) { + baseActivity.setToast(1, resultcode.msg); + } + if (resultcode.status == 0) { + BaseRecycleViewAdapter adapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); + if (discoveryListEntities.get(position).getIs_like() == 1) { + discoveryListEntities.get(position).setIs_like(0); + ArrayList like = discoveryListEntities.get(position).getLike(); + for (int i = 0; i < like.size(); i++) { + if (user.getUserid().equals(like.get(i).getUserid())) { + like.remove(i); + break; + } + } + discoveryListEntities.get(position).setLike(like); + } else { + discoveryListEntities.get(position).setIs_like(1); + DiscoveryListEntity.Like like = new DiscoveryListEntity.Like(); + like.setNickname(user.getNickname()); + like.setUserid(user.getUserid()); + discoveryListEntities.get(position).getLike().add(like); + } + + adapter.upDateOne(position, discoveryListEntities.get(position)); + } + + } + + + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + baseActivity.setToast(2, "提交失败"); + throwable.printStackTrace(); + } + }); + + baseActivity.addSubscription(subscription); + + } + + private void addCart(String goods_id, String product_code, String goodsNum) { + RegisterUser user = + Config.getInstance(getContext()).getUser(); + Map map = new HashMap<>(); + if (user != null) { + map.put("userid", user.getUserid()); + } else { + map.put("userid", 0 + ""); + } + map.put("app", "Goods"); + map.put("class", "AddCart"); + map.put("goods_id", goods_id); + map.put("product_code", product_code); + map.put("num", goodsNum); + map.put("sign", Md5.md5("Goods" + "AddCart" + Md5.secret)); + progressDialog.setMessage("提交中"); + progressDialog.setCancelable(false); + mGankLoader = new Loader(); + Subscription subscribe = mGankLoader.getMovie(ApiConfig.BASE_URL, map).subscribe(new Action1() { + @Override + public void call(Resultcode resultcode) { + progressDialog.dismiss(); + if (resultcode.status == 0) { + baseActivity.setToast(0, "成功加入购物车"); + } else { + baseActivity.setToast(3, resultcode.msg); + } + } + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + baseActivity.setToast(2, "提交失败"); + throwable.printStackTrace(); + } + }); + baseActivity.addSubscription(subscribe); + } } \ No newline at end of file diff --git a/app/src/main/java/com/sl/house_property/MainTabActivity.java b/app/src/main/java/com/sl/house_property/MainTabActivity.java index de21d90..67983de 100644 --- a/app/src/main/java/com/sl/house_property/MainTabActivity.java +++ b/app/src/main/java/com/sl/house_property/MainTabActivity.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import tools.Config; public class MainTabActivity extends BaseActivity - implements View.OnClickListener, MainFragment.OnFragmentInteractionListener, + implements View.OnClickListener, Main1Fragment.OnFragmentInteractionListener, Main2Fragment.OnFragmentInteractionListener, Main3Fragment.OnFragmentInteractionListener, diff --git a/app/src/main/java/com/sl/house_property/discovery/GoodsInfoDialog.java b/app/src/main/java/com/sl/house_property/discovery/GoodsInfoDialog.java index c33d39f..e8ecce5 100644 --- a/app/src/main/java/com/sl/house_property/discovery/GoodsInfoDialog.java +++ b/app/src/main/java/com/sl/house_property/discovery/GoodsInfoDialog.java @@ -139,7 +139,7 @@ public class GoodsInfoDialog extends BottomPopupView { } - interface OnGoodsSelectPropertyListener { + public interface OnGoodsSelectPropertyListener { void onSelect(String code, int num); } } diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index fed9d66..1336cd9 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -1,265 +1,255 @@ + xmlns:app="http://schemas.android.com/apk/res-auto"> - + - tools:context=".Main1Fragment"> - - - + - - - - - - - - - - - + - + + + + + + + + + + + + + + - - > - - - + android:layout_height="150dp" + android:orientation="vertical"> - + app:image_scale_type="center_crop" + app:indicator_drawable_selected="@drawable/ic_banner_point" + app:indicator_drawable_unselected="@drawable/ic_banner_point_grey" + app:indicator_height="6dp" + app:indicator_margin="6dp" + app:indicator_width="6dp" + app:is_auto_play="true" + app:title_background="#00000000" /> + - - - - - + + - - - - - - - - - - - - - - - - - + android:layout_margin="10dip" + android:text="@string/door" + android:textColor="@color/white" + android:textSize="15sp" /> + - + - - - - - - - android:layout_marginRight="10dip"> + - + - + android:layout_margin="10dip" + android:text="@string/carroom" + android:textColor="@color/white" + android:textSize="15sp" /> - + + - + - + - - + - + + - - - + - + + + + + + + + + + + + + + + + - - - - \ No newline at end of file