From eeb10b698cf7041a353724c71423f07ab6beb137 Mon Sep 17 00:00:00 2001 From: jinyuer <454386664@qq.com> Date: Thu, 17 Sep 2020 17:21:32 +0800 Subject: [PATCH] 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"> - - +