This commit is contained in:
jinyuer
2021-01-20 13:51:59 +08:00
parent 3b65534a1e
commit 6973347c61
12 changed files with 393 additions and 43 deletions

View File

@@ -164,7 +164,7 @@ public class CodeActivity extends BaseActivity<ActivityCodeBinding> {
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 {

View File

@@ -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<ActivityAddDiscoveryBindi
private static final int REQUEST_CODE_SELECT_PICTURE = 300;
private int type;
private AdditionImageWrapper additionImageWrapper;
private ArrayList<String> strings;
private ArrayList<GoodsInfoEntity> strings;
private String goodsInfo = "";
@Override
@@ -85,34 +90,42 @@ public class AddDiscoveryActivity extends BaseActivity<ActivityAddDiscoveryBindi
mDataBinding.vi.setVisibility(View.VISIBLE);
mDataBinding.rec2.setVisibility(View.VISIBLE);
mDataBinding.tvGoods.setVisibility(View.VISIBLE);
final BaseRecycleViewAdapter<String, ItemAddGoodsBinding> adapter = new BaseRecycleViewAdapter<>(AddDiscoveryActivity.this, R.layout.item_add_goods);
final BaseRecycleViewAdapter<GoodsInfoEntity, ItemAddGoodsBinding> 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<ItemAddGoodsBinding>() {
@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<ActivityAddDiscoveryBindi
});
new XPopup.Builder(AddDiscoveryActivity.this).asCustom(addGoodsDialog).show();
} else {
SelectDialog selectDialog = new SelectDialog(AddDiscoveryActivity.this);
selectDialog.setOnSelectListener(new SelectDialog.OnSelectListener() {
@Override
public void select(int type) {
if (type == 1) {
//编辑
AddGoodsDialog addGoodsDialog = new AddGoodsDialog(AddDiscoveryActivity.this, strings.get(position).getInfo());
addGoodsDialog.setOnAddGoodsInputListener(new AddGoodsDialog.OnAddGoodsInputListener() {
@Override
public void onConfirm(String info, String s) {
Log.e("xxxx",info);
Log.e("xxxx1",s);
strings.set(position, new GoodsInfoEntity(info, s));
strings.remove(strings.size() - 1);
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);
}
});
new XPopup.Builder(AddDiscoveryActivity.this).asCustom(addGoodsDialog).show();
} else if (type == 2) {
//删除
strings.remove(position);
strings.remove(strings.size() - 1);
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);
}
}
});
new XPopup.Builder(AddDiscoveryActivity.this).asCustom(selectDialog).show();
}
}
});
@@ -223,20 +280,41 @@ public class AddDiscoveryActivity extends BaseActivity<ActivityAddDiscoveryBindi
/*
* 检查访问相册权限
* */
private void checkAlbumPermission(int requestCode, int max) {
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) {
//权限还没有授予,需要在这里写申请权限的代码
if (Build.VERSION.SDK_INT >= 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<String> granted, boolean isAll) {
if (isAll){
selectImage(requestCode, max);
}
}
} else {
selectImage(requestCode, max);
}
@Override
public void noPermission(List<String> 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);
// }
}

View File

@@ -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();
}

View File

@@ -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;
}
}

View File

@@ -17,12 +17,12 @@ 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.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.R;
import com.sl.house_property.databinding.FragmentHistoryRecordBinding;
import com.sl.house_property.databinding.ItemCommentBinding;
@@ -39,12 +39,15 @@ import java.util.Map;
import adapter.BaseRecycleViewAdapter;
import entity.DiscoveryListEntity;
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.DateUtils;
import utils.Md5;
@@ -117,7 +120,7 @@ public class HistoryRecordFragment extends BaseFragment<FragmentHistoryRecordBin
if (!(position >= 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());
@@ -188,7 +191,7 @@ public class HistoryRecordFragment extends BaseFragment<FragmentHistoryRecordBin
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();
@@ -214,13 +217,115 @@ public class HistoryRecordFragment extends BaseFragment<FragmentHistoryRecordBin
imageInfos.add(imageInfo);
}
homeGridAdapterItemBinding.nineGrid.setAdapter(new NineGridViewClickAdapter(context, imageInfos));
homeGridAdapterItemBinding.ivComment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
final CommentDialog commentDialog = new CommentDialog(getContext());
// commentDialog.setShowBug(discoveryListEntity.getType() == 2);
commentDialog.setPraise(discoveryListEntity.getIs_like() == 1);
commentDialog.setType();
commentDialog.setOnCommentOperateListener(new CommentDialog.OnCommentOperateListener() {
@Override
public void click(int type) {
if (type == 1 || type == 2) {
//点赞/取消
commentDialog.dismiss();
like(discoveryListEntity.getGoods_id(), position);
}
}
});
new XPopup.Builder(getContext()).hasShadowBg(false).atView(homeGridAdapterItemBinding.ivComment).asCustom(commentDialog)
.show();
}
});
}
}
});
mDataBinding.recyView.setAdapter(baseRecycleViewAdapter);
baseRecycleViewAdapter.setData(discoveryListEntities);
}
private void like(String goodsId, final int position) {
final RegisterUser user =
Config.getInstance(getContext()).getUser();
Map<String, String> 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<Resultcode>() {
@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<DiscoveryListEntity.Like> 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<Throwable>() {
@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 +426,4 @@ public class HistoryRecordFragment extends BaseFragment<FragmentHistoryRecordBin
};
}

View File

@@ -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);
}
}