From 7d6e1d8eee1a06422932aae607a31b9fe4bbf4c6 Mon Sep 17 00:00:00 2001 From: jinyuer <454386664@qq.com> Date: Mon, 7 Sep 2020 10:05:06 +0800 Subject: [PATCH 1/5] 1 --- app/build.gradle | 3 ++- app/src/main/AndroidManifest.xml | 2 +- app/src/main/java/com/sl/house_property/MyApplication.java | 2 ++ .../com/sl/house_property/discovery/DiscoveryFragment.java | 6 +++--- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index beacd9a..e0e20f5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -43,7 +43,7 @@ android { ndk { //选择要添加的对应cpu类型的.so库。 - abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a', "x86" + abiFilters 'armeabi-v7a' } } @@ -140,6 +140,7 @@ android { implementation 'liji.library.dev:citypickerview:5.2.2' implementation 'com.zhihu.android:matisse:0.5.2-beta2' + implementation 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.2.0 } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 76bfb42..a6ed6c4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,7 +66,7 @@ im mDataBinding.tvSendComment.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Log.e("click", "comment"); + MainTabActivity activity = (MainTabActivity) getActivity(); CommonUtils.hideSoftInput(getContext(), mDataBinding.etComment); mDataBinding.llComment.setVisibility(View.GONE); @@ -492,7 +492,7 @@ public class DiscoveryFragment extends BaseFragment im if (discoveryListEntity.getPic().size() > 0) { - Log.e("pic", discoveryListEntity.getPic().get(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(); @@ -579,7 +579,7 @@ public class DiscoveryFragment extends BaseFragment im BaseRecycleViewAdapter baseRecycleViewAdapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); baseRecycleViewAdapter.setData(discoveryListEntities); - Log.e("sizi", discoveryListEntities.size() + ""); + // Log.e("sizi", discoveryListEntities.size() + ""); // int count = jsonObject.getInt("count"); if (o.isEmpty()) { mDataBinding.dw.finishLoadMoreWithNoMoreData(); From fdec1db4f4529d0c7eab864f1395415de72bd728 Mon Sep 17 00:00:00 2001 From: jinyuer <454386664@qq.com> Date: Tue, 15 Sep 2020 10:18:52 +0800 Subject: [PATCH 2/5] 1 --- .../com/sl/house_property/Main2Fragment.java | 4 +- .../com/sl/house_property/Main4Fragment.java | 18 + .../discovery/HistoryRecordActivity.java | 133 ++++--- .../discovery/HistoryRecordFragment.java | 325 ++++++++++++++++++ .../house_property/order/OrderActivity.java | 2 +- .../res/layout/fragment_history_record.xml | 80 +++++ app/src/main/res/layout/fragment_main4.xml | 21 ++ .../main/res/layout/layout_history_record.xml | 54 +-- 8 files changed, 548 insertions(+), 89 deletions(-) create mode 100644 app/src/main/java/com/sl/house_property/discovery/HistoryRecordFragment.java create mode 100644 app/src/main/res/layout/fragment_history_record.xml diff --git a/app/src/main/java/com/sl/house_property/Main2Fragment.java b/app/src/main/java/com/sl/house_property/Main2Fragment.java index 4058721..180fe3e 100644 --- a/app/src/main/java/com/sl/house_property/Main2Fragment.java +++ b/app/src/main/java/com/sl/house_property/Main2Fragment.java @@ -90,8 +90,8 @@ public class Main2Fragment extends BaseFragment implements if (context instanceof OnFragmentInteractionListener) { mListener = (OnFragmentInteractionListener) context; } else { - throw new RuntimeException(context.toString() - + " must implement OnFragmentInteractionListener"); +// throw new RuntimeException(context.toString() +// + " must implement OnFragmentInteractionListener"); } } diff --git a/app/src/main/java/com/sl/house_property/Main4Fragment.java b/app/src/main/java/com/sl/house_property/Main4Fragment.java index 4698579..7be61b0 100644 --- a/app/src/main/java/com/sl/house_property/Main4Fragment.java +++ b/app/src/main/java/com/sl/house_property/Main4Fragment.java @@ -218,6 +218,15 @@ public class Main4Fragment extends BaseFragment { startActivityForResult(intent, 0); } }); + mDataBinding.tvOrder7.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), OrderActivity.class); + intent.putExtra("type", 1); + intent.putExtra("orderType", 4); + startActivityForResult(intent, 0); + } + }); mDataBinding.tvOrder4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -245,6 +254,15 @@ public class Main4Fragment extends BaseFragment { startActivityForResult(intent, 0); } }); + mDataBinding.tvOrder8.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), OrderActivity.class); + intent.putExtra("type", 2); + intent.putExtra("orderType", 4); + startActivityForResult(intent, 0); + } + }); } // private void initMyReycyView() { 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 index dc72851..7fe5855 100644 --- a/app/src/main/java/com/sl/house_property/discovery/HistoryRecordActivity.java +++ b/app/src/main/java/com/sl/house_property/discovery/HistoryRecordActivity.java @@ -4,9 +4,12 @@ import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; +import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; import android.support.v7.widget.LinearLayoutManager; import android.util.Log; import android.view.View; @@ -19,9 +22,8 @@ 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.MainFragment; import com.sl.house_property.R; import com.sl.house_property.databinding.ItemCommentBinding; import com.sl.house_property.databinding.ItemDiscoveryBinding; @@ -55,6 +57,8 @@ public class HistoryRecordActivity extends BaseActivity discoveryListEntities = new ArrayList<>(); + private ArrayList fragments; + private String[] strings; @Override protected int getLayoutResId() { @@ -73,60 +77,93 @@ public class HistoryRecordActivity extends BaseActivity(); + fragments.add(HistoryRecordFragment.newInstance(1, userId)); + fragments.add(HistoryRecordFragment.newInstance(2, userId)); + MyViewPagerAdapter myViewPagerAdapter = new MyViewPagerAdapter(getSupportFragmentManager()); + mDataBinding.fl.setAdapter(myViewPagerAdapter); + mDataBinding.tb.setupWithViewPager(mDataBinding.fl); +// 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(); } + + class MyViewPagerAdapter extends FragmentPagerAdapter { + public MyViewPagerAdapter(FragmentManager fm) { + super(fm); + } + + @Override + public Fragment getItem(int position) { + return fragments.get(position); + } + + + @Override + public int getCount() { + return fragments.size(); + } + + @Override + public CharSequence getPageTitle(int position) { + return strings[position]; + + } + } + private void intRecycleView() { diff --git a/app/src/main/java/com/sl/house_property/discovery/HistoryRecordFragment.java b/app/src/main/java/com/sl/house_property/discovery/HistoryRecordFragment.java new file mode 100644 index 0000000..9a1bdbf --- /dev/null +++ b/app/src/main/java/com/sl/house_property/discovery/HistoryRecordFragment.java @@ -0,0 +1,325 @@ +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 android.widget.Toast; + +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.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.BaseFragment; +import com.sl.house_property.Main2Fragment; +import com.sl.house_property.R; +import com.sl.house_property.databinding.FragmentHistoryRecordBinding; +import com.sl.house_property.databinding.ItemCommentBinding; +import com.sl.house_property.databinding.ItemDiscoveryBinding; +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 HistoryRecordFragment extends BaseFragment { + 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 getLayoutId() { + return R.layout.fragment_history_record; + } + + public static HistoryRecordFragment newInstance(int param1, String param2) { + HistoryRecordFragment fragment = new HistoryRecordFragment(); + Bundle args = new Bundle(); + args.putInt("param1", param1); + args.putString("param2", param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + type = getArguments().getInt("param1"); + userId = getArguments().getString("param2"); + } + + @Override + protected void loadData() { + + + context = getContext(); + loader = new Loader(); + 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)) { + Toast.makeText(context, resultcode.msg, Toast.LENGTH_SHORT).show(); + } + 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(); + Toast.makeText(context, getString(R.string.getdatafailure), Toast.LENGTH_SHORT).show(); + throwable.printStackTrace(); + } + }); + + } + + 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/java/com/sl/house_property/order/OrderActivity.java b/app/src/main/java/com/sl/house_property/order/OrderActivity.java index c9f67bd..ea294ef 100644 --- a/app/src/main/java/com/sl/house_property/order/OrderActivity.java +++ b/app/src/main/java/com/sl/house_property/order/OrderActivity.java @@ -103,7 +103,7 @@ public class OrderActivity extends BaseActivity { } else if (orderType == 3) { mDataBinding.tvTitle.setText("待收货"); } else if (orderType == 4) { - mDataBinding.tvTitle.setText("待评价"); + mDataBinding.tvTitle.setText("已完成"); } } diff --git a/app/src/main/res/layout/fragment_history_record.xml b/app/src/main/res/layout/fragment_history_record.xml new file mode 100644 index 0000000..6b5b54b --- /dev/null +++ b/app/src/main/res/layout/fragment_history_record.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main4.xml b/app/src/main/res/layout/fragment_main4.xml index 89233f5..eb9dd6c 100644 --- a/app/src/main/res/layout/fragment_main4.xml +++ b/app/src/main/res/layout/fragment_main4.xml @@ -354,6 +354,17 @@ android:drawablePadding="8dp" android:gravity="center_horizontal" android:text="待收货" /> + + @@ -422,6 +433,16 @@ android:drawablePadding="8dp" android:gravity="center_horizontal" android:text="待收货" /> + diff --git a/app/src/main/res/layout/layout_history_record.xml b/app/src/main/res/layout/layout_history_record.xml index 17e6018..8f981c5 100644 --- a/app/src/main/res/layout/layout_history_record.xml +++ b/app/src/main/res/layout/layout_history_record.xml @@ -7,7 +7,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - - + android:layout_centerHorizontal="true" + android:gravity="center_horizontal" /> - + - + android:layout_height="match_parent" + android:background="@color/white"> - - - - + Date: Thu, 17 Sep 2020 17:21:32 +0800 Subject: [PATCH 3/5] 1 --- app/src/main/AndroidManifest.xml | 1 + .../sl/house_property/BindHouseDialog.java | 361 ++++++++++++++++++ .../EntranceguardControl2Activity.java | 24 +- .../com/sl/house_property/MainFragment.java | 152 +++++++- .../sl/house_property/RegisterActivity.java | 101 ++--- .../discovery/ShareCodeActivity.java | 319 ++++++++++++++++ .../discovery/ShareCodeDialog.java | 67 ++++ app/src/main/java/utils/MyPhoneValue.java | 3 + app/src/main/java/utils/QRCodeUtil.java | 9 +- .../activity_entranceguard_control2.xml | 194 ++++++---- app/src/main/res/layout/dialog_bind_house.xml | 244 ++++++++++++ app/src/main/res/layout/dialog_share_cede.xml | 89 +++++ app/src/main/res/layout/fragment_main.xml | 10 +- 13 files changed, 1436 insertions(+), 138 deletions(-) create mode 100644 app/src/main/java/com/sl/house_property/BindHouseDialog.java create mode 100644 app/src/main/java/com/sl/house_property/discovery/ShareCodeActivity.java create mode 100644 app/src/main/java/com/sl/house_property/discovery/ShareCodeDialog.java create mode 100644 app/src/main/res/layout/dialog_bind_house.xml create mode 100644 app/src/main/res/layout/dialog_share_cede.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a6ed6c4..91ac3d3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -298,6 +298,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/sl/house_property/BindHouseDialog.java b/app/src/main/java/com/sl/house_property/BindHouseDialog.java new file mode 100644 index 0000000..1d88e65 --- /dev/null +++ b/app/src/main/java/com/sl/house_property/BindHouseDialog.java @@ -0,0 +1,361 @@ +package com.sl.house_property; + +import android.app.ProgressDialog; +import android.content.Context; +import android.support.annotation.NonNull; +import android.text.TextUtils; +import android.view.Gravity; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +import com.google.gson.Gson; +import com.google.gson.internal.LinkedTreeMap; +import com.google.gson.reflect.TypeToken; +import com.lxj.xpopup.core.CenterPopupView; +import com.selectpicker.OptionsPopupWindow; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import entity.MyHomequEntity; +import http.ApiConfig; +import my_loader.Loader; +import my_loader.Resultcode; +import rx.functions.Action1; +import utils.Md5; + +public class BindHouseDialog extends CenterPopupView { + + private TextView tvQu; + private TextView tvLou; + private TextView tvDan; + private TextView tvFang; + private EditText etName; + private EditText etCardNumber; + private String userId = ""; + Loader mGankLoader = new Loader(); + public ProgressDialog progressDialog; + private MyHomequEntity mQu = null; + private MyHomequEntity mLou = null; + private MyHomequEntity mDan = null; + private MyHomequEntity mFang = null; + private OnBindHouseListener listener; + + public void setUserId(String userId) { + this.userId = userId; + } + + public BindHouseDialog(@NonNull Context context) { + super(context); + } + + @Override + protected int getImplLayoutId() { + return R.layout.dialog_bind_house; + } + + @Override + protected void onCreate() { + super.onCreate(); + progressDialog = new ProgressDialog(getContext()); + tvQu = findViewById(R.id.tv_qu); + tvLou = findViewById(R.id.lou); + tvDan = findViewById(R.id.dan); + tvFang = findViewById(R.id.fang); + etName = findViewById(R.id.et_name); + etCardNumber = findViewById(R.id.et_cardNumber); + findViewById(R.id.ll_qu).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + + Map map = new HashMap<>(); + map.put("userid", userId); + map.put("app", "Trend"); + map.put("class", "GetHomeByPid"); + //map.put("home_id", "GetHomeByPid"); + map.put("sign", Md5.md5("Trend" + "GetHomeByPid" + Md5.secret)); + getGankList(ApiConfig.BASE_URL, map, 1); + } + }); + findViewById(R.id.ll_lou).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (mQu == null) { + Toast.makeText(getContext(), "请选择小区", Toast.LENGTH_SHORT).show(); + return; + } + Map map = new HashMap<>(); + map.put("userid", userId); + map.put("app", "Trend"); + map.put("class", "GetHomeByPid"); + map.put("home_id", mQu.getHome_id()); + //map.put("home_id", "GetHomeByPid"); + map.put("sign", Md5.md5("Trend" + "GetHomeByPid" + Md5.secret)); + getGankList(ApiConfig.BASE_URL, map, 2); + + + } + }); + findViewById(R.id.ll_dan).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (mQu == null) { + Toast.makeText(getContext(), "请选择小区", Toast.LENGTH_SHORT).show(); + return; + } + if (mLou == null) { + Toast.makeText(getContext(), "请选择楼号", Toast.LENGTH_SHORT).show(); + return; + } + Map map = new HashMap<>(); + map.put("userid", userId); + map.put("app", "Trend"); + map.put("class", "GetHomeByPid"); + map.put("home_id", mLou.getHome_id()); + //map.put("home_id", "GetHomeByPid"); + map.put("sign", Md5.md5("Trend" + "GetHomeByPid" + Md5.secret)); + getGankList(ApiConfig.BASE_URL, map, 3); + } + }); + findViewById(R.id.ll_fang).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (mQu == null) { + Toast.makeText(getContext(), "请选择小区", Toast.LENGTH_SHORT).show(); + return; + } + if (mLou == null) { + Toast.makeText(getContext(), "请选择楼号", Toast.LENGTH_SHORT).show(); + return; + } + if (mDan == null) { + Toast.makeText(getContext(), "请选择单元", Toast.LENGTH_SHORT).show(); + return; + } + Map map = new HashMap<>(); + map.put("userid", userId); + map.put("app", "Trend"); + map.put("class", "GetHomeByPid"); + map.put("home_id", mDan.getHome_id()); + //map.put("home_id", "GetHomeByPid"); + map.put("sign", Md5.md5("Trend" + "GetHomeByPid" + Md5.secret)); + getGankList(ApiConfig.BASE_URL, map, 4); + } + }); + findViewById(R.id.tv_submit).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (mQu == null) { + Toast.makeText(getContext(), "请选择小区", Toast.LENGTH_SHORT).show(); + return; + } + if (mLou == null) { + Toast.makeText(getContext(), "请选择楼号", Toast.LENGTH_SHORT).show(); + return; + } + if (mDan == null) { + Toast.makeText(getContext(), "请选择单元", Toast.LENGTH_SHORT).show(); + return; + } + if (mFang == null) { + Toast.makeText(getContext(), "请选择单元", Toast.LENGTH_SHORT).show(); + return; + } + String name = etName.getText().toString().trim(); + if (TextUtils.isEmpty(name)) { + Toast.makeText(getContext(), "请输入户主姓名", Toast.LENGTH_SHORT).show(); + return; + } + String cardNumber = etCardNumber.getText().toString().trim(); + if (TextUtils.isEmpty(cardNumber)) { + Toast.makeText(getContext(), "请输入身份证号", Toast.LENGTH_SHORT).show(); + return; + } + Map map = new HashMap<>(); + map.put("userid", userId); + map.put("app", "Cas"); + map.put("class", "AddMyHouse"); + map.put("home_id", mFang.getHome_id()); + map.put("relname", name); + map.put("idcard", cardNumber); + //map.put("home_id", "GetHomeByPid"); + map.put("sign", Md5.md5("Cas" + "AddMyHouse" + Md5.secret)); + getGankList(ApiConfig.BASE_URL, map, 5); + } + }); + findViewById(R.id.tv_cancel).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + dismiss(); + } + }); + + } + + private void getGankList(String myurl, Map map, final int requstecode) { + mGankLoader.getMovie(myurl, map).subscribe(new Action1() { + @Override + public void call(Resultcode resultcode) { + progressDialog.dismiss(); + + if (!(resultcode.status == 0)) { + Toast.makeText(getContext(), resultcode.msg, Toast.LENGTH_SHORT).show(); + } + if (resultcode.status == 0) { + if (requstecode == 1) { + //选择区 + Gson gs = new Gson(); + ArrayList adta = (ArrayList) resultcode.data; + String s = gs.toJson(adta); + //final ArrayList list = null; + Type type = new TypeToken>() { + }.getType(); + final ArrayList list = new Gson().fromJson(s, type); + final ArrayList strings = new ArrayList<>(); + + + for (int i = 0; i < list.size(); i++) { + strings.add(list.get(i).getHome_name()); + } + OptionsPopupWindow alarmOptionPop = new OptionsPopupWindow(getContext()); + alarmOptionPop.setPicker(strings); + + alarmOptionPop.setOnoptionsSelectListener(new OptionsPopupWindow.OnOptionsSelectListener() { + @Override + public void onOptionsSelect(int position, int option2, int options3) { + mQu = list.get(position); + tvQu.setText(mQu.getHome_name()); + mLou = null; + tvLou.setText("请选择楼号"); + mDan = null; + tvDan.setText("请选择单元"); + mFang = null; + tvFang.setText("请选择房号"); + } + }); + + alarmOptionPop.showAtLocation(getRootView(), Gravity.BOTTOM, 0, 0); + + } else if (requstecode == 2) { + //选择楼 + Gson gs = new Gson(); + ArrayList adta = (ArrayList) resultcode.data; + String s = gs.toJson(adta); + //final ArrayList list = null; + Type type = new TypeToken>() { + }.getType(); + final ArrayList list = new Gson().fromJson(s, type); + final ArrayList strings = new ArrayList<>(); + + + for (int i = 0; i < list.size(); i++) { + strings.add(list.get(i).getHome_name()); + } + OptionsPopupWindow alarmOptionPop = new OptionsPopupWindow(getContext()); + alarmOptionPop.setPicker(strings); + + alarmOptionPop.setOnoptionsSelectListener(new OptionsPopupWindow.OnOptionsSelectListener() { + @Override + public void onOptionsSelect(int position, int option2, int options3) { + mLou = list.get(position); + tvLou.setText(mLou.getHome_name()); + + mDan = null; + tvDan.setText("请选择单元"); + mFang = null; + tvFang.setText("请选择房号"); + } + }); + + alarmOptionPop.showAtLocation(getRootView(), Gravity.BOTTOM, 0, 0); + } else if (requstecode == 3) { + //选择单元 + Gson gs = new Gson(); + ArrayList adta = (ArrayList) resultcode.data; + String s = gs.toJson(adta); + //final ArrayList list = null; + Type type = new TypeToken>() { + }.getType(); + final ArrayList list = new Gson().fromJson(s, type); + final ArrayList strings = new ArrayList<>(); + + + for (int i = 0; i < list.size(); i++) { + strings.add(list.get(i).getHome_name()); + } + OptionsPopupWindow alarmOptionPop = new OptionsPopupWindow(getContext()); + alarmOptionPop.setPicker(strings); + + alarmOptionPop.setOnoptionsSelectListener(new OptionsPopupWindow.OnOptionsSelectListener() { + @Override + public void onOptionsSelect(int position, int option2, int options3) { + mDan = list.get(position); + tvDan.setText(mDan.getHome_name()); + + mFang = null; + tvFang.setText("请选择房号"); + } + }); + + alarmOptionPop.showAtLocation(getRootView(), Gravity.BOTTOM, 0, 0); + } else if (requstecode == 4) { + //选择房号 + Gson gs = new Gson(); + ArrayList adta = (ArrayList) resultcode.data; + String s = gs.toJson(adta); + //final ArrayList list = null; + Type type = new TypeToken>() { + }.getType(); + final ArrayList list = new Gson().fromJson(s, type); + final ArrayList strings = new ArrayList<>(); + + + for (int i = 0; i < list.size(); i++) { + strings.add(list.get(i).getHome_name()); + } + OptionsPopupWindow alarmOptionPop = new OptionsPopupWindow(getContext()); + alarmOptionPop.setPicker(strings); + + alarmOptionPop.setOnoptionsSelectListener(new OptionsPopupWindow.OnOptionsSelectListener() { + @Override + public void onOptionsSelect(int position, int option2, int options3) { + mFang = list.get(position); + tvFang.setText(mFang.getHome_name()); + } + }); + + alarmOptionPop.showAtLocation(getRootView(), Gravity.BOTTOM, 0, 0); + } else if (requstecode == 5) { + if (listener != null) { + listener.onSubmit(); + dismiss(); + } + } + + } + + } + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + Toast.makeText(getContext(), getContext().getString(R.string.getdatafailure), Toast.LENGTH_SHORT).show(); + // setToast(getString(R.string.getdatafailure)); + throwable.printStackTrace(); + } + }); + } + + public void setOnBindHouseListener(OnBindHouseListener listener) { + this.listener = listener; + } + + interface OnBindHouseListener { + void onSubmit(); + } + +} diff --git a/app/src/main/java/com/sl/house_property/EntranceguardControl2Activity.java b/app/src/main/java/com/sl/house_property/EntranceguardControl2Activity.java index 0c61a8a..d0d2d35 100644 --- a/app/src/main/java/com/sl/house_property/EntranceguardControl2Activity.java +++ b/app/src/main/java/com/sl/house_property/EntranceguardControl2Activity.java @@ -71,18 +71,18 @@ public class EntranceguardControl2Activity extends BaseActivity) getIntent().getSerializableExtra("list"); - for (int i = 0; i implements V } } + private ArrayList list; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -139,6 +149,92 @@ public class MainFragment extends BaseFragment implements V mParam2 = getArguments().getString(ARG_PARAM2); } + + } + + private void getGankList(final String myurl, Map map, String string, final int getcode1) { + progressDialog = new ProgressDialog(getContext()); + progressDialog.setMessage(string); + + //map.put("") + progressDialog.setCancelable(false); + progressDialog.show(); + mDataBinding.getRoot().postDelayed(new Runnable() { + @Override + public void run() { + progressDialog.dismiss(); + //setToast(1, getString(R.string.timeout)); + } + }, 13000); + mGankLoader = new Loader(); + /* Map map=new HashMap(); + map.put("phone");*/ + mGankLoader.getMovie(myurl, map).subscribe(new Action1() { + @Override + public void call(Resultcode resultcode) { + progressDialog.dismiss(); + //setToast(0,resultcode.status); + if ((!(resultcode.status == 0))) { + Toast.makeText(getContext(), resultcode.msg, Toast.LENGTH_SHORT).show(); + return; + } + switch (getcode1) { + + case 0: + Gson gs = new Gson(); + LinkedTreeMap adta = (LinkedTreeMap) resultcode.data; + String s = gs.toJson(adta); + try { + JSONObject jsonObject = new JSONObject(s); + JSONArray jsonArray = jsonObject.getJSONArray("home"); + Type type = new TypeToken>() { + }.getType(); + list = new Gson().fromJson(jsonArray.toString(), type); + if (list == null || list.isEmpty()) { + return; + } + final ArrayList strings = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + strings.add(list.get(i).getAddress()); + } + OptionsPopupWindow alarmOptionPop = new OptionsPopupWindow(getContext()); + alarmOptionPop.setPicker(strings); + + alarmOptionPop.setOnoptionsSelectListener(new OptionsPopupWindow.OnOptionsSelectListener() { + @Override + public void onOptionsSelect(int position, int option2, int options3) { + if (list.size() > 0) { + mDataBinding.tv1Address.setText(list.get(position).getAddress()); + } + + } + }); + + alarmOptionPop.showAtLocation(mDataBinding.getRoot(), Gravity.BOTTOM, 0, 0); + } catch (JSONException e) { + e.printStackTrace(); + } + + + break; + + } + + } + + + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + // + Toast.makeText(getContext(), getString(R.string.getdatafailure), Toast.LENGTH_SHORT).show(); + + throwable.printStackTrace(); + } + }); + + } @Override @@ -180,6 +276,45 @@ public class MainFragment extends BaseFragment implements V bannerLP.width = ScreenUtils.getScreenWidth(); banner.setLayoutParams(bannerLP); mDataBinding.taobaoRefreshLayout.autoRefresh(); + mDataBinding.tv1Address.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (list == null || list.isEmpty()) { + Map map = new HashMap<>(); + RegisterUser registerUser = Config.getInstance(getContext()).getUser(); + if (registerUser != null) { + map.put("userid", registerUser.getUserid()); + } else { + map.put("userid", 0 + ""); + } + + map.put("sign", Md5.md5("Cas" + "GetMyAddress" + Md5.secret)); + map.put("app", "Cas"); + map.put("class", "GetMyAddress"); + getGankList(ApiConfig.BASE_URL, map, "", 0); + return; + } + final ArrayList strings = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + strings.add(list.get(i).getAddress()); + } + OptionsPopupWindow alarmOptionPop = new OptionsPopupWindow(getContext()); + alarmOptionPop.setPicker(strings); + + alarmOptionPop.setOnoptionsSelectListener(new OptionsPopupWindow.OnOptionsSelectListener() { + @Override + public void onOptionsSelect(int position, int option2, int options3) { + if (list.size() > 0) { + mDataBinding.tv1Address.setText(list.get(position).getAddress()); + } + + } + }); + + alarmOptionPop.showAtLocation(mDataBinding.getRoot(), Gravity.BOTTOM, 0, 0); + + } + }); } // TODO: Rename method, update argument and hook method into UI event @@ -232,7 +367,7 @@ public class MainFragment extends BaseFragment implements V if ((Config.getInstance(MainFragment.this.getContext()).getUser() == null)) { intent = new Intent(MainFragment.this.getContext(), LoginActivity.class); } else { - intent = new Intent(getActivity(), EntranceguardActivity.class); + intent = new Intent(getActivity(), ShareCodeActivity.class); } startActivity(intent); break; @@ -440,7 +575,6 @@ public class MainFragment extends BaseFragment implements V } - }; diff --git a/app/src/main/java/com/sl/house_property/RegisterActivity.java b/app/src/main/java/com/sl/house_property/RegisterActivity.java index b136118..e731c55 100644 --- a/app/src/main/java/com/sl/house_property/RegisterActivity.java +++ b/app/src/main/java/com/sl/house_property/RegisterActivity.java @@ -5,11 +5,12 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; -import android.view.Gravity; import android.view.View; -import android.widget.Toast; import com.cutil.RegexUtils; +import com.google.gson.Gson; +import com.google.gson.internal.LinkedTreeMap; +import com.lxj.xpopup.XPopup; import com.sl.house_property.databinding.ActivityRegisterBinding; import java.util.HashMap; @@ -17,9 +18,10 @@ import java.util.Map; import java.util.Timer; import java.util.TimerTask; +import entity.RegisterUser; +import http.ApiConfig; import my_loader.Loader; import my_loader.Resultcode; -import http.ApiConfig; import rx.Subscription; import rx.functions.Action1; import utils.Md5; @@ -30,7 +32,6 @@ public class RegisterActivity extends BaseActivity impl private Loader mGankLoader; - @Override protected int getLayoutResId() { return R.layout.activity_register; @@ -39,14 +40,14 @@ public class RegisterActivity extends BaseActivity impl @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - progressDialog=new ProgressDialog(RegisterActivity.this); + progressDialog = new ProgressDialog(RegisterActivity.this); setAbr(getString(R.string.register), new View.OnClickListener() { @Override public void onClick(View view) { finish(); } - },0,null,0,null,0,null,""); + }, 0, null, 0, null, 0, null, ""); mDataBinding.getcode.setOnClickListener(this); mDataBinding.register.setOnClickListener(this); @@ -54,37 +55,37 @@ public class RegisterActivity extends BaseActivity impl @Override public void onClick(View view) { - switch (view.getId()){ + switch (view.getId()) { - case R.id.getcode: - if(mDataBinding.registerphone.getText().toString().length()<1){ + case R.id.getcode: + if (mDataBinding.registerphone.getText().toString().length() < 1) { setToast(getString(R.string.me_input_phone_tip)); return; } - if(!RegexUtils.isMobileExact(mDataBinding.registerphone.getText().toString())){ + if (!RegexUtils.isMobileExact(mDataBinding.registerphone.getText().toString())) { setToast(getString(R.string.me_input_phone_error_tip)); return; } getMesgCode(R.id.getcode); break; - case R.id.register: - if(mDataBinding.registerphone.getText().toString().length()==0){ + case R.id.register: + if (mDataBinding.registerphone.getText().toString().length() == 0) { setToast(getString(R.string.me_input_phone_tip)); return; } - if(!RegexUtils.isMobileExact(mDataBinding.registerphone.getText().toString())){ + if (!RegexUtils.isMobileExact(mDataBinding.registerphone.getText().toString())) { setToast(getString(R.string.me_input_phone_error_tip)); return; } - if(mDataBinding.logincode.getText().toString().length()<1){ + if (mDataBinding.logincode.getText().toString().length() < 1) { setToast(getString(R.string.me_input_verification_tip)); return; } - String password = mDataBinding.editpaw.getText().toString(); - if(password.length()<1){ + String password = mDataBinding.editpaw.getText().toString(); + if (password.length() < 1) { setToast(getString(R.string.me_input_password_tip)); return; } @@ -93,24 +94,24 @@ public class RegisterActivity extends BaseActivity impl // // return; // } - if(!tools.RegexUtils.checkPassword(password)){ + if (!tools.RegexUtils.checkPassword(password)) { setToast(getString(R.string.me_input_password_fail_tip)); return; } String againPassword = mDataBinding.editagainpaw.getText().toString().trim(); - if(againPassword.length()<1){ + if (againPassword.length() < 1) { setToast(getString(R.string.me_input_again_password_tip)); return; } - if(!mDataBinding.editpaw.getText().toString().trim().equals(mDataBinding.editagainpaw.getText().toString().trim())){ + if (!mDataBinding.editpaw.getText().toString().trim().equals(mDataBinding.editagainpaw.getText().toString().trim())) { setToast(getString(R.string.me_password_Inconsistent_tip)); return; } - if(!mDataBinding.agreewhitemeg.isChecked()){ + if (!mDataBinding.agreewhitemeg.isChecked()) { setToast("请先同意注册协议"); return; @@ -122,14 +123,14 @@ public class RegisterActivity extends BaseActivity impl } private void register(int id) { - Map map=new HashMap<>(); - map.put("phone",mDataBinding.registerphone.getText().toString().trim()); - map.put("password",mDataBinding.editpaw.getText().toString().trim()); - map.put("code",mDataBinding.logincode.getText().toString().trim()); - map.put("sign", Md5.md5("Cas"+"UserReg"+Md5.secret)); + Map map = new HashMap<>(); + map.put("phone", mDataBinding.registerphone.getText().toString().trim()); + map.put("password", mDataBinding.editpaw.getText().toString().trim()); + map.put("code", mDataBinding.logincode.getText().toString().trim()); + map.put("sign", Md5.md5("Cas" + "UserReg" + Md5.secret)); map.put("app", "Cas"); map.put("class", "UserReg"); - getGankList(ApiConfig.BASE_URL,map, getResources().getString(R.string.registering),id); + getGankList(ApiConfig.BASE_URL, map, getResources().getString(R.string.registering), id); } @@ -139,13 +140,13 @@ public class RegisterActivity extends BaseActivity impl /* getRegisterCode.setTextColor(getResources().getColor(R.color.regitergrey));*/ mDataBinding.getcode.setClickable(false); - Map map=new HashMap<>(); - map.put("sendto",mDataBinding.registerphone.getText().toString().trim()); - map.put("action","register"); - map.put("sign", Md5.md5("Cas"+"SendCode"+Md5.secret)); + Map map = new HashMap<>(); + map.put("sendto", mDataBinding.registerphone.getText().toString().trim()); + map.put("action", "register"); + map.put("sign", Md5.md5("Cas" + "SendCode" + Md5.secret)); map.put("app", "Cas"); map.put("class", "SendCode"); - getGankList(ApiConfig.BASE_URL,map, getResources().getString(R.string.getthecodenow),id); + getGankList(ApiConfig.BASE_URL, map, getResources().getString(R.string.getthecodenow), id); // map = new HashMap(); // map.put("telephone", editPhoneNo.getText().toString().trim()); // getAsyTask(1, map, HttpUrl.registerUser(), "正在获取验证码", HttpNet.PROGRESSVISIBLE, HttpNet.POSTTYPE);//联网 @@ -164,34 +165,43 @@ public class RegisterActivity extends BaseActivity impl progressDialog.dismiss(); //setToast(1, getString(R.string.timeout)); } - },13000); - mGankLoader = new Loader(); + }, 13000); + mGankLoader = new Loader(); /* Map map=new HashMap(); map.put("phone");*/ - Subscription subscription = mGankLoader.getMovie(myurl,map).subscribe(new Action1() { + Subscription subscription = mGankLoader.getMovie(myurl, map).subscribe(new Action1() { @Override public void call(Resultcode resultcode) { progressDialog.dismiss(); //setToast(0,resultcode.status); - if((!(resultcode.status==0))){ - setToast( resultcode.msg); + if ((!(resultcode.status == 0))) { + setToast(resultcode.msg); mDataBinding.getcode.setClickable(true); return; } switch (getcode1) { - case R.id.getcode: - setToast( getString(R.string.megissucess)); - startTimer(); + case R.id.getcode: + setToast(getString(R.string.megissucess)); + startTimer(); break; case R.id.register: - setToast( getString(R.string.registersucess)); - mDataBinding.getRoot().postDelayed(new Runnable() { + setToast(getString(R.string.registersucess)); + Gson gs = new Gson(); + LinkedTreeMap adta = (LinkedTreeMap) resultcode.data; + String s = gs.toJson(adta); + RegisterUser user = gs.fromJson(s, RegisterUser.class);//把JSON字符串转为对象 + BindHouseDialog bindHouseDialog = new BindHouseDialog(RegisterActivity.this); + bindHouseDialog.setUserId(user.getUserid()); + bindHouseDialog.setOnBindHouseListener(new BindHouseDialog.OnBindHouseListener() { @Override - public void run() { + public void onSubmit() { + + setToast("提交成功"); finish(); } - },1500); + }); + new XPopup.Builder(RegisterActivity.this).asCustom(bindHouseDialog).show(); break; @@ -213,7 +223,7 @@ public class RegisterActivity extends BaseActivity impl addSubscription(subscription); } - private void startTimer(){ + private void startTimer() { final Timer timer = new Timer(); final Handler handler = new Handler() { @Override @@ -249,9 +259,10 @@ public class RegisterActivity extends BaseActivity impl /** * 用户协议 + * * @param v v */ - public void agreementEvent(View v){ + public void agreementEvent(View v) { Intent intent = new Intent(this, RegisterAgreementActivity.class); startActivity(intent); } diff --git a/app/src/main/java/com/sl/house_property/discovery/ShareCodeActivity.java b/app/src/main/java/com/sl/house_property/discovery/ShareCodeActivity.java new file mode 100644 index 0000000..18e18a5 --- /dev/null +++ b/app/src/main/java/com/sl/house_property/discovery/ShareCodeActivity.java @@ -0,0 +1,319 @@ +package com.sl.house_property.discovery; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.text.TextUtils; +import android.view.Gravity; +import android.view.View; +import android.widget.RadioGroup; + +import com.google.gson.Gson; +import com.google.gson.internal.LinkedTreeMap; +import com.google.gson.reflect.TypeToken; +import com.lxj.xpopup.XPopup; +import com.selectpicker.OptionsPopupWindow; +import com.sl.house_property.BaseActivity; +import com.sl.house_property.R; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import entity.HomelistitemEntity; +import entity.RegisterUser; +import http.ApiConfig; +import my_loader.Loader; +import my_loader.Resultcode; +import rx.Subscription; +import rx.functions.Action1; +import tools.Config; +import utils.Md5; + +public class ShareCodeActivity extends BaseActivity { + + private String user_home_id; + + @Override + protected int getLayoutResId() { + return R.layout.activity_entranceguard_control2; + } + + private int timeday = 7; + private OptionsPopupWindow alarmOptionPop; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setAbr("授权访客临时门禁", new View.OnClickListener() { + @Override + public void onClick(View view) { + finish(); + } + }, 0, null, 0, null, 0, null, ""); + Map map = new HashMap<>(); + RegisterUser registerUser = Config.getInstance(ShareCodeActivity.this).getUser(); + if (registerUser != null) { + map.put("userid", registerUser.getUserid()); + } else { + map.put("userid", 0 + ""); + } + + map.put("sign", Md5.md5("Cas" + "GetMyAddress" + Md5.secret)); + map.put("app", "Cas"); + map.put("class", "GetMyAddress"); + getGankList(ApiConfig.BASE_URL, map, "", 0); + + + mDataBinding.myradio2.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(RadioGroup radioGroup, int i) { + if (i == R.id.myradio21) { + timeday = 7; + } + if (i == R.id.myradio22) { + timeday = 30; + } + if (i == R.id.myradio23) { + timeday = 90; + } + } + }); + + mDataBinding.llAddress.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (list==null||list.isEmpty()){ + Map map = new HashMap<>(); + RegisterUser registerUser = Config.getInstance(ShareCodeActivity.this).getUser(); + if (registerUser != null) { + map.put("userid", registerUser.getUserid()); + } else { + map.put("userid", 0 + ""); + } + + map.put("sign", Md5.md5("Cas" + "GetMyAddress" + Md5.secret)); + map.put("app", "Cas"); + map.put("class", "GetMyAddress"); + getGankList(ApiConfig.BASE_URL, map, "", 0); + return; + } + final ArrayList strings = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + strings.add(list.get(i).getAddress()); + } + alarmOptionPop = new OptionsPopupWindow(ShareCodeActivity.this); + alarmOptionPop.setPicker(strings); + + alarmOptionPop.setOnoptionsSelectListener(new OptionsPopupWindow.OnOptionsSelectListener() { + @Override + public void onOptionsSelect(int position, int option2, int options3) { + user_home_id = list.get(position).getUser_home_id(); + if (list.size() > 0) { + mDataBinding.tvAddress.setText(list.get(position).getAddress()); + } + + } + }); + + alarmOptionPop.showAtLocation(mDataBinding.getRoot(), Gravity.BOTTOM, 0, 0); + } + }); + mDataBinding.confirm.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (list == null || list.isEmpty()) { + setToast("还没有房间"); + return; + } + + String phone = mDataBinding.telephone.getText().toString().trim(); + if (TextUtils.isEmpty(phone)) { + setToast("请输入访客手机号"); + return; + } + hideKeyboard(mDataBinding.telephone); + + getPwd(); + } + + }); + + + } + + private ArrayList list; + private Loader mGankLoader; + + private void getGankList(final String myurl, Map map, String string, final int getcode1) { + progressDialog.setMessage(string); + + //map.put("") + progressDialog.setCancelable(false); + progressDialog.show(); + mDataBinding.getRoot().postDelayed(new Runnable() { + @Override + public void run() { + progressDialog.dismiss(); + //setToast(1, getString(R.string.timeout)); + } + }, 13000); + mGankLoader = new Loader(); + /* Map map=new HashMap(); + map.put("phone");*/ + Subscription subscription = mGankLoader.getMovie(myurl, map).subscribe(new Action1() { + @Override + public void call(Resultcode resultcode) { + progressDialog.dismiss(); + //setToast(0,resultcode.status); + if ((!(resultcode.status == 0))) { + setToast(1, resultcode.msg); + return; + } + switch (getcode1) { + + case 0: + Gson gs = new Gson(); + LinkedTreeMap adta = (LinkedTreeMap) resultcode.data; + String s = gs.toJson(adta); + try { + JSONObject jsonObject = new JSONObject(s); + JSONArray jsonArray = jsonObject.getJSONArray("home"); + Type type = new TypeToken>() { + }.getType(); + list = new Gson().fromJson(jsonArray.toString(), type); + if (list != null && !list.isEmpty()) { + mDataBinding.tvAddress.setText(list.get(0).getAddress()); + user_home_id = list.get(0).getUser_home_id(); + } + } catch (JSONException e) { + e.printStackTrace(); + } + + + break; + + } + + } + + + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + setToast(2, getString(R.string.getdatafailure)); + throwable.printStackTrace(); + } + }); + + addSubscription(subscription); + } + + private void getPwd() { + Map map = new HashMap<>(); + RegisterUser registerUser = Config.getInstance(ShareCodeActivity.this).getUser(); + if (registerUser != null) { + map.put("userid", registerUser.getUserid()); + } else { + map.put("userid", 0 + ""); + } + + map.put("sign", Md5.md5("Door" + "SendCustomerCode" + Md5.secret)); + map.put("app", "Door"); + map.put("class", "SendCustomerCode"); + map.put("type", "qrcode"); + map.put("validity_time", timeday + ""); + + //map.put("phone", mDataBinding.telephone.getText().toString().trim()); + // map.put("validity_time", mDataBinding.daytiems.getText().toString().trim()); + map.put("user_home_id", user_home_id); + progressDialog.show(); + Subscription subscribe = mGankLoader.getMovie(ApiConfig.BASE_URL, map).subscribe(new Action1() { + @Override + public void call(Resultcode resultcode) { + if ((!(resultcode.status == 0))) { + setToast(1, resultcode.msg); + return; + } + Gson gs = new Gson(); + LinkedTreeMap adta = (LinkedTreeMap) resultcode.data; + String s = gs.toJson(adta); + try { + JSONObject jsonArray = new JSONObject(s); + String qrcode = jsonArray.optString("qrcode", ""); + getCode(qrcode); + } catch (JSONException e) { + e.printStackTrace(); + } + + + } + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + setToast(2, getString(R.string.getdatafailure)); + throwable.printStackTrace(); + } + }); + addSubscription(subscribe); + // getGankList(ApiConfig.BASE_URL, map, getResources().getString(R.string.requsting), 0); + } + + private void getCode(final String code) { + Map map = new HashMap<>(); + RegisterUser registerUser = Config.getInstance(ShareCodeActivity.this).getUser(); + if (registerUser != null) { + map.put("userid", registerUser.getUserid()); + } else { + map.put("userid", 0 + ""); + } + map.put("sign", Md5.md5("Door" + "SendCustomerCode" + Md5.secret)); + map.put("app", "Door"); + map.put("class", "SendCustomerCode"); + map.put("type", "password"); + map.put("phone", mDataBinding.telephone.getText().toString().trim()); + // map.put("validity_time", mDataBinding.daytiems.getText().toString().trim()); + map.put("user_home_id", user_home_id); + Subscription subscribe = mGankLoader.getMovie(ApiConfig.BASE_URL, map).subscribe(new Action1() { + @Override + public void call(Resultcode resultcode) { + progressDialog.dismiss(); + if ((!(resultcode.status == 0))) { + setToast(1, resultcode.msg); + return; + } + setToast(0, resultcode.msg); + Gson gs = new Gson(); + LinkedTreeMap adta = (LinkedTreeMap) resultcode.data; + String s = gs.toJson(adta); + try { + JSONObject jsonArray = new JSONObject(s); + String pwd = jsonArray.optString("code", ""); + + ShareCodeDialog shareCodeDialog = new ShareCodeDialog(ShareCodeActivity.this); + shareCodeDialog.setCode(code); + shareCodeDialog.setPwd(pwd); + new XPopup.Builder(ShareCodeActivity.this).asCustom(shareCodeDialog).show(); + + } catch (JSONException e) { + e.printStackTrace(); + } + + } + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + setToast(2, getString(R.string.getdatafailure)); + throwable.printStackTrace(); + } + }); + addSubscription(subscribe); + } +} diff --git a/app/src/main/java/com/sl/house_property/discovery/ShareCodeDialog.java b/app/src/main/java/com/sl/house_property/discovery/ShareCodeDialog.java new file mode 100644 index 0000000..f1c4641 --- /dev/null +++ b/app/src/main/java/com/sl/house_property/discovery/ShareCodeDialog.java @@ -0,0 +1,67 @@ +package com.sl.house_property.discovery; + +import android.content.Context; +import android.graphics.Bitmap; +import android.support.annotation.NonNull; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import com.lxj.xpopup.core.CenterPopupView; +import com.sl.house_property.R; + +import utils.QRCodeUtil; + +public class ShareCodeDialog extends CenterPopupView { + private String pwd; + private String code; + private TextView tvPwd; + private ImageView ivCode; + private TextView tvShare; + private TextView tvCancel; + + public ShareCodeDialog(@NonNull Context context) { + super(context); + } + + @Override + protected int getImplLayoutId() { + return R.layout.dialog_share_cede; + } + + @Override + protected void onCreate() { + super.onCreate(); + tvPwd = findViewById(R.id.title2); + ivCode = findViewById(R.id.myImage); + tvShare = findViewById(R.id.tv_share); + tvCancel = findViewById(R.id.tv_cancel); + tvCancel.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + + dismiss(); + } + }); + tvShare.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + dismiss(); + } + }); + tvPwd.setText("密码:" + pwd); + Bitmap qrCodeBitmap = QRCodeUtil.createQRCodeBitmap(code, QRCodeUtil.dip2px(getContext(),220), QRCodeUtil.dip2px(getContext(),220)); + ivCode.setImageBitmap(qrCodeBitmap); + } + + + + public void setPwd(String pwd) { + this.pwd = pwd; + } + + + public void setCode(String code) { + this.code = code; + } +} diff --git a/app/src/main/java/utils/MyPhoneValue.java b/app/src/main/java/utils/MyPhoneValue.java index 6db8a1a..fc9a7db 100644 --- a/app/src/main/java/utils/MyPhoneValue.java +++ b/app/src/main/java/utils/MyPhoneValue.java @@ -75,4 +75,7 @@ public class MyPhoneValue { return sbar; } + + + } \ No newline at end of file diff --git a/app/src/main/java/utils/QRCodeUtil.java b/app/src/main/java/utils/QRCodeUtil.java index b52ab9f..b12ddef 100644 --- a/app/src/main/java/utils/QRCodeUtil.java +++ b/app/src/main/java/utils/QRCodeUtil.java @@ -1,5 +1,6 @@ package utils; +import android.content.Context; import android.graphics.Bitmap; import android.graphics.Color; import android.support.annotation.ColorInt; @@ -28,7 +29,13 @@ public class QRCodeUtil { public static Bitmap createQRCodeBitmap(String content, int width, int height){ return createQRCodeBitmap(content, width, height, "UTF-8", "H", "2", Color.BLACK, Color.WHITE); } - + /** + * 根据手机的分辨率从 dp 的单位 转成为 px(像素) + */ + public static int dip2px(Context context, float dpValue) { + final float scale = context.getResources().getDisplayMetrics().density; + return (int) (dpValue * scale + 0.5f); + } /** * 创建二维码位图 (支持自定义配置和自定义样式) * diff --git a/app/src/main/res/layout/activity_entranceguard_control2.xml b/app/src/main/res/layout/activity_entranceguard_control2.xml index cd01c34..fae40a8 100644 --- a/app/src/main/res/layout/activity_entranceguard_control2.xml +++ b/app/src/main/res/layout/activity_entranceguard_control2.xml @@ -1,120 +1,180 @@ + + android:fitsSystemWindows="true"> + + android:fitsSystemWindows="true"> + + android:layout_height="match_parent" + android:background="#f7f7f7"> + + android:orientation="vertical"> + + + + + + + + + android:paddingRight="15dip"> + + + + android:gravity="center" + android:text="时间" /> + - - - android:layout_height="wrap_content" /> - - android:layout_height="wrap_content" /> + + + + + android:layout_height="0.5dip" + android:background="@color/lightlittleGrey" /> + + + + + + + + + + + + + + + + + + + + - + + - - + android:layout_height="wrap_content" + android:layout_marginTop="20dip" + android:background="@null" + android:hint="访客手机号" + android:textSize="@dimen/textedit" /> - - + android:background="@drawable/selector_common_btn" + android:gravity="center" + android:padding="15dip" + android:text="确认授权" + android:textColor="@color/white" /> diff --git a/app/src/main/res/layout/dialog_bind_house.xml b/app/src/main/res/layout/dialog_bind_house.xml new file mode 100644 index 0000000..2859f8b --- /dev/null +++ b/app/src/main/res/layout/dialog_bind_house.xml @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_share_cede.xml b/app/src/main/res/layout/dialog_share_cede.xml new file mode 100644 index 0000000..ff8becc --- /dev/null +++ b/app/src/main/res/layout/dialog_share_cede.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index 3c24c15..6da1cd4 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -22,7 +22,8 @@ android:layout_marginTop="@dimen/mystatusbar" android:orientation="vertical"> - - + Date: Fri, 18 Sep 2020 09:14:08 +0800 Subject: [PATCH 4/5] 1 --- .../com/sl/house_property/Main4Fragment.java | 4 +- .../com/sl/house_property/MainFragment.java | 13 +-- .../sl/house_property/MainTabActivity.java | 24 ++++- .../discovery/LikeFragment.java | 92 ++++++++++++++++++ app/src/main/res/drawable/main_bottom_2.xml | 4 +- .../main/res/drawable/main_bottom_like.xml | 5 + app/src/main/res/layout/activity_main_tab.xml | 18 +++- app/src/main/res/layout/fragment_like.xml | 48 +++++++++ app/src/main/res/layout/fragment_main.xml | 49 +++++++--- app/src/main/res/mipmap-xhdpi/gouwuche.png | Bin 0 -> 1249 bytes app/src/main/res/mipmap-xhdpi/gouwuche_no.png | Bin 0 -> 1192 bytes app/src/main/res/mipmap-xhdpi/zan.png | Bin 0 -> 1582 bytes app/src/main/res/mipmap-xhdpi/zan_p.png | Bin 0 -> 1625 bytes 13 files changed, 224 insertions(+), 33 deletions(-) create mode 100644 app/src/main/java/com/sl/house_property/discovery/LikeFragment.java create mode 100644 app/src/main/res/drawable/main_bottom_like.xml create mode 100644 app/src/main/res/layout/fragment_like.xml create mode 100644 app/src/main/res/mipmap-xhdpi/gouwuche.png create mode 100644 app/src/main/res/mipmap-xhdpi/gouwuche_no.png create mode 100644 app/src/main/res/mipmap-xhdpi/zan.png create mode 100644 app/src/main/res/mipmap-xhdpi/zan_p.png diff --git a/app/src/main/java/com/sl/house_property/Main4Fragment.java b/app/src/main/java/com/sl/house_property/Main4Fragment.java index 7be61b0..efb6b09 100644 --- a/app/src/main/java/com/sl/house_property/Main4Fragment.java +++ b/app/src/main/java/com/sl/house_property/Main4Fragment.java @@ -82,7 +82,9 @@ public class Main4Fragment extends BaseFragment { mDataBinding.userImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - + Intent intent = new Intent(getActivity(), MyUserMessage.class); + intent.putExtra("usertitile", "个人信息"); + startActivityForResult(intent, 0); } }); initTopView(); 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 d5f4c7b..b2c5aeb 100644 --- a/app/src/main/java/com/sl/house_property/MainFragment.java +++ b/app/src/main/java/com/sl/house_property/MainFragment.java @@ -372,12 +372,13 @@ public class MainFragment extends BaseFragment implements V startActivity(intent); break; case R.id.cargara://车库 - if ((Config.getInstance(MainFragment.this.getContext()).getUser() == null)) { - intent = new Intent(MainFragment.this.getContext(), LoginActivity.class); - } else { - intent = new Intent(getActivity(), CarGarageActivity.class); - } - startActivity(intent); + Toast.makeText(getContext(),"功能正在开发",Toast.LENGTH_SHORT).show(); +// if ((Config.getInstance(MainFragment.this.getContext()).getUser() == null)) { +// intent = new Intent(MainFragment.this.getContext(), LoginActivity.class); +// } else { +// intent = new Intent(getActivity(), CarGarageActivity.class); +// } +// startActivity(intent); break; case R.id.moew1: intent = new Intent(getActivity(), MyMarketShopActivity.class); 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 d930f8c..de21d90 100644 --- a/app/src/main/java/com/sl/house_property/MainTabActivity.java +++ b/app/src/main/java/com/sl/house_property/MainTabActivity.java @@ -15,11 +15,11 @@ import com.gyf.immersionbar.ImmersionBar; import com.sl.house_property.cart.CartFragment; import com.sl.house_property.databinding.ActivityMainTabBinding; import com.sl.house_property.discovery.DiscoveryFragment; +import com.sl.house_property.discovery.LikeFragment; import java.util.ArrayList; import tools.Config; -import utils.UtilHelpers; public class MainTabActivity extends BaseActivity implements View.OnClickListener, MainFragment.OnFragmentInteractionListener, @@ -44,6 +44,7 @@ public class MainTabActivity extends BaseActivity private Main3Fragment fragment2; private CartFragment fragment3; private Main4Fragment fragment4; + private LikeFragment likeFragment; private Fragment currentFragment; private int myeditcode = 1000; @@ -51,7 +52,7 @@ public class MainTabActivity extends BaseActivity private int nowradioId; -// @Override + // @Override // public boolean dispatchTouchEvent(MotionEvent ev) { // switch (ev.getAction()) { // case MotionEvent.ACTION_DOWN: @@ -62,30 +63,36 @@ public class MainTabActivity extends BaseActivity // return super.dispatchTouchEvent(ev); // // } - public void visibilyBottom(int isVisibily){ + public void visibilyBottom(int isVisibily) { findViewById(R.id.rl_bottom).setVisibility(isVisibily); } + //2. 保存MyOnTouchListener接口的列表 private ArrayList onTouchListeners = new ArrayList(); + //1.触摸事件接口 public interface MyOnTouchListener { public boolean onTouch(MotionEvent ev); } + @Override public boolean dispatchTouchEvent(MotionEvent ev) { for (MyOnTouchListener listener : onTouchListeners) { - // listener.onTouch(ev); + // listener.onTouch(ev); } return super.dispatchTouchEvent(ev); } + //4.提供给Fragment通过getActivity()方法来注册自己的触摸事件的方法 public void registerMyOnTouchListener(MyOnTouchListener myOnTouchListener) { onTouchListeners.add(myOnTouchListener); } + //5.提供给Fragment通过getActivity()方法来注销自己的触摸事件的方法 public void unregisterMyOnTouchListener(MyOnTouchListener myOnTouchListener) { onTouchListeners.remove(myOnTouchListener); } + @Override protected int getLayoutResId() { @@ -194,6 +201,15 @@ public class MainTabActivity extends BaseActivity } currentFragment = fragment4; break; + case R.id.like: + if (likeFragment == null) { + likeFragment = LikeFragment.newInstance(); + fragmentTransaction.add(R.id.mycontent, likeFragment, "likeFragment"); + } else { + fragmentTransaction.show(likeFragment); + } + currentFragment = likeFragment; + break; } try { fragmentTransaction.commit(); diff --git a/app/src/main/java/com/sl/house_property/discovery/LikeFragment.java b/app/src/main/java/com/sl/house_property/discovery/LikeFragment.java new file mode 100644 index 0000000..8142f4f --- /dev/null +++ b/app/src/main/java/com/sl/house_property/discovery/LikeFragment.java @@ -0,0 +1,92 @@ +package com.sl.house_property.discovery; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; +import android.view.LayoutInflater; + +import com.gyf.immersionbar.ImmersionBar; +import com.sl.house_property.BaseFragment; +import com.sl.house_property.R; +import com.sl.house_property.databinding.FragmentLikeBinding; + +import java.util.ArrayList; + +import entity.RegisterUser; +import tools.Config; + +public class LikeFragment extends BaseFragment { + private ArrayList fragments; + private String[] strings; + + public static LikeFragment newInstance() { + LikeFragment fragment = new LikeFragment(); + Bundle args = new Bundle(); + + fragment.setArguments(args); + return fragment; + } + + @Override + protected int getLayoutId() { + return R.layout.fragment_like; + } + + @Override + protected void loadData() { + + } + + class MyViewPagerAdapter extends FragmentPagerAdapter { + public MyViewPagerAdapter(FragmentManager fm) { + super(fm); + } + + @Override + public Fragment getItem(int position) { + return fragments.get(position); + } + + + @Override + public int getCount() { + return fragments.size(); + } + + @Override + public CharSequence getPageTitle(int position) { + return strings[position]; + + } + } + + @Override + protected void onCreateVew(LayoutInflater inflater, Bundle savedInstanceState) { + super.onCreateVew(inflater, savedInstanceState); + + ImmersionBar.with(this) + .keyboardEnable(true) //解决软键盘与底部输入框冲突问题 + // .keyboardEnable(true, WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE + // | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) //软键盘自动弹出 + .init(); + + strings = new String[2]; + strings[0] = "说说"; + strings[1] = "商品"; + fragments = new ArrayList<>(); + RegisterUser user = + Config.getInstance(getActivity()).getUser(); + String userId = ""; + if (user != null) { + userId = user.getUserid(); + } else { + userId = "0"; + } + fragments.add(HistoryRecordFragment.newInstance(1, userId)); + fragments.add(HistoryRecordFragment.newInstance(2, userId)); + MyViewPagerAdapter myViewPagerAdapter = new MyViewPagerAdapter(getChildFragmentManager()); + mDataBinding.fl.setAdapter(myViewPagerAdapter); + mDataBinding.tb.setupWithViewPager(mDataBinding.fl); + } +} diff --git a/app/src/main/res/drawable/main_bottom_2.xml b/app/src/main/res/drawable/main_bottom_2.xml index 3f2cad3..01726a3 100644 --- a/app/src/main/res/drawable/main_bottom_2.xml +++ b/app/src/main/res/drawable/main_bottom_2.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/main_bottom_like.xml b/app/src/main/res/drawable/main_bottom_like.xml new file mode 100644 index 0000000..4717bb3 --- /dev/null +++ b/app/src/main/res/drawable/main_bottom_like.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main_tab.xml b/app/src/main/res/layout/activity_main_tab.xml index cdf39e0..05393d4 100644 --- a/app/src/main/res/layout/activity_main_tab.xml +++ b/app/src/main/res/layout/activity_main_tab.xml @@ -16,8 +16,7 @@ + android:layout_height="match_parent"> + android:orientation="vertical" + android:visibility="visible"> + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index 6da1cd4..fed9d66 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -42,6 +42,7 @@ android:textSize="17sp" /> - - - - + + + + + + + + 2C8-?Wrcs#L2h zaUn>lZ2}gnR8(|87u7miCK>S;W?3f&bup!Oa=%w@rfEl;$-T*BbRu53d^hC#&Uv4E z&dK)^qQ@`xxPJUM09@WXBI#Fy4MQrUmi&fCPyN;l(V-skma2x+O~jrO@u@i;XR&mA zzQWW~NPcEXO&UnTmOI0MiOU5IG(?Lym^e~?Y(7G?tbv-JdE9{Q0Iv&#yZege59S+0 zWDy5BZwHC(6rN$R{7TOOD4$s^@nZ>tiDG$2?*aJP^@3gmaEic(4yXvKBxvKHtDt68 z*n%nx!@vI6!Fy#zsifKS;04V@r8)@@zN-jVX2*Il$t8i|rt%KVXc!E_- zEUfa_@R^2K#EL%ra;6_lq-u1jB(2|pDT7NvOpA5MG=Y?+ zfUk(MdFl5WBkd@Ul%9(O2=d-$3cKS1v@fPU4_ygM_CvK)081sDt3v}y8QCu|MW|m> zQ4a6L_4!K}j08|Fvqj{txddnzT7Kqc0q+5<#R1qVa_4*k2!WmNeF9)rBtT;#>sbK# znL&ZudKVy{-6d&DD}eJ+y0hI}o~eHz4E7bvL#^z^P9f#I-6A%(1ju`bC_LOP0D@1l zP>8$_|~^$ zU8#W}m)TEp-An*lvtqFpo%;;awxF{Gk+30AEQd?@8L#-iLcaHsfM;7qz#mA}G}*NX zBrmg*d~;-?I{pU>I6uNL37%PZ+9K85W&2EcnAPvBc0fX-G~Q z&Mq<}14E)_IJa=BO*q43pTV5Ll7?E?hIiupvo3uOoPpt;u$q%iU#Ug{G&VFne6W>S zF7RsrLsp1Bm6(HkX=ySt0@L@O0EQ*J`%jCU$)BjPSOB4cAnzSuI3v%qD>gu=TmCKA z1PJai;Pqx4j#w*)@oq5EkT&6PD?dpWeAgDhR61q9ntA2P_pMO6w;KS?_rg@Yueq&@ ze%b=iL)jZ-`l*#bLN~E6`r~XM2m^pPDV@+au#`0ZbLL_l|%y&D2ob&thqPY^5za zw)6uWW1;*&eLd8PGx^yQf^ProSdCd>^!iTh&GqoBLX zk!Q?th{aN&o8lX`8h+}ZWgoFvIyl`=#{hF7wiBEG19bA%x;f@gR((yOB@K5<00000 LNkvXXu0mjf9w9@% literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/gouwuche_no.png b/app/src/main/res/mipmap-xhdpi/gouwuche_no.png new file mode 100644 index 0000000000000000000000000000000000000000..95dd19f93292bfb931655a5260e3c749a17c7678 GIT binary patch literal 1192 zcmV;Z1XufsP)*elZ^ndzf2iR8@!tSYN__y}cL3)~rP2>Vh@U1WC;uoy@6g=b+|FjRd8vol^8mim zTA!{~tEaasOgMz*=jX3oUtix1U>7s*7D9w&m+9kD%4fGDMC=?;N<9bQH2^mOcu-3D z>2`xioW!o{Iz(h3UX)V4RYZV&MDztSPusTb6b``iyeVdW1HgGA`b=xRMnr1>R)r92 ztyZf+M2%{-`scp^mpFu!QWXGRN^|P~3|w@q8rTkW2pR-ISPCH;%gf7+#l^)SW$d2S z(f~*RE)gwht=}Y~2>=sBG_JKaWq1u>yi+E|yv)hppbebXI)ntUd2X(o&1R$BZZ{mq z*@$8!iYcY40A>wly+lc_4=e^3zuWu&+1FV$#62RU>far&;umDP_X#j_c3~(60!8m|UFWsMY zEcdG)1i^HzR$GdTmwE^(rH%kNkN|Lkh@Q?10KoH7%6IYtm<3QR@(^+X$RY!nJg8D+ z03X0BaR5rGCz$z;yyk$``n_7Mwvx*na9#H(5xv|Gz;T=%BO@bU6H)gPbW1GET(NE2 zr0{(|S>8f(0A7mgfti^ZldR>|1Lbo0tYujyOWitv@B7EJ*87V*2i^woLSX@-IRM~{ zlyc9O26v8)Q_lh4_YY~UO+Iu<2=Qp8QaP8SkAXt@zJHh2`da`$CT642imXd1Hb)uA zQT9fAJ58QU0}!sr0GtGHBY-=z>*d>mnSTLr!ff*-0z?a%?tLN0aRh*W9HXP7A_xM( z%tC7&meFDAcb`YsLqkJh9CNQ%+5KH~-kqr?0z?a%!ftFSrFH@M9>9{6GI3WT-@%d` zEwKl>*PrJ917<#z9QNweAflC203C>90QO%UYw1-|1DKHYdi{o0tMw2Oz1vGdYyA{6 zucnvpU(;-W2_fE((-|Hf{y7tX3Ff-)cQKjgCsN9X^8j#N_Y@I5(kIrYP9}ia+1Xo4 zrP8l)2FvC0ZBtWI7qSQbX5M4l_L;2!q|p&V+*7Gk z&SnDeJa2-Te@ifTy_B-opN6TK(&!M;PRp`ZGXWR}p67kU%#ZbPb5u$>mD*`c#W)=z zI%!$f;(_fKN-kgW|D27t1m(Dj*%KM@^0|9j2M$Zt@1I)Z(7CTbP z#XQYNv0T>;b<8z0e{S3M@ot@g0j`AEL1O+7FvwHOv&~;*6iqzy0lixQ0000M6wl literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/zan.png b/app/src/main/res/mipmap-xhdpi/zan.png new file mode 100644 index 0000000000000000000000000000000000000000..01350f54252c3025536cfdd16f030b06e62b64da GIT binary patch literal 1582 zcmV+}2GRM6P)#k7M_Xh*%IL;a(dOdD0 z#7$tms%{JjEH=jMEM8^Tb$6=jqM+_p5&5uEFT_fKnKuJi9T1phjM-NV&~cpQMD$Tm z_q2#SGS&!mgqu}FPFoz;b?a4iZvgr;5m`272r%>I0NMjU+eGB%QgC&3brVymRQMh^ zAR-rzB?2!4xYq(w)w?{;d#e;&Q&ZFUo}Qi)LH%(NIcH1|NT<__eBTc@?6G7rIkT;; z?axwh4Gj&`3x&cj!5;C9F+3&+F!Lb*Qv+bl#+Zi&1IEm00N(}oc8JK5|CE5;l)mq8 zC!(1FkdH-V`B0#kc>#c3!Trr5vL6pkj7$zQYCto81YHXzh7bAK2t z(`OqI%~93MirRDnctAuxDK{B2e+ppf2v_|t06*EqBcd(Fm@NYqHvGZN_6V?IgoE32 zP4lT!r=IWX>MDEQPp8u}eBT!Ul}4VeBC@jI^R~duHfHy~)`@7Psva&OW1nApR1R&A zs^0H;-dDpR9X$UjBC?-kp-@Nx=quYgTlRh5UdILXwmcbt-T3tYE(+&S)lHt~t?dgM z_RDdc2Z`vpzKSv@MP}XupfMO|p@_5$2YeiDnE4(6uNLjOdB&Jb9|2~z2}roQLjq%F z8$qlmtc@yxV4+_lqPuNbRo8i*_ex{}zVBb(-rl}Dj@2FR7$pn6K}24NOn`{4F~)?+ z%WyGN)Xs67jYPCQ@W36O=e-k|fT~{QdEU1bAsS)l;z+5gOFYlp5t#rH^=+aNVyLJ& zGk*=B$qwTC{@nKV_SVP*RP_qa^V%vxG{Vlz{4;&lx<4`jB1#)$%m^`5 z)SQ_$9H6$gHr3M7@^@qcs_J;27bY+j0UJ)|;7x8lVC|@g)Y?L10*OSTKAX+jGtj7* z>$**5*=Ael^F+Sb+YTBU$Rlv zCq2)5v?2lkE*6pSnLN|{72jv(w*mAieMHo+IYr(B`FwtQXJ@BPaz@39LTGO;mz&hx z-F>Q34@?u0-$nzy>$ZXn;|);sA`>8@ zDaM#T;sRN2oZ>SO5iK>wSf#tqA`{5x^OHI|JA0~4AP~cBus9FEk(!#C*_lk{Sj7Zt zYHB8AGMP|is~Qj2b(gBD6$7lDCdEYdKrWX%D~tqHL;r8O`z8_H8O(80sqzt-KzNv{ zCiwdL`kBdO(kdAfh-gqLGBN=XN!Zl1ngp161AyjWj%P%~3S$E-G64W@sH!2NwrZ#o zjg5_G_xARFY4eW0Xfs3tRf()pyb|_>W^)6p5w+y=`Anq|syKl!)`5odKonuC?9-#F zT}0Fc;2;ql^nL$;y#o0C43AwS5#4BW-u_ToCVlPKMn@tos_N}TWX~dV0bB{-IsoIV zu^+5TXpGr9)YzrsZn1DRSRebRMYD)JTXHkO%yU(BK7a-yasb$bV}Qav5`uvT-xHBR z|Meg6A}b!)aU47G0wOxUxZZA7BKjhm&04j1SmwI!WL2F8;DVyhlyaR_^$-!Y4>vHx g`Zw#aSjF7vA8*7LUW05t;s5{u07*qoM6N<$f=ZU`*8l(j literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/zan_p.png b/app/src/main/res/mipmap-xhdpi/zan_p.png new file mode 100644 index 0000000000000000000000000000000000000000..a4d31ef99efdd9f51f527fed4c084c5c875867ec GIT binary patch literal 1625 zcmV-f2B!ImP)H_fPi2d%1aFdmfpEbXdzeyvxp?5geK5C7s3Y+LWD>{Y$Eyr0wsvX zYDi2(0t7^f?YeWT<;?~q=_UvygbmByxrH`ZjADxv6w2Ga&3VX7=dQEcz1!`bdzbZm zxi>Rs&Ut?SbI$+Fd4~8uFYJ_l`QD|FP65n5xC^#(^T4~E=&K_D^1VL`xOj@-EnF~s zJ%9Jc{&s@29YAI8P7xcX7pdpyMAxwQ^}n|ZqOAb(i%SLWZHSY!9^la=t^#mIdVRnI z;W_gY;L7f=%GwuWaReS?5MC4iSEcxMiQ51idEg#zWKess9T4pufpW^sJzZlKa9sR>ME!9fh_6L}l+`64xgJEl=f^ z+U~5talg3MfR88B3b@A!!rSK+fc3rC8;jKh;X%RCx>A>nUQ0#)$pqo0^9DdydS}XF zN4kKwG6*l9Do$(9I8qDU#y+su1mOwu1|X_<_fhz6EXYFF6@vPs2Lbr2j}SimB)z`h z1mPFw1%S%k7m2p9U_ankVL7)BzJD;lS<8gztu#y38PvRa0bqUa9RSCt*=HmBYCoJ# z*vLAs+ckJKz4wd>!b?6^fRS~jF4x#?0GFq8|49bn+Ge80%3hB{Y)`Y$!%h(1&~^Zo zy(=tnDul(^#tpd##O_9Jk1F0R6n@dDLvRnk^BD}i*-TXAd$$qzQ34>`1#;NP4#RLb zl7<0(>QJ8m=2Jw`d$5In@sC6C=r%2rQe8F;HhY4=R)8x6ot~+)lfw5|4WF8+Gx^@r z0@fU6)ISFB4*xL<9`Cpt;f(x@n|IClzOO5~Pn2Ur0QoWx z5tzQP^1qRfhtu~i7cjA{Q>=_b`zB2xpohernQJeT`X2l0&(8*0Wv>T>8mGcKY|`~g8Gf=x&u@${y^kU)AZK#P0{+^ z%K%oz^&;Uyw;J}(MtnQ!sN&ru;r`5;JBLASAell@+1t>F?o7h0@5LFU=kowa`t*wr z5d2OOXz6BF>%YnYV87v3cRbgQ=+3r{Y@kWp%D(XDEdvnz8iQJLc$upbm5cY1Tp#ym zrE3e-`fqap=sX7Xm*z@*B07^PNnOIe`ZGBIm@J~X1d#8&AYgT}2CQAlEjwPx0id%P z)CcDh!1~@l0i2isIPNm`zOp9=0J|B~YI6*ri8Q+JIG6qX<2e9SWKd5IFmqAToje|a zxV&eA@VI0oTHOamVY(ItLp$d}eB8&FUs~-zFQomwW`b}CWVgjqv4~t?TwLqBT&FnZVvxF%l>m!lV2(c8cG}4Zi4We6X~?o zEX2a-@rOFZ%?|_{7c+I}M-%W>}moz69W1V&Q2F20q9SFuZUvpB!koY#rlJrL;!U)9Lg%$ckxw z1U?#G)W`%KQ=gpIi@z55?PR(LmrZp(S_ep9raCJAs;=dV3bB*1nBcTlWa|JyXqY60 z&XvgbZY8iWjsA~W4R4#;Tk8PABY Date: Mon, 21 Sep 2020 10:45:32 +0800 Subject: [PATCH 5/5] 1 --- .../com/sl/house_property/MainFragment.java | 844 ++++++++++++++++-- .../sl/house_property/MainTabActivity.java | 2 +- .../discovery/GoodsInfoDialog.java | 2 +- app/src/main/res/layout/fragment_main.xml | 436 +++++---- 4 files changed, 964 insertions(+), 320 deletions(-) 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