From 08e216bb0a7acbc45ab61c53d58612a9ba2b5d61 Mon Sep 17 00:00:00 2001 From: jinyuer <454386664@qq.com> Date: Fri, 4 Sep 2020 16:28:12 +0800 Subject: [PATCH] 1 --- app/src/main/AndroidManifest.xml | 1 + .../com/sl/house_property/MainFragment.java | 68 ++-- .../discovery/DiscoveryFragment.java | 19 +- .../discovery/HistoryRecordActivity.java | 349 ++++++++++++++++++ .../main/res/layout/activity_address_list.xml | 9 +- app/src/main/res/layout/activity_order.xml | 9 +- app/src/main/res/layout/fragment_cart.xml | 4 +- app/src/main/res/layout/fragment_main.xml | 15 +- .../main/res/layout/layout_history_record.xml | 142 +++++++ 9 files changed, 566 insertions(+), 50 deletions(-) create mode 100644 app/src/main/java/com/sl/house_property/discovery/HistoryRecordActivity.java create mode 100644 app/src/main/res/layout/layout_history_record.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dda1ead..76bfb42 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -297,6 +297,7 @@ + \ No newline at end of file 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 c458c8d..0389de5 100644 --- a/app/src/main/java/com/sl/house_property/MainFragment.java +++ b/app/src/main/java/com/sl/house_property/MainFragment.java @@ -5,6 +5,7 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; +import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import android.text.TextPaint; import android.view.LayoutInflater; @@ -14,9 +15,11 @@ import android.widget.LinearLayout; import android.widget.RadioButton; import com.cutil.ScreenUtils; -import com.dalong.refreshlayout.OnRefreshListener; import com.google.gson.Gson; import com.google.gson.internal.LinkedTreeMap; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener; import com.sl.house_property.user.MyMarketShopActivity; import com.sl.house_property.databinding.FragmentMainBinding; import com.sl.house_property.databinding.FragmentRecyclerviewHorizationItemBinding; @@ -147,26 +150,26 @@ public class MainFragment extends BaseFragment implements V // progressDialog.setMessage(getActivity().getString(R.string.loading)); //getGankList(ApiConfig.GETHOMEBANNER,new HashMap(),getString(R.string.loading),0); mDataBinding.taobaoRefreshLayout.setOnRefreshListener(onrefalshlister); - mDataBinding.taobaoRefreshLayout.postDelayed(new Runnable() { - @Override - public void run() { - /* configFragments(); - intRecycleHorization(); - intRecycleVerization();*/ - 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, true); - } - }, 0); +// mDataBinding.taobaoRefreshLayout.postDelayed(new Runnable() { +// @Override +// public void run() { +// /* configFragments(); +// intRecycleHorization(); +// intRecycleVerization();*/ +// 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, true); +// } +// }, 0); mDataBinding.scan.setOnClickListener(this); mDataBinding.entrancegurd.setOnClickListener(this); mDataBinding.cargara.setOnClickListener(this); @@ -176,7 +179,7 @@ public class MainFragment extends BaseFragment implements V LinearLayout.LayoutParams bannerLP = (LinearLayout.LayoutParams) banner.getLayoutParams(); bannerLP.width = ScreenUtils.getScreenWidth(); banner.setLayoutParams(bannerLP); - mDataBinding.taobaoRefreshLayout.setAutoRefresh(true); + mDataBinding.taobaoRefreshLayout.autoRefresh(); } // TODO: Rename method, update argument and hook method into UI event @@ -420,7 +423,7 @@ public class MainFragment extends BaseFragment implements V private OnRefreshListener onrefalshlister = new OnRefreshListener() { @Override - public void onRefresh() { + public void onRefresh(@NonNull RefreshLayout refreshLayout) { RegisterUser user = Config.getInstance(getActivity()).getUser(); Map map = new HashMap<>(); @@ -433,26 +436,11 @@ public class MainFragment extends BaseFragment implements V 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); - mDataBinding.taobaoRefreshLayout.postDelayed(new Runnable() { - @Override - public void run() { - mDataBinding.taobaoRefreshLayout.stopRefresh(true); - } - }, 10000); } - @Override - public void onLoadMore() { - mDataBinding.taobaoRefreshLayout.postDelayed(new Runnable() { - @Override - public void run() { - mDataBinding.taobaoRefreshLayout.stopLoadMore(true); - } - }, 1000); - } }; @@ -461,8 +449,7 @@ public class MainFragment extends BaseFragment implements V Subscription subscription = mGankLoader.getMovie(myurl, map).subscribe(new Action1() { @Override public void call(Resultcode resultcode) { - mDataBinding.taobaoRefreshLayout.stopRefresh(true); - mDataBinding.taobaoRefreshLayout.stopLoadMore(true); + mDataBinding.taobaoRefreshLayout.finishRefresh(); if (!(resultcode.status == 0)) { baseActivity.setToast(1, resultcode.msg); } @@ -486,6 +473,7 @@ public class MainFragment extends BaseFragment implements V }, new Action1() { @Override public void call(Throwable throwable) { + mDataBinding.taobaoRefreshLayout.finishRefresh(); baseActivity.setToast(2, getString(R.string.getdatafailure)); throwable.printStackTrace(); } diff --git a/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java b/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java index a7250db..235110b 100644 --- a/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java +++ b/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java @@ -479,6 +479,15 @@ public class DiscoveryFragment extends BaseFragment im 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) { @@ -539,7 +548,7 @@ public class DiscoveryFragment extends BaseFragment im baseActivity.setToast(1, resultcode.msg); } if (resultcode.status == 0) { - // intRecycleView(); + // intRecycleView(); Gson gs = new Gson(); LinkedTreeMap adta = (LinkedTreeMap) resultcode.data; String s = gs.toJson(adta); @@ -794,4 +803,12 @@ public class DiscoveryFragment extends BaseFragment im baseActivity.addSubscription(subscription); } + + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + page = 1; + getlist(1); + } } diff --git a/app/src/main/java/com/sl/house_property/discovery/HistoryRecordActivity.java b/app/src/main/java/com/sl/house_property/discovery/HistoryRecordActivity.java new file mode 100644 index 0000000..dc72851 --- /dev/null +++ b/app/src/main/java/com/sl/house_property/discovery/HistoryRecordActivity.java @@ -0,0 +1,349 @@ +package com.sl.house_property.discovery; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v7.widget.LinearLayoutManager; +import android.util.Log; +import android.view.View; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.google.gson.Gson; +import com.google.gson.internal.LinkedTreeMap; +import com.google.gson.reflect.TypeToken; +import com.gyf.immersionbar.ImmersionBar; +import com.lzy.ninegrid.ImageInfo; +import com.lzy.ninegrid.preview.NineGridViewClickAdapter; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener; +import com.sl.house_property.BaseActivity; +import com.sl.house_property.R; +import com.sl.house_property.databinding.ItemCommentBinding; +import com.sl.house_property.databinding.ItemDiscoveryBinding; +import com.sl.house_property.databinding.LayoutHistoryRecordBinding; +import com.squareup.picasso.Picasso; +import com.squareup.picasso.Target; + +import org.json.JSONObject; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import adapter.BaseRecycleViewAdapter; +import entity.DiscoveryListEntity; +import http.ApiConfig; +import my_loader.Loader; +import my_loader.Resultcode; +import my_view.tao_bao_refresh.FullyGridLayoutManager; +import rx.Subscription; +import rx.functions.Action1; +import tools.PicassoRoundTransform; +import utils.DateUtils; +import utils.Md5; + +public class HistoryRecordActivity extends BaseActivity { + private Context context; + private int type = 2; + private int page = 1; + private String userId; + private Loader loader; + private ArrayList discoveryListEntities = new ArrayList<>(); + + @Override + protected int getLayoutResId() { + return R.layout.layout_history_record; + + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + context = this; + loader = new Loader(); + ImmersionBar.with(this) + .keyboardEnable(true) //解决软键盘与底部输入框冲突问题 + // .keyboardEnable(true, WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE + // | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) //软键盘自动弹出 + .init(); + userId = getIntent().getStringExtra("userId"); + String userName = getIntent().getStringExtra("userName"); + mDataBinding.tvTitle.setText(userName); + mDataBinding.left.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mDataBinding.tv1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + if (type == 2) { + type = 1; + page = 1; + getData(); + mDataBinding.tv1.setTextColor(getResources().getColor(R.color.white)); + mDataBinding.tv1.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + mDataBinding.tv2.setTextColor(getResources().getColor(R.color.black)); + mDataBinding.tv2.setBackgroundColor(getResources().getColor(R.color.white)); + } + } + }); + mDataBinding.tv2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (type == 1) { + type = 2; + page = 1; + getData(); + mDataBinding.tv2.setTextColor(getResources().getColor(R.color.white)); + mDataBinding.tv2.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + mDataBinding.tv1.setTextColor(getResources().getColor(R.color.black)); + mDataBinding.tv1.setBackgroundColor(getResources().getColor(R.color.white)); + } + } + }); + mDataBinding.dw.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() { + @Override + public void onLoadMore(@NonNull RefreshLayout refreshLayout) { + getData(); + } + + @Override + public void onRefresh(@NonNull RefreshLayout refreshLayout) { + page = 1; + getData(); + } + }); + intRecycleView(); + mDataBinding.dw.autoRefresh(); + } + + + private void intRecycleView() { + + + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context); + mDataBinding.recyView.setNestedScrollingEnabled(false);//禁止rcyc嵌套滑动 + mDataBinding.recyView.setLayoutManager(linearLayoutManager); + BaseRecycleViewAdapter baseRecycleViewAdapter = new BaseRecycleViewAdapter(context, 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 >= discoveryListEntities.size())) { + final ItemDiscoveryBinding homeGridAdapterItemBinding = (ItemDiscoveryBinding) b; + // homeGridAdapterItemBinding.setMyentity(discoveryListEntities.get(position)); + homeGridAdapterItemBinding.ivComment.setVisibility(View.GONE); + final DiscoveryListEntity discoveryListEntity = discoveryListEntities.get(position); + homeGridAdapterItemBinding.tvNikeName.setText(discoveryListEntity.getNickname()); + homeGridAdapterItemBinding.tvContent.setText(discoveryListEntity.getGoods_detail()); + + + 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(context, 1); + mgr.setOrientation(FullyGridLayoutManager.VERTICAL); + mgr.setSmoothScrollbarEnabled(true); + homeGridAdapterItemBinding.rvComment.setLayoutManager(mgr); + BaseRecycleViewAdapter baseRecycleViewAdapter = new BaseRecycleViewAdapter(context, 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(context).load(discoveryListEntity.getAvatar()) + .apply(requestOptions) + .into(homeGridAdapterItemBinding.imageHead); + 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(context, imageInfos)); + } + } + }); + mDataBinding.recyView.setAdapter(baseRecycleViewAdapter); + + baseRecycleViewAdapter.setData(discoveryListEntities); + } + + private void getData() { + + Map map = new HashMap<>(); + map.put("userid", userId); + map.put("type", type + ""); + map.put("app", "Goods"); + map.put("class", "MyGoodsLists"); + map.put("page", page + ""); + map.put("sign", Md5.md5("Goods" + "MyGoodsLists" + Md5.secret)); + Subscription subscribe = loader.getMovie(ApiConfig.BASE_URL, map).subscribe(new Action1() { + @Override + public void call(Resultcode resultcode) { + mDataBinding.dw.finishRefresh(); + mDataBinding.dw.finishLoadMore(); + progressDialog.dismiss(); + if (!(resultcode.status == 0)) { + 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(); + if (page == 1) { + String fengmian = jsonObject.getString("fengmian"); + String avatar = jsonObject.getString("avatar"); + Picasso.with(context).load(fengmian) + .placeholder(R.mipmap.icon_default_rectangle) + .into(target); + Picasso.with(context).load(avatar) + .placeholder(R.mipmap.icon_default_rectangle) + .transform(new PicassoRoundTransform()) + .into(mDataBinding.head); + ArrayList o = new Gson().fromJson(array.toString(), type); + discoveryListEntities.clear(); + discoveryListEntities.addAll(o); + BaseRecycleViewAdapter baseRecycleViewAdapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); + baseRecycleViewAdapter.setData(discoveryListEntities); + page++; + } else { + ArrayList o = new Gson().fromJson(array.toString(), type); + 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.dw.finishLoadMoreWithNoMoreData(); + } else { + + page++; + + } + } + + + } catch (Exception e) { + e.fillInStackTrace(); + } + } + } + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + mDataBinding.dw.finishRefresh(); + mDataBinding.dw.finishLoadMore(); + setToast(2, getString(R.string.getdatafailure)); + throwable.printStackTrace(); + } + }); + addSubscription(subscribe); + } + + private Target target = new Target() { + @Override + public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { + Drawable drawable = new BitmapDrawable(bitmap); + mDataBinding.v.setBackground(drawable); + + + } + + @Override + public void onBitmapFailed(Drawable errorDrawable) { + } + + @Override + public void onPrepareLoad(Drawable placeHolderDrawable) { + } + }; + +} diff --git a/app/src/main/res/layout/activity_address_list.xml b/app/src/main/res/layout/activity_address_list.xml index 12f8d9a..559306a 100644 --- a/app/src/main/res/layout/activity_address_list.xml +++ b/app/src/main/res/layout/activity_address_list.xml @@ -55,13 +55,18 @@ android:layout_weight="1" android:background="@color/lighteeeeee" app:srlEnableLoadMore="true" - app:srlEnableLoadMoreWhenContentNotFull="true"> - + app:srlDisableContentWhenLoading="true"> + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_order.xml b/app/src/main/res/layout/activity_order.xml index a326852..503625b 100644 --- a/app/src/main/res/layout/activity_order.xml +++ b/app/src/main/res/layout/activity_order.xml @@ -43,11 +43,16 @@ android:layout_weight="1" android:background="@color/white" app:srlEnableLoadMore="true" - app:srlEnableLoadMoreWhenContentNotFull="true"> - + app:srlDisableContentWhenLoading="true"> + + diff --git a/app/src/main/res/layout/fragment_cart.xml b/app/src/main/res/layout/fragment_cart.xml index 219e620..deb3d29 100644 --- a/app/src/main/res/layout/fragment_cart.xml +++ b/app/src/main/res/layout/fragment_cart.xml @@ -47,7 +47,9 @@ android:layout_weight="1" app:srlEnableLoadMoreWhenContentNotFull="false"> - + - - + android:layout_height="match_parent" + app:srlEnableLoadMore="false" + + + > + - + + diff --git a/app/src/main/res/layout/layout_history_record.xml b/app/src/main/res/layout/layout_history_record.xml new file mode 100644 index 0000000..17e6018 --- /dev/null +++ b/app/src/main/res/layout/layout_history_record.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file