diff --git a/app/build.gradle b/app/build.gradle index 95619c6..c9d1b9c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -99,7 +99,7 @@ android { implementation 'com.android.databinding:baseLibrary:1.1' implementation 'com.android.databinding:adapters:1.1' - + implementation 'com.hjq:xxpermissions:5.5' implementation 'com.jzj.view:ObservableScrollView:0.0.2' implementation 'com.dalong:refreshlayout:1.0.1' implementation 'com.nineoldandroids:library:2.4.0' diff --git a/app/src/main/java/com/sl/house_property/CodeActivity.java b/app/src/main/java/com/sl/house_property/CodeActivity.java index d669199..1044a9f 100644 --- a/app/src/main/java/com/sl/house_property/CodeActivity.java +++ b/app/src/main/java/com/sl/house_property/CodeActivity.java @@ -164,7 +164,7 @@ public class CodeActivity extends BaseActivity { Gson gs = new Gson(); LinkedTreeMap adta = (LinkedTreeMap) resultcode.data; String qrcode = (String) adta.get("qrcode"); - Bitmap qrCodeBitmap = QRCodeUtil.createQRCodeBitmap(qrcode, QRCodeUtil.dip2px(CodeActivity.this, 200), QRCodeUtil.dip2px(CodeActivity.this, 200)); + Bitmap qrCodeBitmap = QRCodeUtil.createQRCodeBitmap(qrcode, QRCodeUtil.dip2px(CodeActivity.this, 350), QRCodeUtil.dip2px(CodeActivity.this, 350)); mDataBinding.ivCode.setImageBitmap(qrCodeBitmap); mDataBinding.ivCode.setVisibility(View.VISIBLE); } else { 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 5052902..bcc3f57 100644 --- a/app/src/main/java/com/sl/house_property/MainFragment.java +++ b/app/src/main/java/com/sl/house_property/MainFragment.java @@ -11,6 +11,7 @@ import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.text.TextPaint; import android.text.TextUtils; +import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MotionEvent; @@ -340,7 +341,7 @@ public class MainFragment extends BaseFragment implements V MainTabActivity activity = (MainTabActivity) getActivity(); activity.registerMyOnTouchListener(this); - RegisterUser user = + final RegisterUser user = Config.getInstance(getActivity()).getUser(); Map map = new HashMap<>(); if (user != null) { @@ -356,7 +357,11 @@ public class MainFragment extends BaseFragment implements V mDataBinding.service.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(getContext(), PropertyActivity.class); +// Intent intent = new Intent(getContext(), PropertyActivity.class); +// startActivity(intent); + Intent intent = new Intent(getContext(), HistoryRecordActivity.class); + intent.putExtra("userId", user.getUserid()); + intent.putExtra("userName", user.getNickname()); startActivity(intent); } }); @@ -616,17 +621,7 @@ public class MainFragment extends BaseFragment implements V // .placeholder(R.mipmap.icon_default_rectangle) // .transform(new PicassoRoundTransform()) // .into(homeGridAdapterItemBinding.imageHead); - mDataBinding.tvSendComment.setOnClickListener(new View.OnClickListener() { - @Override - 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) { @@ -649,7 +644,7 @@ public class MainFragment extends BaseFragment implements V MainTabActivity activity = (MainTabActivity) getActivity(); KeyboardUtil.showSoftInput(getContext()); activity.visibilyBottom(View.GONE); - + commentPosition = position; commentDialog.dismiss(); mDataBinding.etComment.setText(""); homeGridAdapterItemBinding.ivComment.postDelayed(new Runnable() { @@ -686,13 +681,11 @@ public class MainFragment extends BaseFragment implements V homeGridAdapterItemBinding.tvLike.setVisibility(View.VISIBLE); StringBuilder likeString = new StringBuilder(); for (int i = 0; i < discoveryListEntity.getLike().size(); i++) { - if (i == 0) { - likeString.append("❤"); - - } else { + if (i != 0 && i != discoveryListEntity.getLike().size() - 1) { likeString.append(","); } likeString.append(discoveryListEntity.getLike().get(i).getNickname()); + } homeGridAdapterItemBinding.tvLike.setText(likeString.toString()); @@ -786,8 +779,22 @@ public class MainFragment extends BaseFragment implements V mDataBinding.recyView.setAdapter(baseRecycleViewAdapter); baseRecycleViewAdapter.setData(discoveryListEntities); - } + mDataBinding.tvSendComment.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (commentPosition != -1) { + MainTabActivity activity = (MainTabActivity) getActivity(); + CommonUtils.hideSoftInput(getContext(), mDataBinding.etComment); + mDataBinding.llComment.setVisibility(View.GONE); + activity.visibilyBottom(View.VISIBLE); + Log.e("xxx", discoveryListEntities.get(commentPosition).getGoods_id()); + comment(discoveryListEntities.get(commentPosition).getGoods_id(), commentPosition, "", mDataBinding.etComment.getText().toString()); + } + } + }); + } + private int commentPosition = -1; @Override public boolean onTouch(MotionEvent ev) { switch (ev.getAction()) { @@ -915,7 +922,18 @@ public class MainFragment extends BaseFragment implements V baseActivity.setToast(1, resultcode.msg); } if (resultcode.status == 0) { + String nickname = user.getNickname(); + BaseRecycleViewAdapter adapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); + DiscoveryListEntity.Dis_content dis_content = new DiscoveryListEntity.Dis_content(); + dis_content.setContents(content); + dis_content.setNickname(nickname); + dis_content.setReply(""); + DiscoveryListEntity discoveryListEntity = discoveryListEntities.get(position); + ArrayList dis_content1 = discoveryListEntity.getDis_content(); + dis_content1.add(dis_content); + discoveryListEntity.setDis_content(dis_content1); + adapter.upDateOne(position,discoveryListEntity); // BaseRecycleViewAdapter adapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); // if (discoveryListEntities.get(position).getDis_content().isEmpty()) { // DiscoveryListEntity.Dis_content dis_content = new DiscoveryListEntity.Dis_content(); diff --git a/app/src/main/java/com/sl/house_property/discovery/AddDiscoveryActivity.java b/app/src/main/java/com/sl/house_property/discovery/AddDiscoveryActivity.java index 248db2f..f94434f 100644 --- a/app/src/main/java/com/sl/house_property/discovery/AddDiscoveryActivity.java +++ b/app/src/main/java/com/sl/house_property/discovery/AddDiscoveryActivity.java @@ -13,10 +13,15 @@ import android.support.annotation.Nullable; import android.support.v4.content.ContextCompat; import android.support.v7.widget.GridLayoutManager; import android.text.TextUtils; +import android.util.Log; import android.view.View; import com.gyf.immersionbar.ImmersionBar; +import com.hjq.permissions.OnPermission; +import com.hjq.permissions.Permission; +import com.hjq.permissions.XXPermissions; import com.lxj.xpopup.XPopup; +import com.lxj.xpopup.interfaces.OnConfirmListener; import com.sl.house_property.BaseActivity; import com.sl.house_property.R; import com.sl.house_property.databinding.ActivityAddDiscoveryBinding; @@ -49,7 +54,7 @@ public class AddDiscoveryActivity extends BaseActivity strings; + private ArrayList strings; private String goodsInfo = ""; @Override @@ -85,34 +90,42 @@ public class AddDiscoveryActivity extends BaseActivity adapter = new BaseRecycleViewAdapter<>(AddDiscoveryActivity.this, R.layout.item_add_goods); + final BaseRecycleViewAdapter adapter = new BaseRecycleViewAdapter<>(AddDiscoveryActivity.this, R.layout.item_add_goods); strings = new ArrayList<>(); - strings.add("+"); + strings.add(new GoodsInfoEntity("+", "+")); adapter.setData(strings); adapter.setOnBindViewHolder(new BaseRecycleViewAdapter.BindView() { @Override public void onBindViewHolder(ItemAddGoodsBinding b, int position) { - b.tv.setText(strings.get(position)); + b.tv.setText(strings.get(position).getValue()); } }); adapter.setOnItemClickListener(new BaseRecycleViewAdapter.OnItemClickListener() { @Override - public void onItemClick(View itemView, int position) { - if (strings.get(position).equals("+")) { + public void onItemClick(View itemView, final int position) { + if (strings.get(position).getValue().equals("+")) { //添加 - AddGoodsDialog addGoodsDialog = new AddGoodsDialog(AddDiscoveryActivity.this); + AddGoodsDialog addGoodsDialog = new AddGoodsDialog(AddDiscoveryActivity.this, null); addGoodsDialog.setOnAddGoodsInputListener(new AddGoodsDialog.OnAddGoodsInputListener() { @Override public void onConfirm(String info, String s) { - if (goodsInfo.equals("")) { - goodsInfo = info; - } else { - goodsInfo = goodsInfo + "|" + info; - } - +// if (goodsInfo.equals("")) { +// goodsInfo = info; +// } else { +// goodsInfo = goodsInfo + "|" + info; +// } + Log.e("xxxx",info); + Log.e("xxxx1",s); strings.remove(strings.size() - 1); - strings.add(s); - strings.add("+"); + strings.add(new GoodsInfoEntity(info, s)); + for (int i = 0; i < strings.size(); i++) { + if (goodsInfo.equals("")) { + goodsInfo = goodsInfo + strings.get(i).getInfo(); + } else { + goodsInfo = goodsInfo + "|" + strings.get(i).getInfo(); + } + } + strings.add(new GoodsInfoEntity("+", "+")); adapter.setData(strings); @@ -120,6 +133,50 @@ public class AddDiscoveryActivity extends BaseActivity= Build.VERSION_CODES.M) { - requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 2); + private void checkAlbumPermission(final int requestCode, final int max) { + XXPermissions.with(this).permission(Permission.WRITE_EXTERNAL_STORAGE, Permission.CAMERA).request(new OnPermission() { + @Override + public void hasPermission(List granted, boolean isAll) { + if (isAll){ + selectImage(requestCode, max); + } } - } else { - selectImage(requestCode, max); - } + @Override + public void noPermission(List denied, boolean quick) { + if (quick) + new XPopup.Builder(AddDiscoveryActivity.this).asConfirm( + "提示", "需要相册和相机权限才可以正常使用" + , new OnConfirmListener() { + @Override + public void onConfirm() { + XXPermissions.gotoPermissionSettings(AddDiscoveryActivity.this); + } + }).show(); + } + }); +// if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { +// selectImage(requestCode, max); +// return; +// } +// if ((ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)&&(ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)) { +// //权限还没有授予,需要在这里写申请权限的代码 +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { +// requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA}, 2); +// } +// +// } else { +// selectImage(requestCode, max); +// } } diff --git a/app/src/main/java/com/sl/house_property/discovery/AddGoodsDialog.java b/app/src/main/java/com/sl/house_property/discovery/AddGoodsDialog.java index 293a949..84f01d2 100644 --- a/app/src/main/java/com/sl/house_property/discovery/AddGoodsDialog.java +++ b/app/src/main/java/com/sl/house_property/discovery/AddGoodsDialog.java @@ -2,24 +2,26 @@ package com.sl.house_property.discovery; import android.content.Context; import android.support.annotation.NonNull; +import android.text.TextUtils; import android.view.View; -import android.widget.Button; import android.widget.EditText; +import android.widget.Toast; import com.lxj.xpopup.core.CenterPopupView; import com.sl.house_property.R; public class AddGoodsDialog extends CenterPopupView { + private final String info; private EditText etInfo; private EditText etPrice; private EditText etNum; - private OnAddGoodsInputListener mListener=null; + private OnAddGoodsInputListener mListener = null; - public AddGoodsDialog(@NonNull Context context) { + public AddGoodsDialog(@NonNull Context context, String info) { super(context); - + this.info = info; } @@ -29,12 +31,34 @@ public class AddGoodsDialog extends CenterPopupView { etInfo = findViewById(R.id.et_info); etPrice = findViewById(R.id.et_price); etNum = findViewById(R.id.et_num); + if (!TextUtils.isEmpty(info)) { + try { + String[] split = info.split(":"); + etInfo.setText(split[0]); + etPrice.setText(split[1]); + etNum.setText(split[2]); + } catch (Exception e) { + + } + } findViewById(R.id.btn_submit2).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { + if (TextUtils.isEmpty(etInfo.getText().toString().trim())) { + Toast.makeText(getContext(), "请输入商品描述", Toast.LENGTH_SHORT).show(); + return; + } + if (TextUtils.isEmpty(etPrice.getText().toString().trim())) { + Toast.makeText(getContext(), "请输入商品单价", Toast.LENGTH_SHORT).show(); + return; + } + if (TextUtils.isEmpty(etNum.getText().toString().trim())) { + Toast.makeText(getContext(), "请输入商品数量", Toast.LENGTH_SHORT).show(); + return; + } if (mListener != null) { mListener.onConfirm(etInfo.getText().toString().trim() + ":" + etNum.getText().toString().trim() + ":" + - etPrice.getText().toString().trim() ,etInfo.getText().toString().trim()); + etPrice.getText().toString().trim(), etInfo.getText().toString().trim()); } dismiss(); } diff --git a/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java b/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java index eb08a68..33bff09 100644 --- a/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java +++ b/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java @@ -118,7 +118,7 @@ public class DiscoveryFragment extends BaseFragment im public void onSelect(int position, String text) { Intent intent = new Intent(getContext(), AddDiscoveryActivity.class); intent.putExtra("type", position); - startActivityForResult(intent,14); + startActivityForResult(intent, 14); } }).show(); @@ -315,6 +315,7 @@ public class DiscoveryFragment extends BaseFragment im return coordinate[1]; } + private int commentPosition = -1; private void intRecycleView() { mDataBinding.tvSendComment.setOnClickListener(new View.OnClickListener() { @@ -333,6 +334,7 @@ public class DiscoveryFragment extends BaseFragment im return false; } }); + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(baseActivity); mDataBinding.recyView.setNestedScrollingEnabled(false);//禁止rcyc嵌套滑动 mDataBinding.recyView.setLayoutManager(linearLayoutManager); @@ -354,17 +356,7 @@ public class DiscoveryFragment extends BaseFragment im // .placeholder(R.mipmap.icon_default_rectangle) // .transform(new PicassoRoundTransform()) // .into(homeGridAdapterItemBinding.imageHead); - mDataBinding.tvSendComment.setOnClickListener(new View.OnClickListener() { - @Override - 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) { @@ -390,12 +382,14 @@ public class DiscoveryFragment extends BaseFragment im commentDialog.dismiss(); mDataBinding.etComment.setText(""); + commentPosition = position; homeGridAdapterItemBinding.ivComment.postDelayed(new Runnable() { @Override public void run() { int y = getCoordinateY(mDataBinding.llComment) - 20; //评论时滑动到对应item底部和输入框顶部对齐 mDataBinding.sv.smoothScrollBy(0, mBottomY - y); + } }, 300); @@ -424,13 +418,11 @@ public class DiscoveryFragment extends BaseFragment im homeGridAdapterItemBinding.tvLike.setVisibility(View.VISIBLE); StringBuilder likeString = new StringBuilder(); for (int i = 0; i < discoveryListEntity.getLike().size(); i++) { - if (i == 0) { - likeString.append("❤"); - - } else { + if (i != 0 && i != discoveryListEntity.getLike().size() - 1) { likeString.append(","); } likeString.append(discoveryListEntity.getLike().get(i).getNickname()); + } homeGridAdapterItemBinding.tvLike.setText(likeString.toString()); @@ -492,7 +484,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(); @@ -524,6 +516,21 @@ public class DiscoveryFragment extends BaseFragment im mDataBinding.recyView.setAdapter(baseRecycleViewAdapter); baseRecycleViewAdapter.setData(discoveryListEntities); + mDataBinding.tvSendComment.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // discoveryListEntity. + if (commentPosition != -1) { + MainTabActivity activity = (MainTabActivity) getActivity(); + CommonUtils.hideSoftInput(getContext(), mDataBinding.etComment); + mDataBinding.llComment.setVisibility(View.GONE); + activity.visibilyBottom(View.VISIBLE); + Log.e("xxx", discoveryListEntities.get(commentPosition).getGoods_id()); + comment(discoveryListEntities.get(commentPosition).getGoods_id(), commentPosition, "", mDataBinding.etComment.getText().toString()); + } + + } + }); } private void getGankList(String myurl, Map map, String msg, final int requstecode) { @@ -567,6 +574,7 @@ public class DiscoveryFragment extends BaseFragment im .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); @@ -579,7 +587,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(); @@ -749,6 +757,7 @@ public class DiscoveryFragment extends BaseFragment im Map map = new HashMap<>(); if (user != null) { map.put("userid", user.getUserid()); + } else { map.put("userid", 0 + ""); } @@ -777,7 +786,18 @@ public class DiscoveryFragment extends BaseFragment im baseActivity.setToast(1, resultcode.msg); } if (resultcode.status == 0) { + String nickname = user.getNickname(); + BaseRecycleViewAdapter adapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); + DiscoveryListEntity.Dis_content dis_content = new DiscoveryListEntity.Dis_content(); + dis_content.setContents(content); + dis_content.setNickname(nickname); + dis_content.setReply(""); + DiscoveryListEntity discoveryListEntity = discoveryListEntities.get(position); + ArrayList dis_content1 = discoveryListEntity.getDis_content(); + dis_content1.add(dis_content); + discoveryListEntity.setDis_content(dis_content1); + adapter.upDateOne(position,discoveryListEntity); // BaseRecycleViewAdapter adapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); // if (discoveryListEntities.get(position).getDis_content().isEmpty()) { // DiscoveryListEntity.Dis_content dis_content = new DiscoveryListEntity.Dis_content(); @@ -808,7 +828,7 @@ public class DiscoveryFragment extends BaseFragment im @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (requestCode==14&&resultCode==200){ + if (requestCode == 14 && resultCode == 200) { page = 1; getlist(1); } diff --git a/app/src/main/java/com/sl/house_property/discovery/GoodsInfoEntity.java b/app/src/main/java/com/sl/house_property/discovery/GoodsInfoEntity.java new file mode 100644 index 0000000..0831125 --- /dev/null +++ b/app/src/main/java/com/sl/house_property/discovery/GoodsInfoEntity.java @@ -0,0 +1,27 @@ +package com.sl.house_property.discovery; + +public class GoodsInfoEntity { + private String info; + private String value; + + public GoodsInfoEntity(String info, String value) { + this.info = info; + this.value = value; + } + + public String getInfo() { + return info; + } + + public void setInfo(String info) { + this.info = info; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} 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 7fe5855..03b511c 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 @@ -24,6 +24,7 @@ import com.lzy.ninegrid.ImageInfo; import com.lzy.ninegrid.preview.NineGridViewClickAdapter; import com.sl.house_property.BaseActivity; import com.sl.house_property.MainFragment; +import com.sl.house_property.MainTabActivity; import com.sl.house_property.R; import com.sl.house_property.databinding.ItemCommentBinding; import com.sl.house_property.databinding.ItemDiscoveryBinding; @@ -140,7 +141,17 @@ public class HistoryRecordActivity extends BaseActivity onTouchListeners = new ArrayList(); + //4.提供给Fragment通过getActivity()方法来注册自己的触摸事件的方法 + public void registerMyOnTouchListener(MainTabActivity.MyOnTouchListener myOnTouchListener) { + onTouchListeners.add(myOnTouchListener); + } + //5.提供给Fragment通过getActivity()方法来注销自己的触摸事件的方法 + public void unregisterMyOnTouchListener(MainTabActivity.MyOnTouchListener myOnTouchListener) { + onTouchListeners.remove(myOnTouchListener); + } class MyViewPagerAdapter extends FragmentPagerAdapter { public MyViewPagerAdapter(FragmentManager fm) { super(fm); 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 index 9a1bdbf..7b41876 100644 --- a/app/src/main/java/com/sl/house_property/discovery/HistoryRecordFragment.java +++ b/app/src/main/java/com/sl/house_property/discovery/HistoryRecordFragment.java @@ -1,15 +1,22 @@ package com.sl.house_property.discovery; import android.content.Context; +import android.content.Intent; import android.graphics.Bitmap; +import android.graphics.Rect; 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.v4.app.FragmentActivity; import android.support.v7.widget.LinearLayoutManager; +import android.text.TextUtils; import android.util.Log; +import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; +import android.view.ViewTreeObserver; import android.widget.Toast; import com.bumptech.glide.Glide; @@ -17,19 +24,23 @@ import com.bumptech.glide.request.RequestOptions; import com.google.gson.Gson; import com.google.gson.internal.LinkedTreeMap; import com.google.gson.reflect.TypeToken; +import com.gyf.immersionbar.ImmersionBar; +import com.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.OnRefreshLoadMoreListener; import com.sl.house_property.BaseFragment; -import com.sl.house_property.Main2Fragment; +import com.sl.house_property.MainTabActivity; 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.sl.house_property.order.SettleActivity; import com.squareup.picasso.Picasso; import com.squareup.picasso.Target; +import org.json.JSONException; import org.json.JSONObject; import java.lang.reflect.Type; @@ -39,17 +50,24 @@ import java.util.Map; import adapter.BaseRecycleViewAdapter; import entity.DiscoveryListEntity; +import entity.GoodsDetailEntity; +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; -public class HistoryRecordFragment extends BaseFragment { +public class HistoryRecordFragment extends BaseFragment implements MainTabActivity.MyOnTouchListener { private Context context; private int type = 2; private int page = 1; @@ -76,6 +94,19 @@ public class HistoryRecordFragment extends BaseFragment= discoveryListEntities.size())) { final ItemDiscoveryBinding homeGridAdapterItemBinding = (ItemDiscoveryBinding) b; // homeGridAdapterItemBinding.setMyentity(discoveryListEntities.get(position)); - homeGridAdapterItemBinding.ivComment.setVisibility(View.GONE); + homeGridAdapterItemBinding.ivComment.setVisibility(View.VISIBLE); final DiscoveryListEntity discoveryListEntity = discoveryListEntities.get(position); homeGridAdapterItemBinding.tvNikeName.setText(discoveryListEntity.getNickname()); homeGridAdapterItemBinding.tvContent.setText(discoveryListEntity.getGoods_detail()); @@ -129,13 +244,11 @@ public class HistoryRecordFragment extends BaseFragment 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(); @@ -214,12 +327,344 @@ public class HistoryRecordFragment extends BaseFragment 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(); + + Loader 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)) { + Toast.makeText(getContext(), resultcode.msg, Toast.LENGTH_SHORT).show(); + } + if (resultcode.status == 0) { + + String nickname = user.getNickname(); + BaseRecycleViewAdapter adapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); + DiscoveryListEntity.Dis_content dis_content = new DiscoveryListEntity.Dis_content(); + dis_content.setContents(content); + dis_content.setNickname(nickname); + dis_content.setReply(""); + DiscoveryListEntity discoveryListEntity = discoveryListEntities.get(position); + ArrayList dis_content1 = discoveryListEntity.getDis_content(); + dis_content1.add(dis_content); + + discoveryListEntity.setDis_content(dis_content1); + adapter.upDateOne(position,discoveryListEntity); + } + + } + + + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + Toast.makeText(getContext(), "提交失败", Toast.LENGTH_SHORT).show(); + throwable.printStackTrace(); + } + }); + + + } + + 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); + Loader 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(getContext(), entity, o); + goodsInfoDialog.setOnConfirmListener(new GoodsInfoDialog.OnGoodsSelectPropertyListener() { + @Override + public void onSelect(String code, int num) { + if (goodtype == 4) { + Intent intent = new Intent(getContext(), 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(getContext()).asCustom(goodsInfoDialog).show(); + + } catch (JSONException e) { + e.printStackTrace(); + } + + } else { + // .setToast(resultcode.msg); + Toast.makeText(getContext(), resultcode.msg, Toast.LENGTH_SHORT).show(); + } + } + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + Toast.makeText(getContext(), "获取信息失败", Toast.LENGTH_SHORT).show(); + throwable.printStackTrace(); + } + }); + + } + + 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); + Loader 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) { + Toast.makeText(getContext(), "成功加入购物车", Toast.LENGTH_SHORT).show(); +// baseActivity.setToast(0, "成功加入购物车"); + } else { + Toast.makeText(getContext(), resultcode.msg, Toast.LENGTH_SHORT).show(); + } + } + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + Toast.makeText(getContext(), "提交失败", Toast.LENGTH_SHORT).show(); + throwable.printStackTrace(); + } + }); + + } + + 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(); + + Loader 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)) { + Toast.makeText(getContext(), resultcode.msg, Toast.LENGTH_SHORT).show(); + } + 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(); + Toast.makeText(getContext(), "提交失败", Toast.LENGTH_SHORT).show(); + throwable.printStackTrace(); + } + }); + + + } + + /** + * 获取控件左上顶点Y坐标 + * + * @param view + * @return + */ + private int getCoordinateY(View view) { + int[] coordinate = new int[2]; + view.getLocationOnScreen(coordinate); + return coordinate[1]; } private void getData() { @@ -321,5 +766,4 @@ public class HistoryRecordFragment extends BaseFragment { } } + private MainTabActivity.MyOnTouchListener myOnTouchListener; + @Override protected void onCreateVew(LayoutInflater inflater, Bundle savedInstanceState) { super.onCreateVew(inflater, savedInstanceState); @@ -83,6 +86,7 @@ public class LikeFragment extends BaseFragment { } else { userId = "0"; } + fragments.add(HistoryRecordFragment.newInstance(1, userId)); fragments.add(HistoryRecordFragment.newInstance(2, userId)); MyViewPagerAdapter myViewPagerAdapter = new MyViewPagerAdapter(getChildFragmentManager()); diff --git a/app/src/main/java/com/sl/house_property/discovery/SelectDialog.java b/app/src/main/java/com/sl/house_property/discovery/SelectDialog.java new file mode 100644 index 0000000..71e0a10 --- /dev/null +++ b/app/src/main/java/com/sl/house_property/discovery/SelectDialog.java @@ -0,0 +1,61 @@ +package com.sl.house_property.discovery; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.view.View; + +import com.lxj.xpopup.core.BottomPopupView; +import com.sl.house_property.R; + +public class SelectDialog extends BottomPopupView { + + private OnSelectListener listener; + + public SelectDialog(@NonNull Context context) { + super(context); + } + + @Override + protected int getImplLayoutId() { + return R.layout.dialog_select; + + } + + @Override + protected void onCreate() { + super.onCreate(); + findViewById(R.id.btn_edit).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (listener!=null){ + listener.select(1); + + } + dismiss(); + } + }); + findViewById(R.id.btn_delete).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null) { + listener.select(2); + } + dismiss(); + } + }); + findViewById(R.id.btn_cancel).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + dismiss(); + } + }); + } + + public void setOnSelectListener(OnSelectListener listener) { + this.listener = listener; + } + + public interface OnSelectListener { + void select(int type); + } +} 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 e0f6200..8fae9ef 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 @@ -207,6 +207,7 @@ public class OrderActivity extends BaseActivity { //付款 Intent intent = new Intent(context, PayActivity.class); intent.putExtra("payment_amount", orderListBean.getOrder_money()); + intent.putExtra("order_number",orderListBean.getOrder_number()); startActivityForResult(intent, 18); } else if (b.btnFk.getText().equals("取消订单")) { new XPopup.Builder(context).asConfirm("", "确定要取消订单吗?", new OnConfirmListener() { diff --git a/app/src/main/java/com/sl/house_property/order/OrderDetailActivity.java b/app/src/main/java/com/sl/house_property/order/OrderDetailActivity.java index 0abfe6d..ad2bb19 100644 --- a/app/src/main/java/com/sl/house_property/order/OrderDetailActivity.java +++ b/app/src/main/java/com/sl/house_property/order/OrderDetailActivity.java @@ -198,6 +198,7 @@ public class OrderDetailActivity extends BaseActivity { private Context context; private String payment_amount; + private String order_number; private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent1) { @@ -49,6 +50,7 @@ public class PayActivity extends BaseActivity { } }; private int type; + private String cart_id; @Override protected int getLayoutResId() { @@ -76,7 +78,7 @@ public class PayActivity extends BaseActivity { mDataBinding.tvTitle.setText("支付"); type = intent.getIntExtra("type", 0); payment_amount = intent.getStringExtra("payment_amount"); - + order_number=intent.getStringExtra("order_number"); String wallet = intent.getStringExtra("wallet"); mDataBinding.tv.setText("钱包支付(余额 ¥" + wallet + ")"); mDataBinding.tvAmount.setText(payment_amount); @@ -135,6 +137,8 @@ public class PayActivity extends BaseActivity { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("PaySuccess"); registerReceiver(receiver, intentFilter); + cart_id = getIntent().getStringExtra("cart_id"); + } @Override @@ -152,9 +156,13 @@ public class PayActivity extends BaseActivity { } else { map.put("userid", 0 + ""); } + if (cart_id != null) { + map.put("cart_ids", cart_id); + } map.put("app", "System"); map.put("class", "OrderPrePayId"); map.put("amount", payment_amount); + map.put("order_number", order_number); map.put("sign", Md5.md5("System" + "OrderPrePayId" + Md5.secret)); loader.getMovie(ApiConfig.BASE_URL, map).subscribe(new Action1() { @Override @@ -193,6 +201,7 @@ public class PayActivity extends BaseActivity { } map.put("app", "Order"); map.put("class", "PayBalance"); + map.put("order_number", payment_amount); map.put("sign", Md5.md5("Order" + "PayBalance" + Md5.secret)); loader.getMovie(ApiConfig.BASE_URL, map).subscribe(new Action1() { diff --git a/app/src/main/java/com/sl/house_property/order/SettleActivity.java b/app/src/main/java/com/sl/house_property/order/SettleActivity.java index ddf0403..d4f7ca4 100644 --- a/app/src/main/java/com/sl/house_property/order/SettleActivity.java +++ b/app/src/main/java/com/sl/house_property/order/SettleActivity.java @@ -301,6 +301,9 @@ public class SettleActivity extends BaseActivity { JSONObject jsonObject = new JSONObject(s); String order_number = jsonObject.getString("order_number"); intent.putExtra("order_number", order_number); + if (goodsType==2){ + intent.putExtra("cart_id",cart_id); + } } catch (JSONException e) { e.printStackTrace(); } diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index c7bd21d..0000000 --- a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/layout/activity_code.xml b/app/src/main/res/layout/activity_code.xml index 3fe09f8..d96c12f 100644 --- a/app/src/main/res/layout/activity_code.xml +++ b/app/src/main/res/layout/activity_code.xml @@ -69,8 +69,8 @@ diff --git a/app/src/main/res/layout/dialog_add_goods.xml b/app/src/main/res/layout/dialog_add_goods.xml index e752ff3..5d5e34f 100644 --- a/app/src/main/res/layout/dialog_add_goods.xml +++ b/app/src/main/res/layout/dialog_add_goods.xml @@ -7,7 +7,7 @@ android:padding="8dp"> @@ -73,14 +73,13 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:drawableLeft="@mipmap/gwc1" - android:drawablePadding="5dp" + android:drawableLeft="@mipmap/gwc3" android:gravity="center" android:paddingLeft="14dp" android:paddingTop="5dp" + android:drawablePadding="5dp" android:paddingRight="14dp" android:paddingBottom="5dp" - android:text="购物车" android:textColor="@color/white" - android:textSize="16sp" /> + /> \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_select.xml b/app/src/main/res/layout/dialog_select.xml new file mode 100644 index 0000000..ce827b9 --- /dev/null +++ b/app/src/main/res/layout/dialog_select.xml @@ -0,0 +1,51 @@ + + + + +