diff --git a/app/src/main/java/com/yonsz/z1/database/entity/AdInfo.java b/app/src/main/java/com/yonsz/z1/database/entity/AdInfo.java new file mode 100644 index 0000000..238b782 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/AdInfo.java @@ -0,0 +1,87 @@ +package com.yonsz.z1.database.entity; + +import android.support.annotation.NonNull; + +import java.io.Serializable; + +/** + * Created by Administrator on 2016/12/5. + */ +public class AdInfo implements Serializable,Comparable{ + + private int AdUrl; + private String shareName; + private String shareNumber; + + + + + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + + AdInfo adInfo = (AdInfo) o; + + if (AdUrl != adInfo.AdUrl) + return false; + if (shareName != null ? !shareName.equals(adInfo.shareName) : adInfo.shareName != null) + return false; + return shareNumber != null ? shareNumber.equals(adInfo.shareNumber) : adInfo.shareNumber == null; + + } + + @Override + public int hashCode() { + int result = AdUrl; + result = 31 * result + (shareName != null ? shareName.hashCode() : 0); + result = 31 * result + (shareNumber != null ? shareNumber.hashCode() : 0); + return result; + } + + public AdInfo() { + } + + public AdInfo(int adUrl) { + AdUrl = adUrl; + } + + public String getShareNumber() { + return shareNumber == null ? "" : shareNumber; + } + + public void setShareNumber(String shareNumber) { + this.shareNumber = shareNumber == null ? "" : shareNumber; + } + + public int getAdUrl() { + return AdUrl; + } + + public void setAdUrl(int adUrl) { + AdUrl = adUrl; + } + + public String getShareName() { + return shareName == null ? "" : shareName; + } + + public void setShareName(String shareName) { + this.shareName = shareName == null ? "" : shareName; + } + + @Override + public String toString() { + return "AdInfo{" + + "AdUrl='" + AdUrl + '\'' + + '}'; + } + + @Override + public int compareTo(@NonNull Object o) { + return 0; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/AddChildDeviceEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/AddChildDeviceEntity.java new file mode 100644 index 0000000..3be9d55 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/AddChildDeviceEntity.java @@ -0,0 +1,143 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/6/20. + */ + +public class AddChildDeviceEntity { + + /** + * msg : 保存成功。 + * flag : 1 + * obj : {"updateDate":"2017-05-25 09:30:21","ziId":"1","id":"72e49cea1d3f4ec09ce26384152c857f","isNewRecord":false,"deviceId":"001","deviceName":"风扇","createDate":"2017-05-25 09:30:21"} + */ + private String msg; + private int flag; + private ObjEntity obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * updateDate : 2017-05-25 09:30:21 + * ziId : 1 + * id : 72e49cea1d3f4ec09ce26384152c857f + * isNewRecord : false + * deviceId : 001 + * deviceName : 风扇 + * createDate : 2017-05-25 09:30:21 + */ + private String updateDate; + private String ziId; + private String id; + private boolean isNewRecord; + private String deviceId; + private String deviceName; + private String createDate; + private String deviceBrand; + private String assistBrand; + private String assistFlag; + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getDeviceBrand() { + return deviceBrand == null ? "" : deviceBrand; + } + + public void setDeviceBrand(String deviceBrand) { + this.deviceBrand = deviceBrand; + } + + public String getAssistBrand() { + return assistBrand == null ? "" : assistBrand; + } + + public void setAssistBrand(String assistBrand) { + this.assistBrand = assistBrand; + } + + public String getAssistFlag() { + return assistFlag == null ? "" : assistFlag; + } + + public void setAssistFlag(String assistFlag) { + this.assistFlag = assistFlag; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/AdditionEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/AdditionEntity.java new file mode 100644 index 0000000..fcbfa73 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/AdditionEntity.java @@ -0,0 +1,52 @@ +package com.yonsz.z1.database.entity; + +public class AdditionEntity { + + /** + * addition : {"brightness":"20"} + */ + + private AdditionBean addition; + private String value; + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public AdditionBean getAddition() { + return addition; + } + + public void setAddition(AdditionBean addition) { + this.addition = addition; + } + + public static class AdditionBean { + /** + * brightness : 20 + */ + + private String brightness; + private String travelControl; + + public String getTravelControl() { + return travelControl == null ? "" : travelControl; + } + + public void setTravelControl(String travelControl) { + this.travelControl = travelControl; + } + + public String getBrightness() { + return brightness == null ? "" : brightness; + } + + public void setBrightness(String brightness) { + this.brightness = brightness == null ? "" : brightness; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/AirControlEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/AirControlEvent.java new file mode 100644 index 0000000..43df30e --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/AirControlEvent.java @@ -0,0 +1,15 @@ +package com.yonsz.z1.database.entity; + +public class AirControlEvent { + + private String mMsg; + + public AirControlEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/AirStateEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/AirStateEntity.java new file mode 100644 index 0000000..694b514 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/AirStateEntity.java @@ -0,0 +1,236 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/10/17. + */ + +public class AirStateEntity { + + /** + * msg : 查询成功。 + * flag : 1 + * obj : {"airSleep":"0","temp":"25","updateDate":"2017-10-17 10:44:12","authwindDirect":"0","isNewRecord":false,"airScreen":"0","deviceId":"001","airSwitch":"1","speed":"0","adrSysflag":"33","ziId":"F0FE6B58E220","controDirect":"0","airEconomic":"0","model":"1","id":"6977a5cc61b840ce90f46340be30c8b0","adrKeyval":"0","windDirect":"1","createDate":"2017-10-13 12:02:42"} + */ + private String msg; + private int flag; + private DataBean data; + + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public static class DataBean { + /** + * airSleep : 0 + * temp : 25 + * updateDate : 2017-10-17 10:44:12 + * authwindDirect : 0 + * isNewRecord : false + * airScreen : 0 + * deviceId : 001 + * airSwitch : 1 + * speed : 0 + * adrSysflag : 33 + * ziId : F0FE6B58E220 + * controDirect : 0 + * airEconomic : 0 + * model : 1 + * id : 6977a5cc61b840ce90f46340be30c8b0 + * adrKeyval : 0 + * windDirect : 1 + * createDate : 2017-10-13 12:02:42 + */ + private String airSleep; + private String temp; + private String updateDate; + private String authwindDirect; + private boolean isNewRecord; + private String airScreen; + private String deviceId; + private String airSwitch; + private String speed; + private String adrSysflag; + private String ziId; + private String controDirect; + private String airEconomic; + private String model; + private String id; + private String adrKeyval; + private String windDirect; + private String createDate; + private String openFlag; + + public String getAirSleep() { + return airSleep == null ? "" : airSleep; + } + + public void setAirSleep(String airSleep) { + this.airSleep = airSleep; + } + + public String getTemp() { + return temp == null ? "" : temp; + } + + public void setTemp(String temp) { + this.temp = temp; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getAuthwindDirect() { + return authwindDirect == null ? "" : authwindDirect; + } + + public void setAuthwindDirect(String authwindDirect) { + this.authwindDirect = authwindDirect; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getAirScreen() { + return airScreen == null ? "" : airScreen; + } + + public void setAirScreen(String airScreen) { + this.airScreen = airScreen; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getAirSwitch() { + return airSwitch == null ? "" : airSwitch; + } + + public void setAirSwitch(String airSwitch) { + this.airSwitch = airSwitch; + } + + public String getSpeed() { + return speed == null ? "" : speed; + } + + public void setSpeed(String speed) { + this.speed = speed; + } + + public String getAdrSysflag() { + return adrSysflag == null ? "" : adrSysflag; + } + + public void setAdrSysflag(String adrSysflag) { + this.adrSysflag = adrSysflag; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getControDirect() { + return controDirect == null ? "" : controDirect; + } + + public void setControDirect(String controDirect) { + this.controDirect = controDirect; + } + + public String getAirEconomic() { + return airEconomic == null ? "" : airEconomic; + } + + public void setAirEconomic(String airEconomic) { + this.airEconomic = airEconomic; + } + + public String getModel() { + return model == null ? "" : model; + } + + public void setModel(String model) { + this.model = model; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getAdrKeyval() { + return adrKeyval == null ? "" : adrKeyval; + } + + public void setAdrKeyval(String adrKeyval) { + this.adrKeyval = adrKeyval; + } + + public String getWindDirect() { + return windDirect == null ? "" : windDirect; + } + + public void setWindDirect(String windDirect) { + this.windDirect = windDirect; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/AppPayEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/AppPayEntity.java new file mode 100644 index 0000000..57277dd --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/AppPayEntity.java @@ -0,0 +1,135 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2018/11/7. + */ + +public class AppPayEntity { + + /** + * flag : 1 + * data : {"package":"Sign=WXPay","appid":"wx93fc1edef0e5fc70","sign":"EA09606CDFE8A9D749F2100EDF4DCF7F","partnerid":"1511229451","prepayid":"wx07110150697847ef2038ccb24187584133","noncestr":"R6g3GKgl3X0zQejb","timestamp":"1541559710"} + * msg : 升级设备成功。 + */ + + private int flag; + private DataBean data; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * package : Sign=WXPay + * appid : wx93fc1edef0e5fc70 + * sign : EA09606CDFE8A9D749F2100EDF4DCF7F + * partnerid : 1511229451 + * prepayid : wx07110150697847ef2038ccb24187584133 + * noncestr : R6g3GKgl3X0zQejb + * timestamp : 1541559710 + */ + private String packageX; + private String appid; + private String sign; + private String partnerid; + private String prepayid; + private String noncestr; + private String timestamp; + private String orderNo; + private String prepayId; + + public String getOrderNo() { + return orderNo == null ? "" : orderNo; + } + + public void setOrderNo(String orderNo) { + this.orderNo = orderNo; + } + + public String getPrepayId() { + return prepayId == null ? "" : prepayId; + } + + public void setPrepayId(String prepayId) { + this.prepayId = prepayId; + } + + public String getPackageX() { + return packageX == null ? "" : packageX; + } + + public void setPackageX(String packageX) { + this.packageX = packageX; + } + + public String getAppid() { + return appid == null ? "" : appid; + } + + public void setAppid(String appid) { + this.appid = appid; + } + + public String getSign() { + return sign == null ? "" : sign; + } + + public void setSign(String sign) { + this.sign = sign; + } + + public String getPartnerid() { + return partnerid == null ? "" : partnerid; + } + + public void setPartnerid(String partnerid) { + this.partnerid = partnerid; + } + + public String getPrepayid() { + return prepayid == null ? "" : prepayid; + } + + public void setPrepayid(String prepayid) { + this.prepayid = prepayid; + } + + public String getNoncestr() { + return noncestr == null ? "" : noncestr; + } + + public void setNoncestr(String noncestr) { + this.noncestr = noncestr; + } + + public String getTimestamp() { + return timestamp == null ? "" : timestamp; + } + + public void setTimestamp(String timestamp) { + this.timestamp = timestamp; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/AreaEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/AreaEntity.java new file mode 100644 index 0000000..e6f6b79 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/AreaEntity.java @@ -0,0 +1,94 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/11/9. + */ + +public class AreaEntity { + + /** + * data : [{"areaCode":"86","commonFlag":"1","countryName":"中国","isNewRecord":true},{"areaCode":"852","commonFlag":"1","countryName":"中国香港","isNewRecord":true},{"areaCode":"853","commonFlag":"1","countryName":"中国澳门","isNewRecord":true},{"areaCode":"886","commonFlag":"1","countryName":"台湾","isNewRecord":true},{"areaCode":"65","commonFlag":"1","countryName":"新加坡","isNewRecord":true},{"areaCode":"60","commonFlag":"1","countryName":"马来西亚","isNewRecord":true},{"areaCode":"61","commonFlag":"1","countryName":"澳大利亚","isNewRecord":true},{"areaCode":"1","commonFlag":"1","countryName":"加拿大","isNewRecord":true},{"areaCode":"1","commonFlag":"1","countryName":"美国","isNewRecord":true},{"areaCode":"355","commonFlag":"0","countryName":"阿尔巴尼亚","isNewRecord":true},{"areaCode":"213","commonFlag":"0","countryName":"阿尔及利亚","isNewRecord":true},{"areaCode":"93","commonFlag":"0","countryName":"阿富汗","isNewRecord":true},{"areaCode":"54","commonFlag":"0","countryName":"阿根廷","isNewRecord":true},{"areaCode":"971","commonFlag":"0","countryName":"阿拉伯联合酋长国","isNewRecord":true},{"areaCode":"1907","commonFlag":"0","countryName":"阿拉斯加","isNewRecord":true},{"areaCode":"297","commonFlag":"0","countryName":"阿鲁巴岛","isNewRecord":true},{"areaCode":"968","commonFlag":"0","countryName":"阿曼","isNewRecord":true},{"areaCode":"994","commonFlag":"0","countryName":"阿塞拜疆","isNewRecord":true},{"areaCode":"247","commonFlag":"0","countryName":"阿森松(英)","isNewRecord":true},{"areaCode":"20","commonFlag":"0","countryName":"埃及","isNewRecord":true},{"areaCode":"251","commonFlag":"0","countryName":"埃塞俄比亚","isNewRecord":true},{"areaCode":"353","commonFlag":"0","countryName":"爱尔兰","isNewRecord":true},{"areaCode":"372","commonFlag":"0","countryName":"爱沙尼亚","isNewRecord":true},{"areaCode":"376","commonFlag":"0","countryName":"安道尔","isNewRecord":true},{"areaCode":"244","commonFlag":"0","countryName":"安哥拉","isNewRecord":true},{"areaCode":"1264","commonFlag":"0","countryName":"安圭拉岛(英)","isNewRecord":true},{"areaCode":"1268","commonFlag":"0","countryName":"安提瓜和巴布达","isNewRecord":true},{"areaCode":"43","commonFlag":"0","countryName":"奥地利","isNewRecord":true},{"areaCode":"853","commonFlag":"0","countryName":"澳门","isNewRecord":true},{"areaCode":"1246","commonFlag":"0","countryName":"巴巴多斯","isNewRecord":true},{"areaCode":"675","commonFlag":"0","countryName":"巴布亚新几内亚","isNewRecord":true},{"areaCode":"1809","commonFlag":"0","countryName":"巴哈马","isNewRecord":true},{"areaCode":"92","commonFlag":"0","countryName":"巴基斯坦","isNewRecord":true},{"areaCode":"595","commonFlag":"0","countryName":"巴拉圭","isNewRecord":true},{"areaCode":"930","commonFlag":"0","countryName":"巴勒斯坦","isNewRecord":true},{"areaCode":"973","commonFlag":"0","countryName":"巴林","isNewRecord":true},{"areaCode":"507","commonFlag":"0","countryName":"巴拿马","isNewRecord":true},{"areaCode":"55","commonFlag":"0","countryName":"巴西","isNewRecord":true},{"areaCode":"375","commonFlag":"0","countryName":"白俄罗斯","isNewRecord":true},{"areaCode":"1441","commonFlag":"0","countryName":"百慕大群岛(英)","isNewRecord":true},{"areaCode":"359","commonFlag":"0","countryName":"保加利亚","isNewRecord":true},{"areaCode":"229","commonFlag":"0","countryName":"贝宁","isNewRecord":true},{"areaCode":"32","commonFlag":"0","countryName":"比利时","isNewRecord":true},{"areaCode":"354","commonFlag":"0","countryName":"冰岛","isNewRecord":true},{"areaCode":"1787","commonFlag":"0","countryName":"波多黎各(美)","isNewRecord":true},{"areaCode":"387","commonFlag":"0","countryName":"波黑","isNewRecord":true},{"areaCode":"48","commonFlag":"0","countryName":"波兰","isNewRecord":true},{"areaCode":"387","commonFlag":"0","countryName":"波斯尼亚和黑塞哥维那","isNewRecord":true},{"areaCode":"591","commonFlag":"0","countryName":"玻利维亚","isNewRecord":true},{"areaCode":"501","commonFlag":"0","countryName":"伯利兹","isNewRecord":true},{"areaCode":"267","commonFlag":"0","countryName":"博茨瓦纳","isNewRecord":true},{"areaCode":"975","commonFlag":"0","countryName":"不丹","isNewRecord":true},{"areaCode":"226","commonFlag":"0","countryName":"布基纳法索","isNewRecord":true},{"areaCode":"257","commonFlag":"0","countryName":"布隆迪","isNewRecord":true},{"areaCode":"85","commonFlag":"0","countryName":"朝鲜","isNewRecord":true},{"areaCode":"240","commonFlag":"0","countryName":"赤道几内亚","isNewRecord":true},{"areaCode":"45","commonFlag":"0","countryName":"丹麦","isNewRecord":true},{"areaCode":"49","commonFlag":"0","countryName":"德国","isNewRecord":true},{"areaCode":"246","commonFlag":"0","countryName":"迪戈加西亚岛","isNewRecord":true},{"areaCode":"670","commonFlag":"0","countryName":"东帝汶","isNewRecord":true},{"areaCode":"684","commonFlag":"0","countryName":"东萨摩亚(美)","isNewRecord":true},{"areaCode":"228","commonFlag":"0","countryName":"多哥","isNewRecord":true},{"areaCode":"1767","commonFlag":"0","countryName":"多米尼加","isNewRecord":true},{"areaCode":"809","commonFlag":"0","countryName":"多米尼加联邦","isNewRecord":true},{"areaCode":"1809","commonFlag":"0","countryName":"多米尼克国","isNewRecord":true},{"areaCode":"7","commonFlag":"0","countryName":"俄罗斯","isNewRecord":true},{"areaCode":"593","commonFlag":"0","countryName":"厄瓜多尔","isNewRecord":true},{"areaCode":"291","commonFlag":"0","countryName":"厄立特里亚","isNewRecord":true},{"areaCode":"33","commonFlag":"0","countryName":"法国","isNewRecord":true},{"areaCode":"298","commonFlag":"0","countryName":"法罗群岛(丹)","isNewRecord":true},{"areaCode":"689","commonFlag":"0","countryName":"法属波里尼西亚","isNewRecord":true},{"areaCode":"594","commonFlag":"0","countryName":"法属圭亚那","isNewRecord":true},{"areaCode":"379","commonFlag":"0","countryName":"梵蒂冈","isNewRecord":true},{"areaCode":"63","commonFlag":"0","countryName":"菲律宾","isNewRecord":true},{"areaCode":"679","commonFlag":"0","countryName":"斐济","isNewRecord":true},{"areaCode":"358","commonFlag":"0","countryName":"芬兰","isNewRecord":true},{"areaCode":"238","commonFlag":"0","countryName":"佛得角","isNewRecord":true},{"areaCode":"500","commonFlag":"0","countryName":"福克兰群岛","isNewRecord":true},{"areaCode":"220","commonFlag":"0","countryName":"冈比亚","isNewRecord":true},{"areaCode":"242","commonFlag":"0","countryName":"刚果","isNewRecord":true},{"areaCode":"243","commonFlag":"0","countryName":"刚果民主","isNewRecord":true},{"areaCode":"57","commonFlag":"0","countryName":"哥伦比亚","isNewRecord":true},{"areaCode":"506","commonFlag":"0","countryName":"哥斯达黎加","isNewRecord":true},{"areaCode":"1809","commonFlag":"0","countryName":"格林纳达","isNewRecord":true},{"areaCode":"299","commonFlag":"0","countryName":"格陵兰岛","isNewRecord":true},{"areaCode":"995","commonFlag":"0","countryName":"格鲁吉亚","isNewRecord":true},{"areaCode":"53","commonFlag":"0","countryName":"古巴","isNewRecord":true},{"areaCode":"590","commonFlag":"0","countryName":"瓜德罗普岛(法)","isNewRecord":true},{"areaCode":"671","commonFlag":"0","countryName":"关岛(美)","isNewRecord":true},{"areaCode":"592","commonFlag":"0","countryName":"圭亚那","isNewRecord":true},{"areaCode":"7","commonFlag":"0","countryName":"哈萨克斯坦","isNewRecord":true},{"areaCode":"509","commonFlag":"0","countryName":"海地","isNewRecord":true},{"areaCode":"82","commonFlag":"0","countryName":"韩国","isNewRecord":true},{"areaCode":"31","commonFlag":"0","countryName":"荷兰","isNewRecord":true},{"areaCode":"599","commonFlag":"0","countryName":"荷属安的列斯群岛","isNewRecord":true},{"areaCode":"504","commonFlag":"0","countryName":"洪都拉斯","isNewRecord":true},{"areaCode":"686","commonFlag":"0","countryName":"基里巴斯","isNewRecord":true},{"areaCode":"253","commonFlag":"0","countryName":"吉布提","isNewRecord":true},{"areaCode":"996","commonFlag":"0","countryName":"吉尔吉斯斯坦","isNewRecord":true},{"areaCode":"224","commonFlag":"0","countryName":"几内亚","isNewRecord":true},{"areaCode":"245","commonFlag":"0","countryName":"几内亚比绍","isNewRecord":true},{"areaCode":"34","commonFlag":"0","countryName":"加那利群岛","isNewRecord":true},{"areaCode":"233","commonFlag":"0","countryName":"加纳","isNewRecord":true},{"areaCode":"241","commonFlag":"0","countryName":"加蓬","isNewRecord":true},{"areaCode":"855","commonFlag":"0","countryName":"柬埔寨","isNewRecord":true},{"areaCode":"420","commonFlag":"0","countryName":"捷克","isNewRecord":true},{"areaCode":"263","commonFlag":"0","countryName":"津巴布韦","isNewRecord":true},{"areaCode":"237","commonFlag":"0","countryName":"喀麦隆","isNewRecord":true},{"areaCode":"974","commonFlag":"0","countryName":"卡塔尔","isNewRecord":true},{"areaCode":"1345","commonFlag":"0","countryName":"开曼群岛(英)","isNewRecord":true},{"areaCode":"00619162","commonFlag":"0","countryName":"科科斯岛","isNewRecord":true},{"areaCode":"682","commonFlag":"0","countryName":"科克群岛(新)","isNewRecord":true},{"areaCode":"269","commonFlag":"0","countryName":"科摩罗","isNewRecord":true},{"areaCode":"225","commonFlag":"0","countryName":"科特迪瓦","isNewRecord":true},{"areaCode":"965","commonFlag":"0","countryName":"科威特","isNewRecord":true},{"areaCode":"383","commonFlag":"0","countryName":"克罗地亚","isNewRecord":true},{"areaCode":"254","commonFlag":"0","countryName":"肯尼亚","isNewRecord":true},{"areaCode":"682","commonFlag":"0","countryName":"库克群岛","isNewRecord":true},{"areaCode":"371","commonFlag":"0","countryName":"拉托维亚","isNewRecord":true},{"areaCode":"266","commonFlag":"0","countryName":"莱索托","isNewRecord":true},{"areaCode":"856","commonFlag":"0","countryName":"老挝","isNewRecord":true},{"areaCode":"961","commonFlag":"0","countryName":"黎巴嫩","isNewRecord":true},{"areaCode":"370","commonFlag":"0","countryName":"立陶宛","isNewRecord":true},{"areaCode":"231","commonFlag":"0","countryName":"利比里亚","isNewRecord":true},{"areaCode":"218","commonFlag":"0","countryName":"利比亚","isNewRecord":true},{"areaCode":"41","commonFlag":"0","countryName":"列支敦士登","isNewRecord":true},{"areaCode":"262","commonFlag":"0","countryName":"留尼汪岛","isNewRecord":true},{"areaCode":"352","commonFlag":"0","countryName":"卢森堡","isNewRecord":true},{"areaCode":"250","commonFlag":"0","countryName":"卢旺达","isNewRecord":true},{"areaCode":"40","commonFlag":"0","countryName":"罗马尼亚","isNewRecord":true},{"areaCode":"261","commonFlag":"0","countryName":"马达加斯加","isNewRecord":true},{"areaCode":"960","commonFlag":"0","countryName":"马尔代夫","isNewRecord":true},{"areaCode":"356","commonFlag":"0","countryName":"马耳他","isNewRecord":true},{"areaCode":"265","commonFlag":"0","countryName":"马拉维","isNewRecord":true},{"areaCode":"223","commonFlag":"0","countryName":"马里","isNewRecord":true},{"areaCode":"670","commonFlag":"0","countryName":"马里亚纳群岛","isNewRecord":true},{"areaCode":"389","commonFlag":"0","countryName":"马其顿","isNewRecord":true},{"areaCode":"692","commonFlag":"0","countryName":"马绍尔群岛","isNewRecord":true},{"areaCode":"596","commonFlag":"0","countryName":"马提尼克(法)","isNewRecord":true},{"areaCode":"269","commonFlag":"0","countryName":"马约特岛","isNewRecord":true},{"areaCode":"230","commonFlag":"0","countryName":"毛里求斯","isNewRecord":true},{"areaCode":"222","commonFlag":"0","countryName":"毛里塔尼亚","isNewRecord":true},{"areaCode":"976","commonFlag":"0","countryName":"蒙古","isNewRecord":true},{"areaCode":"1664","commonFlag":"0","countryName":"蒙特塞拉特岛(英)","isNewRecord":true},{"areaCode":"880","commonFlag":"0","countryName":"孟加拉国","isNewRecord":true},{"areaCode":"51","commonFlag":"0","countryName":"秘鲁","isNewRecord":true},{"areaCode":"691","commonFlag":"0","countryName":"密克罗尼西亚","isNewRecord":true},{"areaCode":"691","commonFlag":"0","countryName":"密克罗尼西亚(美)","isNewRecord":true},{"areaCode":"95","commonFlag":"0","countryName":"缅甸","isNewRecord":true},{"areaCode":"373","commonFlag":"0","countryName":"摩尔多瓦","isNewRecord":true},{"areaCode":"212","commonFlag":"0","countryName":"摩洛哥","isNewRecord":true},{"areaCode":"377","commonFlag":"0","countryName":"摩纳哥","isNewRecord":true},{"areaCode":"258","commonFlag":"0","countryName":"莫桑比克","isNewRecord":true},{"areaCode":"52","commonFlag":"0","countryName":"墨西哥","isNewRecord":true},{"areaCode":"264","commonFlag":"0","countryName":"纳米比亚","isNewRecord":true},{"areaCode":"27","commonFlag":"0","countryName":"南非","isNewRecord":true},{"areaCode":"381","commonFlag":"0","countryName":"南斯拉夫","isNewRecord":true},{"areaCode":"674","commonFlag":"0","countryName":"瑙鲁","isNewRecord":true},{"areaCode":"977","commonFlag":"0","countryName":"尼泊尔","isNewRecord":true},{"areaCode":"505","commonFlag":"0","countryName":"尼加拉瓜","isNewRecord":true},{"areaCode":"227","commonFlag":"0","countryName":"尼日尔","isNewRecord":true},{"areaCode":"234","commonFlag":"0","countryName":"尼日利亚","isNewRecord":true},{"areaCode":"683","commonFlag":"0","countryName":"纽埃岛(新)","isNewRecord":true},{"areaCode":"47","commonFlag":"0","countryName":"挪威","isNewRecord":true},{"areaCode":"6723","commonFlag":"0","countryName":"诺福克岛(澳)","isNewRecord":true},{"areaCode":"680","commonFlag":"0","countryName":"帕劳","isNewRecord":true},{"areaCode":"680","commonFlag":"0","countryName":"帕劳(美)","isNewRecord":true},{"areaCode":"351","commonFlag":"0","countryName":"葡萄牙","isNewRecord":true},{"areaCode":"81","commonFlag":"0","countryName":"日本","isNewRecord":true},{"areaCode":"46","commonFlag":"0","countryName":"瑞典","isNewRecord":true},{"areaCode":"41","commonFlag":"0","countryName":"瑞士","isNewRecord":true},{"areaCode":"503","commonFlag":"0","countryName":"萨尔瓦多","isNewRecord":true},{"areaCode":"685","commonFlag":"0","countryName":"萨摩亚","isNewRecord":true},{"areaCode":"381","commonFlag":"0","countryName":"塞尔维亚","isNewRecord":true},{"areaCode":"232","commonFlag":"0","countryName":"塞拉利昂","isNewRecord":true},{"areaCode":"221","commonFlag":"0","countryName":"塞内加尔","isNewRecord":true},{"areaCode":"357","commonFlag":"0","countryName":"塞浦路斯","isNewRecord":true},{"areaCode":"248","commonFlag":"0","countryName":"塞舌尔","isNewRecord":true},{"areaCode":"259","commonFlag":"0","countryName":"桑给巴尔","isNewRecord":true},{"areaCode":"966","commonFlag":"0","countryName":"沙特阿拉伯","isNewRecord":true},{"areaCode":"00619164","commonFlag":"0","countryName":"圣诞岛","isNewRecord":true},{"areaCode":"239","commonFlag":"0","countryName":"圣多美和普林西比","isNewRecord":true},{"areaCode":"290","commonFlag":"0","countryName":"圣赫勒拿","isNewRecord":true},{"areaCode":"1809","commonFlag":"0","countryName":"圣基茨和尼维斯","isNewRecord":true},{"areaCode":"1809","commonFlag":"0","countryName":"圣克里斯托弗和尼维斯","isNewRecord":true},{"areaCode":"1758","commonFlag":"0","countryName":"圣卢西亚","isNewRecord":true},{"areaCode":"378","commonFlag":"0","countryName":"圣马力诺","isNewRecord":true},{"areaCode":"378","commonFlag":"0","countryName":"圣马利诺","isNewRecord":true},{"areaCode":"508","commonFlag":"0","countryName":"圣皮埃尔岛及密克隆岛","isNewRecord":true},{"areaCode":"1784","commonFlag":"0","countryName":"圣文森特岛(英)","isNewRecord":true},{"areaCode":"1784","commonFlag":"0","countryName":"圣文森特和格林纳丁斯","isNewRecord":true},{"areaCode":"94","commonFlag":"0","countryName":"斯里兰卡","isNewRecord":true},{"areaCode":"421","commonFlag":"0","countryName":"斯洛伐克","isNewRecord":true},{"areaCode":"386","commonFlag":"0","countryName":"斯洛文尼亚","isNewRecord":true},{"areaCode":"268","commonFlag":"0","countryName":"斯威士兰","isNewRecord":true},{"areaCode":"249","commonFlag":"0","countryName":"苏丹","isNewRecord":true},{"areaCode":"597","commonFlag":"0","countryName":"苏里南","isNewRecord":true},{"areaCode":"677","commonFlag":"0","countryName":"所罗门群岛","isNewRecord":true},{"areaCode":"252","commonFlag":"0","countryName":"索马里","isNewRecord":true},{"areaCode":"992","commonFlag":"0","countryName":"塔吉克斯坦","isNewRecord":true},{"areaCode":"66","commonFlag":"0","countryName":"泰国","isNewRecord":true},{"areaCode":"255","commonFlag":"0","countryName":"坦桑尼亚","isNewRecord":true},{"areaCode":"676","commonFlag":"0","countryName":"汤加","isNewRecord":true},{"areaCode":"1809","commonFlag":"0","countryName":"特克斯和凯科斯群岛","isNewRecord":true},{"areaCode":"1809","commonFlag":"0","countryName":"特立尼达和多巴哥","isNewRecord":true},{"areaCode":"216","commonFlag":"0","countryName":"突尼斯","isNewRecord":true},{"areaCode":"688","commonFlag":"0","countryName":"图瓦卢","isNewRecord":true},{"areaCode":"90","commonFlag":"0","countryName":"土耳其","isNewRecord":true},{"areaCode":"993","commonFlag":"0","countryName":"土库曼斯坦","isNewRecord":true},{"areaCode":"690","commonFlag":"0","countryName":"托克劳群岛(新)","isNewRecord":true},{"areaCode":"681","commonFlag":"0","countryName":"瓦里斯和富士那群岛","isNewRecord":true},{"areaCode":"678","commonFlag":"0","countryName":"瓦努阿图","isNewRecord":true},{"areaCode":"502","commonFlag":"0","countryName":"危地马拉","isNewRecord":true},{"areaCode":"1808","commonFlag":"0","countryName":"威克岛(美)","isNewRecord":true},{"areaCode":"1809","commonFlag":"0","countryName":"维尔京群岛(英)","isNewRecord":true},{"areaCode":"1809","commonFlag":"0","countryName":"维尔京群岛和圣罗克伊","isNewRecord":true},{"areaCode":"58","commonFlag":"0","countryName":"委内瑞拉","isNewRecord":true},{"areaCode":"673","commonFlag":"0","countryName":"文莱","isNewRecord":true},{"areaCode":"256","commonFlag":"0","countryName":"乌干达","isNewRecord":true},{"areaCode":"380","commonFlag":"0","countryName":"乌克兰","isNewRecord":true},{"areaCode":"598","commonFlag":"0","countryName":"乌拉圭","isNewRecord":true},{"areaCode":"998","commonFlag":"0","countryName":"乌兹别克斯坦","isNewRecord":true},{"areaCode":"34","commonFlag":"0","countryName":"西班牙","isNewRecord":true},{"areaCode":"967","commonFlag":"0","countryName":"西撒哈拉","isNewRecord":true},{"areaCode":"685","commonFlag":"0","countryName":"西萨摩亚","isNewRecord":true},{"areaCode":"30","commonFlag":"0","countryName":"希腊","isNewRecord":true},{"areaCode":"1808","commonFlag":"0","countryName":"夏威夷","isNewRecord":true},{"areaCode":"687","commonFlag":"0","countryName":"新喀里多尼亚群岛(法)","isNewRecord":true},{"areaCode":"64","commonFlag":"0","countryName":"新西兰","isNewRecord":true},{"areaCode":"36","commonFlag":"0","countryName":"匈牙利","isNewRecord":true},{"areaCode":"963","commonFlag":"0","countryName":"叙利亚","isNewRecord":true},{"areaCode":"1876","commonFlag":"0","countryName":"牙买加","isNewRecord":true},{"areaCode":"374","commonFlag":"0","countryName":"亚美尼亚","isNewRecord":true},{"areaCode":"967","commonFlag":"0","countryName":"也门","isNewRecord":true},{"areaCode":"964","commonFlag":"0","countryName":"伊拉克","isNewRecord":true},{"areaCode":"98","commonFlag":"0","countryName":"伊朗","isNewRecord":true},{"areaCode":"972","commonFlag":"0","countryName":"以色列","isNewRecord":true},{"areaCode":"39","commonFlag":"0","countryName":"意大利","isNewRecord":true},{"areaCode":"91","commonFlag":"0","countryName":"印度","isNewRecord":true},{"areaCode":"62","commonFlag":"0","countryName":"印度尼西亚","isNewRecord":true},{"areaCode":"44","commonFlag":"0","countryName":"英国","isNewRecord":true},{"areaCode":"962","commonFlag":"0","countryName":"约旦","isNewRecord":true},{"areaCode":"84","commonFlag":"0","countryName":"越南","isNewRecord":true},{"areaCode":"260","commonFlag":"0","countryName":"赞比亚","isNewRecord":true},{"areaCode":"243","commonFlag":"0","countryName":"扎伊尔","isNewRecord":true},{"areaCode":"235","commonFlag":"0","countryName":"乍得","isNewRecord":true},{"areaCode":"350","commonFlag":"0","countryName":"直布罗陀(英)","isNewRecord":true},{"areaCode":"56","commonFlag":"0","countryName":"智利","isNewRecord":true},{"areaCode":"236","commonFlag":"0","countryName":"中非","isNewRecord":true},{"areaCode":"1808","commonFlag":"0","countryName":"中途岛(美)","isNewRecord":true}] + * flag : 1 + * msg : 获取国际电话区号列表成功 + */ + + private int flag; + private String msg; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * areaCode : 86 + * commonFlag : 1 + * countryName : 中国 + * isNewRecord : true + */ + + private String areaCode; + private String commonFlag; + private String countryName; + private boolean isNewRecord; + + public String getAreaCode() { + return areaCode == null ? "" : areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getCommonFlag() { + return commonFlag == null ? "" : commonFlag; + } + + public void setCommonFlag(String commonFlag) { + this.commonFlag = commonFlag; + } + + public String getCountryName() { + return countryName == null ? "" : countryName; + } + + public void setCountryName(String countryName) { + this.countryName = countryName; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/BindDeviceEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/BindDeviceEntity.java new file mode 100644 index 0000000..144383a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/BindDeviceEntity.java @@ -0,0 +1,281 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/6/20. + */ + +public class BindDeviceEntity { + + /** + * msg : 保存成功。 + * flag : 1 + * obj : {"ziName":"Z1-03","updateDate":"2017-06-20 15:45:47","deviceAddress":"家里","ziId":"ACCOERVICE","isOwner":"1","id":"1bcdf549bccf4571a0019495c254a9f5","isNewRecord":false,"userName":"啦啦啦","user":{"updateDate":"2017-04-13 17:04:53","oldLoginIp":"218.18.156.179","loginDate":"2017-06-15 11:38:45","admin":false,"loginFlag":"1","isNewRecord":false,"oldLoginDate":"2017-06-15 11:38:45","loginName":"18824634310","loginIp":"218.18.156.179","name":"啦啦啦","id":"c345b148c2c2461c82109a6126f400f9","roleNames":"","createDate":"2017-04-13 17:04:53"},"createDate":"2017-06-20 15:45:47"} + */ + private String msg; + private int flag; + private ObjEntity obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * ziName : Z1-03 + * updateDate : 2017-06-20 15:45:47 + * deviceAddress : 家里 + * ziId : ACCOERVICE + * isOwner : 1 + * id : 1bcdf549bccf4571a0019495c254a9f5 + * isNewRecord : false + * userName : 啦啦啦 + * user : {"updateDate":"2017-04-13 17:04:53","oldLoginIp":"218.18.156.179","loginDate":"2017-06-15 11:38:45","admin":false,"loginFlag":"1","isNewRecord":false,"oldLoginDate":"2017-06-15 11:38:45","loginName":"18824634310","loginIp":"218.18.156.179","name":"啦啦啦","id":"c345b148c2c2461c82109a6126f400f9","roleNames":"","createDate":"2017-04-13 17:04:53"} + * createDate : 2017-06-20 15:45:47 + */ + private String ziName; + private String updateDate; + private String deviceAddress; + private String ziId; + private String isOwner; + private String id; + private boolean isNewRecord; + private String userName; + private UserEntity user; + private String createDate; + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getDeviceAddress() { + return deviceAddress == null ? "" : deviceAddress; + } + + public void setDeviceAddress(String deviceAddress) { + this.deviceAddress = deviceAddress; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getIsOwner() { + return isOwner == null ? "" : isOwner; + } + + public void setIsOwner(String isOwner) { + this.isOwner = isOwner; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getUserName() { + return userName == null ? "" : userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public UserEntity getUser() { + return user; + } + + public void setUser(UserEntity user) { + this.user = user; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public static class UserEntity { + /** + * updateDate : 2017-04-13 17:04:53 + * oldLoginIp : 218.18.156.179 + * loginDate : 2017-06-15 11:38:45 + * admin : false + * loginFlag : 1 + * isNewRecord : false + * oldLoginDate : 2017-06-15 11:38:45 + * loginName : 18824634310 + * loginIp : 218.18.156.179 + * name : 啦啦啦 + * id : c345b148c2c2461c82109a6126f400f9 + * roleNames : + * createDate : 2017-04-13 17:04:53 + */ + private String updateDate; + private String oldLoginIp; + private String loginDate; + private boolean admin; + private String loginFlag; + private boolean isNewRecord; + private String oldLoginDate; + private String loginName; + private String loginIp; + private String name; + private String id; + private String roleNames; + private String createDate; + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getOldLoginIp() { + return oldLoginIp == null ? "" : oldLoginIp; + } + + public void setOldLoginIp(String oldLoginIp) { + this.oldLoginIp = oldLoginIp; + } + + public String getLoginDate() { + return loginDate == null ? "" : loginDate; + } + + public void setLoginDate(String loginDate) { + this.loginDate = loginDate; + } + + public boolean isAdmin() { + return admin; + } + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public String getLoginFlag() { + return loginFlag == null ? "" : loginFlag; + } + + public void setLoginFlag(String loginFlag) { + this.loginFlag = loginFlag; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getOldLoginDate() { + return oldLoginDate == null ? "" : oldLoginDate; + } + + public void setOldLoginDate(String oldLoginDate) { + this.oldLoginDate = oldLoginDate; + } + + public String getLoginName() { + return loginName == null ? "" : loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getLoginIp() { + return loginIp == null ? "" : loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getRoleNames() { + return roleNames == null ? "" : roleNames; + } + + public void setRoleNames(String roleNames) { + this.roleNames = roleNames; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/BlindEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/BlindEvent.java new file mode 100644 index 0000000..6966b54 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/BlindEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/5 0005. + */ + +public class BlindEvent { + private String mMsg; + + public BlindEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/ChangeVolumeEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/ChangeVolumeEvent.java new file mode 100644 index 0000000..14248fd --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/ChangeVolumeEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/5 0005. + */ + +public class ChangeVolumeEvent { + private String mMsg; + + public ChangeVolumeEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/ChatReplyEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/ChatReplyEntity.java new file mode 100644 index 0000000..a6a42be --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/ChatReplyEntity.java @@ -0,0 +1,242 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/12/17. + */ + +public class ChatReplyEntity { + + /** + * data : {"messages":[{"content":"已帮您打开电视","createDate":1545019099192,"houseId":"5e8b4ff168a14af49c86eea3aabef23a","id":481,"messageType":2,"scopeType":1,"senderType":3,"userId":"c345b148c2c2461c82109a6126f400f9","ziId":"F0FE6BEB477E"}],"sessionContext":{"contexts":{"SYS_REMEMBERED_SKILLS":["20069"]},"sessionId":"service-session-id-1545019099132-38205616633f4b9d957cad92e7bcff89"}} + * flag : 1 + * msg : success + */ + + private DataBean data; + private int flag; + private String msg; + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * messages : [{"content":"已帮您打开电视","createDate":1545019099192,"houseId":"5e8b4ff168a14af49c86eea3aabef23a","id":481,"messageType":2,"scopeType":1,"senderType":3,"userId":"c345b148c2c2461c82109a6126f400f9","ziId":"F0FE6BEB477E"}] + * sessionContext : {"contexts":{"SYS_REMEMBERED_SKILLS":["20069"]},"sessionId":"service-session-id-1545019099132-38205616633f4b9d957cad92e7bcff89"} + */ + + + private SessionContextBean sessionContext; + private List messages; + private String currentId; + + public String getCurrentId() { + return currentId == null ? "" : currentId; + } + + public void setCurrentId(String currentId) { + this.currentId = currentId; + } + + public SessionContextBean getSessionContext() { + return sessionContext; + } + + public void setSessionContext(SessionContextBean sessionContext) { + this.sessionContext = sessionContext; + } + + public List getMessages() { + if (messages == null) { + return new ArrayList<>(); + } + return messages; + } + + public void setMessages(List messages) { + this.messages = messages; + } + + public static class SessionContextBean { + /** + * contexts : {"SYS_REMEMBERED_SKILLS":["20069"]} + * sessionId : service-session-id-1545019099132-38205616633f4b9d957cad92e7bcff89 + */ + + private ContextsBean contexts; + private String sessionId; + + public ContextsBean getContexts() { + return contexts; + } + + public void setContexts(ContextsBean contexts) { + this.contexts = contexts; + } + + public String getSessionId() { + return sessionId == null ? "" : sessionId; + } + + public void setSessionId(String sessionId) { + this.sessionId = sessionId; + } + + public static class ContextsBean { + private List SYS_REMEMBERED_SKILLS; + + public List getSYS_REMEMBERED_SKILLS() { + if (SYS_REMEMBERED_SKILLS == null) { + return new ArrayList<>(); + } + return SYS_REMEMBERED_SKILLS; + } + + public void setSYS_REMEMBERED_SKILLS(List SYS_REMEMBERED_SKILLS) { + this.SYS_REMEMBERED_SKILLS = SYS_REMEMBERED_SKILLS; + } + } + } + + public static class MessagesBean { + /** + * content : 已帮您打开电视 + * createDate : 1545019099192 + * houseId : 5e8b4ff168a14af49c86eea3aabef23a + * id : 481 + * messageType : 2 + * scopeType : 1 + * senderType : 3 + * userId : c345b148c2c2461c82109a6126f400f9 + * ziId : F0FE6BEB477E + */ + + private String content; + private long createDate; + private String houseId; + private int id; + private int messageType; + private int scopeType; + private int senderType; + private String userId; + private String ziId; + private String addition; + private List mStringList; + + public List getStringList() { + if (mStringList == null) { + return new ArrayList<>(); + } + return mStringList; + } + + public void setStringList(List stringList) { + mStringList = stringList; + } + + public String getContent() { + return content == null ? "" : content; + } + + public void setContent(String content) { + this.content = content; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getMessageType() { + return messageType; + } + + public void setMessageType(int messageType) { + this.messageType = messageType; + } + + public int getScopeType() { + return scopeType; + } + + public void setScopeType(int scopeType) { + this.scopeType = scopeType; + } + + public int getSenderType() { + return senderType; + } + + public void setSenderType(int senderType) { + this.senderType = senderType; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getAddition() { + return addition == null ? "" : addition; + } + + public void setAddition(String addition) { + this.addition = addition; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/DeviceDetailEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/DeviceDetailEntity.java new file mode 100644 index 0000000..2cfe455 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/DeviceDetailEntity.java @@ -0,0 +1,215 @@ +package com.yonsz.z1.database.entity; + +import java.io.Serializable; + +/** + * Created by Administrator on 2017/6/16. + */ + +public class DeviceDetailEntity implements Serializable { + + /** + * updateDate : 2017-05-25 09:30:21 + * ziId : 1 + * id : 72e49cea1d3f4ec09ce26384152c857f + * isNewRecord : false + * deviceId : 001 + * deviceName : 风扇 + * createDate : 2017-05-25 09:30:21 + * getDeviceType : 003 + */ + private String updateDate; + private String ziId; + private String id; + private boolean isNewRecord; + private String deviceId; + private String deviceName; + private String createDate; + private String deviceType; + private String deviceBrand; + private String assistBrand; + private String assistFlag; + private String rid; + private String addressName; + private String addressId; + private String cancelFlag; + private String lightType; + private String plugType; + private boolean isCheck; + private String blindType; + private String relatedStatus; + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceBrand() { + return deviceBrand == null ? "" : deviceBrand; + } + + public void setDeviceBrand(String deviceBrand) { + this.deviceBrand = deviceBrand; + } + + public String getAssistBrand() { + return assistBrand == null ? "" : assistBrand; + } + + public void setAssistBrand(String assistBrand) { + this.assistBrand = assistBrand; + } + + public String getAssistFlag() { + return assistFlag == null ? "" : assistFlag; + } + + public void setAssistFlag(String assistFlag) { + this.assistFlag = assistFlag; + } + + public String getRid() { + return rid == null ? "" : rid; + } + + public void setRid(String rid) { + this.rid = rid; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getCancelFlag() { + return cancelFlag == null ? "" : cancelFlag; + } + + public void setCancelFlag(String cancelFlag) { + this.cancelFlag = cancelFlag; + } + + public String getLightType() { + return lightType == null ? "" : lightType; + } + + public void setLightType(String lightType) { + this.lightType = lightType; + } + + public String getPlugType() { + return plugType == null ? "" : plugType; + } + + public void setPlugType(String plugType) { + this.plugType = plugType; + } + + public boolean isCheck() { + return isCheck; + } + + public void setCheck(boolean check) { + isCheck = check; + } + + public String getBlindType() { + return blindType == null ? "" : blindType; + } + + public void setBlindType(String blindType) { + this.blindType = blindType; + } + + public String getRelatedStatus() { + return relatedStatus == null ? "" : relatedStatus; + } + + public void setRelatedStatus(String relatedStatus) { + this.relatedStatus = relatedStatus; + } + + @Override + public String toString() { + return "DeviceDetailEntity{" + + "updateDate='" + updateDate + '\'' + + ", ziId='" + ziId + '\'' + + ", id='" + id + '\'' + + ", isNewRecord=" + isNewRecord + + ", deviceId='" + deviceId + '\'' + + ", deviceName='" + deviceName + '\'' + + ", createDate='" + createDate + '\'' + + ", deviceType='" + deviceType + '\'' + + '}'; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/DeviceEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/DeviceEntity.java new file mode 100644 index 0000000..27c478e --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/DeviceEntity.java @@ -0,0 +1,312 @@ +package com.yonsz.z1.database.entity; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/6/16. + */ + +public class DeviceEntity implements Serializable { + + /** + * msg : 查询成功。 + * flag : 1 + * obj : [{"ziName":"333","updateDate":"2017-06-15 16:11:55","deviceAddress":"客厅","ziId":"1","isOwner":"1","id":"248cffe896cf44a298eea63fb333ed35","isNewRecord":false,"userName":"嗨友","list":[{"deviceType":"002","updateDate":"2017-06-15 15:14:23","ziId":"1","id":"0e53975d4a8e4b2b81450f8cdd4e0ef6","isNewRecord":false,"deviceId":"002","deviceName":"空调","createDate":"2017-06-15 15:14:23"},{"deviceType":"001","updateDate":"2017-06-15 15:14:02","ziId":"1","id":"1f2a36b6aead42bbb182e2bba7911ddb","isNewRecord":false,"deviceId":"001","deviceName":"风扇","createDate":"2017-06-15 15:14:02"}],"createDate":"2017-06-15 14:45:00","activeFlag":"1"},{"ziName":"Z1-02","updateDate":"2017-06-16 10:40:10","ziId":"2","isOwner":"1","id":"9af62bb68c9547e4886d62ccb0bade94","isNewRecord":false,"userName":"嗨友","createDate":"2017-06-16 10:40:10","activeFlag":"1"}] + */ + private String msg; + private int flag; + private List obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getObj() { + if (obj == null) { + return new ArrayList<>(); + } + return obj; + } + + public void setObj(List obj) { + this.obj = obj; + } + + public static class ObjEntity implements Serializable { + /** + * ziName : 333 + * updateDate : 2017-06-15 16:11:55 + * deviceAddress : 客厅 + * ziId : 1 + * isOwner : 1 + * id : 248cffe896cf44a298eea63fb333ed35 + * isNewRecord : false + * userName : 嗨友 + * list : [{"deviceType":"002","updateDate":"2017-06-15 15:14:23","ziId":"1","id":"0e53975d4a8e4b2b81450f8cdd4e0ef6","isNewRecord":false,"deviceId":"002","deviceName":"空调","createDate":"2017-06-15 15:14:23"},{"deviceType":"001","updateDate":"2017-06-15 15:14:02","ziId":"1","id":"1f2a36b6aead42bbb182e2bba7911ddb","isNewRecord":false,"deviceId":"001","deviceName":"风扇","createDate":"2017-06-15 15:14:02"}] + * createDate : 2017-06-15 14:45:00 + * activeFlag : 1 + * partnerName: + */ + private String ziName; + private String updateDate; + private String deviceAddress; + private String ziId; + private String isOwner; + private String id; + private boolean isNewRecord; + private String userName; + private List list; + private String createDate; + private String activeFlag; + private String onlineFlag; + private String partnerName; + private String partner; + private String lightNum; + private String blindNum; + private String plugNum; + private String assistBrand; + private String assistFlag; + private String deviceVersion; + private String loadStatus; + private String loadErrorType; + private String addressId; + private String safeNum; + private String powerFlag; + private String wifiName; + private String isNewOtaFlag; + + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getDeviceAddress() { + return deviceAddress == null ? "" : deviceAddress; + } + + public void setDeviceAddress(String deviceAddress) { + this.deviceAddress = deviceAddress; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getIsOwner() { + return isOwner == null ? "" : isOwner; + } + + public void setIsOwner(String isOwner) { + this.isOwner = isOwner; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getUserName() { + return userName == null ? "" : userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public List getList() { + if (list == null) { + return new ArrayList<>(); + } + return list; + } + + public void setList(List list) { + this.list = list; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getActiveFlag() { + return activeFlag == null ? "" : activeFlag; + } + + public void setActiveFlag(String activeFlag) { + this.activeFlag = activeFlag; + } + + public String getOnlineFlag() { + return onlineFlag == null ? "" : onlineFlag; + } + + public void setOnlineFlag(String onlineFlag) { + this.onlineFlag = onlineFlag; + } + + public String getPartnerName() { + return partnerName == null ? "" : partnerName; + } + + public void setPartnerName(String partnerName) { + this.partnerName = partnerName; + } + + public String getPartner() { + return partner == null ? "" : partner; + } + + public void setPartner(String partner) { + this.partner = partner; + } + + public String getLightNum() { + return lightNum == null ? "" : lightNum; + } + + public void setLightNum(String lightNum) { + this.lightNum = lightNum; + } + + public String getBlindNum() { + return blindNum == null ? "" : blindNum; + } + + public void setBlindNum(String blindNum) { + this.blindNum = blindNum; + } + + public String getPlugNum() { + return plugNum == null ? "" : plugNum; + } + + public void setPlugNum(String plugNum) { + this.plugNum = plugNum; + } + + public String getAssistBrand() { + return assistBrand == null ? "" : assistBrand; + } + + public void setAssistBrand(String assistBrand) { + this.assistBrand = assistBrand; + } + + public String getAssistFlag() { + return assistFlag == null ? "" : assistFlag; + } + + public void setAssistFlag(String assistFlag) { + this.assistFlag = assistFlag; + } + + public String getDeviceVersion() { + return deviceVersion == null ? "" : deviceVersion; + } + + public void setDeviceVersion(String deviceVersion) { + this.deviceVersion = deviceVersion; + } + + public String getLoadStatus() { + return loadStatus == null ? "" : loadStatus; + } + + public void setLoadStatus(String loadStatus) { + this.loadStatus = loadStatus; + } + + public String getLoadErrorType() { + return loadErrorType == null ? "" : loadErrorType; + } + + public void setLoadErrorType(String loadErrorType) { + this.loadErrorType = loadErrorType; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getSafeNum() { + return safeNum == null ? "" : safeNum; + } + + public void setSafeNum(String safeNum) { + this.safeNum = safeNum; + } + + public String getPowerFlag() { + return powerFlag == null ? "" : powerFlag; + } + + public void setPowerFlag(String powerFlag) { + this.powerFlag = powerFlag; + } + + public String getWifiName() { + return wifiName == null ? "" : wifiName; + } + + public void setWifiName(String wifiName) { + this.wifiName = wifiName; + } + + public String getIsNewOtaFlag() { + return isNewOtaFlag == null ? "" : isNewOtaFlag; + } + + public void setIsNewOtaFlag(String isNewOtaFlag) { + this.isNewOtaFlag = isNewOtaFlag; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/DeviceListEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/DeviceListEntity.java new file mode 100644 index 0000000..8f6b285 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/DeviceListEntity.java @@ -0,0 +1,47 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/10/13. + */ + +public class DeviceListEntity { + + /** + * msg : 查询成功。 + * flag : 1 + * obj : ["钻石牌","TCL","永生 ","先科","华生","欧麦斯","格力","康佳","多丽 ","大松","巴慕达 ","澳柯玛","扬子","爱家乐","荣事达","先锋","皓彩","远东","赛亿","美的","志高","奥克斯","艾美特","水田","戴森","沃牧 ","美菱","北欧欧慕"] + */ + private String msg; + private int flag; + private List obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getObj() { + if (obj == null) { + return new ArrayList<>(); + } + return obj; + } + + public void setObj(List obj) { + this.obj = obj; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/EventBusEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/EventBusEntity.java new file mode 100644 index 0000000..a98f9c1 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/EventBusEntity.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/6. + */ +public class EventBusEntity { + private String mMsg; + + public EventBusEntity(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} + diff --git a/app/src/main/java/com/yonsz/z1/database/entity/LearnEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/LearnEntity.java new file mode 100644 index 0000000..f901fd3 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/LearnEntity.java @@ -0,0 +1,47 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/7/11. + */ + +public class LearnEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : ["0301","0303","0304"] + */ + private String msg; + private int flag; + private List obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getObj() { + if (obj == null) { + return new ArrayList<>(); + } + return obj; + } + + public void setObj(List obj) { + this.obj = obj; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/LearnEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/LearnEvent.java new file mode 100644 index 0000000..50674a2 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/LearnEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/5 0005. + */ + +public class LearnEvent { + private String mMsg; + + public LearnEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/LearnFailEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/LearnFailEvent.java new file mode 100644 index 0000000..0772870 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/LearnFailEvent.java @@ -0,0 +1,15 @@ +package com.yonsz.z1.database.entity; + +public class LearnFailEvent { + + private String mMsg; + + public LearnFailEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/LightDetaiEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/LightDetaiEntity.java new file mode 100644 index 0000000..91686d7 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/LightDetaiEntity.java @@ -0,0 +1,288 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/9. + */ + +public class LightDetaiEntity { + /** + * updateDate : 2017-09-08 10:43:44 + * ziId : ACCF23DA86F1 + * pid : 1 + * addressName : hah + * id : 5276eeade3db4d268ec8d5bf5f22ec31 + * isNewRecord : false + * createDate : 2017-09-08 10:43:44 + */ + private String updateDate; + private String ziId; + private String pid; + private String addressName; + private String id; + private boolean isNewRecord; + private String createDate; + private String onInfrared; + private String offInfrared; + private String offFlag; + private String onFlag; + private String voiceFlag; + private String studyFlag; + private String closeCode; + private String openCode; + private String panelId; + private String addressId; + private String deviceInfrared; + private String deviceType; + private String openFlag; + private String producer; + private String rawCode; + private String lightType; + private String plugType; + private String stopCode; + private String reverseFlag; + private int voiceControlTag; + private boolean isBlingBling; + private boolean isOpenBlingBling; + private boolean isCloseBlingBling; + + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getPid() { + return pid == null ? "" : pid; + } + + public void setPid(String pid) { + this.pid = pid; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getOnInfrared() { + return onInfrared == null ? "" : onInfrared; + } + + public void setOnInfrared(String onInfrared) { + this.onInfrared = onInfrared; + } + + public String getOffInfrared() { + return offInfrared == null ? "" : offInfrared; + } + + public void setOffInfrared(String offInfrared) { + this.offInfrared = offInfrared; + } + + public String getOffFlag() { + return offFlag == null ? "" : offFlag; + } + + public void setOffFlag(String offFlag) { + this.offFlag = offFlag; + } + + public String getOnFlag() { + return onFlag == null ? "" : onFlag; + } + + public void setOnFlag(String onFlag) { + this.onFlag = onFlag; + } + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + + public String getStudyFlag() { + return studyFlag == null ? "" : studyFlag; + } + + public void setStudyFlag(String studyFlag) { + this.studyFlag = studyFlag; + } + + public String getCloseCode() { + return closeCode == null ? "" : closeCode; + } + + public void setCloseCode(String closeCode) { + this.closeCode = closeCode; + } + + public String getOpenCode() { + return openCode == null ? "" : openCode; + } + + public void setOpenCode(String openCode) { + this.openCode = openCode; + } + + public String getPanelId() { + return panelId == null ? "" : panelId; + } + + public void setPanelId(String panelId) { + this.panelId = panelId; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getDeviceInfrared() { + return deviceInfrared == null ? "" : deviceInfrared; + } + + public void setDeviceInfrared(String deviceInfrared) { + this.deviceInfrared = deviceInfrared; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + + public String getProducer() { + return producer == null ? "" : producer; + } + + public void setProducer(String producer) { + this.producer = producer; + } + + public String getRawCode() { + return rawCode == null ? "" : rawCode; + } + + public void setRawCode(String rawCode) { + this.rawCode = rawCode; + } + + public String getLightType() { + return lightType == null ? "" : lightType; + } + + public void setLightType(String lightType) { + this.lightType = lightType; + } + + public String getPlugType() { + return plugType == null ? "" : plugType; + } + + public void setPlugType(String plugType) { + this.plugType = plugType; + } + + public String getStopCode() { + return stopCode == null ? "" : stopCode; + } + + public void setStopCode(String stopCode) { + this.stopCode = stopCode; + } + + public String getReverseFlag() { + return reverseFlag == null ? "" : reverseFlag; + } + + public void setReverseFlag(String reverseFlag) { + this.reverseFlag = reverseFlag; + } + + public int getVoiceControlTag() { + return voiceControlTag; + } + + public void setVoiceControlTag(int voiceControlTag) { + this.voiceControlTag = voiceControlTag; + } + + public boolean isBlingBling() { + return isBlingBling; + } + + public void setBlingBling(boolean blingBling) { + isBlingBling = blingBling; + } + + public boolean isOpenBlingBling() { + return isOpenBlingBling; + } + + public void setOpenBlingBling(boolean openBlingBling) { + isOpenBlingBling = openBlingBling; + } + + public boolean isCloseBlingBling() { + return isCloseBlingBling; + } + + public void setCloseBlingBling(boolean closeBlingBling) { + isCloseBlingBling = closeBlingBling; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/LightEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/LightEntity.java new file mode 100644 index 0000000..91c3c88 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/LightEntity.java @@ -0,0 +1,41 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/9. + */ + +public class LightEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : {"updateDate":"2017-09-08 10:43:44","ziId":"ACCF23DA86F1","pid":1,"addressName":"hah","id":"5276eeade3db4d268ec8d5bf5f22ec31","isNewRecord":false,"createDate":"2017-09-08 10:43:44"} + */ + private String msg; + private int flag; + private LightDetaiEntity obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public LightDetaiEntity getObj() { + return obj; + } + + public void setObj(LightDetaiEntity obj) { + this.obj = obj; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/LightListEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/LightListEntity.java new file mode 100644 index 0000000..5c3103f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/LightListEntity.java @@ -0,0 +1,47 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/9/9. + */ + +public class LightListEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : [{"updateDate":"2017-09-08 10:43:44","ziId":"ACCF23DA86F1","addressName":"hah","pid":1,"id":"5276eeade3db4d268ec8d5bf5f22ec31","isNewRecord":false,"createDate":"2017-09-08 10:43:44"},{"updateDate":"2017-09-08 10:44:35","ziId":"ACCF23DA86F1","pid":2,"id":"afee94966173415cb1a8bf0fc9e17804","isNewRecord":false,"createDate":"2017-09-08 10:44:35"}] + */ + private String msg; + private int flag; + private List obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getObj() { + if (obj == null) { + return new ArrayList<>(); + } + return obj; + } + + public void setObj(List obj) { + this.obj = obj; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/LockEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/LockEvent.java new file mode 100644 index 0000000..2e508cc --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/LockEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/5 0005. + */ + +public class LockEvent { + private String mMsg; + + public LockEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/LoginInfo.java b/app/src/main/java/com/yonsz/z1/database/entity/LoginInfo.java new file mode 100644 index 0000000..7abaf1d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/LoginInfo.java @@ -0,0 +1,55 @@ +package com.yonsz.z1.database.entity; + + +/** + * Created by Administrator on 2016/11/27 0027. + */ + +public class LoginInfo { + + private String id; + private String loginName; + private String name; + private boolean mobileLogin; + private String sessionId; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLoginName() { + return loginName == null ? "" : loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isMobileLogin() { + return mobileLogin; + } + + public void setMobileLogin(boolean mobileLogin) { + this.mobileLogin = mobileLogin; + } + + public String getSessionId() { + return sessionId == null ? "" : sessionId; + } + + public void setSessionId(String sessionId) { + this.sessionId = sessionId; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/MainEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/MainEvent.java new file mode 100644 index 0000000..136102a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/MainEvent.java @@ -0,0 +1,15 @@ +package com.yonsz.z1.database.entity; + +public class MainEvent { + + private String mMsg; + + public MainEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/MessageEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/MessageEntity.java new file mode 100644 index 0000000..4a6fa22 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/MessageEntity.java @@ -0,0 +1,206 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2020/12/4. + */ + +public class MessageEntity { + + /** + * flag : 1 + * data : {"id":3,"userId":"a8c75ac85b2514db782c7b14f487001c","freeSmsSurplus":0,"smsSurplus":0,"createDate":1606904406000,"updateDate":1606904406000} + * msg : + * code : 1 + */ + + private int flag; + private DataBean data; + private String msg; + private int code; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public static class DataBean { + /** + * id : 3 + * userId : a8c75ac85b2514db782c7b14f487001c + * freeSmsSurplus : 0 + * smsSurplus : 0 + * createDate : 1606904406000 + * updateDate : 1606904406000 + */ + + private String id; + private String userId; + private String freeSmsSurplus; + private String smsSurplus; + private long createDate; + private long updateDate; + /** + * packageRegions : [{"createDate":1606383490000,"discount":100,"id":1,"max":100,"priceId":1,"updateDate":1606383493000},{"createDate":1606876850000,"discount":85,"id":2,"max":500,"min":101,"priceId":1,"updateDate":1606876853000},{"createDate":1606876846000,"discount":75,"id":3,"max":1000,"min":501,"priceId":1,"updateDate":1606876855000},{"createDate":1606889759000,"discount":50,"id":4,"min":1001,"priceId":1,"updateDate":1606889761000}] + * price : 1 + */ + + private int price; + private List packageRegions; + + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getFreeSmsSurplus() { + return freeSmsSurplus == null ? "" : freeSmsSurplus; + } + + public void setFreeSmsSurplus(String freeSmsSurplus) { + this.freeSmsSurplus = freeSmsSurplus; + } + + public String getSmsSurplus() { + return smsSurplus == null ? "" : smsSurplus; + } + + public void setSmsSurplus(String smsSurplus) { + this.smsSurplus = smsSurplus; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public int getPrice() { + return price; + } + + public void setPrice(int price) { + this.price = price; + } + + public List getPackageRegions() { + if (packageRegions == null) { + return new ArrayList<>(); + } + return packageRegions; + } + + public void setPackageRegions(List packageRegions) { + this.packageRegions = packageRegions; + } + + public static class PackageRegionsBean { + /** + * createDate : 1606383490000 + * discount : 100 + * id : 1 + * max : 100 + * priceId : 1 + * updateDate : 1606383493000 + * min : 101 + */ + + private int discount; + private int max; + private int priceId; + private int min; + private String id; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public int getDiscount() { + return discount; + } + + public void setDiscount(int discount) { + this.discount = discount; + } + + public int getMax() { + return max; + } + + public void setMax(int max) { + this.max = max; + } + + public int getPriceId() { + return priceId; + } + + public void setPriceId(int priceId) { + this.priceId = priceId; + } + + public int getMin() { + return min; + } + + public void setMin(int min) { + this.min = min; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/MessageManageEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/MessageManageEntity.java new file mode 100644 index 0000000..5a8ee2b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/MessageManageEntity.java @@ -0,0 +1,190 @@ +package com.yonsz.z1.database.entity; + +import java.util.List; + +/** + * Created by Administrator on 2020/12/30. + */ + +public class MessageManageEntity { + + /** + * code : 1 + * data : [{"defFlag":0,"defaultFloor":"","floorList":"","houseCategory":1,"houseId":"4afc3a0de92b68dacd0ee767cdcc4fac","houseName":"rrt","isOwner":1,"isVirtual":false,"picUrl":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/08/02/1564708581682-dfnbc.png","safeSmsSwitch":1,"safeSwitch":1,"shareUser":"18026905798","userId":"a8c75ac85b2514db782c7b14f487001c"},{"defFlag":0,"defaultFloor":"","floorList":"","houseCategory":1,"houseId":"86d945a14f22341b33adf08ef9ace960","houseName":"肉肉","isOwner":0,"isVirtual":false,"picUrl":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/08/02/1564708581682-dfnbc.png","safeSmsSwitch":1,"safeSwitch":2,"shareUser":"13760449667","userId":"a8c75ac85b2514db782c7b14f487001c"},{"defFlag":0,"defaultFloor":"","floorList":"","houseCategory":3,"houseId":"fb5d201c393c9221b30683fe36342efd","houseName":"ggh","isOwner":1,"isVirtual":false,"picUrl":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/08/02/1564708581682-dfnbc.png","safeSmsSwitch":1,"safeSwitch":1,"shareUser":"18026905798","userId":"a8c75ac85b2514db782c7b14f487001c"},{"defFlag":1,"defaultFloor":"","floorList":"","houseCategory":1,"houseId":"e51bf99cf1331b71adb4a37a4f6af414","houseName":"小艾之家","isOwner":0,"isVirtual":false,"picUrl":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/08/02/1564708581682-dfnbc.png","safeSwitch":1,"shareUser":"13760449667","userId":"a8c75ac85b2514db782c7b14f487001c"},{"defFlag":0,"defaultFloor":"","floorList":"","houseCategory":1,"houseId":"fa0865cd2304844d0e381361343e414d","houseName":"测试2号","isOwner":0,"isVirtual":false,"picUrl":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/08/02/1564708581682-dfnbc.png","safeSwitch":0,"shareUser":"13760449667","userId":"a8c75ac85b2514db782c7b14f487001c"}] + * flag : 1 + * msg : success + */ + + private int code; + private int flag; + private String msg; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * defFlag : 0 + * defaultFloor : + * floorList : + * houseCategory : 1 + * houseId : 4afc3a0de92b68dacd0ee767cdcc4fac + * houseName : rrt + * isOwner : 1 + * isVirtual : false + * picUrl : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/08/02/1564708581682-dfnbc.png + * safeSmsSwitch : 1 + * safeSwitch : 1 + * shareUser : 18026905798 + * userId : a8c75ac85b2514db782c7b14f487001c + */ + + private int defFlag; + private String defaultFloor; + private String floorList; + private int houseCategory; + private String houseId; + private String houseName; + private int isOwner; + private boolean isVirtual; + private String picUrl; + private int safeSmsSwitch; + private int safeSwitch; + private String shareUser; + private String userId; + + public int getDefFlag() { + return defFlag; + } + + public void setDefFlag(int defFlag) { + this.defFlag = defFlag; + } + + public String getDefaultFloor() { + return defaultFloor; + } + + public void setDefaultFloor(String defaultFloor) { + this.defaultFloor = defaultFloor; + } + + public String getFloorList() { + return floorList; + } + + public void setFloorList(String floorList) { + this.floorList = floorList; + } + + public int getHouseCategory() { + return houseCategory; + } + + public void setHouseCategory(int houseCategory) { + this.houseCategory = houseCategory; + } + + public String getHouseId() { + return houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public String getHouseName() { + return houseName; + } + + public void setHouseName(String houseName) { + this.houseName = houseName; + } + + public int getIsOwner() { + return isOwner; + } + + public void setIsOwner(int isOwner) { + this.isOwner = isOwner; + } + + public boolean isIsVirtual() { + return isVirtual; + } + + public void setIsVirtual(boolean isVirtual) { + this.isVirtual = isVirtual; + } + + public String getPicUrl() { + return picUrl; + } + + public void setPicUrl(String picUrl) { + this.picUrl = picUrl; + } + + public int getSafeSmsSwitch() { + return safeSmsSwitch; + } + + public void setSafeSmsSwitch(int safeSmsSwitch) { + this.safeSmsSwitch = safeSmsSwitch; + } + + public int getSafeSwitch() { + return safeSwitch; + } + + public void setSafeSwitch(int safeSwitch) { + this.safeSwitch = safeSwitch; + } + + public String getShareUser() { + return shareUser; + } + + public void setShareUser(String shareUser) { + this.shareUser = shareUser; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/ModifyDeviceEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/ModifyDeviceEntity.java new file mode 100644 index 0000000..8a0dfc7 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/ModifyDeviceEntity.java @@ -0,0 +1,292 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/6/21. + */ + +public class ModifyDeviceEntity { + + /** + * msg : 修改成功。 + * flag : 1 + * obj : {"ziName":"333","updateDate":"2017-06-16 11:04:57","deviceAddress":"客厅","ziId":"1","isOwner":"1","id":"248cffe896cf44a298eea63fb333ed35","isNewRecord":false,"userName":"嗨友","user":{"updateDate":"2017-05-02 10:18:12","oldLoginIp":"218.18.157.53","loginDate":"2017-05-17 11:12:04","admin":false,"loginFlag":"1","isNewRecord":false,"oldLoginDate":"2017-05-17 11:12:04","loginName":"18824634312","loginIp":"218.18.157.53","name":"嗨友","id":"14158eed0dcc42a1bc4ed264dd4412b5","roleNames":"","createDate":"2017-05-02 10:18:12"},"createDate":"2017-06-15 14:45:00","activeFlag":"1"} + */ + private String msg; + private int flag; + private ObjEntity obj; + + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * ziName : 333 + * updateDate : 2017-06-16 11:04:57 + * deviceAddress : 客厅 + * ziId : 1 + * isOwner : 1 + * id : 248cffe896cf44a298eea63fb333ed35 + * isNewRecord : false + * userName : 嗨友 + * user : {"updateDate":"2017-05-02 10:18:12","oldLoginIp":"218.18.157.53","loginDate":"2017-05-17 11:12:04","admin":false,"loginFlag":"1","isNewRecord":false,"oldLoginDate":"2017-05-17 11:12:04","loginName":"18824634312","loginIp":"218.18.157.53","name":"嗨友","id":"14158eed0dcc42a1bc4ed264dd4412b5","roleNames":"","createDate":"2017-05-02 10:18:12"} + * createDate : 2017-06-15 14:45:00 + * activeFlag : 1 + */ + private String ziName; + private String updateDate; + private String deviceAddress; + private String ziId; + private String isOwner; + private String id; + private boolean isNewRecord; + private String userName; + private UserEntity user; + private String createDate; + private String activeFlag; + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getDeviceAddress() { + return deviceAddress == null ? "" : deviceAddress; + } + + public void setDeviceAddress(String deviceAddress) { + this.deviceAddress = deviceAddress; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getIsOwner() { + return isOwner == null ? "" : isOwner; + } + + public void setIsOwner(String isOwner) { + this.isOwner = isOwner; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getUserName() { + return userName == null ? "" : userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public UserEntity getUser() { + return user; + } + + public void setUser(UserEntity user) { + this.user = user; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getActiveFlag() { + return activeFlag == null ? "" : activeFlag; + } + + public void setActiveFlag(String activeFlag) { + this.activeFlag = activeFlag; + } + + public static class UserEntity { + /** + * updateDate : 2017-05-02 10:18:12 + * oldLoginIp : 218.18.157.53 + * loginDate : 2017-05-17 11:12:04 + * admin : false + * loginFlag : 1 + * isNewRecord : false + * oldLoginDate : 2017-05-17 11:12:04 + * loginName : 18824634312 + * loginIp : 218.18.157.53 + * name : 嗨友 + * id : 14158eed0dcc42a1bc4ed264dd4412b5 + * roleNames : + * createDate : 2017-05-02 10:18:12 + */ + private String updateDate; + private String oldLoginIp; + private String loginDate; + private boolean admin; + private String loginFlag; + private boolean isNewRecord; + private String oldLoginDate; + private String loginName; + private String loginIp; + private String name; + private String id; + private String roleNames; + private String createDate; + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getOldLoginIp() { + return oldLoginIp == null ? "" : oldLoginIp; + } + + public void setOldLoginIp(String oldLoginIp) { + this.oldLoginIp = oldLoginIp; + } + + public String getLoginDate() { + return loginDate == null ? "" : loginDate; + } + + public void setLoginDate(String loginDate) { + this.loginDate = loginDate; + } + + public boolean isAdmin() { + return admin; + } + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public String getLoginFlag() { + return loginFlag == null ? "" : loginFlag; + } + + public void setLoginFlag(String loginFlag) { + this.loginFlag = loginFlag; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getOldLoginDate() { + return oldLoginDate == null ? "" : oldLoginDate; + } + + public void setOldLoginDate(String oldLoginDate) { + this.oldLoginDate = oldLoginDate; + } + + public String getLoginName() { + return loginName == null ? "" : loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getLoginIp() { + return loginIp == null ? "" : loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getRoleNames() { + return roleNames == null ? "" : roleNames; + } + + public void setRoleNames(String roleNames) { + this.roleNames = roleNames; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/NettyEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/NettyEntity.java new file mode 100644 index 0000000..5aedf82 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/NettyEntity.java @@ -0,0 +1,699 @@ +package com.yonsz.z1.database.entity; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/7/5. + */ + +public class NettyEntity implements Serializable { + + /** + * head : 16 + * flag : 1 + * authInfrared : 168cd000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005208 + * cmdType : authAgree + * cmd : 8c + * sysflag : 1 + * temp : 2 + * controDirect : 8 + * authwindDirect : 8 + * model : 1 + * keyval : 0 + * windDirect : 0 + * speed : 2 + */ + + private String head; + private int flag; + private String authInfrared; + private String cmdType; + private String cmd; + private String Z1name; + private String ziId; + private String sysflag; + private String temp; + private String controDirect; + private String authwindDirect; + private String model; + private String keyval; + private String windDirect; + private String speed; + private String Switch; + private String sleep; + private String economic; + private String screen; + private String openFlag; + private String detailType; + private String addressId; + private String deviceIds; + private String voice; + private String reply; + private String exceptionType; + private String deviceVersion; + + /** + * a2 + */ + private String deviceType; + private String loadNum; + private String countNum; + private String macId; + private String infrared; + /** + * cmds : ["120100d7041a1607d0bf33243d4c1b4c1b184f4c1b4c1c184f1850184f4c1b184f184f1881f24c1b4c1b184f4c1b4c1c184f184f184f4c1b184f18501881f24c1b4c1b18504c1b4c1c184f1850184f4c1b184f18501881f34c1b4d1b18504c1b4c1c184f185018504c1b184f18501881f64c1b4c1b184f4c1b4c1c1850184f18504c1b185018501881f64c1b4c1b184f4c1b4c1c18501850184f4d1b1850184f1881f64c1b4c1b184f4c1b4d1c1850184f184f4d1b185018501881f74c1b4c1b184f4c1b4c1c1850184f184f4c1b1850184f180000000000d393083608"] + * key : 041a + */ + + private String key; + private List cmds; + /** + * 易百珑 + * lightCount : 2 + * yblId : b105417e + * yblLabel : 双路控制设备 + * yblType : 03 + */ + + private int lightCount; + private String yblId; + private String yblLabel; + private String yblType; + /** + * type : getSession + */ + + private String type; + /** + * Anion : 0 + * airdrying : 0 + * disinfect : 0 + * light : 0 + * stoving : 0 + */ + + private String Anion; + private String airdrying; + private String disinfect; + private String light; + private String stoving; + /** + * context : {"content":"门磁报警器触发情景联动<回家模式>","createDate":1562383518054,"houseId":"5b3773ecf5ffaafbdfa9991bc86d5c5e","id":39008,"messageType":1,"scopeType":2,"senderType":1} + * exceptionType : 0 + */ + + private ContextBean context; + private String brightness; + private String travelControl; + + private String isOnline; + + public String getIsOnline() { + return isOnline; + } + + public void setIsOnline(String isOnline) { + this.isOnline = isOnline; + } + + public String getTravelControl() { + return travelControl == null ? "" : travelControl; + } + + public void setTravelControl(String travelControl) { + this.travelControl = travelControl; + } + + public String getBrightness() { + return brightness == null ? "" : brightness; + } + + public void setBrightness(String brightness) { + this.brightness = brightness; + } + + public NettyEntity() { + } + + public NettyEntity(String head, int flag, String authInfrared, String cmdType, String cmd, String sysflag, String temp, String controDirect, String authwindDirect, String model, String keyval, String windDirect, String speed) { + this.head = head; + this.flag = flag; + this.authInfrared = authInfrared; + this.cmdType = cmdType; + this.cmd = cmd; + this.sysflag = sysflag; + this.temp = temp; + this.controDirect = controDirect; + this.authwindDirect = authwindDirect; + this.model = model; + this.keyval = keyval; + this.windDirect = windDirect; + this.speed = speed; + } + + + public NettyEntity(String mAuthInfrared) { + // TODO Auto-generated constructor stub + authInfrared = mAuthInfrared; + } + + + public String getDeviceVersion() { + return deviceVersion == null ? "" : deviceVersion; + } + + public void setDeviceVersion(String deviceVersion) { + this.deviceVersion = deviceVersion; + } + + public String getVoice() { + return voice == null ? "" : voice; + } + + public void setVoice(String voice) { + this.voice = voice; + } + + public String getReply() { + return reply == null ? "" : reply; + } + + public void setReply(String reply) { + this.reply = reply; + } + + public String getExceptionType() { + return exceptionType == null ? "" : exceptionType; + } + + public void setExceptionType(String exceptionType) { + this.exceptionType = exceptionType; + } + + public String getHead() { + return head == null ? "" : head; + } + + public void setHead(String head) { + this.head = head; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getAuthInfrared() { + return authInfrared == null ? "" : authInfrared; + } + + public void setAuthInfrared(String authInfrared) { + this.authInfrared = authInfrared; + } + + public String getCmdType() { + return cmdType == null ? "" : cmdType; + } + + public void setCmdType(String cmdType) { + this.cmdType = cmdType; + } + + public String getCmd() { + return cmd == null ? "" : cmd; + } + + public void setCmd(String cmd) { + this.cmd = cmd; + } + + public String getZ1name() { + return Z1name == null ? "" : Z1name; + } + + public void setZ1name(String z1name) { + Z1name = z1name; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getSysflag() { + return sysflag == null ? "" : sysflag; + } + + public void setSysflag(String sysflag) { + this.sysflag = sysflag; + } + + public String getTemp() { + return temp == null ? "" : temp; + } + + public void setTemp(String temp) { + this.temp = temp; + } + + public String getControDirect() { + return controDirect == null ? "" : controDirect; + } + + public void setControDirect(String controDirect) { + this.controDirect = controDirect; + } + + public String getAuthwindDirect() { + return authwindDirect == null ? "" : authwindDirect; + } + + public void setAuthwindDirect(String authwindDirect) { + this.authwindDirect = authwindDirect; + } + + public String getModel() { + return model == null ? "" : model; + } + + public void setModel(String model) { + this.model = model; + } + + public String getKeyval() { + return keyval == null ? "" : keyval; + } + + public void setKeyval(String keyval) { + this.keyval = keyval; + } + + public String getWindDirect() { + return windDirect == null ? "" : windDirect; + } + + public void setWindDirect(String windDirect) { + this.windDirect = windDirect; + } + + public String getSpeed() { + return speed == null ? "" : speed; + } + + public void setSpeed(String speed) { + this.speed = speed; + } + + public String getSwitch() { + return Switch == null ? "" : Switch; + } + + public void setSwitch(String aSwitch) { + Switch = aSwitch; + } + + public String getSleep() { + return sleep == null ? "" : sleep; + } + + public void setSleep(String sleep) { + this.sleep = sleep; + } + + public String getEconomic() { + return economic == null ? "" : economic; + } + + public void setEconomic(String economic) { + this.economic = economic; + } + + public String getScreen() { + return screen == null ? "" : screen; + } + + public void setScreen(String screen) { + this.screen = screen; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + + public String getDetailType() { + return detailType == null ? "" : detailType; + } + + public void setDetailType(String detailType) { + this.detailType = detailType; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getDeviceIds() { + return deviceIds == null ? "" : deviceIds; + } + + public void setDeviceIds(String deviceIds) { + this.deviceIds = deviceIds; + } + + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getLoadNum() { + return loadNum == null ? "" : loadNum; + } + + public void setLoadNum(String loadNum) { + this.loadNum = loadNum; + } + + public String getCountNum() { + return countNum == null ? "" : countNum; + } + + public void setCountNum(String countNum) { + this.countNum = countNum; + } + + public String getMacId() { + return macId == null ? "" : macId; + } + + public void setMacId(String macId) { + this.macId = macId; + } + + public String getInfrared() { + return infrared == null ? "" : infrared; + } + + public void setInfrared(String infrared) { + this.infrared = infrared; + } + + public String getKey() { + return key == null ? "" : key; + } + + public void setKey(String key) { + this.key = key; + } + + public List getCmds() { + if (cmds == null) { + return new ArrayList<>(); + } + return cmds; + } + + public void setCmds(List cmds) { + this.cmds = cmds; + } + + public int getLightCount() { + return lightCount; + } + + public void setLightCount(int lightCount) { + this.lightCount = lightCount; + } + + public String getYblId() { + return yblId == null ? "" : yblId; + } + + public void setYblId(String yblId) { + this.yblId = yblId; + } + + public String getYblLabel() { + return yblLabel == null ? "" : yblLabel; + } + + public void setYblLabel(String yblLabel) { + this.yblLabel = yblLabel; + } + + public String getYblType() { + return yblType == null ? "" : yblType; + } + + public void setYblType(String yblType) { + this.yblType = yblType; + } + + public String getType() { + return type == null ? "" : type; + } + + public void setType(String type) { + this.type = type == null ? "" : type; + } + + public String getAnion() { + return Anion == null ? "" : Anion; + } + + public void setAnion(String anion) { + Anion = anion == null ? "" : anion; + } + + public String getAirdrying() { + return airdrying == null ? "" : airdrying; + } + + public void setAirdrying(String airdrying) { + this.airdrying = airdrying == null ? "" : airdrying; + } + + public String getDisinfect() { + return disinfect == null ? "" : disinfect; + } + + public void setDisinfect(String disinfect) { + this.disinfect = disinfect == null ? "" : disinfect; + } + + public String getLight() { + return light == null ? "" : light; + } + + public void setLight(String light) { + this.light = light == null ? "" : light; + } + + public String getStoving() { + return stoving == null ? "" : stoving; + } + + public void setStoving(String stoving) { + this.stoving = stoving == null ? "" : stoving; + } + + public ContextBean getContext() { + return context; + } + + public void setContext(ContextBean context) { + this.context = context; + } + + public static class ContextBean { + /** + * content : 门磁报警器触发情景联动<回家模式> + * createDate : 1562383518054 + * houseId : 5b3773ecf5ffaafbdfa9991bc86d5c5e + * id : 39008 + * messageType : 1 + * scopeType : 2 + * senderType : 1 + */ + + private String content; + private long createDate; + private String houseId; + private String ziId; + private String macId; + private int id; + private int messageType; + private int scopeType; + private int senderType; + private String isOnline; + private String deviceType; + private String deviceId; + + private LastInfoBean lastInfo; + + public LastInfoBean getLastInfo() { + return lastInfo; + } + public void setLastInfo(LastInfoBean lastInfo) { + this.lastInfo = lastInfo; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId == null ? "" : deviceId; + } + + public String getMacId() { + return macId == null ? "" : macId; + } + + public void setMacId(String macId) { + this.macId = macId == null ? "" : macId; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType == null ? "" : deviceType; + } + + public String getIsOnline() { + return isOnline; + } + + public void setIsOnline(String isOnline) { + this.isOnline = isOnline; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getContent() { + return content == null ? "" : content; + } + + public void setContent(String content) { + this.content = content == null ? "" : content; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId == null ? "" : houseId; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getMessageType() { + return messageType; + } + + public void setMessageType(int messageType) { + this.messageType = messageType; + } + + public int getScopeType() { + return scopeType; + } + + public void setScopeType(int scopeType) { + this.scopeType = scopeType; + } + + public int getSenderType() { + return senderType; + } + + public void setSenderType(int senderType) { + this.senderType = senderType; + } + } + + public static class LastInfoBean implements Serializable { + /** + * openFlag : 0 + */ + + private String openFlag; + private String model; + private String speed; + private String temp; + + public String getTemp() { + return temp == null ? "" : temp; + } + + public void setTemp(String temp) { + this.temp = temp == null ? "" : temp; + } + + public String getModel() { + return model == null ? "" : model; + } + + public void setModel(String model) { + this.model = model == null ? "" : model; + } + + public String getSpeed() { + return speed == null ? "" : speed; + } + + public void setSpeed(String speed) { + this.speed = speed == null ? "" : speed; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag == null ? "" : openFlag; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/NewNettyEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/NewNettyEntity.java new file mode 100644 index 0000000..b642c6c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/NewNettyEntity.java @@ -0,0 +1,48 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2019/8/28. + */ + +public class NewNettyEntity { + + /** + * context : {"session":"xxxxxxxxxxxx"} + * type : session + */ + + private ContextBean context; + private String type; + + public ContextBean getContext() { + return context; + } + + public void setContext(ContextBean context) { + this.context = context; + } + + public String getType() { + return type == null ? "" : type; + } + + public void setType(String type) { + this.type = type; + } + + public static class ContextBean { + /** + * session : xxxxxxxxxxxx + */ + + private String session; + + public String getSession() { + return session == null ? "" : session; + } + + public void setSession(String session) { + this.session = session; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/NewRecordEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/NewRecordEntity.java new file mode 100644 index 0000000..d7b14a7 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/NewRecordEntity.java @@ -0,0 +1,173 @@ +package com.yonsz.z1.database.entity; + +/** + * @time 2017/4/14 1:19 + * @desc ${TODO} + */ +public class NewRecordEntity { + /** + * flag : 1 + * obj : {"id":"7ad865c0e98e4bef8f92b278c4ee2497","isNewRecord":false,"createDate":"2017-04-14 00:19:43","updateDate":"2017-04-14 00:52:58","user":{"id":"18824634310","isNewRecord":false,"loginFlag":"1","admin":false,"roleNames":""},"userGender":"男","userPlace":"深圳"} + * msg : + */ + + private int flag; + private NewRecordEntity.ObjBean obj; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjBean getObj() { + return obj; + } + + public void setObj(ObjBean obj) { + this.obj = obj; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class ObjBean { + /** + * id : 7ad865c0e98e4bef8f92b278c4ee2497 + * isNewRecord : false + * createDate : 2017-04-14 00:19:43 + * updateDate : 2017-04-14 00:52:58 + * user : {"id":"18824634310","isNewRecord":false,"loginFlag":"1","admin":false,"roleNames":""} + * userGender : 男 + * userPlace : 深圳 + */ + + private String id; + private boolean isNewRecord; + private String createDate; + private String updateDate; + private NewRecordEntity.ObjBean.UserBean user; + private String userGender; + private String userPlace; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public UserBean getUser() { + return user; + } + + public void setUser(UserBean user) { + this.user = user; + } + + public String getUserGender() { + return userGender == null ? "" : userGender; + } + + public void setUserGender(String userGender) { + this.userGender = userGender; + } + + public String getUserPlace() { + return userPlace == null ? "" : userPlace; + } + + public void setUserPlace(String userPlace) { + this.userPlace = userPlace; + } + + public static class UserBean { + /** + * id : 18824634310 + * isNewRecord : false + * loginFlag : 1 + * admin : false + * roleNames : + */ + + private String id; + private boolean isNewRecord; + private String loginFlag; + private boolean admin; + private String roleNames; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getLoginFlag() { + return loginFlag == null ? "" : loginFlag; + } + + public void setLoginFlag(String loginFlag) { + this.loginFlag = loginFlag; + } + + public boolean isAdmin() { + return admin; + } + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public String getRoleNames() { + return roleNames == null ? "" : roleNames; + } + + public void setRoleNames(String roleNames) { + this.roleNames = roleNames; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/OnlineEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/OnlineEvent.java new file mode 100644 index 0000000..4212c0a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/OnlineEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/5 0005. + */ + +public class OnlineEvent { + private String mMsg; + + public OnlineEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/PlugEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/PlugEvent.java new file mode 100644 index 0000000..f9f2e19 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/PlugEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/5 0005. + */ + +public class PlugEvent { + private String mMsg; + + public PlugEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/RegisterEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/RegisterEntity.java new file mode 100644 index 0000000..8078831 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/RegisterEntity.java @@ -0,0 +1,146 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/4/12. + */ + +public class RegisterEntity { + + /** + * msg : + * flag : 1 + * obj : {"updateDate":"2017-04-12 11:57:55","loginName":"15698185663","name":"15698185663","admin":false,"loginFlag":"1","id":"bc50b3e1cf6548e7870fc7b505731b08","isNewRecord":false,"roleNames":"","createDate":"2017-04-12 11:57:55"} + */ + private String msg; + private int flag; + private ObjEntity obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * updateDate : 2017-04-12 11:57:55 + * loginName : 15698185663 + * name : 15698185663 + * admin : false + * loginFlag : 1 + * id : bc50b3e1cf6548e7870fc7b505731b08 + * isNewRecord : false + * roleNames : + * createDate : 2017-04-12 11:57:55 + */ + private String updateDate; + private String loginName; + private String name; + private boolean admin; + private String loginFlag; + private String id; + private boolean isNewRecord; + private String roleNames; + private String createDate; + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getLoginName() { + return loginName == null ? "" : loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isAdmin() { + return admin; + } + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public String getLoginFlag() { + return loginFlag == null ? "" : loginFlag; + } + + public void setLoginFlag(String loginFlag) { + this.loginFlag = loginFlag; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getRoleNames() { + return roleNames == null ? "" : roleNames; + } + + public void setRoleNames(String roleNames) { + this.roleNames = roleNames; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + } + + @Override + public String toString() { + return "RegisterEntity{" + + "msg='" + msg + '\'' + + ", flag=" + flag + + ", obj=" + obj + + '}'; + } + +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/ResponeEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/ResponeEntity.java new file mode 100644 index 0000000..1d438de --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/ResponeEntity.java @@ -0,0 +1,420 @@ +package com.yonsz.z1.database.entity; + +import java.io.Serializable; + +public class ResponeEntity implements Serializable { + private int flag; + private String msg; + + private Obj obj; + /** + * code : 1 + * data : {"access_token":"16ee8be3-e592-4dd0-a895-58f632bb38e5","expires_in":86459,"refresh_token":"2d1ec1d7-ee32-44eb-8d04-968db20a9228","scope":"client_1","session":"a75d0578c2624dc9ababbb272729d00b","token_type":"bearer","userId":"e7fe34a47b2d491bae9dcdb6c0078735"} + */ + + private int code; + private DataBean data; + + + public ResponeEntity() { + + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public Obj getObj() { + return obj; + } + + public void setObj(Obj obj) { + this.obj = obj; + } + + @Override + public String toString() { + return "ResponeEntity{" + + "flag=" + flag + + ", msg='" + msg + '\'' + + ", obj=" + obj + + '}'; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public static class DataBean implements Serializable{ + /** + * access_token : 16ee8be3-e592-4dd0-a895-58f632bb38e5 + * expires_in : 86459 + * refresh_token : 2d1ec1d7-ee32-44eb-8d04-968db20a9228 + * scope : client_1 + * session : a75d0578c2624dc9ababbb272729d00b + * token_type : bearer + * userId : e7fe34a47b2d491bae9dcdb6c0078735 + */ + + private String access_token; + private int expires_in; + private String refresh_token; + private String scope; + private String session; + private String token_type; + private String userId; + + private LoginInfo logininfo; + private User user; + private String userName; + private String userGender; + private String userPhone; + private String userPlace; + private String id; + private String photoVersion; + private String wxId; + private String userPhoto; + private String headUrl; + private String avatar; + private String nickName; + private boolean isfollow; + private boolean autoOtaUpgrade; + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public LoginInfo getLogininfo() { + return logininfo; + } + + public void setLogininfo(LoginInfo logininfo) { + this.logininfo = logininfo; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUserGender() { + return userGender; + } + + public void setUserGender(String userGender) { + this.userGender = userGender; + } + + public String getUserPhone() { + return userPhone; + } + + public void setUserPhone(String userPhone) { + this.userPhone = userPhone; + } + + public String getUserPlace() { + return userPlace; + } + + public void setUserPlace(String userPlace) { + this.userPlace = userPlace; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getPhotoVersion() { + return photoVersion; + } + + public void setPhotoVersion(String photoVersion) { + this.photoVersion = photoVersion; + } + + public String getWxId() { + return wxId; + } + + public void setWxId(String wxId) { + this.wxId = wxId; + } + + public String getUserPhoto() { + return userPhoto; + } + + public void setUserPhoto(String userPhoto) { + this.userPhoto = userPhoto; + } + + public String getHeadUrl() { + return headUrl; + } + + public void setHeadUrl(String headUrl) { + this.headUrl = headUrl; + } + + public boolean isIsfollow() { + return isfollow; + } + + public void setIsfollow(boolean isfollow) { + this.isfollow = isfollow; + } + + public boolean isAutoOtaUpgrade() { + return autoOtaUpgrade; + } + + public void setAutoOtaUpgrade(boolean autoOtaUpgrade) { + this.autoOtaUpgrade = autoOtaUpgrade; + } + + public String getAccess_token() { + return access_token; + } + + public void setAccess_token(String access_token) { + this.access_token = access_token; + } + + public int getExpires_in() { + return expires_in; + } + + public void setExpires_in(int expires_in) { + this.expires_in = expires_in; + } + + public String getRefresh_token() { + return refresh_token; + } + + public void setRefresh_token(String refresh_token) { + this.refresh_token = refresh_token; + } + + public String getScope() { + return scope; + } + + public void setScope(String scope) { + this.scope = scope; + } + + public String getSession() { + return session; + } + + public void setSession(String session) { + this.session = session; + } + + public String getToken_type() { + return token_type; + } + + public void setToken_type(String token_type) { + this.token_type = token_type; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + } + + public class Obj implements Serializable { + + + private LoginInfo logininfo; + private User user; + private String userName; + private String userGender; + private String userPhone; + private String userPlace; + private String id; + private String photoVersion; + private String wxId; + private String userPhoto; + private String headUrl; + private boolean isfollow; + private boolean autoOtaUpgrade; + + public String getHeadUrl() { + return headUrl == null ? "" : headUrl; + } + + public void setHeadUrl(String headUrl) { + this.headUrl = headUrl; + } + + public boolean isAutoOtaUpgrade() { + return autoOtaUpgrade; + } + + public void setAutoOtaUpgrade(boolean autoOtaUpgrade) { + this.autoOtaUpgrade = autoOtaUpgrade; + } + + public LoginInfo getLogininfo() { + return logininfo; + } + + public void setLogininfo(LoginInfo logininfo) { + this.logininfo = logininfo; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public String getUserName() { + return userName == null ? "" : userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUserGender() { + return userGender == null ? "" : userGender; + } + + public void setUserGender(String userGender) { + this.userGender = userGender; + } + + public String getUserPhone() { + return userPhone == null ? "" : userPhone; + } + + public void setUserPhone(String userPhone) { + this.userPhone = userPhone; + } + + public String getUserPlace() { + return userPlace == null ? "" : userPlace; + } + + public void setUserPlace(String userPlace) { + this.userPlace = userPlace; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getPhotoVersion() { + return photoVersion == null ? "" : photoVersion; + } + + public void setPhotoVersion(String photoVersion) { + this.photoVersion = photoVersion; + } + + public String getWxId() { + return wxId == null ? "" : wxId; + } + + public void setWxId(String wxId) { + this.wxId = wxId; + } + + public String getUserPhoto() { + return userPhoto == null ? "" : userPhoto; + } + + public void setUserPhoto(String userPhoto) { + this.userPhoto = userPhoto; + } + + public boolean isfollow() { + return isfollow; + } + + public void setIsfollow(boolean isfollow) { + this.isfollow = isfollow; + } + + @Override + public String toString() { + return "Obj{" + + "logininfo=" + logininfo + + ", user=" + user + + ", userName='" + userName + '\'' + + ", userGender='" + userGender + '\'' + + ", userPhone='" + userPhone + '\'' + + ", userPlace='" + userPlace + '\'' + + ", id='" + id + '\'' + + ", photoVersion='" + photoVersion + '\'' + + ", isfollow=" + isfollow + + '}'; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/SecondEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/SecondEvent.java new file mode 100644 index 0000000..b66b65e --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/SecondEvent.java @@ -0,0 +1,15 @@ +package com.yonsz.z1.database.entity; + +public class SecondEvent { + + private String mMsg; + + public SecondEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/ShareListEntuty.java b/app/src/main/java/com/yonsz/z1/database/entity/ShareListEntuty.java new file mode 100644 index 0000000..3dc464c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/ShareListEntuty.java @@ -0,0 +1,225 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/7/26. + */ + +public class ShareListEntuty { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : [{"ziName":"Z1-06","updateDate":"2017-07-26 14:39:44","ziId":"ACCF23DAAF20","partner":"18824634310","id":"f4fdacb9c121491bb8e620877562f1ac","isNewRecord":false,"userName":"18888888888","user":{"admin":false,"loginFlag":"1","id":"18888888888","isNewRecord":false,"roleNames":""},"activeFlag":"1","createDate":"2017-07-26 14:39:44"}] + */ + private String msg; + private int flag; + private List obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getObj() { + if (obj == null) { + return new ArrayList<>(); + } + return obj; + } + + public void setObj(List obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * ziName : Z1-06 + * updateDate : 2017-07-26 14:39:44 + * ziId : ACCF23DAAF20 + * partner : 18824634310 + * id : f4fdacb9c121491bb8e620877562f1ac + * isNewRecord : false + * userName : 18888888888 + * user : {"admin":false,"loginFlag":"1","id":"18888888888","isNewRecord":false,"roleNames":""} + * activeFlag : 1 + * createDate : 2017-07-26 14:39:44 + */ + private String ziName; + private String updateDate; + private String ziId; + private String partner; + private String id; + private boolean isNewRecord; + private String userName; + private UserEntity user; + private String activeFlag; + private String createDate; + private String photoVersion; + private String userPhoto; + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getPartner() { + return partner == null ? "" : partner; + } + + public void setPartner(String partner) { + this.partner = partner; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getUserName() { + return userName == null ? "" : userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public UserEntity getUser() { + return user; + } + + public void setUser(UserEntity user) { + this.user = user; + } + + public String getActiveFlag() { + return activeFlag == null ? "" : activeFlag; + } + + public void setActiveFlag(String activeFlag) { + this.activeFlag = activeFlag; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getPhotoVersion() { + return photoVersion == null ? "" : photoVersion; + } + + public void setPhotoVersion(String photoVersion) { + this.photoVersion = photoVersion; + } + + public String getUserPhoto() { + return userPhoto == null ? "" : userPhoto; + } + + public void setUserPhoto(String userPhoto) { + this.userPhoto = userPhoto; + } + + public static class UserEntity { + /** + * admin : false + * loginFlag : 1 + * id : 18888888888 + * isNewRecord : false + * roleNames : + */ + private boolean admin; + private String loginFlag; + private String id; + private boolean isNewRecord; + private String roleNames; + + public boolean isAdmin() { + return admin; + } + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public String getLoginFlag() { + return loginFlag == null ? "" : loginFlag; + } + + public void setLoginFlag(String loginFlag) { + this.loginFlag = loginFlag; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getRoleNames() { + return roleNames == null ? "" : roleNames; + } + + public void setRoleNames(String roleNames) { + this.roleNames = roleNames; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/SignalEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/SignalEntity.java new file mode 100644 index 0000000..a2f9ea1 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/SignalEntity.java @@ -0,0 +1,48 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/11/21. + */ + +public class SignalEntity { + + /** + * cmds : ["120100d7041A1607d0c43324b482328118276727232722276827672723272227232768276727232767272227222723272227232723272227232723272227232722272327222722272327672722276827232722276727222784e1272227232722272227232722272327222723272327222723272227222723272227232723272227232722272227232722272227222723272327222767276727672789c48230811827672723272227682767272227232722276727672722276727232722272327232723272227222723272227232722272327222723272300385d08ca08"] + * name : signal + * pushKey : 041A + */ + + private String name; + private String pushKey; + private List cmds; + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPushKey() { + return pushKey == null ? "" : pushKey; + } + + public void setPushKey(String pushKey) { + this.pushKey = pushKey; + } + + public List getCmds() { + if (cmds == null) { + return new ArrayList<>(); + } + return cmds; + } + + public void setCmds(List cmds) { + this.cmds = cmds; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/SimpleEntty.java b/app/src/main/java/com/yonsz/z1/database/entity/SimpleEntty.java new file mode 100644 index 0000000..d2f7e86 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/SimpleEntty.java @@ -0,0 +1,52 @@ +package com.yonsz.z1.database.entity; + +import java.io.Serializable; + +/** + * Created by Administrator on 2017/9/5 0005. + */ + +public class SimpleEntty implements Serializable { + + /** + * msg : 发送指令完成 + * flag : 1 + * obj : null + */ + private String msg; + private int flag; + private String obj; + private String data; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getObj() { + return obj == null ? "" : obj; + } + + public void setObj(String obj) { + this.obj = obj; + } + + public String getData() { + return data == null ? "" : data; + } + + public void setData(String data) { + this.data = data; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/SolidUpEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/SolidUpEvent.java new file mode 100644 index 0000000..13417dd --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/SolidUpEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/5 0005. + */ + +public class SolidUpEvent { + private String mMsg; + + public SolidUpEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/StudyEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/StudyEntity.java new file mode 100644 index 0000000..556826b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/StudyEntity.java @@ -0,0 +1,47 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/7/24. + */ + +public class StudyEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : ["0303","0302","0304"] + */ + private String msg; + private int flag; + private List obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getObj() { + if (obj == null) { + return new ArrayList<>(); + } + return obj; + } + + public void setObj(List obj) { + this.obj = obj; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/StudyValueEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/StudyValueEntity.java new file mode 100644 index 0000000..40e5b9f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/StudyValueEntity.java @@ -0,0 +1,101 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/7/24. + */ + +public class StudyValueEntity { + /** + * flag : 1 + * msg : 操作成功。 + * obj : {"signal":{"cmds":["120100d7041A1607d04334000082288116242222242223222424222223226a2224226a226a226b226c2469226a222424692469226a2224226b226b22242224222522232223226a22242422226a226a226a220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffeb08e608"],"name":"signal","pushKey":"041A"}} + */ + + private int flag; + private String msg; + private ObjBean obj; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public ObjBean getObj() { + return obj; + } + + public void setObj(ObjBean obj) { + this.obj = obj; + } + + public static class ObjBean { + /** + * signal : {"cmds":["120100d7041A1607d04334000082288116242222242223222424222223226a2224226a226a226b226c2469226a222424692469226a2224226b226b22242224222522232223226a22242422226a226a226a220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffeb08e608"],"name":"signal","pushKey":"041A"} + */ + + private SignalBean signal; + + + public SignalBean getSignal() { + return signal; + } + + public void setSignal(SignalBean signal) { + this.signal = signal; + } + + public static class SignalBean { + /** + * cmds : ["120100d7041A1607d04334000082288116242222242223222424222223226a2224226a226a226b226c2469226a222424692469226a2224226b226b22242224222522232223226a22242422226a226a226a220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffeb08e608"] + * name : signal + * pushKey : 041A + */ + + private String name; + private String pushKey; + private List cmds; + + public String getName() { + + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPushKey() { + return pushKey == null ? "" : pushKey; + } + + public void setPushKey(String pushKey) { + this.pushKey = pushKey; + } + + public List getCmds() { + if (cmds == null) { + return new ArrayList<>(); + } + return cmds; + } + + public void setCmds(List cmds) { + this.cmds = cmds; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/SystemChannelEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/SystemChannelEntity.java new file mode 100644 index 0000000..d7360fc --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/SystemChannelEntity.java @@ -0,0 +1,110 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +public class SystemChannelEntity { + + /** + * code : 1 + * data : [{"createDate":1557136686000,"id":1,"name":"央视综合频道","sort":1,"updateDate":1557136686000},{"createDate":1557136771000,"id":2,"name":"央视新闻频道","sort":10,"updateDate":1557136771000},{"createDate":1557136787000,"id":3,"name":"央视财经频道","sort":20,"updateDate":1557136787000},{"createDate":1557136805000,"id":4,"name":"央视综艺频道","sort":30,"updateDate":1557136805000},{"createDate":1557136818000,"id":5,"name":"央视体育频道","sort":40,"updateDate":1557136818000},{"createDate":1557136829000,"id":6,"name":"央视纪录频道","sort":50,"updateDate":1557136829000},{"createDate":1557136846000,"id":7,"name":"央视少儿频道","sort":60,"updateDate":1557136846000},{"createDate":1557136858000,"id":8,"name":"江苏卫视频道","sort":70,"updateDate":1557136858000},{"createDate":1557136874000,"id":9,"name":"浙江卫视频道","sort":80,"updateDate":1557136874000},{"createDate":1557136882000,"id":10,"name":"湖南卫视频道","sort":90,"updateDate":1557136882000},{"createDate":1557136892000,"id":11,"name":"东方卫视频道","sort":100,"updateDate":1557136897000},{"createDate":1557136908000,"id":12,"name":"北京卫视频道","sort":110,"updateDate":1557136908000},{"createDate":1557136918000,"id":13,"name":"深圳卫视频道","sort":120,"updateDate":1557136918000},{"createDate":1557136931000,"id":14,"name":"安徽卫视频道","sort":130,"updateDate":1557136931000},{"createDate":1557136941000,"id":15,"name":"天津卫视频道","sort":140,"updateDate":1557136941000},{"createDate":1557136950000,"id":16,"name":"湖北卫视频道","sort":150,"updateDate":1557136950000},{"createDate":1557136974000,"id":17,"name":"广东卫视频道","sort":160,"updateDate":1557136974000},{"createDate":1557136996000,"id":18,"name":"黑龙江卫视频道","sort":170,"updateDate":1557136996000},{"createDate":1557137005000,"id":19,"name":"山东卫视频道","sort":180,"updateDate":1557137005000},{"createDate":1557137015000,"id":20,"name":"辽宁卫视频道","sort":190,"updateDate":1557137015000},{"createDate":1557137032000,"id":21,"name":"重庆卫视频道","sort":200,"updateDate":1557137032000},{"createDate":1557137047000,"id":22,"name":"江西卫视频道","sort":210,"updateDate":1557137047000},{"createDate":1557137055000,"id":23,"name":"四川卫视频道","sort":220,"updateDate":1557137055000},{"createDate":1557137065000,"id":24,"name":"贵州卫视频道","sort":230,"updateDate":1557137065000},{"createDate":1557137076000,"id":25,"name":"内蒙古卫视频道","sort":240,"updateDate":1557137076000},{"createDate":1557137089000,"id":26,"name":"山西卫视频道","sort":250,"updateDate":1557137089000},{"createDate":1557137098000,"id":27,"name":"凤凰卫视频道","sort":260,"updateDate":1557137098000},{"createDate":1557137107000,"id":28,"name":"广西卫视频道","sort":270,"updateDate":1557137107000},{"createDate":1557137119000,"id":29,"name":"东南卫视频道","sort":280,"updateDate":1557137119000}] + * flag : 1 + * msg : success + */ + + private int code; + private int flag; + private String msg; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg == null ? "" : msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * createDate : 1557136686000 + * id : 1 + * name : 央视综合频道 + * sort : 1 + * updateDate : 1557136686000 + */ + + private long createDate; + private String id; + private String name; + private int sort; + private long updateDate; + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/ThirdEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/ThirdEvent.java new file mode 100644 index 0000000..47e1a5b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/ThirdEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/5 0005. + */ + +public class ThirdEvent { + private String mMsg; + + public ThirdEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/TimeEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/TimeEntity.java new file mode 100644 index 0000000..6e7321e --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/TimeEntity.java @@ -0,0 +1,271 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/7/13. + */ + +public class TimeEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : [[{"deviceType":"001","timeOn":"00:00","updateDate":"2017-07-20 14:16:48","flag":"0","ziId":"ACCF23DAAF20","controType":"1","id":"56b17aa5744c45f6a8c22c6c45d2b4d0","isNewRecord":false,"timeOff":"00:00","userId":"18888888888","createDate":"2017-07-20 14:16:48","sid":"A2"},{"deviceType":"001","timeOn":"00:00","weekNum5":"0","weekNum4":"0","updateDate":"2017-07-20 15:56:59","weekNum3":"0","flag":"0","weekNum2":"0","weekNum7":"0","weekNum6":"0","isNewRecord":false,"timeOff":"00:00","userId":"18888888888","sid":"A1","ziId":"ACCF23DAAF20","controType":"1","id":"68f7ec87851a46b08ab63c2f9284d4d3","weekNum1":"0","createDate":"2017-07-20 14:16:48"},{"deviceType":"001","timeOn":"00:00","updateDate":"2017-07-20 14:16:49","flag":"0","ziId":"ACCF23DAAF20","controType":"1","id":"eac04ad369054f1c860538c29733bc02","isNewRecord":false,"timeOff":"00:00","userId":"18888888888","createDate":"2017-07-20 14:16:49","sid":"A3"}],[{"deviceType":"001","updateDate":"2017-07-21 16:20:29","flag":"1","ziId":"ACCF23DAAF20","cmdType":"0","onceTime":"07:50","controType":"0","id":"727af93a654c4d559dad1255ac71afa2","isNewRecord":false,"userId":"18888888888","createDate":"2017-07-20 14:16:48","sid":"B2"},{"deviceType":"001","updateDate":"2017-07-20 16:08:17","flag":"0","ziId":"ACCF23DAAF20","cmdType":"1","onceTime":"01:08","controType":"0","id":"91a3e63a754f47c0932befd32bab10ee","isNewRecord":false,"userId":"18888888888","createDate":"2017-07-20 14:16:48","sid":"B1"}]] + */ + private String msg; + private int flag; + private List> data; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List> getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List> data) { + this.data = data; + } + + public static class DataBean { + /** + * deviceType : 001 + * timeOn : 00:00 + * updateDate : 2017-07-20 14:16:48 + * flag : 0 + * ziId : ACCF23DAAF20 + * controType : 1 + * id : 56b17aa5744c45f6a8c22c6c45d2b4d0 + * isNewRecord : false + * timeOff : 00:00 + * userId : 18888888888 + * createDate : 2017-07-20 14:16:48 + * sid : A2 + */ + private String deviceType; + private String timeOn; + private String updateDate; + private String flag; + private String closeEnable; + private String openEnable; + private String ziId; + private String controType; + private String id; + private boolean isNewRecord; + private String timeOff; + private String userId; + private String createDate; + private String sid; + private String onceTime; + private String weekNum1; + private String weekNum2; + private String weekNum3; + private String weekNum4; + private String weekNum5; + private String weekNum6; + private String weekNum7; + private String restMin; + + public String getCloseEnable() { + return closeEnable == null ? "" : closeEnable; + } + + public void setCloseEnable(String closeEnable) { + this.closeEnable = closeEnable; + } + + public String getOpenEnable() { + return openEnable == null ? "" : openEnable; + } + + public void setOpenEnable(String openEnable) { + this.openEnable = openEnable; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getTimeOn() { + return timeOn == null ? "" : timeOn; + } + + public void setTimeOn(String timeOn) { + this.timeOn = timeOn; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getFlag() { + return flag == null ? "" : flag; + } + + public void setFlag(String flag) { + this.flag = flag; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getControType() { + return controType == null ? "" : controType; + } + + public void setControType(String controType) { + this.controType = controType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getTimeOff() { + return timeOff == null ? "" : timeOff; + } + + public void setTimeOff(String timeOff) { + this.timeOff = timeOff; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getSid() { + return sid == null ? "" : sid; + } + + public void setSid(String sid) { + this.sid = sid; + } + + public String getOnceTime() { + return onceTime == null ? "" : onceTime; + } + + public void setOnceTime(String onceTime) { + this.onceTime = onceTime; + } + + public String getWeekNum1() { + return weekNum1 == null ? "" : weekNum1; + } + + public void setWeekNum1(String weekNum1) { + this.weekNum1 = weekNum1; + } + + public String getWeekNum2() { + return weekNum2 == null ? "" : weekNum2; + } + + public void setWeekNum2(String weekNum2) { + this.weekNum2 = weekNum2; + } + + public String getWeekNum3() { + return weekNum3 == null ? "" : weekNum3; + } + + public void setWeekNum3(String weekNum3) { + this.weekNum3 = weekNum3; + } + + public String getWeekNum4() { + return weekNum4 == null ? "" : weekNum4; + } + + public void setWeekNum4(String weekNum4) { + this.weekNum4 = weekNum4; + } + + public String getWeekNum5() { + return weekNum5 == null ? "" : weekNum5; + } + + public void setWeekNum5(String weekNum5) { + this.weekNum5 = weekNum5; + } + + public String getWeekNum6() { + return weekNum6 == null ? "" : weekNum6; + } + + public void setWeekNum6(String weekNum6) { + this.weekNum6 = weekNum6; + } + + public String getWeekNum7() { + return weekNum7 == null ? "" : weekNum7; + } + + public void setWeekNum7(String weekNum7) { + this.weekNum7 = weekNum7; + } + + public String getRestMin() { + return restMin == null ? "" : restMin; + } + + public void setRestMin(String restMin) { + this.restMin = restMin; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/TokenEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/TokenEntity.java new file mode 100644 index 0000000..e3afbe4 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/TokenEntity.java @@ -0,0 +1,299 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2018/3/31. + */ + +public class TokenEntity { + + /** + * flag : 1 + * obj : {"id":"c6dae4c3675849149554e3c9f2fe606d","isNewRecord":false,"appId":"1101","appSecret":"123456","flag":"1","token":"28c695af59494c71a7f6c4c571c3e899","androidVersions":"3_3.1.6,3_3.1.7","iosVersions":"3_3.1.6,3_3.1.7"} + * msg : 操作成功 + */ + + private int flag; + private ObjBean obj; + private String msg; + /** + * data : {"id":"449ea5411b5e11ebbd786c92bf622d12","createBy":"1","updateBy":"1","appId":"1103","flag":1,"token":"8efc66be7db04c0ea84287243357fc57","iosVersions":"2.9,2.4,2.6,3.1","androidVersions":"3_3.2.1,3_3.2.0,3_3.1.6,4_4.0.1,4_4.0.2,4_4.0.3","customerName":"安顺祥智控","remarks":"","createDate":1604137725000,"updateDate":1604137725000,"delFlag":"0","payHideVers":"4.9.0,4.9.1","minOtaVer":""} + * code : 1 + */ + + private DataBean data; + + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjBean getObj() { + return obj; + } + + public void setObj(ObjBean obj) { + this.obj = obj; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public static class ObjBean { + /** + * id : c6dae4c3675849149554e3c9f2fe606d + * isNewRecord : false + * appId : 1101 + * appSecret : 123456 + * flag : 1 + * token : 28c695af59494c71a7f6c4c571c3e899 + * androidVersions : 3_3.1.6,3_3.1.7 + * iosVersions : 3_3.1.6,3_3.1.7 + */ + + private String id; + private boolean isNewRecord; + private String appId; + private String appSecret; + private String flag; + private String token; + private String androidVersions; + private String iosVersions; + private String startUpImgUrl; + + public String getStartUpImgUrl() { + return startUpImgUrl == null ? "" : startUpImgUrl; + } + + public void setStartUpImgUrl(String startUpImgUrl) { + this.startUpImgUrl = startUpImgUrl; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAppSecret() { + return appSecret == null ? "" : appSecret; + } + + public void setAppSecret(String appSecret) { + this.appSecret = appSecret; + } + + public String getFlag() { + return flag == null ? "" : flag; + } + + public void setFlag(String flag) { + this.flag = flag; + } + + public String getToken() { + return token == null ? "" : token; + } + + public void setToken(String token) { + this.token = token; + } + + public String getAndroidVersions() { + return androidVersions == null ? "" : androidVersions; + } + + public void setAndroidVersions(String androidVersions) { + this.androidVersions = androidVersions; + } + + public String getIosVersions() { + return iosVersions == null ? "" : iosVersions; + } + + public void setIosVersions(String iosVersions) { + this.iosVersions = iosVersions; + } + } + + public static class DataBean { + /** + * id : 449ea5411b5e11ebbd786c92bf622d12 + * createBy : 1 + * updateBy : 1 + * appId : 1103 + * flag : 1 + * token : 8efc66be7db04c0ea84287243357fc57 + * iosVersions : 2.9,2.4,2.6,3.1 + * androidVersions : 3_3.2.1,3_3.2.0,3_3.1.6,4_4.0.1,4_4.0.2,4_4.0.3 + * customerName : 安顺祥智控 + * remarks : + * createDate : 1604137725000 + * updateDate : 1604137725000 + * delFlag : 0 + * payHideVers : 4.9.0,4.9.1 + * minOtaVer : + */ + + private String id; + private String createBy; + private String updateBy; + private String appId; + private String token; + private String iosVersions; + private String androidVersions; + private String customerName; + private String remarks; + private long createDate; + private long updateDate; + private String delFlag; + private String payHideVers; + private String minOtaVer; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getCreateBy() { + return createBy == null ? "" : createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public String getUpdateBy() { + return updateBy == null ? "" : updateBy; + } + + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getToken() { + return token == null ? "" : token; + } + + public void setToken(String token) { + this.token = token; + } + + public String getIosVersions() { + return iosVersions == null ? "" : iosVersions; + } + + public void setIosVersions(String iosVersions) { + this.iosVersions = iosVersions; + } + + public String getAndroidVersions() { + return androidVersions == null ? "" : androidVersions; + } + + public void setAndroidVersions(String androidVersions) { + this.androidVersions = androidVersions; + } + + public String getCustomerName() { + return customerName == null ? "" : customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getRemarks() { + return remarks == null ? "" : remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getDelFlag() { + return delFlag == null ? "" : delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getPayHideVers() { + return payHideVers == null ? "" : payHideVers; + } + + public void setPayHideVers(String payHideVers) { + this.payHideVers = payHideVers; + } + + public String getMinOtaVer() { + return minOtaVer == null ? "" : minOtaVer; + } + + public void setMinOtaVer(String minOtaVer) { + this.minOtaVer = minOtaVer; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/UpgradeDeviceEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/UpgradeDeviceEntity.java new file mode 100644 index 0000000..43e8a49 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/UpgradeDeviceEntity.java @@ -0,0 +1,104 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/11/7. + */ + +public class UpgradeDeviceEntity { + + /** + * data : [{"addressId":"4","houseName":"加加加","price":"0.01","ziId":"F0FE6BEB2B99","ziName":"小艾A1-081"}] + * flag : 1 + * msg : 获取设备列表成功。 + */ + + private int flag; + private String msg; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * addressId : 4 + * houseName : 加加加 + * price : 0.01 + * ziId : F0FE6BEB2B99 + * ziName : 小艾A1-081 + */ + + private String addressId; + private String houseName; + private String price; + private String ziId; + private String ziName; + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getHouseName() { + return houseName == null ? "" : houseName; + } + + public void setHouseName(String houseName) { + this.houseName = houseName; + } + + public String getPrice() { + return price == null ? "" : price; + } + + public void setPrice(String price) { + this.price = price; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/User.java b/app/src/main/java/com/yonsz/z1/database/entity/User.java new file mode 100644 index 0000000..58d5c98 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/User.java @@ -0,0 +1,146 @@ +package com.yonsz.z1.database.entity; + +import java.io.Serializable; + +/** + * Created by Administrator on 2016/11/27 0027. + */ + +public class User implements Serializable { + private String id; + private boolean isNewRecord; + private String createDate; + private String updateDate; + private String loginName; + private String name; + private String loginIp; + private String loginDate; + private String loginFlag; + private String oldLoginIp; + private String oldLoginDate; + private boolean admin; + private String roleNames; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getLoginName() { + return loginName == null ? "" : loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLoginIp() { + return loginIp == null ? "" : loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getLoginDate() { + return loginDate == null ? "" : loginDate; + } + + public void setLoginDate(String loginDate) { + this.loginDate = loginDate; + } + + public String getLoginFlag() { + return loginFlag == null ? "" : loginFlag; + } + + public void setLoginFlag(String loginFlag) { + this.loginFlag = loginFlag; + } + + public String getOldLoginIp() { + return oldLoginIp == null ? "" : oldLoginIp; + } + + public void setOldLoginIp(String oldLoginIp) { + this.oldLoginIp = oldLoginIp; + } + + public String getOldLoginDate() { + return oldLoginDate == null ? "" : oldLoginDate; + } + + public void setOldLoginDate(String oldLoginDate) { + this.oldLoginDate = oldLoginDate; + } + + public boolean isAdmin() { + return admin; + } + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public String getRoleNames() { + return roleNames == null ? "" : roleNames; + } + + public void setRoleNames(String roleNames) { + this.roleNames = roleNames; + } + + @Override + public String toString() { + return "User{" + + "id='" + id + '\'' + + ", isNewRecord=" + isNewRecord + + ", createDate='" + createDate + '\'' + + ", updateDate='" + updateDate + '\'' + + ", loginName='" + loginName + '\'' + + ", name='" + name + '\'' + + ", loginIp='" + loginIp + '\'' + + ", loginDate='" + loginDate + '\'' + + ", loginFlag='" + loginFlag + '\'' + + ", oldLoginIp='" + oldLoginIp + '\'' + + ", oldLoginDate='" + oldLoginDate + '\'' + + ", admin=" + admin + + ", roleNames='" + roleNames + '\'' + + '}'; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/VersionEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/VersionEntity.java new file mode 100644 index 0000000..68c231a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/VersionEntity.java @@ -0,0 +1,445 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/5/16. + */ + +public class VersionEntity { + + /** + * msg : + * flag : 1 + * obj : {"listInfoNum":1,"num":0,"msgViewNum":0,"versionInfo":{"updateDate":"2017-07-24 16:11:57","versionId":"2","serviceUrl":"/./../userfiles/1/files/sys/hlSysVersion/2017/07/v2_3_6.apk","description":"版本更新描述","id":"7953498b22834945a47180ba0c7c3fb8","isNewRecord":false,"remarks":"","createDate":"2017-07-24 15:53:56"},"newObj":{"listDate":1502618344000,"updateDate":"2017-08-10 16:21:14","address":"广东省深圳市龙华区西环路97号","latitude":"22.647605","autoid":31,"flashDate":1502790444000,"isNewRecord":false,"userName":"鹅鹅额","photoVersion":6,"userPlace":"杭州","userGender":"1","id":"6ec56ab0452144ba89ee3bcd99904d2b","user":{"admin":false,"loginFlag":"1","id":"18824634311","isNewRecord":false,"roleNames":""},"isfollow":false,"createDate":"2017-05-02 10:12:35","longitude":"114.00542"}} + */ + private String msg; + private int flag; + private ObjEntity obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * listInfoNum : 1 + * num : 0 + * sysMsgNnum : 0 + * versionInfo : {"updateDate":"2017-07-24 16:11:57","versionId":"2","serviceUrl":"/./../userfiles/1/files/sys/hlSysVersion/2017/07/v2_3_6.apk","description":"版本更新描述","id":"7953498b22834945a47180ba0c7c3fb8","isNewRecord":false,"remarks":"","createDate":"2017-07-24 15:53:56"} + * newObj : {"listDate":1502618344000,"updateDate":"2017-08-10 16:21:14","address":"广东省深圳市龙华区西环路97号","latitude":"22.647605","autoid":31,"flashDate":1502790444000,"isNewRecord":false,"userName":"鹅鹅额","photoVersion":6,"userPlace":"杭州","userGender":"1","id":"6ec56ab0452144ba89ee3bcd99904d2b","user":{"admin":false,"loginFlag":"1","id":"18824634311","isNewRecord":false,"roleNames":""},"isfollow":false,"createDate":"2017-05-02 10:12:35","longitude":"114.00542"} + */ + private int listInfoNum; + private int num; + private int sysMsgNnum; + private VersionInfoEntity versionInfo; + private LastUserMapEntity lastUserMap; + private NewObjEntity newObj; + private String date; + + public int getListInfoNum() { + return listInfoNum; + } + + public void setListInfoNum(int listInfoNum) { + this.listInfoNum = listInfoNum; + } + + public int getNum() { + return num; + } + + public void setNum(int num) { + this.num = num; + } + + public int getSysMsgNnum() { + return sysMsgNnum; + } + + public void setSysMsgNnum(int sysMsgNnum) { + this.sysMsgNnum = sysMsgNnum; + } + + public VersionInfoEntity getVersionInfo() { + return versionInfo; + } + + public void setVersionInfo(VersionInfoEntity versionInfo) { + this.versionInfo = versionInfo; + } + + public LastUserMapEntity getLastUserMap() { + return lastUserMap; + } + + public void setLastUserMap(LastUserMapEntity lastUserMap) { + this.lastUserMap = lastUserMap; + } + + public NewObjEntity getNewObj() { + return newObj; + } + + public void setNewObj(NewObjEntity newObj) { + this.newObj = newObj; + } + + public String getDate() { + return date == null ? "" : date; + } + + public void setDate(String date) { + this.date = date; + } + + public static class LastUserMapEntity { + + /** + * photoVersion : 3 + * userId : 18824634318 + */ + private int photoVersion; + private String userId; + + public int getPhotoVersion() { + return photoVersion; + } + + public void setPhotoVersion(int photoVersion) { + this.photoVersion = photoVersion; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + } + + public static class VersionInfoEntity { + /** + * updateDate : 2017-07-24 16:11:57 + * versionId : 2 + * serviceUrl : /./../userfiles/1/files/sys/hlSysVersion/2017/07/v2_3_6.apk + * description : 版本更新描述 + * id : 7953498b22834945a47180ba0c7c3fb8 + * isNewRecord : false + * remarks : + * createDate : 2017-07-24 15:53:56 + */ + private String updateDate; + private String versionId; + private String serviceUrl; + private String description; + private String id; + private boolean isNewRecord; + private String remarks; + private String createDate; + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getVersionId() { + return versionId == null ? "" : versionId; + } + + public void setVersionId(String versionId) { + this.versionId = versionId; + } + + public String getServiceUrl() { + return serviceUrl == null ? "" : serviceUrl; + } + + public void setServiceUrl(String serviceUrl) { + this.serviceUrl = serviceUrl; + } + + public String getDescription() { + return description == null ? "" : description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getRemarks() { + return remarks == null ? "" : remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + } + + public static class NewObjEntity { + /** + * listDate : 1502618344000 + * updateDate : 2017-08-10 16:21:14 + * address : 广东省深圳市龙华区西环路97号 + * latitude : 22.647605 + * autoid : 31 + * flashDate : 1502790444000 + * isNewRecord : false + * userName : 鹅鹅额 + * photoVersion : 6 + * userPlace : 杭州 + * userGender : 1 + * id : 6ec56ab0452144ba89ee3bcd99904d2b + * user : {"admin":false,"loginFlag":"1","id":"18824634311","isNewRecord":false,"roleNames":""} + * isfollow : false + * createDate : 2017-05-02 10:12:35 + * longitude : 114.00542 + */ + private long listDate; + private String updateDate; + private String address; + private String latitude; + private int autoid; + private long flashDate; + private boolean isNewRecord; + private String userName; + private int photoVersion; + private String userPlace; + private String userGender; + private String id; + private UserEntity user; + private boolean isfollow; + private String createDate; + private String longitude; + + public long getListDate() { + return listDate; + } + + public void setListDate(long listDate) { + this.listDate = listDate; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getAddress() { + return address == null ? "" : address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getLatitude() { + return latitude == null ? "" : latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public int getAutoid() { + return autoid; + } + + public void setAutoid(int autoid) { + this.autoid = autoid; + } + + public long getFlashDate() { + return flashDate; + } + + public void setFlashDate(long flashDate) { + this.flashDate = flashDate; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getUserName() { + return userName == null ? "" : userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public int getPhotoVersion() { + return photoVersion; + } + + public void setPhotoVersion(int photoVersion) { + this.photoVersion = photoVersion; + } + + public String getUserPlace() { + return userPlace == null ? "" : userPlace; + } + + public void setUserPlace(String userPlace) { + this.userPlace = userPlace; + } + + public String getUserGender() { + return userGender == null ? "" : userGender; + } + + public void setUserGender(String userGender) { + this.userGender = userGender; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public UserEntity getUser() { + return user; + } + + public void setUser(UserEntity user) { + this.user = user; + } + + public boolean isfollow() { + return isfollow; + } + + public void setIsfollow(boolean isfollow) { + this.isfollow = isfollow; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getLongitude() { + return longitude == null ? "" : longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public static class UserEntity { + /** + * admin : false + * loginFlag : 1 + * id : 18824634311 + * isNewRecord : false + * roleNames : + */ + private boolean admin; + private String loginFlag; + private String id; + private boolean isNewRecord; + private String roleNames; + + public boolean isAdmin() { + return admin; + } + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public String getLoginFlag() { + return loginFlag == null ? "" : loginFlag; + } + + public void setLoginFlag(String loginFlag) { + this.loginFlag = loginFlag; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getRoleNames() { + return roleNames == null ? "" : roleNames; + } + + public void setRoleNames(String roleNames) { + this.roleNames = roleNames; + } + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/VoiceChatEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/VoiceChatEntity.java new file mode 100644 index 0000000..f1d678f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/VoiceChatEntity.java @@ -0,0 +1,129 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/12/17. + */ + +public class VoiceChatEntity { + + /** + * best_result : 打开电 + * error : 0 + * origin_result : {"corpus_no":6635789322992068203,"err_no":0,"result":{"word":["打开电"]},"sn":"864fc8cf-2912-444a-a415-da72bc1e859e"} + * result_type : partial_result + * results_recognition : ["打开电"] + */ + + private String best_result; + private int error; + private OriginResultBean origin_result; + private String result_type; + private List results_recognition; + + public String getBest_result() { + return best_result == null ? "" : best_result; + } + + public void setBest_result(String best_result) { + this.best_result = best_result; + } + + public int getError() { + return error; + } + + public void setError(int error) { + this.error = error; + } + + public OriginResultBean getOrigin_result() { + return origin_result; + } + + public void setOrigin_result(OriginResultBean origin_result) { + this.origin_result = origin_result; + } + + public String getResult_type() { + return result_type == null ? "" : result_type; + } + + public void setResult_type(String result_type) { + this.result_type = result_type; + } + + public List getResults_recognition() { + if (results_recognition == null) { + return new ArrayList<>(); + } + return results_recognition; + } + + public void setResults_recognition(List results_recognition) { + this.results_recognition = results_recognition; + } + + public static class OriginResultBean { + /** + * corpus_no : 6635789322992068203 + * err_no : 0 + * result : {"word":["打开电"]} + * sn : 864fc8cf-2912-444a-a415-da72bc1e859e + */ + + private long corpus_no; + private int err_no; + private ResultBean result; + private String sn; + + public long getCorpus_no() { + return corpus_no; + } + + public void setCorpus_no(long corpus_no) { + this.corpus_no = corpus_no; + } + + public int getErr_no() { + return err_no; + } + + public void setErr_no(int err_no) { + this.err_no = err_no; + } + + public String getSn() { + return sn == null ? "" : sn; + } + + public void setSn(String sn) { + this.sn = sn; + } + + public ResultBean getResult() { + return result; + } + + public void setResult(ResultBean result) { + this.result = result; + } + + public static class ResultBean { + private List word; + + public List getWord() { + if (word == null) { + return new ArrayList<>(); + } + return word; + } + + public void setWord(List word) { + this.word = word; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/VoiceControllEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/VoiceControllEntity.java new file mode 100644 index 0000000..d30c9fa --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/VoiceControllEntity.java @@ -0,0 +1,71 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/9/13. + */ + +public class VoiceControllEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : {"codeList":["190C090100000000000000002F06"]} + */ + private String msg; + private int flag; + private ObjEntity obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * codeList : ["190C090100000000000000002F06"] + */ + private List codeList; + private String voiceFlag; + + public List getCodeList() { + if (codeList == null) { + return new ArrayList<>(); + } + return codeList; + } + + public void setCodeList(List codeList) { + this.codeList = codeList; + } + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/VoiceEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/VoiceEvent.java new file mode 100644 index 0000000..9776c4a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/VoiceEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/5 0005. + */ + +public class VoiceEvent { + private String mMsg; + + public VoiceEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/VoiceSwitchControlEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/VoiceSwitchControlEntity.java new file mode 100644 index 0000000..04b867a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/VoiceSwitchControlEntity.java @@ -0,0 +1,65 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/10/19. + */ + +public class VoiceSwitchControlEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : {"voiceCode":"19050501000000002406"} + */ + private String msg; + private int flag; + private ObjEntity obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * voiceCode : 19050501000000002406 + */ + private String voiceCode; + private String voiceFlag; + + public String getVoiceCode() { + return voiceCode == null ? "" : voiceCode; + } + + public void setVoiceCode(String voiceCode) { + this.voiceCode = voiceCode; + } + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/VolumeEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/VolumeEvent.java new file mode 100644 index 0000000..a4ca197 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/VolumeEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/9/5 0005. + */ + +public class VolumeEvent { + private String mMsg; + + public VolumeEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/YblEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/YblEntity.java new file mode 100644 index 0000000..ae64c28 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/YblEntity.java @@ -0,0 +1,361 @@ +package com.yonsz.z1.database.entity; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * Created by Administrator on 2017/7/5. + */ + +public class YblEntity implements Serializable { + /** + * 易百珑 + * lightCount : 2 + * yblId : b105417e + * yblLabel : 双路控制设备 + * yblType : 03 + */ + + private int lightCount; + private String deviceCount; + private String yblId; + private String yblLabel; + private String yblType; + private String ziId; + private int flag; + private String cmdType; + private String cmd; + private String key; + private String deviceId; + private String subType; + private String deviceName; + private String version; + private List lights; + /** + * code : 48a9c1e3 + * tmpId : 385921 + */ + + private String code; + private String tmpId; + private String addressNo; + private String order; + private String dimmingType; + private String relatedId; + /** + * context : {"code":"4FFA0C","macId":"F0FE6B58F591","deviceTypeName":"safety"} + * type : study_return + * timestamp : 1607045346768 + */ + + private ContextBean context; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + YblEntity yblEntity = (YblEntity) o; + if (yblId != null) { + return yblId != null ? yblId.equals(yblEntity.yblId) : yblEntity.yblId == null; + } else { + return context != null ? context.equals(yblEntity.context) : yblEntity.context == null; + } + } + + public String getVersion() { + return version == null ? "" : version; + } + + public void setVersion(String version) { + this.version = version == null ? "" : version; + } + + public String getRelatedId() { + return relatedId; + } + + public void setRelatedId(String relatedId) { + this.relatedId = relatedId; + } + + public String getDimmingType() { + return dimmingType; + } + + public void setDimmingType(String dimmingType) { + this.dimmingType = dimmingType; + } + + public String getAddressNo() { + return addressNo == null ? "" : addressNo; + } + + public void setAddressNo(String addressNo) { + this.addressNo = addressNo; + } + + public String getOrder() { + return order == null ? "" : order; + } + + public void setOrder(String order) { + this.order = order; + } + + public String getDeviceCount() { + return deviceCount == null ? "" : deviceCount; + } + + public void setDeviceCount(String deviceCount) { + this.deviceCount = deviceCount; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName == null ? "" : deviceName; + } + + public String getSubType() { + return subType == null ? "0" : subType; + } + + public void setSubType(String subType) { + this.subType = subType == null ? "" : subType; + } + + @Override + public int hashCode() { + return Objects.hash(lightCount, deviceCount, yblId, yblLabel, yblType, ziId, flag, cmdType, cmd, key, deviceId, subType, deviceName, lights, code, tmpId, addressNo, order, dimmingType, relatedId, context); + } + + public String getKey() { + return key == null ? "" : key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public List getLights() { + if (lights == null) { + return new ArrayList<>(); + } + return lights; + } + + public void setLights(List lights) { + this.lights = lights; + } + + public int getLightCount() { + return lightCount; + } + + public void setLightCount(int lightCount) { + this.lightCount = lightCount; + } + + public String getYblId() { + return yblId == null ? "" : yblId; + } + + public void setYblId(String yblId) { + this.yblId = yblId; + } + + public String getYblLabel() { + return yblLabel == null ? "" : yblLabel; + } + + public void setYblLabel(String yblLabel) { + this.yblLabel = yblLabel; + } + + public String getYblType() { + return yblType == null ? "" : yblType; + } + + public void setYblType(String yblType) { + this.yblType = yblType; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getCmdType() { + return cmdType == null ? "" : cmdType; + } + + public void setCmdType(String cmdType) { + this.cmdType = cmdType; + } + + public String getCmd() { + return cmd == null ? "" : cmd; + } + + public void setCmd(String cmd) { + this.cmd = cmd; + } + + public String getCode() { + return code == null ? "" : code; + } + + public void setCode(String code) { + this.code = code == null ? "" : code; + } + + public String getTmpId() { + return tmpId == null ? "" : tmpId; + } + + public void setTmpId(String tmpId) { + this.tmpId = tmpId == null ? "" : tmpId; + } + + public ContextBean getContext() { + return context; + } + + public void setContext(ContextBean context) { + this.context = context; + } + + public static class LightsBean { + /** + * addressId : 1 + * lightType : 0 + */ + + private String addressId; + private String addressName; + private String deviceName; + private String subType; + private int lightType; + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName == null ? "" : deviceName; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public int getLightType() { + return lightType; + } + + public void setLightType(int lightType) { + this.lightType = lightType; + } + } + + public static class ContextBean { + /** + * code : 4FFA0C + * macId : F0FE6B58F591 + * deviceTypeName : safety + */ + + private String code; + private String macId; + private String deviceTypeName; + private String value; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ContextBean that = (ContextBean) o; + return code.equals(that.code); + } + + @Override + public int hashCode() { + return Objects.hash(code); + } + + public String getValue() { + return value == null ? "1" : value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getCode() { + return code == null ? "" : code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getMacId() { + return macId; + } + + public void setMacId(String macId) { + this.macId = macId; + } + + public String getDeviceTypeName() { + return deviceTypeName; + } + + public void setDeviceTypeName(String deviceTypeName) { + this.deviceTypeName = deviceTypeName; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/Z1DetailEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/Z1DetailEntity.java new file mode 100644 index 0000000..1ddd334 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/Z1DetailEntity.java @@ -0,0 +1,656 @@ +package com.yonsz.z1.database.entity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/7/26. + */ + +public class Z1DetailEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : {"ziName":"Z1-06","ziId":"ACCF23DAAF20","deviceOwner":"18824634310","isNewRecord":true,"deviceVersion":"10.2.5","firmwareVersion":"1.0","onlineFlag":"1"} + */ + private String msg; + private int flag; + private ObjEntity obj; + private DataBean data; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + + public static class ObjEntity { + /** + * ziName : Z1-06 + * ziId : ACCF23DAAF20 + * deviceOwner : 18824634310 + * isNewRecord : true + * deviceVersion : 10.2.5 + * firmwareVersion : 1.0 + * onlineFlag : 1 + */ + private String ziName; + private String ziId; + private String deviceOwner; + private boolean isNewRecord; + private String deviceVersion; + private String firmwareVersion; + private String onlineFlag; + private String wifiName; + private String voiceControl;//音量 + private String voiceSwitch;//语音开关 + private String childControl;//童锁 + private String lightFlag;//小夜灯 + private String isNewOtaFlag;//ota升级 + private String connectFlag;//单机联机 + private String subVersion;//单机联机 + private String standardName; + private String standardCode; + private String icon; + + public String getStandardCode() { + return standardCode == null ? "" : standardCode; + } + + public void setStandardCode(String standardCode) { + this.standardCode = standardCode; + } + + public String getIcon() { + return icon == null ? "" : icon; + } + + public void setIcon(String icon) { + this.icon = icon == null ? "" : icon; + } + + public String getStandardName() { + return standardName == null ? "" : standardName; + } + + public void setStandardName(String standardName) { + this.standardName = standardName == null ? "" : standardName; + } + + public String getSubVersion() { + return subVersion == null ? "" : subVersion; + } + + public void setSubVersion(String subVersion) { + this.subVersion = subVersion; + } + + public String getConnectFlag() { + return connectFlag == null ? "" : connectFlag; + } + + public void setConnectFlag(String connectFlag) { + this.connectFlag = connectFlag; + } + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getDeviceOwner() { + return deviceOwner == null ? "" : deviceOwner; + } + + public void setDeviceOwner(String deviceOwner) { + this.deviceOwner = deviceOwner; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getDeviceVersion() { + return deviceVersion == null ? "" : deviceVersion; + } + + public void setDeviceVersion(String deviceVersion) { + this.deviceVersion = deviceVersion; + } + + public String getFirmwareVersion() { + return firmwareVersion == null ? "" : firmwareVersion; + } + + public void setFirmwareVersion(String firmwareVersion) { + this.firmwareVersion = firmwareVersion; + } + + public String getOnlineFlag() { + return onlineFlag == null ? "" : onlineFlag; + } + + public void setOnlineFlag(String onlineFlag) { + this.onlineFlag = onlineFlag; + } + + public String getWifiName() { + return wifiName == null ? "" : wifiName; + } + + public void setWifiName(String wifiName) { + this.wifiName = wifiName; + } + + public String getVoiceControl() { + return voiceControl == null ? "" : voiceControl; + } + + public void setVoiceControl(String voiceControl) { + this.voiceControl = voiceControl; + } + + public String getVoiceSwitch() { + return voiceSwitch == null ? "" : voiceSwitch; + } + + public void setVoiceSwitch(String voiceSwitch) { + this.voiceSwitch = voiceSwitch; + } + + public String getChildControl() { + return childControl == null ? "" : childControl; + } + + public void setChildControl(String childControl) { + this.childControl = childControl; + } + + public String getLightFlag() { + return lightFlag == null ? "" : lightFlag; + } + + public void setLightFlag(String lightFlag) { + this.lightFlag = lightFlag; + } + + public String getIsNewOtaFlag() { + return isNewOtaFlag == null ? "" : isNewOtaFlag; + } + + public void setIsNewOtaFlag(String isNewOtaFlag) { + this.isNewOtaFlag = isNewOtaFlag; + } + } + + public static class DataBean { + /** + * addressId : 1 + * addressName : 客厅 + * appId : 1105 + * childControl : 0 + * createDate : 1585558726000 + * deviceVersion : 1 + * firmwareVersion : 1.3.200422H + * floorCode : 1 + * houseId : 8d0d96df342fe9e5fa1aad48b6d1462c + * icon : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/09/17/1568683227301-igoii.png + * isNewOtaFlag : 1 + * name : 小艾H1-L-067 + * noDisturb : {"endTime":"09:00","open":0,"startTime":"21:00","volume":3} + * online : 1 + * ownerId : 3aba4e86687e4740aebdb745bb7e3032 + * ownerUserName : 永顺智酒店 + * softwares : {"noDisturb":true} + * standardCode : H1-L + * standardName : 小艾H1联机版 + * subVersion : Y + * userId : 3aba4e86687e4740aebdb745bb7e3032 + * voiceControl : 7 + * voiceSwitch : 1 + * wifiName : ysz-test + * ziId : F0FE6BEB07CA + */ + + private String addressId; + private String addressName; + private String appId; + private String childControl; + private long createDate; + private String deviceVersion; + private String firmwareVersion; + private String floorCode; + private String houseId; + private String icon; + private String isNewOtaFlag; + private String name; + private NoDisturbBean noDisturb; + private String online; + private String ownerId; + private String ownerUserName; + private SoftwaresBean softwares; + private String standardCode; + private String standardName; + private String subVersion; + private String userId; + private String voiceControl; + private String voiceSwitch; + private String wifiName; + private String ziId; + private String lightFlag; + private boolean isVirtual; + private boolean frequentOffline; + /** + * online : 0 + * connectFlag : 1 + * isNewOtaFlag : 0 + * softwares : {"voice":true,"noDisturb":false} + * tags : [{"name":"voice","label":"离线语音","icon":"https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/icons/tags/icon_identification_voice.png"},{"name":"wireless","label":"无线联网","icon":"https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/icons/tags/icon_identification_wifi.png"}] + */ + + private java.util.List tags; + + public List getTags() { + if (tags == null) { + return new ArrayList<>(); + } + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + public boolean isFrequentOffline() { + return frequentOffline; + } + + public void setFrequentOffline(boolean frequentOffline) { + this.frequentOffline = frequentOffline; + } + + /** + * online : 0 + * connectFlag : 1 + * isNewOtaFlag : 0 + * softwares : {"voice":true,"noDisturb":false} + * tags : [{"name":"voice","label":"离线语音","icon":"https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/icons/tags/icon_identification_voice.png"},{"name":"wireless","label":"无线联网","icon":"https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/icons/tags/icon_identification_wifi.png"}] + */ + + + public boolean isVirtual() { + return isVirtual; + } + + public void setVirtual(boolean virtual) { + isVirtual = virtual; + } + + public String getLightFlag() { + return lightFlag == null ? "" : lightFlag; + } + + public void setLightFlag(String lightFlag) { + this.lightFlag = lightFlag == null ? "" : lightFlag; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId == null ? "" : addressId; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName == null ? "" : addressName; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId == null ? "" : appId; + } + + public String getChildControl() { + return childControl == null ? "" : childControl; + } + + public void setChildControl(String childControl) { + this.childControl = childControl == null ? "" : childControl; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getDeviceVersion() { + return deviceVersion == null ? "" : deviceVersion; + } + + public void setDeviceVersion(String deviceVersion) { + this.deviceVersion = deviceVersion == null ? "" : deviceVersion; + } + + public String getFirmwareVersion() { + return firmwareVersion == null ? "" : firmwareVersion; + } + + public void setFirmwareVersion(String firmwareVersion) { + this.firmwareVersion = firmwareVersion == null ? "" : firmwareVersion; + } + + public String getFloorCode() { + return floorCode == null ? "" : floorCode; + } + + public void setFloorCode(String floorCode) { + this.floorCode = floorCode == null ? "" : floorCode; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId == null ? "" : houseId; + } + + public String getIcon() { + return icon == null ? "" : icon; + } + + public void setIcon(String icon) { + this.icon = icon == null ? "" : icon; + } + + public String getIsNewOtaFlag() { + return isNewOtaFlag == null ? "" : isNewOtaFlag; + } + + public void setIsNewOtaFlag(String isNewOtaFlag) { + this.isNewOtaFlag = isNewOtaFlag == null ? "" : isNewOtaFlag; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public NoDisturbBean getNoDisturb() { + return noDisturb; + } + + public void setNoDisturb(NoDisturbBean noDisturb) { + this.noDisturb = noDisturb; + } + + public String getOnline() { + return online == null ? "" : online; + } + + public void setOnline(String online) { + this.online = online == null ? "" : online; + } + + public String getOwnerId() { + return ownerId == null ? "" : ownerId; + } + + public void setOwnerId(String ownerId) { + this.ownerId = ownerId == null ? "" : ownerId; + } + + public String getOwnerUserName() { + return ownerUserName == null ? "" : ownerUserName; + } + + public void setOwnerUserName(String ownerUserName) { + this.ownerUserName = ownerUserName == null ? "" : ownerUserName; + } + + public SoftwaresBean getSoftwares() { + return softwares; + } + + public void setSoftwares(SoftwaresBean softwares) { + this.softwares = softwares; + } + + public String getStandardCode() { + return standardCode == null ? "" : standardCode; + } + + public void setStandardCode(String standardCode) { + this.standardCode = standardCode == null ? "" : standardCode; + } + + public String getStandardName() { + return standardName == null ? "" : standardName; + } + + public void setStandardName(String standardName) { + this.standardName = standardName == null ? "" : standardName; + } + + public String getSubVersion() { + return subVersion == null ? "" : subVersion; + } + + public void setSubVersion(String subVersion) { + this.subVersion = subVersion == null ? "" : subVersion; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId == null ? "" : userId; + } + + public String getVoiceControl() { + return voiceControl == null ? "" : voiceControl; + } + + public void setVoiceControl(String voiceControl) { + this.voiceControl = voiceControl == null ? "" : voiceControl; + } + + public String getVoiceSwitch() { + return voiceSwitch == null ? "" : voiceSwitch; + } + + public void setVoiceSwitch(String voiceSwitch) { + this.voiceSwitch = voiceSwitch == null ? "" : voiceSwitch; + } + + public String getWifiName() { + return wifiName == null ? "" : wifiName; + } + + public void setWifiName(String wifiName) { + this.wifiName = wifiName == null ? "" : wifiName; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId == null ? "" : ziId; + } + + public static class NoDisturbBean { + /** + * endTime : 09:00 + * open : 0 + * startTime : 21:00 + * volume : 3 + */ + + private String endTime; + private String open; + private String startTime; + private String volume; + private String preVolume; + private String id; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public String getEndTime() { + return endTime == null ? "" : endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime == null ? "" : endTime; + } + + public String getOpen() { + return open == null ? "" : open; + } + + public void setOpen(String open) { + this.open = open == null ? "" : open; + } + + public String getStartTime() { + return startTime == null ? "" : startTime; + } + + public void setStartTime(String startTime) { + this.startTime = startTime == null ? "" : startTime; + } + + public String getVolume() { + return volume == null ? "" : volume; + } + + public void setVolume(String volume) { + this.volume = volume == null ? "" : volume; + } + + public String getPreVolume() { + return preVolume == null ? "" : preVolume; + } + + public void setPreVolume(String preVolume) { + this.preVolume = preVolume; + } + } + + public static class SoftwaresBean { + /** + * noDisturb : true + */ + + private boolean noDisturb; + + public boolean isNoDisturb() { + return noDisturb; + } + + public void setNoDisturb(boolean noDisturb) { + this.noDisturb = noDisturb; + } + } + + public static class TagsBean { + /** + * name : voice + * label : 离线语音 + * icon : https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/icons/tags/icon_identification_voice.png + */ + + private String name; + private String label; + private String icon; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/Z1TimeEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/Z1TimeEntity.java new file mode 100644 index 0000000..8c033ea --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/Z1TimeEntity.java @@ -0,0 +1,85 @@ +package com.yonsz.z1.database.entity; + +/** + * Created by Administrator on 2017/7/29. + */ + +public class Z1TimeEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : {"cmdType":"1","time":"02:00:00"} + */ + private String msg; + private int flag; + private DataBean data; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public static class DataBean { + /** + * cmdType : 1 + * time : 02:00:00 + */ + private String cmdType; + private String time; + private String week; + private String min; + + public String getCmdType() { + return cmdType == null ? "" : cmdType; + } + + public void setCmdType(String cmdType) { + this.cmdType = cmdType; + } + + public String getTime() { + return time == null ? "" : time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getWeek() { + return week == null ? "" : week; + } + + public void setWeek(String week) { + this.week = week; + } + + public String getMin() { + return min == null ? "" : min; + } + + public void setMin(String min) { + this.min = min; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/A1A2Entity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/A1A2Entity.java new file mode 100644 index 0000000..eb4cb13 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/A1A2Entity.java @@ -0,0 +1,86 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2018/7/10. + */ + +public class A1A2Entity { + + /** + * flag : 1 + * data : {"ver":"A1","macId":"F0FE6BC7951B"} + * msg : 查询成功 + */ + + private int flag; + private DataBean data; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * ver : A1 + * macId : F0FE6BC7951B + */ + + private String ver; + private String macId; + private String connectFlag; + private String standardCode; + + public String getStandardCode() { + return standardCode == null ? "" : standardCode; + } + + public void setStandardCode(String standardCode) { + this.standardCode = standardCode == null ? "" : standardCode; + } + + public String getConnectFlag() { + return connectFlag == null ? "" : connectFlag; + } + + public void setConnectFlag(String connectFlag) { + this.connectFlag = connectFlag; + } + + public String getVer() { + return ver == null ? "" : ver; + } + + public void setVer(String ver) { + this.ver = ver; + } + + public String getMacId() { + return macId == null ? "" : macId; + } + + public void setMacId(String macId) { + this.macId = macId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/AddPanelModelEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/AddPanelModelEntity.java new file mode 100644 index 0000000..478d129 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/AddPanelModelEntity.java @@ -0,0 +1,158 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2019/1/23. + */ + +public class AddPanelModelEntity { + + /** + * flag : 1 + * data : {"id":"9aae4c7628af47988ded9a0101ab2fb3","isNewRecord":false,"createDate":"2019-01-23 09:02:18","updateDate":"2019-01-23 09:02:18","uid":"c345b148c2c2461c82109a6126f400f9","userId":"18824634310","appId":"1101","modelType":"60","modelName":"新的","flag":1,"houseId":"f882f99e8d664d27a5bc66056a8db6b0"} + * msg : 创建自定义模式成功 + */ + + private int flag; + private DataBean data; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * id : 9aae4c7628af47988ded9a0101ab2fb3 + * isNewRecord : false + * createDate : 2019-01-23 09:02:18 + * updateDate : 2019-01-23 09:02:18 + * uid : c345b148c2c2461c82109a6126f400f9 + * userId : 18824634310 + * appId : 1101 + * modelType : 60 + * modelName : 新的 + * flag : 1 + * houseId : f882f99e8d664d27a5bc66056a8db6b0 + */ + + private String id; + private boolean isNewRecord; + private String createDate; + private String updateDate; + private String uid; + private String userId; + private String appId; + private String modelType; + private String modelName; + private int flag; + private String houseId; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getUid() { + return uid == null ? "" : uid; + } + + public void setUid(String uid) { + this.uid = uid; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getModelType() { + return modelType == null ? "" : modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType; + } + + public String getModelName() { + return modelName == null ? "" : modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/AppControlEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/AppControlEvent.java new file mode 100644 index 0000000..d36e8a2 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/AppControlEvent.java @@ -0,0 +1,19 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2018/5/27 0027. + */ + +public class AppControlEvent { + + private String mMsg; + + public AppControlEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/BindEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/BindEntity.java new file mode 100644 index 0000000..424d3d2 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/BindEntity.java @@ -0,0 +1,341 @@ +package com.yonsz.z1.database.entity.entity4; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/7/18. + */ + +public class BindEntity { + /** + * flag : 1 + * msg : 查询设备联机版绑定的设备成功 + * obj : {"aloneDevices":[{"addressId":"其它","connectFlag":0,"deviceVersion":1,"ziId":"F0FE6B5F126D","ziName":"设备A1-040"}],"bindDevices":[{"aloneDevice":{"addressId":"其它","connectFlag":0,"ziId":"F0FE6B58F5AD","ziName":"设备A1-041"},"onlineDevice":{"addressId":"2","connectFlag":1,"deviceVersion":2,"ziId":"F0FE6BC79735","ziName":"设备A2-0134"}}],"onlineDevices":[{"addressId":"其它","connectFlag":0,"deviceVersion":1,"ziId":"F0FE6B5F126D","ziName":"设备A1-040"}]} + */ + + private int flag; + private String msg; + private ObjBean obj; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public ObjBean getObj() { + return obj; + } + + public void setObj(ObjBean obj) { + this.obj = obj; + } + + public static class ObjBean { + private List aloneDevices; + private List bindDevices; + private List onlineDevices; + + public List getAloneDevices() { + if (aloneDevices == null) { + return new ArrayList<>(); + } + return aloneDevices; + } + + public void setAloneDevices(List aloneDevices) { + this.aloneDevices = aloneDevices; + } + + public List getBindDevices() { + if (bindDevices == null) { + return new ArrayList<>(); + } + return bindDevices; + } + + public void setBindDevices(List bindDevices) { + this.bindDevices = bindDevices; + } + + public List getOnlineDevices() { + if (onlineDevices == null) { + return new ArrayList<>(); + } + return onlineDevices; + } + + public void setOnlineDevices(List onlineDevices) { + this.onlineDevices = onlineDevices; + } + + public static class AloneDevicesBean { + /** + * addressId : 其它 + * connectFlag : 0 + * deviceVersion : 1 + * ziId : F0FE6B5F126D + * ziName : 设备A1-040 + */ + + private String addressId; + private int connectFlag; + private int deviceVersion; + private String ziId; + private String ziName; + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public int getConnectFlag() { + return connectFlag; + } + + public void setConnectFlag(int connectFlag) { + this.connectFlag = connectFlag; + } + + public int getDeviceVersion() { + return deviceVersion; + } + + public void setDeviceVersion(int deviceVersion) { + this.deviceVersion = deviceVersion; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + } + + public static class BindDevicesBean { + /** + * aloneDevice : {"addressId":"其它","connectFlag":0,"ziId":"F0FE6B58F5AD","ziName":"设备A1-041"} + * onlineDevice : {"addressId":"2","connectFlag":1,"deviceVersion":2,"ziId":"F0FE6BC79735","ziName":"设备A2-0134"} + */ + + private AloneDeviceBean aloneDevice; + private OnlineDeviceBean onlineDevice; + + public AloneDeviceBean getAloneDevice() { + return aloneDevice; + } + + public void setAloneDevice(AloneDeviceBean aloneDevice) { + this.aloneDevice = aloneDevice; + } + + public OnlineDeviceBean getOnlineDevice() { + return onlineDevice; + } + + public void setOnlineDevice(OnlineDeviceBean onlineDevice) { + this.onlineDevice = onlineDevice; + } + + public static class AloneDeviceBean { + /** + * addressId : 其它 + * connectFlag : 0 + * ziId : F0FE6B58F5AD + * ziName : 设备A1-041 + */ + + private String addressId; + private int connectFlag; + private String ziId; + private String ziName; + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public int getConnectFlag() { + return connectFlag; + } + + public void setConnectFlag(int connectFlag) { + this.connectFlag = connectFlag; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + } + + public static class OnlineDeviceBean { + /** + * addressId : 2 + * connectFlag : 1 + * deviceVersion : 2 + * ziId : F0FE6BC79735 + * ziName : 设备A2-0134 + */ + + private String addressId; + private int connectFlag; + private int deviceVersion; + private String ziId; + private String ziName; + private String standardCode; + + public String getStandardCode() { + return standardCode == null ? "" : standardCode; + } + + public void setStandardCode(String standardCode) { + this.standardCode = standardCode; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public int getConnectFlag() { + return connectFlag; + } + + public void setConnectFlag(int connectFlag) { + this.connectFlag = connectFlag; + } + + public int getDeviceVersion() { + return deviceVersion; + } + + public void setDeviceVersion(int deviceVersion) { + this.deviceVersion = deviceVersion; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + } + } + + public static class OnlineDevicesBean { + /** + * addressId : 其它 + * connectFlag : 0 + * deviceVersion : 1 + * ziId : F0FE6B5F126D + * ziName : 设备A1-040 + */ + + private String addressId; + private int connectFlag; + private int deviceVersion; + private String ziId; + private String ziName; + private String standardCode; + + public String getStandardCode() { + return standardCode == null ? "" : standardCode; + } + + public void setStandardCode(String standardCode) { + this.standardCode = standardCode; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public int getConnectFlag() { + return connectFlag; + } + + public void setConnectFlag(int connectFlag) { + this.connectFlag = connectFlag; + } + + public int getDeviceVersion() { + return deviceVersion; + } + + public void setDeviceVersion(int deviceVersion) { + this.deviceVersion = deviceVersion; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/CanloopEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/CanloopEvent.java new file mode 100644 index 0000000..b8f13cc --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/CanloopEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2018/8/15. + */ + +public class CanloopEvent { + private boolean mMsg; + + public CanloopEvent(boolean msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public boolean getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/ChangePicEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/ChangePicEntity.java new file mode 100644 index 0000000..37d5b98 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/ChangePicEntity.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2017/9/6. + */ +public class ChangePicEntity { + private String mMsg; + + public ChangePicEntity(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} + diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/CheckBindEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/CheckBindEntity.java new file mode 100644 index 0000000..653bb25 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/CheckBindEntity.java @@ -0,0 +1,75 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2019/3/1. + */ + +public class CheckBindEntity { + /** + * flag : 1 + * data : {"bindStatus":0} + * msg : success + */ + + private int flag; + private DataBean data; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * bindStatus : 0 + */ + + private int bindStatus; + private String userToken; + private String isAdd; + + public String getIsAdd() { + return isAdd == null ? "" : isAdd; + } + + public void setIsAdd(String isAdd) { + this.isAdd = isAdd; + } + + public int getBindStatus() { + return bindStatus; + } + + public void setBindStatus(int bindStatus) { + this.bindStatus = bindStatus; + } + + public String getUserToken() { + return userToken == null ? "" : userToken; + } + + public void setUserToken(String userToken) { + this.userToken = userToken; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/ChooseHomeEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/ChooseHomeEvent.java new file mode 100644 index 0000000..d1c674f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/ChooseHomeEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2018/8/15. + */ + +public class ChooseHomeEvent { + private String mMsg; + + public ChooseHomeEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/CloseActivityEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/CloseActivityEntity.java new file mode 100644 index 0000000..0019f17 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/CloseActivityEntity.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2017/9/6. + */ +public class CloseActivityEntity { + private String mMsg; + + public CloseActivityEntity(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} + diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/DeviceSimpleEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/DeviceSimpleEntity.java new file mode 100644 index 0000000..7532ead --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/DeviceSimpleEntity.java @@ -0,0 +1,336 @@ +package com.yonsz.z1.database.entity.entity4; + +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/8/30. + */ + +public class DeviceSimpleEntity implements Serializable { + + /** + * flag : 1 + * data : [{"ziId":"F0FE6BEB24D6","ziName":"设备A1-0100","addressId":"8"},{"ziId":"F0FE6BEB30C1","ziName":"设备A1-098","addressId":"2"}] + * msg : 获取用户拥有的设备设备列表 + */ + + private int flag; + private String msg; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean implements Serializable { + /** + * ziId : F0FE6BEB24D6 + * ziName : 设备A1-0100 + * addressId : 8 + */ + + private String ziId; + private String ziName; + private String addressId; + private String deviceVersion; + private String connectFlag; + /** + * connectFlag : 0 + * deviceVersion : 2 + * standardCode : A2-L + * subVersion : B + */ + + private String standardCode; + private String subVersion; + private String online; + private String name; + private String floor; + private String floorCode; + private String icon; + private String deviceModel; + + private AllDeviceEntity.DataBean.DeviceBean.AdditionBean addition; + private AllDeviceEntity.DataBean.DeviceBean.HardwaresBean hardwares; + /** + * deviceId : 4E03656PAZ177CB + * deviceName : 网关 + * deviceProvider : lc + * deviceType : 022 + * houseId : 114cbc2131e3441cad1a8012716e8fd0 + * id : 98 + * openFlag : 1 + * parentThirdDeviceId : 0 + * relatedId : 0 + * sort : 600 + * sortNum : 600 + * thirdDeviceAccountId : 8 + * userId : f1669cd2f1be4cd68ff34d97661fe102 + */ + + private String deviceId; + private String deviceName; + private String deviceProvider; + private String deviceType; + private String houseId; + private String id; + private String openFlag; + private int parentThirdDeviceId; + private String relatedId; + private int sort; + private int sortNum; + private int thirdDeviceAccountId; + private String userId; + + public AllDeviceEntity.DataBean.DeviceBean.AdditionBean getAddition() { + return addition; + } + + public void setAddition(AllDeviceEntity.DataBean.DeviceBean.AdditionBean addition) { + this.addition = addition; + } + + public AllDeviceEntity.DataBean.DeviceBean.HardwaresBean getHardwares() { + return hardwares; + } + + public void setHardwares(AllDeviceEntity.DataBean.DeviceBean.HardwaresBean hardwares) { + this.hardwares = hardwares; + } + + public String getFloorCode() { + return floorCode == null ? "" : floorCode; + } + + public void setFloorCode(String floorCode) { + this.floorCode = floorCode == null ? "" : floorCode; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel == null ? "" : deviceModel; + } + + public String getIcon() { + return icon == null ? "" : icon; + } + + public void setIcon(String icon) { + this.icon = icon == null ? "" : icon; + } + + public String getFloor() { + return floor == null ? "" : floor; + } + + public void setFloor(String floor) { + this.floor = floor == null ? "" : floor; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public String getOnline() { + return online == null ? "" : online; + } + + public void setOnline(String online) { + this.online = online == null ? "" : online; + } + + public String getStandardCode() { + return standardCode == null ? "" : standardCode; + } + + public void setStandardCode(String standardCode) { + this.standardCode = standardCode; + } + + public String getSubVersion() { + return subVersion == null ? "" : subVersion; + } + + public void setSubVersion(String subVersion) { + this.subVersion = subVersion; + } + + public String getConnectFlag() { + return connectFlag == null ? "" : connectFlag; + } + + public void setConnectFlag(String connectFlag) { + this.connectFlag = connectFlag; + } + + public String getDeviceVersion() { + return deviceVersion == null ? "" : deviceVersion; + } + + public void setDeviceVersion(String deviceVersion) { + this.deviceVersion = deviceVersion; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId == null ? "" : deviceId; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName == null ? "" : deviceName; + } + + public String getDeviceProvider() { + return deviceProvider == null ? "" : deviceProvider; + } + + public void setDeviceProvider(String deviceProvider) { + this.deviceProvider = deviceProvider == null ? "" : deviceProvider; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType == null ? "" : deviceType; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId == null ? "" : houseId; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag == null ? "" : openFlag; + } + + public int getParentThirdDeviceId() { + return parentThirdDeviceId; + } + + public void setParentThirdDeviceId(int parentThirdDeviceId) { + this.parentThirdDeviceId = parentThirdDeviceId; + } + + public String getRelatedId() { + return relatedId == null ? "" : relatedId; + } + + public void setRelatedId(String relatedId) { + this.relatedId = relatedId == null ? "" : relatedId; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public int getSortNum() { + return sortNum; + } + + public void setSortNum(int sortNum) { + this.sortNum = sortNum; + } + + public int getThirdDeviceAccountId() { + return thirdDeviceAccountId; + } + + public void setThirdDeviceAccountId(int thirdDeviceAccountId) { + this.thirdDeviceAccountId = thirdDeviceAccountId; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId == null ? "" : userId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/DeviceStateEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/DeviceStateEntity.java new file mode 100644 index 0000000..067fba3 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/DeviceStateEntity.java @@ -0,0 +1,116 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2018/7/3. + */ + +public class DeviceStateEntity { + + /** + * flag : 1 + * data : {"openFlag":"1"} + * msg : 查询设备最近的操作状态成功 + */ + + private int flag; + private DataBean data; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * openFlag : 1 + */ + + private String openFlag; + private String model; + private String temp; + private String speed; + /** + * relatedLastInfo : {"openFlag":"0"} + */ + + private DataBean relatedLastInfo; + private String brightness; + private String travelControl; + + public String getModel() { + return model == null ? "" : model; + } + + public void setModel(String model) { + this.model = model; + } + + public String getTemp() { + return temp == null ? "" : temp; + } + + public void setTemp(String temp) { + this.temp = temp; + } + + public String getSpeed() { + return speed == null ? "" : speed; + } + + public void setSpeed(String speed) { + this.speed = speed; + } + + public String getTravelControl() { + return travelControl == null ? "" : travelControl; + } + + public void setTravelControl(String travelControl) { + this.travelControl = travelControl; + } + + public String getBrightness() { + return brightness == null ? "" : brightness; + } + + public void setBrightness(String brightness) { + this.brightness = brightness; + } + + public String getOpenFlag() { + return openFlag == null ? "1" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + + public DataBean getRelatedLastInfo() { + return relatedLastInfo; + } + + public void setRelatedLastInfo(DataBean relatedLastInfo) { + this.relatedLastInfo = relatedLastInfo; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/FamilyInfoEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/FamilyInfoEntity.java new file mode 100644 index 0000000..2a40a28 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/FamilyInfoEntity.java @@ -0,0 +1,130 @@ +package com.yonsz.z1.database.entity.entity4; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/9/11. + */ + +public class FamilyInfoEntity { + + /** + * flag : 1 + * data : {"autoSwitchHouseFlag":true,"houses":[{"id":"5d15fc6af0d34ef5bfc1560b4cb12ff0","isNewRecord":false,"name":"我的家","isOwner":1,"defFlag":1},{"id":"3a4d2be8420242d7be5608d8eddaaafe","isNewRecord":false,"name":"他的家","isOwner":1,"defFlag":0},{"id":"e705194542aa406fb049771faabaaf3f","isNewRecord":false,"name":"我们的家","isOwner":1,"defFlag":0},{"id":"b291478db1a342deb5aa5b29d7cfc13d","isNewRecord":false,"name":"呵呵","isOwner":1,"defFlag":0}]} + * msg : 查询用户的家庭管理信息成功 + */ + + private int flag; + private DataBean data; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * autoSwitchHouseFlag : true + * houses : [{"id":"5d15fc6af0d34ef5bfc1560b4cb12ff0","isNewRecord":false,"name":"我的家","isOwner":1,"defFlag":1},{"id":"3a4d2be8420242d7be5608d8eddaaafe","isNewRecord":false,"name":"他的家","isOwner":1,"defFlag":0},{"id":"e705194542aa406fb049771faabaaf3f","isNewRecord":false,"name":"我们的家","isOwner":1,"defFlag":0},{"id":"b291478db1a342deb5aa5b29d7cfc13d","isNewRecord":false,"name":"呵呵","isOwner":1,"defFlag":0}] + */ + + private boolean autoSwitchHouseFlag; + private List houses; + + public boolean isAutoSwitchHouseFlag() { + return autoSwitchHouseFlag; + } + + public void setAutoSwitchHouseFlag(boolean autoSwitchHouseFlag) { + this.autoSwitchHouseFlag = autoSwitchHouseFlag; + } + + public List getHouses() { + if (houses == null) { + return new ArrayList<>(); + } + return houses; + } + + public void setHouses(List houses) { + this.houses = houses; + } + + public static class HousesBean { + /** + * id : 5d15fc6af0d34ef5bfc1560b4cb12ff0 + * isNewRecord : false + * name : 我的家 + * isOwner : 1 + * defFlag : 1 + */ + + private String id; + private boolean isNewRecord; + private String name; + private int isOwner; + private int defFlag; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIsOwner() { + return isOwner; + } + + public void setIsOwner(int isOwner) { + this.isOwner = isOwner; + } + + public int getDefFlag() { + return defFlag; + } + + public void setDefFlag(int defFlag) { + this.defFlag = defFlag; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/GetZ1Event.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/GetZ1Event.java new file mode 100644 index 0000000..38d9a81 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/GetZ1Event.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2017/9/5 0005. + */ + +public class GetZ1Event { + private String mMsg; + + public GetZ1Event(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/HomeDetailEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/HomeDetailEntity.java new file mode 100644 index 0000000..71de104 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/HomeDetailEntity.java @@ -0,0 +1,338 @@ +package com.yonsz.z1.database.entity.entity4; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/9/11. + */ + +public class HomeDetailEntity { + + + /** + * flag : 1 + * data : {"id":"e705194542aa406fb049771faabaaf3f","isNewRecord":false,"createDate":"2018-09-11 15:13:13","updateDate":"2018-09-11 15:13:13","name":"我们的家","userId":"c345b148c2c2461c82109a6126f400f9","isOwner":1,"defFlag":0,"loginName":"18824634310","appId":"1101"} + * msg : 更新用户家成功 + */ + + private int flag; + private DataBean data; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * id : e705194542aa406fb049771faabaaf3f + * isNewRecord : false + * createDate : 2018-09-11 15:13:13 + * updateDate : 2018-09-11 15:13:13 + * name : 我们的家 + * userId : c345b148c2c2461c82109a6126f400f9 + * isOwner : 1 + * defFlag : 0 + * loginName : 18824634310 + * appId : 1101 + */ + + private String id; + private boolean isNewRecord; + private String createDate; + private String updateDate; + private String name; + private String userId; + private int isOwner; + private int defFlag; + private String loginName; + private String appId; + private String houseTypeCode; + private String houseTypeName; + private String floorList; + /** + * area : 0 + * lat : 0 + * lon : 0 + * picUrl : string + * place : string + * remarks : string + */ + + private String area; + private double lat; + private double lon; + private String picUrl; + private String place; + private String remarks; + private String deviceCount; + /** + * area : 0 + * defaultFloor : string + * houseAddresses : [{"addressTypeCode":"string","floorCode":"string"}] + * houseCategory : 0 + * lat : 0 + * lon : 0 + */ + + private String defaultFloor; + private int houseCategory; + private List houseAddresses; + private boolean virtual; + + public boolean isVirtual() { + return virtual; + } + + public void setVirtual(boolean virtual) { + this.virtual = virtual; + } + + public String getFloorList() { + return floorList == null ? "" : floorList; + } + + public void setFloorList(String floorList) { + this.floorList = floorList == null ? "" : floorList; + } + + public String getHouseTypeCode() { + return houseTypeCode == null ? "" : houseTypeCode; + } + + public void setHouseTypeCode(String houseTypeCode) { + this.houseTypeCode = houseTypeCode; + } + + public String getHouseTypeName() { + return houseTypeName == null ? "" : houseTypeName; + } + + public void setHouseTypeName(String houseTypeName) { + this.houseTypeName = houseTypeName; + } + + public String getDeviceCount() { + return deviceCount == null ? "" : deviceCount; + } + + public void setDeviceCount(String deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public int getIsOwner() { + return isOwner; + } + + public void setIsOwner(int isOwner) { + this.isOwner = isOwner; + } + + public int getDefFlag() { + return defFlag; + } + + public void setDefFlag(int defFlag) { + this.defFlag = defFlag; + } + + public String getLoginName() { + return loginName == null ? "" : loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getArea() { + return area == null ? "" : area; + } + + public void setArea(String area) { + this.area = area; + } + + public double getLat() { + return lat; + } + + public void setLat(double lat) { + this.lat = lat; + } + + public double getLon() { + return lon; + } + + public void setLon(double lon) { + this.lon = lon; + } + + public void setLon(int lon) { + this.lon = lon; + } + + public String getPicUrl() { + return picUrl == null ? "" : picUrl; + } + + public void setPicUrl(String picUrl) { + this.picUrl = picUrl; + } + + public String getPlace() { + return place == null ? "" : place; + } + + public void setPlace(String place) { + this.place = place; + } + + public String getRemarks() { + return remarks == null ? "" : remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } + + public String getDefaultFloor() { + return defaultFloor == null ? "" : defaultFloor; + } + + public void setDefaultFloor(String defaultFloor) { + this.defaultFloor = defaultFloor == null ? "" : defaultFloor; + } + + public int getHouseCategory() { + return houseCategory; + } + + public void setHouseCategory(int houseCategory) { + this.houseCategory = houseCategory; + } + + public List getHouseAddresses() { + if (houseAddresses == null) { + return new ArrayList<>(); + } + return houseAddresses; + } + + public void setHouseAddresses(List houseAddresses) { + this.houseAddresses = houseAddresses; + } + + public static class HouseAddressesBean { + /** + * addressTypeCode : string + * floorCode : string + */ + + private String addressTypeCode; + private String addressTypeName; + private String floorCode; + + public String getAddressTypeName() { + return addressTypeName == null ? "" : addressTypeName; + } + + public void setAddressTypeName(String addressTypeName) { + this.addressTypeName = addressTypeName == null ? "" : addressTypeName; + } + + public String getAddressTypeCode() { + return addressTypeCode == null ? "" : addressTypeCode; + } + + public void setAddressTypeCode(String addressTypeCode) { + this.addressTypeCode = addressTypeCode == null ? "" : addressTypeCode; + } + + public String getFloorCode() { + return floorCode == null ? "" : floorCode; + } + + public void setFloorCode(String floorCode) { + this.floorCode = floorCode == null ? "" : floorCode; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/HomeGroupEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/HomeGroupEntity.java new file mode 100644 index 0000000..3695d3a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/HomeGroupEntity.java @@ -0,0 +1,104 @@ +package com.yonsz.z1.database.entity.entity4; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/9/12. + */ + +public class HomeGroupEntity { + + /** + * flag : 1 + * data : [{"id":"5d15fc6af0d34ef5bfc1560b4cb12ff0","isNewRecord":false,"userId":"c345b148c2c2461c82109a6126f400f9","isOwner":1,"loginName":"18824634310"},{"id":"5d15fc6af0d34ef5bfc1560b4cb12ff0","isNewRecord":false,"userId":"69aa62c727394e2ca3f5c753fa30151b","isOwner":0,"loginName":"18922844450"}] + * msg : 查询家的分享者列表成功 + */ + + private int flag; + private String msg; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * id : 5d15fc6af0d34ef5bfc1560b4cb12ff0 + * isNewRecord : false + * userId : c345b148c2c2461c82109a6126f400f9 + * isOwner : 1 + * loginName : 18824634310 + */ + + private String id; + private boolean isNewRecord; + private String userId; + private int isOwner; + private String loginName; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public int getIsOwner() { + return isOwner; + } + + public void setIsOwner(int isOwner) { + this.isOwner = isOwner; + } + + public String getLoginName() { + return loginName == null ? "" : loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/HomeListEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/HomeListEntity.java new file mode 100644 index 0000000..a0833b4 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/HomeListEntity.java @@ -0,0 +1,296 @@ +package com.yonsz.z1.database.entity.entity4; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/9/11. + */ + +public class HomeListEntity { + + /** + * flag : 1 + * data : [{"id":"5d15fc6af0d34ef5bfc1560b4cb12ff0","isNewRecord":false,"name":"我的家","isOwner":1,"defFlag":1}] + * msg : 查询用户家列表成功 + */ + + private int flag; + private String msg; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * id : 5d15fc6af0d34ef5bfc1560b4cb12ff0 + * isNewRecord : false + * name : 我的家 + * isOwner : 1 + * defFlag : 1 + */ + + + private String houseId; + private boolean isNewRecord; + private String houseName; + private int isOwner; + private int defFlag; + /** + * area : 50.0 + * lat : 22.647857 + * lon : 114.005666 + * picUrl : http://111.230.241.83:8888/group1/M00/00/11/CmgwyFuSNcOAVasdAAI777uedC8930.png + * place : 锦华大厦(西环路) + */ + + private double area; + private double lat; + private double lon; + private String picUrl; + private String place; + private String DetailPlace; + private String safeSwitch; + private String floorList; + /** + * houseCategory : 1 + * houseTypeCode : 1 + * houseTypeName : 一房 + */ + + private int houseCategory; + private String houseTypeCode; + private String houseTypeName; + private boolean isVirtual; + /** + * defaultFloor : + * safeSmsSwitch : 1 + * safeSwitch : 1 + * shareUser : 18026905798 + * userId : a8c75ac85b2514db782c7b14f487001c + */ + + private String defaultFloor; + private int safeSmsSwitch; + private String shareUser; + private String userId; + + + public boolean isIsVirtual() { + return isVirtual; + } + + public void setIsVirtual(boolean virtual) { + isVirtual = virtual; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public String getHouseName() { + return houseName == null ? "" : houseName; + } + + public void setHouseName(String houseName) { + this.houseName = houseName; + } + + public String getFloorList() { + return floorList == null ? "" : floorList; + } + + public void setFloorList(String floorList) { + this.floorList = floorList == null ? "" : floorList; + } + + public String getSafeSwitch() { + return safeSwitch == null ? "" : safeSwitch; + } + + public void setSafeSwitch(String safeSwitch) { + this.safeSwitch = safeSwitch; + } + + public String getDetailPlace() { + return DetailPlace == null ? "" : DetailPlace; + } + + public void setDetailPlace(String detailPlace) { + DetailPlace = detailPlace; + } + + public String getId() { + return houseId == null ? "" : houseId; + } + + public void setId(String id) { + this.houseId = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getName() { + return houseName == null ? "" : houseName; + } + + public void setName(String name) { + this.houseName = name; + } + + public int getIsOwner() { + return isOwner; + } + + public void setIsOwner(int isOwner) { + this.isOwner = isOwner; + } + + public int getDefFlag() { + return defFlag; + } + + public void setDefFlag(int defFlag) { + this.defFlag = defFlag; + } + + public double getArea() { + return area; + } + + public void setArea(double area) { + this.area = area; + } + + public double getLat() { + return lat; + } + + public void setLat(double lat) { + this.lat = lat; + } + + public double getLon() { + return lon; + } + + public void setLon(double lon) { + this.lon = lon; + } + + public String getPicUrl() { + return picUrl == null ? "" : picUrl; + } + + public void setPicUrl(String picUrl) { + this.picUrl = picUrl; + } + + public String getPlace() { + return place == null ? "" : place; + } + + public void setPlace(String place) { + this.place = place; + } + + public int getHouseCategory() { + return houseCategory; + } + + public void setHouseCategory(int houseCategory) { + this.houseCategory = houseCategory; + } + + public String getHouseTypeCode() { + return houseTypeCode; + } + + public void setHouseTypeCode(String houseTypeCode) { + this.houseTypeCode = houseTypeCode; + } + + public String getHouseTypeName() { + return houseTypeName; + } + + public void setHouseTypeName(String houseTypeName) { + this.houseTypeName = houseTypeName; + } + + public boolean isVirtual() { + return isVirtual; + } + + public void setVirtual(boolean virtual) { + isVirtual = virtual; + } + + public String getDefaultFloor() { + return defaultFloor == null ? "" : defaultFloor; + } + + public void setDefaultFloor(String defaultFloor) { + this.defaultFloor = defaultFloor; + } + + public int getSafeSmsSwitch() { + return safeSmsSwitch; + } + + public void setSafeSmsSwitch(int safeSmsSwitch) { + this.safeSmsSwitch = safeSmsSwitch; + } + + public String getShareUser() { + return shareUser == null ? "" : shareUser; + } + + public void setShareUser(String shareUser) { + this.shareUser = shareUser; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/LocalControlEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/LocalControlEvent.java new file mode 100644 index 0000000..3c7933c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/LocalControlEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2018/6/8. + */ + +public class LocalControlEvent { + private String mMsg; + + public LocalControlEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/NewLogNumEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/NewLogNumEntity.java new file mode 100644 index 0000000..ee79bca --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/NewLogNumEntity.java @@ -0,0 +1,84 @@ +package com.yonsz.z1.database.entity.entity4; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/6/26. + */ + +public class NewLogNumEntity { + + /** + * flag : 1 + * msg : 查询控制日志统计成功。 + * obj : [{"count":"88","deviceType":"001","isNewRecord":true},{"count":"63","deviceType":"003","isNewRecord":true},{"count":"15","deviceType":"004","isNewRecord":true},{"count":"15","deviceType":"005","isNewRecord":true},{"count":"14","deviceType":"009","isNewRecord":true},{"count":"14","deviceType":"017","isNewRecord":true}] + */ + + private int flag; + private String msg; + private List obj; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getObj() { + if (obj == null) { + return new ArrayList<>(); + } + return obj; + } + + public void setObj(List obj) { + this.obj = obj; + } + + public static class ObjBean { + /** + * count : 88 + * deviceType : 001 + * isNewRecord : true + */ + + private String count; + private String deviceType; + private boolean isNewRecord; + + public String getCount() { + return count == null ? "" : count; + } + + public void setCount(String count) { + this.count = count; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/PhoneChatInfoEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/PhoneChatInfoEntity.java new file mode 100644 index 0000000..5b6d7d9 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/PhoneChatInfoEntity.java @@ -0,0 +1,145 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2018/12/14. + */ + +public class PhoneChatInfoEntity { + + + /** + * flag : 1 + * data : {"senderType":2,"id":"dc57c45e1666411fab5ec7829c3acefa","name":"@","avatar":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/1101/userphoto/dc57c45e1666411fab5ec7829c3acefa/2018/12/04/wmdjedgj63jsrwqs6b5nqgxw68spqco6.png"} + * msg : + */ + + private int flag; + private DataBean data; + private String msg; + + /** + * data : {"senderType":3,"id":"F0FE6BEB477E","name":"阳台的小艾A1-0146","version":"1","addition":{"version":"1","linked":1}} + */ + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * senderType : 2 + * id : dc57c45e1666411fab5ec7829c3acefa + * name : @ + * avatar : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/1101/userphoto/dc57c45e1666411fab5ec7829c3acefa/2018/12/04/wmdjedgj63jsrwqs6b5nqgxw68spqco6.png + */ + + private int senderType; + private String id; + private String name; + private String avatar; + private String version; + private AdditionBean addition; + + public int getSenderType() { + return senderType; + } + + public void setSenderType(int senderType) { + this.senderType = senderType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public String getAvatar() { + return avatar == null ? "" : avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar == null ? "" : avatar; + } + + public String getVersion() { + return version == null ? "" : version; + } + + public void setVersion(String version) { + this.version = version == null ? "" : version; + } + + public AdditionBean getAddition() { + return addition; + } + + public void setAddition(AdditionBean addition) { + this.addition = addition; + } + + public static class AdditionBean { + /** + * version : 1 + * linked : 1 + */ + + private String version; + private String linked; + private String standardCode; + + public String getStandardCode() { + return standardCode == null ? "" : standardCode; + } + + public void setStandardCode(String standardCode) { + this.standardCode = standardCode; + } + + public String getVersion() { + return version == null ? "" : version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getLinked() { + return linked == null ? "" : linked; + } + + public void setLinked(String linked) { + this.linked = linked; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/PhoneControlEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/PhoneControlEntity.java new file mode 100644 index 0000000..0e2dacc --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/PhoneControlEntity.java @@ -0,0 +1,144 @@ +package com.yonsz.z1.database.entity.entity4; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/12/13. + */ + +public class PhoneControlEntity { + + /** + * flag : 1 + * data : [{"id":20,"userId":"dc57c45e1666411fab5ec7829c3acefa","houseId":"5e8b4ff168a14af49c86eea3aabef23a","ziId":"F0FE6BC78A0E","createDate":1544668854655,"content":"指令已执行","scopeType":1,"senderType":3,"messageType":2},{"id":21,"userId":"dc57c45e1666411fab5ec7829c3acefa","houseId":"5e8b4ff168a14af49c86eea3aabef23a","ziId":"F0FE6BEB279D","createDate":1544668854670,"content":"[F0FE6BEB279D]设备已离线","scopeType":1,"senderType":1,"messageType":4}] + * msg : success + */ + + private int flag; + private String msg; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * id : 20 + * userId : dc57c45e1666411fab5ec7829c3acefa + * houseId : 5e8b4ff168a14af49c86eea3aabef23a + * ziId : F0FE6BC78A0E + * createDate : 1544668854655 + * content : 指令已执行 + * scopeType : 1 + * senderType : 3 + * messageType : 2 + */ + + private int id; + private String userId; + private String houseId; + private String ziId; + private long createDate; + private String content; + private int scopeType; + private int senderType; + private int messageType; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getContent() { + return content == null ? "" : content; + } + + public void setContent(String content) { + this.content = content; + } + + public int getScopeType() { + return scopeType; + } + + public void setScopeType(int scopeType) { + this.scopeType = scopeType; + } + + public int getSenderType() { + return senderType; + } + + public void setSenderType(int senderType) { + this.senderType = senderType; + } + + public int getMessageType() { + return messageType; + } + + public void setMessageType(int messageType) { + this.messageType = messageType; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/QureyBindEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/QureyBindEntity.java new file mode 100644 index 0000000..9635dc0 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/QureyBindEntity.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2017/9/6. + */ +public class QureyBindEntity { + private String mMsg; + + public QureyBindEntity(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} + diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/VoiceChatEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/VoiceChatEntity.java new file mode 100644 index 0000000..c3e34b9 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/VoiceChatEntity.java @@ -0,0 +1,407 @@ +package com.yonsz.z1.database.entity.entity4; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/8/28. + */ + +public class VoiceChatEntity { + /** + * data : {"current":1,"pages":1,"records":[{"content":"已帮您打开电视","createDate":1544756640152,"id":94,"messageType":2,"scopeType":1,"senderType":3,"userId":"c345b148c2c2461c82109a6126f400f9","ziId":"F0FE6BC78A0E"},{"content":"电视看不到","createDate":1544756639790,"id":93,"messageType":1,"scopeType":1,"senderType":4,"userId":"c345b148c2c2461c82109a6126f400f9","ziId":""},{"content":"打开电视","createDate":1544756639409,"id":92,"messageType":1,"scopeType":1,"senderType":2,"userId":"c345b148c2c2461c82109a6126f400f9","ziId":""}],"size":10,"total":3} + * flag : 1 + * msg : success + */ + + private DataBean data; + private int flag; + private String msg; + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * current : 1 + * pages : 1 + * records : [{"content":"已帮您打开电视","createDate":1544756640152,"id":94,"messageType":2,"scopeType":1,"senderType":3,"userId":"c345b148c2c2461c82109a6126f400f9","ziId":"F0FE6BC78A0E"},{"content":"电视看不到","createDate":1544756639790,"id":93,"messageType":1,"scopeType":1,"senderType":4,"userId":"c345b148c2c2461c82109a6126f400f9","ziId":""},{"content":"打开电视","createDate":1544756639409,"id":92,"messageType":1,"scopeType":1,"senderType":2,"userId":"c345b148c2c2461c82109a6126f400f9","ziId":""}] + * size : 10 + * total : 3 + */ + + private int current; + private int pages; + private int size; + private int total; + private List records; + + public int getCurrent() { + return current; + } + + public void setCurrent(int current) { + this.current = current; + } + + public int getPages() { + return pages; + } + + public void setPages(int pages) { + this.pages = pages; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRecords() { + if (records == null) { + return new ArrayList<>(); + } + return records; + } + + public void setRecords(List records) { + this.records = records; + } + + public static class RecordsBean { + /** + * content : 已帮您打开电视 + * createDate : 1544756640152 + * id : 94 + * messageType : 2 + * scopeType : 1 + * senderType : 3 + * userId : c345b148c2c2461c82109a6126f400f9 + * ziId : F0FE6BC78A0E + */ + + private String content; + private long createDate; + private int id; + private int messageType; + private int scopeType; + private int senderType; + private String userId; + private String ziId; + private String avatar; + private String name; + + public String getAvatar() { + return avatar == null ? "" : avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getContent() { + return content == null ? "" : content; + } + + public void setContent(String content) { + this.content = content; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getMessageType() { + return messageType; + } + + public void setMessageType(int messageType) { + this.messageType = messageType; + } + + public int getScopeType() { + return scopeType; + } + + public void setScopeType(int scopeType) { + this.scopeType = scopeType; + } + + public int getSenderType() { + return senderType; + } + + public void setSenderType(int senderType) { + this.senderType = senderType; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + } + } + + + + + /*private int flag; + private ObjBean obj; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjBean getObj() { + return obj; + } + + public void setObj(ObjBean obj) { + this.obj = obj; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class ObjBean { + *//** + * pageNo : 1 + * pageSize : 8 + * count : 77 + * list : [{"isNewRecord":true,"createDate":"2018-08-28 10:20:58","controlTitle":"打开扫地机","macId":"F0FE6BEB30C1","addressId":1,"exceptionType":1,"reply":"您没有添加或开启这个设备","ziName":"设备A1-098"},{"isNewRecord":true,"createDate":"2018-08-28 10:20:58","controlTitle":"打开扫地机","macId":"F0FE6BEB30C1","addressId":1,"exceptionType":0,"reply":"扫地机已打开","ziName":"设备A1-098"},{"isNewRecord":true,"createDate":"2018-08-28 10:20:54","controlTitle":"设备设备","macId":"F0FE6BEB30C1","addressId":1,"exceptionType":0,"reply":"您好","ziName":"设备A1-098"},{"isNewRecord":true,"createDate":"2018-08-27 17:57:15","controlTitle":"设备设备","macId":"F0FE6BEB30C1","addressId":1,"exceptionType":0,"reply":"您好","ziName":"设备A1-098"},{"isNewRecord":true,"createDate":"2018-08-27 17:56:23","controlTitle":"关闭灯光","macId":"F0FE6BEB30C1","addressId":1,"exceptionType":1,"reply":"您没有添加或开启这个设备","ziName":"设备A1-098"},{"isNewRecord":true,"createDate":"2018-08-27 17:55:58","controlTitle":"打开电视","macId":"F0FE6BEB30C1","addressId":1,"exceptionType":0,"reply":"电视已打开","ziName":"设备A1-098"},{"isNewRecord":true,"createDate":"2018-08-27 17:55:58","controlTitle":"打开电视","macId":"F0FE6BEB30C1","addressId":1,"exceptionType":1,"reply":"您没有添加或开启这个设备","ziName":"设备A1-098"},{"isNewRecord":true,"createDate":"2018-08-27 17:55:40","controlTitle":"设备设备","macId":"F0FE6BEB30C1","addressId":1,"exceptionType":0,"reply":"您好","ziName":"设备A1-098"},{"isNewRecord":true,"createDate":"2018-08-27 17:54:12","controlTitle":"设备设备","macId":"F0FE6BEB30C1","addressId":1,"exceptionType":0,"reply":"您好","ziName":"设备A1-098"},{"isNewRecord":true,"createDate":"2018-08-27 17:54:09","controlTitle":"设备设备","macId":"F0FE6BEB30C1","addressId":1,"exceptionType":0,"reply":"您好","ziName":"设备A1-098"}] + * firstResult : 0 + * maxResults : 8 + *//* + + private int pageNo; + private int pageSize; + private int count; + private int firstResult; + private int maxResults; + private List list; + + public int getPageNo() { + return pageNo; + } + + public void setPageNo(int pageNo) { + this.pageNo = pageNo; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getCount() { + return count; + } + + public void setCount(int count) { + this.count = count; + } + + public int getFirstResult() { + return firstResult; + } + + public void setFirstResult(int firstResult) { + this.firstResult = firstResult; + } + + public int getMaxResults() { + return maxResults; + } + + public void setMaxResults(int maxResults) { + this.maxResults = maxResults; + } + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + + public static class ListBean { + *//** + * isNewRecord : true + * createDate : 2018-08-28 10:20:58 + * controlTitle : 打开扫地机 + * macId : F0FE6BEB30C1 + * addressId : 1 + * exceptionType : 1 + * reply : 您没有添加或开启这个设备 + * ziName : 设备A1-098 + *//* + + private boolean isNewRecord; + private String createDate; + private String controlTitle; + private String macId; + private int addressId; + private int exceptionType; + private String reply; + private String ziName; + private String deviceVersion; + + public String getDeviceVersion() { + return deviceVersion == null ? "" : deviceVersion; + } + + public void setDeviceVersion(String deviceVersion) { + this.deviceVersion = deviceVersion; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public boolean isIsNewRecord() { + return isNewRecord; + } + + public void setIsNewRecord(boolean isNewRecord) { + this.isNewRecord = isNewRecord; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getControlTitle() { + return controlTitle; + } + + public void setControlTitle(String controlTitle) { + this.controlTitle = controlTitle; + } + + public String getMacId() { + return macId; + } + + public void setMacId(String macId) { + this.macId = macId; + } + + public int getAddressId() { + return addressId; + } + + public void setAddressId(int addressId) { + this.addressId = addressId; + } + + public int getExceptionType() { + return exceptionType; + } + + public void setExceptionType(int exceptionType) { + this.exceptionType = exceptionType; + } + + public String getReply() { + return reply; + } + + public void setReply(String reply) { + this.reply = reply; + } + + public String getZiName() { + return ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + } + }*/ +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/WeatherEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/WeatherEntity.java new file mode 100644 index 0000000..bab54a1 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/WeatherEntity.java @@ -0,0 +1,376 @@ +package com.yonsz.z1.database.entity.entity4; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/5/27 0027. + */ + +public class WeatherEntity { + + /** + * date : 20180527 + * message : Success ! + * status : 200 + * city : 深圳 + * count : 1151 + * data : {"shidu":"81%","pm25":15,"pm10":24,"quality":"优","wendu":"29","ganmao":"各类人群可自由活动","yesterday":{"date":"26日星期六","sunrise":"05:40","high":"高温 33.0℃","low":"低温 27.0℃","sunset":"19:01","aqi":24,"fx":"无持续风向","fl":"<3级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},"forecast":[{"date":"27日星期日","sunrise":"05:40","high":"高温 33.0℃","low":"低温 27.0℃","sunset":"19:02","aqi":21,"fx":"无持续风向","fl":"<3级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},{"date":"28日星期一","sunrise":"05:40","high":"高温 33.0℃","low":"低温 27.0℃","sunset":"19:02","aqi":27,"fx":"无持续风向","fl":"<3级","type":"雷阵雨","notice":"带好雨具,别在树下躲雨"},{"date":"29日星期二","sunrise":"05:40","high":"高温 33.0℃","low":"低温 27.0℃","sunset":"19:03","aqi":28,"fx":"无持续风向","fl":"<3级","type":"雷阵雨","notice":"带好雨具,别在树下躲雨"},{"date":"30日星期三","sunrise":"05:40","high":"高温 33.0℃","low":"低温 27.0℃","sunset":"19:03","aqi":26,"fx":"无持续风向","fl":"<3级","type":"阵雨","notice":"阵雨来袭,出门记得带伞"},{"date":"31日星期四","sunrise":"05:39","high":"高温 33.0℃","low":"低温 27.0℃","sunset":"19:04","aqi":26,"fx":"无持续风向","fl":"<3级","type":"阵雨","notice":"阵雨来袭,出门记得带伞"}]} + */ + + private String date; + private String message; + private int status; + private String city; + private int count; + private DataBean data; + + public String getDate() { + return date == null ? "" : date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getMessage() { + return message == null ? "" : message; + } + + public void setMessage(String message) { + this.message = message; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getCity() { + return city == null ? "" : city; + } + + public void setCity(String city) { + this.city = city; + } + + public int getCount() { + return count; + } + + public void setCount(int count) { + this.count = count; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public static class DataBean { + /** + * shidu : 81% + * pm25 : 15 + * pm10 : 24 + * quality : 优 + * wendu : 29 + * ganmao : 各类人群可自由活动 + * yesterday : {"date":"26日星期六","sunrise":"05:40","high":"高温 33.0℃","low":"低温 27.0℃","sunset":"19:01","aqi":24,"fx":"无持续风向","fl":"<3级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"} + * forecast : [{"date":"27日星期日","sunrise":"05:40","high":"高温 33.0℃","low":"低温 27.0℃","sunset":"19:02","aqi":21,"fx":"无持续风向","fl":"<3级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},{"date":"28日星期一","sunrise":"05:40","high":"高温 33.0℃","low":"低温 27.0℃","sunset":"19:02","aqi":27,"fx":"无持续风向","fl":"<3级","type":"雷阵雨","notice":"带好雨具,别在树下躲雨"},{"date":"29日星期二","sunrise":"05:40","high":"高温 33.0℃","low":"低温 27.0℃","sunset":"19:03","aqi":28,"fx":"无持续风向","fl":"<3级","type":"雷阵雨","notice":"带好雨具,别在树下躲雨"},{"date":"30日星期三","sunrise":"05:40","high":"高温 33.0℃","low":"低温 27.0℃","sunset":"19:03","aqi":26,"fx":"无持续风向","fl":"<3级","type":"阵雨","notice":"阵雨来袭,出门记得带伞"},{"date":"31日星期四","sunrise":"05:39","high":"高温 33.0℃","low":"低温 27.0℃","sunset":"19:04","aqi":26,"fx":"无持续风向","fl":"<3级","type":"阵雨","notice":"阵雨来袭,出门记得带伞"}] + */ + + private String shidu; + private int pm25; + private int pm10; + private String quality; + private String wendu; + private String ganmao; + private YesterdayBean yesterday; + private List forecast; + + public String getShidu() { + return shidu == null ? "" : shidu; + } + + public void setShidu(String shidu) { + this.shidu = shidu; + } + + public int getPm25() { + return pm25; + } + + public void setPm25(int pm25) { + this.pm25 = pm25; + } + + public int getPm10() { + return pm10; + } + + public void setPm10(int pm10) { + this.pm10 = pm10; + } + + public String getQuality() { + return quality == null ? "" : quality; + } + + public void setQuality(String quality) { + this.quality = quality; + } + + public String getWendu() { + return wendu == null ? "" : wendu; + } + + public void setWendu(String wendu) { + this.wendu = wendu; + } + + public String getGanmao() { + return ganmao == null ? "" : ganmao; + } + + public void setGanmao(String ganmao) { + this.ganmao = ganmao; + } + + public YesterdayBean getYesterday() { + return yesterday; + } + + public void setYesterday(YesterdayBean yesterday) { + this.yesterday = yesterday; + } + + public List getForecast() { + if (forecast == null) { + return new ArrayList<>(); + } + return forecast; + } + + public void setForecast(List forecast) { + this.forecast = forecast; + } + + public static class YesterdayBean { + /** + * date : 26日星期六 + * sunrise : 05:40 + * high : 高温 33.0℃ + * low : 低温 27.0℃ + * sunset : 19:01 + * aqi : 24 + * fx : 无持续风向 + * fl : <3级 + * type : 多云 + * notice : 阴晴之间,谨防紫外线侵扰 + */ + + private String date; + private String sunrise; + private String high; + private String low; + private String sunset; + private int aqi; + private String fx; + private String fl; + private String type; + private String notice; + + public String getDate() { + return date == null ? "" : date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getSunrise() { + return sunrise == null ? "" : sunrise; + } + + public void setSunrise(String sunrise) { + this.sunrise = sunrise; + } + + public String getHigh() { + return high == null ? "" : high; + } + + public void setHigh(String high) { + this.high = high; + } + + public String getLow() { + return low == null ? "" : low; + } + + public void setLow(String low) { + this.low = low; + } + + public String getSunset() { + return sunset == null ? "" : sunset; + } + + public void setSunset(String sunset) { + this.sunset = sunset; + } + + public int getAqi() { + return aqi; + } + + public void setAqi(int aqi) { + this.aqi = aqi; + } + + public String getFx() { + return fx == null ? "" : fx; + } + + public void setFx(String fx) { + this.fx = fx; + } + + public String getFl() { + return fl == null ? "" : fl; + } + + public void setFl(String fl) { + this.fl = fl; + } + + public String getType() { + return type == null ? "" : type; + } + + public void setType(String type) { + this.type = type; + } + + public String getNotice() { + return notice == null ? "" : notice; + } + + public void setNotice(String notice) { + this.notice = notice; + } + } + + public static class ForecastBean { + /** + * date : 27日星期日 + * sunrise : 05:40 + * high : 高温 33.0℃ + * low : 低温 27.0℃ + * sunset : 19:02 + * aqi : 21 + * fx : 无持续风向 + * fl : <3级 + * type : 多云 + * notice : 阴晴之间,谨防紫外线侵扰 + */ + + private String date; + private String sunrise; + private String high; + private String low; + private String sunset; + private int aqi; + private String fx; + private String fl; + private String type; + private String notice; + + public String getDate() { + return date == null ? "" : date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getSunrise() { + return sunrise == null ? "" : sunrise; + } + + public void setSunrise(String sunrise) { + this.sunrise = sunrise; + } + + public String getHigh() { + return high == null ? "" : high; + } + + public void setHigh(String high) { + this.high = high; + } + + public String getLow() { + return low == null ? "" : low; + } + + public void setLow(String low) { + this.low = low; + } + + public String getSunset() { + return sunset == null ? "" : sunset; + } + + public void setSunset(String sunset) { + this.sunset = sunset; + } + + public int getAqi() { + return aqi; + } + + public void setAqi(int aqi) { + this.aqi = aqi; + } + + public String getFx() { + return fx == null ? "" : fx; + } + + public void setFx(String fx) { + this.fx = fx; + } + + public String getFl() { + return fl == null ? "" : fl; + } + + public void setFl(String fl) { + this.fl = fl; + } + + public String getType() { + return type == null ? "" : type; + } + + public void setType(String type) { + this.type = type; + } + + public String getNotice() { + return notice == null ? "" : notice; + } + + public void setNotice(String notice) { + this.notice = notice; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/WeatherNewEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/WeatherNewEntity.java new file mode 100644 index 0000000..6f18b4b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/WeatherNewEntity.java @@ -0,0 +1,98 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2018/5/27 0027. + */ + +public class WeatherNewEntity { + + /** + * flag : 1 + * data : {"city":"深圳","weather":"晴","temperature":26,"humidity":30,"air":"良"} + * msg : 获取城市天气预报成功 + */ + + private int flag; + private DataBean data; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * city : 深圳 + * weather : 晴 + * temperature : 26 + * humidity : 30 + * air : 良 + */ + + private String city; + private String weather; + private String temperature; + private String humidity; + private String air; + + public String getCity() { + return city == null ? "" : city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getWeather() { + return weather == null ? "" : weather; + } + + public void setWeather(String weather) { + this.weather = weather; + } + + public String getTemperature() { + return temperature == null ? "" : temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + public String getHumidity() { + return humidity == null ? "" : humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + public String getAir() { + return air == null ? "" : air; + } + + public void setAir(String air) { + this.air = air; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/YblLightEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/YblLightEvent.java new file mode 100644 index 0000000..02697c5 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/YblLightEvent.java @@ -0,0 +1,19 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2018/5/27 0027. + */ + +public class YblLightEvent { + + private String mMsg; + + public YblLightEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/YblPanelControlEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/YblPanelControlEvent.java new file mode 100644 index 0000000..df2b828 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/YblPanelControlEvent.java @@ -0,0 +1,19 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2018/5/27 0027. + */ + +public class YblPanelControlEvent { + + private String mMsg; + + public YblPanelControlEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity4/YblPanelEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity4/YblPanelEvent.java new file mode 100644 index 0000000..c0db766 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity4/YblPanelEvent.java @@ -0,0 +1,19 @@ +package com.yonsz.z1.database.entity.entity4; + +/** + * Created by Administrator on 2018/5/27 0027. + */ + +public class YblPanelEvent { + + private String mMsg; + + public YblPanelEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/ActionEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ActionEvent.java new file mode 100644 index 0000000..267eb1c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ActionEvent.java @@ -0,0 +1,20 @@ +package com.yonsz.z1.database.entity.entity5; + +public class ActionEvent { + private AutomationEntity.DataBean.ActionsBean mActionBean; + private int mPosition; + + public ActionEvent(AutomationEntity.DataBean.ActionsBean dataList, int position) { + // TODO Auto-generated constructor stub + mActionBean = dataList; + mPosition = position; + } + + public AutomationEntity.DataBean.ActionsBean getMsg() { + return mActionBean; + } + + public int getPosotion() { + return mPosition; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/AddHouseEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AddHouseEvent.java new file mode 100644 index 0000000..00d2ca8 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AddHouseEvent.java @@ -0,0 +1,25 @@ +package com.yonsz.z1.database.entity.entity5; + +import com.yonsz.z1.createfamily.HouseEntity; + +import java.util.ArrayList; +import java.util.List; + +public class AddHouseEvent { + private List beanList = new ArrayList<>(); + private int mPosition; + + public AddHouseEvent(List dataList, int position) { + // TODO Auto-generated constructor stub + beanList = dataList; + mPosition = position; + } + + public List getMsg() { + return beanList; + } + + public int getPosotion() { + return mPosition; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/AllDeviceEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AllDeviceEntity.java new file mode 100644 index 0000000..153bcf4 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AllDeviceEntity.java @@ -0,0 +1,1376 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2019/3/28. + */ + +public class AllDeviceEntity implements Serializable { + /** + * data : [{"addressType":{"code":"1","id":48,"name":"客厅","sort":1},"devices":[]},{"addressType":{"code":"2","id":49,"name":"主卧","sort":2},"devices":[]},{"addressType":{"code":"3","id":50,"name":"次卧","sort":3},"devices":[{"addressId":"3","deviceModel":"1","deviceType":"018","id":"01cae2e5eafb4871937adb288197313b","lastInfo":{"openFlag":"1"},"name":"情景面板","sort":1,"voiceFlag":"1","ziId":"F0FE6B58F591"},{"addressId":"3","deviceModel":"1","deviceType":"018","id":"6eb1cbd6036c4e6fa5a865c95848990e","lastInfo":{"openFlag":"6"},"name":"情景面板","sort":3,"voiceFlag":"1","ziId":"F0FE6B58F591"}]},{"addressType":{"code":"4","id":51,"name":"儿童房","sort":4},"devices":[]},{"addressType":{"code":"5","id":52,"name":"书房","sort":5},"devices":[]},{"addressType":{"code":"6","id":53,"name":"厨房","sort":6},"devices":[]},{"addressType":{"code":"7","id":54,"name":"餐厅","sort":7},"devices":[{"addressId":"7","deviceType":"000","id":"F0FE6B58F591","name":"小艾B1-L-01","online":0,"sort":0,"ziId":"F0FE6B58F591"},{"addressId":"7","deviceModel":"1","deviceType":"001","id":"c27fd38f19554376a6aa953b3caf5095","name":"空调","sort":2,"voiceFlag":"1","ziId":"F0FE6B58F591"},{"addressId":"7","deviceModel":"1","deviceType":"018","id":"78fbddadbf834eef8547f57db16a41f0","lastInfo":{"openFlag":"2"},"name":"情景面板","sort":4,"voiceFlag":"1","ziId":"F0FE6B58F591"},{"addressId":"7","deviceModel":"1","deviceType":"003","id":"394c480ea9de420ebd44c35960122c82","lastInfo":{"openFlag":"1"},"name":"风扇","sort":5,"voiceFlag":"1","ziId":"F0FE6B58F591"}]},{"addressType":{"code":"8","id":55,"name":"阳台","sort":8},"devices":[]},{"addressType":{"code":"10","id":56,"name":"卫生间","sort":9},"devices":[]},{"addressType":{"code":"11","id":57,"name":"洗手间","sort":10},"devices":[]},{"addressType":{"code":"50","id":58,"name":"客房","sort":11},"devices":[]},{"addressType":{"code":"51","id":59,"name":"老人房","sort":12},"devices":[]},{"addressType":{"code":"52","id":60,"name":"娱乐室","sort":13},"devices":[]},{"addressType":{"code":"53","id":61,"name":"影音室","sort":14},"devices":[]},{"addressType":{"code":"54","id":62,"name":"休息室","sort":15},"devices":[]},{"addressType":{"code":"55","id":63,"name":"工作室","sort":16},"devices":[]},{"addressType":{"code":"56","id":64,"name":"游戏室","sort":17},"devices":[]},{"addressType":{"code":"57","id":65,"name":"浴室","sort":18},"devices":[]},{"addressType":{"code":"58","id":66,"name":"地下室","sort":19},"devices":[]},{"addressType":{"code":"59","id":67,"name":"楼梯间","sort":20},"devices":[]},{"addressType":{"code":"60","id":68,"name":"杂物间","sort":21},"devices":[]},{"addressType":{"code":"9","id":69,"name":"门口","sort":22},"devices":[]},{"addressType":{"code":"62","id":70,"name":"走廊","sort":23},"devices":[]},{"addressType":{"code":"63","id":71,"name":"前院","sort":24},"devices":[]},{"addressType":{"code":"64","id":72,"name":"后院","sort":25},"devices":[]},{"addressType":{"code":"65","id":73,"name":"花园","sort":26},"devices":[]}] + * flag : 1 + * msg : + */ + + private int flag; + private String msg; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean implements Serializable { + /** + * addressType : {"code":"1","id":48,"name":"客厅","sort":1} + * devices : [] + */ + + private AddressTypeBean addressType; + private List devices; + + private String id; + private boolean isNewRecord; + private String userName; + private String ziId; + private String ziName; + private String appId; + private String partner; + private String partnerName; + private String isOwner; + private String addressId; + private String deviceAddress; + private String wifiName; + private String onlineFlag; + private int lightNum; + private int blindNum; + private int plugNum; + private int safeNum; + private String deviceVersion; + private String loadStatus; + private String loadErrorType; + private String firmwareVersion; + private String connectFlag; + private int isNewOtaFlag; + private int zigbeeFlag; + private String minOtaFlag; + private String subVersion; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getUserName() { + return userName == null ? "" : userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getPartner() { + return partner == null ? "" : partner; + } + + public void setPartner(String partner) { + this.partner = partner; + } + + public String getPartnerName() { + return partnerName == null ? "" : partnerName; + } + + public void setPartnerName(String partnerName) { + this.partnerName = partnerName; + } + + public String getIsOwner() { + return isOwner == null ? "" : isOwner; + } + + public void setIsOwner(String isOwner) { + this.isOwner = isOwner; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getDeviceAddress() { + return deviceAddress == null ? "" : deviceAddress; + } + + public void setDeviceAddress(String deviceAddress) { + this.deviceAddress = deviceAddress; + } + + public String getWifiName() { + return wifiName == null ? "" : wifiName; + } + + public void setWifiName(String wifiName) { + this.wifiName = wifiName; + } + + public String getOnlineFlag() { + return onlineFlag == null ? "" : onlineFlag; + } + + public void setOnlineFlag(String onlineFlag) { + this.onlineFlag = onlineFlag; + } + + public int getLightNum() { + return lightNum; + } + + public void setLightNum(int lightNum) { + this.lightNum = lightNum; + } + + public int getBlindNum() { + return blindNum; + } + + public void setBlindNum(int blindNum) { + this.blindNum = blindNum; + } + + public int getPlugNum() { + return plugNum; + } + + public void setPlugNum(int plugNum) { + this.plugNum = plugNum; + } + + public int getSafeNum() { + return safeNum; + } + + public void setSafeNum(int safeNum) { + this.safeNum = safeNum; + } + + public String getDeviceVersion() { + return deviceVersion == null ? "" : deviceVersion; + } + + public void setDeviceVersion(String deviceVersion) { + this.deviceVersion = deviceVersion; + } + + public String getLoadStatus() { + return loadStatus == null ? "" : loadStatus; + } + + public void setLoadStatus(String loadStatus) { + this.loadStatus = loadStatus; + } + + public String getLoadErrorType() { + return loadErrorType == null ? "" : loadErrorType; + } + + public void setLoadErrorType(String loadErrorType) { + this.loadErrorType = loadErrorType; + } + + public String getFirmwareVersion() { + return firmwareVersion == null ? "" : firmwareVersion; + } + + public void setFirmwareVersion(String firmwareVersion) { + this.firmwareVersion = firmwareVersion; + } + + public String getConnectFlag() { + return connectFlag == null ? "" : connectFlag; + } + + public void setConnectFlag(String connectFlag) { + this.connectFlag = connectFlag; + } + + public int getIsNewOtaFlag() { + return isNewOtaFlag; + } + + public void setIsNewOtaFlag(int isNewOtaFlag) { + this.isNewOtaFlag = isNewOtaFlag; + } + + public int getZigbeeFlag() { + return zigbeeFlag; + } + + public void setZigbeeFlag(int zigbeeFlag) { + this.zigbeeFlag = zigbeeFlag; + } + + public String getMinOtaFlag() { + return minOtaFlag == null ? "" : minOtaFlag; + } + + public void setMinOtaFlag(String minOtaFlag) { + this.minOtaFlag = minOtaFlag; + } + + public String getSubVersion() { + return subVersion == null ? "" : subVersion; + } + + public void setSubVersion(String subVersion) { + this.subVersion = subVersion; + } + + public AddressTypeBean getAddressType() { + return addressType; + } + + public void setAddressType(AddressTypeBean addressType) { + this.addressType = addressType; + } + + public List getDevices() { + if (devices == null) { + return new ArrayList<>(); + } + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public static class DeviceBean implements Serializable { + + /** + * addressId : 7 + * deviceType : 000 + * id : F0FE6B58F591 + * name : 小艾B1-L-01 + * online : 0 + * sort : 0 + * ziId : F0FE6B58F591 + * deviceModel : 1 + * voiceFlag : 1 + * lastInfo : {"openFlag":"2"} + */ + + private String addressId; + private String deviceType; + private String id; + private String name; + private String modelName; + private String online; + private int sort; + private String ziId; + private String deviceModel; + private String voiceFlag; + private String subType; + private String keyCount; + private LastInfoBean lastInfo; + private List children; + private List controlKeys; + //原先的 + private boolean isNewRecord; + private String createDate; + private String updateDate; + private String deviceId; + private String deviceBrand; + private int cancelFlag; + private int sortNum; + private String rid; + private int pid; + private String addressName; + private String onInfrared; + private String offInfrared; + private String onFlag; + private String offFlag; + private String panelId; + private int lightOrder; + private String codePid; + private String openCode; + private String closeCode; + private String stopCode; + private String openFlag; + private String studyFlag; + private String rawCode; + private String deviceInfrared; + private String warnId; + private String powerFlag; + private String lightType; + private String plugType; + private String blindType; + private String relatedStatus; + private String assistFlag; + private String largeClass; + private int newFlag; + private int deviceCount; + private String extendId; + private String icon; + private String thirdModel; + private String relatedId; + private int protocalType; + /** + * addition : {"deviceVersion":"1","hasNewVersion":1,"loadStatus":"0"} + * hardwares : {"433":201,"infrared":101,"wifi":301} + * online : 1 + */ + + + private AdditionBean addition; + private HardwaresBean hardwares; + + private SoftwaresBean softwares; + + public String getRelatedId() { + return relatedId == null ? "" : relatedId; + } + + public void setRelatedId(String relatedId) { + this.relatedId = relatedId; + } + + public SoftwaresBean getSoftwares() { + return softwares; + } + + public void setSoftwares(SoftwaresBean softwares) { + this.softwares = softwares; + } + + public String getThirdModel() { + return thirdModel == null ? "" : thirdModel; + } + + public void setThirdModel(String thirdModel) { + this.thirdModel = thirdModel; + } + + public String getModelName() { + return modelName == null ? "" : modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName == null ? "" : modelName; + } + + public String getIcon() { + return icon == null ? "" : icon; + } + + public void setIcon(String icon) { + this.icon = icon == null ? "" : icon; + } + + public List getChildren() { + if (children == null) { + return new ArrayList<>(); + } + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getDeviceBrand() { + return deviceBrand == null ? "" : deviceBrand; + } + + public void setDeviceBrand(String deviceBrand) { + this.deviceBrand = deviceBrand; + } + + public int getCancelFlag() { + return cancelFlag; + } + + public void setCancelFlag(int cancelFlag) { + this.cancelFlag = cancelFlag; + } + + public int getSortNum() { + return sortNum; + } + + public void setSortNum(int sortNum) { + this.sortNum = sortNum; + } + + public String getRid() { + return rid == null ? "" : rid; + } + + public void setRid(String rid) { + this.rid = rid; + } + + public int getPid() { + return pid; + } + + public void setPid(int pid) { + this.pid = pid; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getOnInfrared() { + return onInfrared == null ? "" : onInfrared; + } + + public void setOnInfrared(String onInfrared) { + this.onInfrared = onInfrared; + } + + public String getOffInfrared() { + return offInfrared == null ? "" : offInfrared; + } + + public void setOffInfrared(String offInfrared) { + this.offInfrared = offInfrared; + } + + public String getOnFlag() { + return onFlag == null ? "" : onFlag; + } + + public void setOnFlag(String onFlag) { + this.onFlag = onFlag; + } + + public String getOffFlag() { + return offFlag == null ? "" : offFlag; + } + + public void setOffFlag(String offFlag) { + this.offFlag = offFlag; + } + + public String getPanelId() { + return panelId == null ? "" : panelId; + } + + public void setPanelId(String panelId) { + this.panelId = panelId; + } + + public int getLightOrder() { + return lightOrder; + } + + public void setLightOrder(int lightOrder) { + this.lightOrder = lightOrder; + } + + public String getCodePid() { + return codePid == null ? "" : codePid; + } + + public void setCodePid(String codePid) { + this.codePid = codePid; + } + + public String getOpenCode() { + return openCode == null ? "" : openCode; + } + + public void setOpenCode(String openCode) { + this.openCode = openCode; + } + + public String getCloseCode() { + return closeCode == null ? "" : closeCode; + } + + public void setCloseCode(String closeCode) { + this.closeCode = closeCode; + } + + public String getStopCode() { + return stopCode == null ? "" : stopCode; + } + + public void setStopCode(String stopCode) { + this.stopCode = stopCode; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + + public String getStudyFlag() { + return studyFlag == null ? "" : studyFlag; + } + + public void setStudyFlag(String studyFlag) { + this.studyFlag = studyFlag; + } + + public String getRawCode() { + return rawCode == null ? "" : rawCode; + } + + public void setRawCode(String rawCode) { + this.rawCode = rawCode; + } + + public String getDeviceInfrared() { + return deviceInfrared == null ? "" : deviceInfrared; + } + + public void setDeviceInfrared(String deviceInfrared) { + this.deviceInfrared = deviceInfrared; + } + + public String getWarnId() { + return warnId == null ? "" : warnId; + } + + public void setWarnId(String warnId) { + this.warnId = warnId; + } + + public String getPowerFlag() { + return powerFlag == null ? "" : powerFlag; + } + + public void setPowerFlag(String powerFlag) { + this.powerFlag = powerFlag; + } + + public String getLightType() { + return lightType == null ? "" : lightType; + } + + public void setLightType(String lightType) { + this.lightType = lightType; + } + + public String getPlugType() { + return plugType == null ? "" : plugType; + } + + public void setPlugType(String plugType) { + this.plugType = plugType; + } + + public String getBlindType() { + return blindType == null ? "" : blindType; + } + + public void setBlindType(String blindType) { + this.blindType = blindType; + } + + public String getRelatedStatus() { + return relatedStatus == null ? "" : relatedStatus; + } + + public void setRelatedStatus(String relatedStatus) { + this.relatedStatus = relatedStatus; + } + + public String getAssistFlag() { + return assistFlag == null ? "" : assistFlag; + } + + public void setAssistFlag(String assistFlag) { + this.assistFlag = assistFlag; + } + + public String getLargeClass() { + return largeClass == null ? "" : largeClass; + } + + public void setLargeClass(String largeClass) { + this.largeClass = largeClass; + } + + public int getNewFlag() { + return newFlag; + } + + public void setNewFlag(int newFlag) { + this.newFlag = newFlag; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getExtendId() { + return extendId == null ? "" : extendId; + } + + public void setExtendId(String extendId) { + this.extendId = extendId; + } + + public int getProtocalType() { + return protocalType; + } + + public void setProtocalType(int protocalType) { + this.protocalType = protocalType; + } + + public String getKeyCount() { + return keyCount == null ? "" : keyCount; + } + + public void setKeyCount(String keyCount) { + this.keyCount = keyCount; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public String getOnline() { + return online == null ? "" : online; + } + + public void setOnline(String online) { + this.online = online; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + + public LastInfoBean getLastInfo() { + return lastInfo; + } + + public void setLastInfo(LastInfoBean lastInfo) { + this.lastInfo = lastInfo; + } + + public List getControlKeys() { + if (controlKeys == null) { + return new ArrayList<>(); + } + return controlKeys; + } + + public void setControlKeys(List controlKeys) { + this.controlKeys = controlKeys; + } + + public AdditionBean getAddition() { + return addition; + } + + public void setAddition(AdditionBean addition) { + this.addition = addition; + } + + public HardwaresBean getHardwares() { + return hardwares; + } + + public void setHardwares(HardwaresBean hardwares) { + this.hardwares = hardwares; + } + + public static class ControlKeyBean implements Serializable { + /** + * name : power + * value : 1301 + * cmds : ["18130213014106"] + */ + + private String name; + private String value; + private List cmds; + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value == null ? "" : value; + } + + public void setValue(String value) { + this.value = value; + } + + public List getCmds() { + if (cmds == null) { + return new ArrayList<>(); + } + return cmds; + } + + public void setCmds(List cmds) { + this.cmds = cmds; + } + } + + public static class LastInfoBean implements Serializable { + /** + * openFlag : 2 + */ + + private String openFlag; + private String airdrying; + private String anion; + private String disinfect; + private String light; + private String stoving; + private String voice; + private String stop; + + public String getAirdrying() { + return airdrying == null ? "" : airdrying; + } + + public void setAirdrying(String airdrying) { + this.airdrying = airdrying == null ? "" : airdrying; + } + + public String getAnion() { + return anion == null ? "" : anion; + } + + public void setAnion(String anion) { + this.anion = anion == null ? "" : anion; + } + + public String getDisinfect() { + return disinfect == null ? "" : disinfect; + } + + public void setDisinfect(String disinfect) { + this.disinfect = disinfect == null ? "" : disinfect; + } + + public String getLight() { + return light == null ? "" : light; + } + + public void setLight(String light) { + this.light = light == null ? "" : light; + } + + public String getStoving() { + return stoving == null ? "" : stoving; + } + + public void setStoving(String stoving) { + this.stoving = stoving == null ? "" : stoving; + } + + public String getVoice() { + return voice == null ? "" : voice; + } + + public void setVoice(String voice) { + this.voice = voice == null ? "" : voice; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + } + + public static class ChildrenBean implements Serializable { + + /** + * addressId : 2 + * deviceModel : 0 + * deviceType : 009 + * houseId : 0100c2ad7f06443c818774c5ba1705cf + * id : bf9065c45db04bf3b25cd546c58220d0 + * keyCount : 3 + * lastInfo : {"openFlag":"0"} + * name : 纱帘 + * parentId : a1c2344683b648ec91b67ab4c4d2c688 + * sort : 500 + * subType : 1 + * voiceFlag : 1 + * ziId : F0FE6BC78A0E + */ + + private String addressId; + private String deviceModel; + private String deviceType; + private String houseId; + private String id; + private int keyCount; + private LastInfoBean lastInfo; + private String name; + private String parentId; + private int sort; + private String subType; + private String voiceFlag; + private String ziId; + private List controlKeys; + + public List getControlKeys() { + if (controlKeys == null) { + return new ArrayList<>(); + } + return controlKeys; + } + + public void setControlKeys(List controlKeys) { + this.controlKeys = controlKeys; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public int getKeyCount() { + return keyCount; + } + + public void setKeyCount(int keyCount) { + this.keyCount = keyCount; + } + + public LastInfoBean getLastInfo() { + return lastInfo; + } + + public void setLastInfo(LastInfoBean lastInfo) { + this.lastInfo = lastInfo; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getParentId() { + return parentId == null ? "" : parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public static class LastInfoBean implements Serializable { + /** + * openFlag : 0 + */ + + private String openFlag; + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag == null ? "" : openFlag; + } + } + } + + public static class AdditionBean implements Serializable { + /** + * deviceVersion : 1 + * hasNewVersion : 1 + * loadStatus : 0 + */ + + private String deviceVersion; + private String hasNewVersion; + private String loadStatus; + private String deviceInfrared; + private String loadErrorType; + private String upgradeStatus; + private String panelId; + private String securityCode; + private String cancelFlag; + private String rid; + private String yblType; + private boolean modeTriggerBound; + private boolean modeTriggerFlag; + + public String getYblType() { + return yblType == null ? "" : yblType; + } + + public void setYblType(String yblType) { + this.yblType = yblType; + } + + public boolean isModeTriggerBound() { + return modeTriggerBound; + } + + public void setModeTriggerBound(boolean modeTriggerBound) { + this.modeTriggerBound = modeTriggerBound; + } + + public boolean isModeTriggerFlag() { + return modeTriggerFlag; + } + + public void setModeTriggerFlag(boolean modeTriggerFlag) { + this.modeTriggerFlag = modeTriggerFlag; + } + + public String getSecurityCode() { + return securityCode == null ? "" : securityCode; + } + + public void setSecurityCode(String securityCode) { + this.securityCode = securityCode == null ? "" : securityCode; + } + + public String getCancelFlag() { + return cancelFlag == null ? "" : cancelFlag; + } + + public void setCancelFlag(String cancelFlag) { + this.cancelFlag = cancelFlag == null ? "" : cancelFlag; + } + + public String getRid() { + return rid == null ? "" : rid; + } + + public void setRid(String rid) { + this.rid = rid == null ? "" : rid; + } + + public String getHasNewVersion() { + return hasNewVersion == null ? "" : hasNewVersion; + } + + public void setHasNewVersion(String hasNewVersion) { + this.hasNewVersion = hasNewVersion; + } + + public String getPanelId() { + return panelId == null ? "" : panelId; + } + + public void setPanelId(String panelId) { + this.panelId = panelId; + } + + public String getUpgradeStatus() { + return upgradeStatus == null ? "" : upgradeStatus; + } + + public void setUpgradeStatus(String upgradeStatus) { + this.upgradeStatus = upgradeStatus; + } + + public String getLoadErrorType() { + return loadErrorType == null ? "" : loadErrorType; + } + + public void setLoadErrorType(String loadErrorType) { + this.loadErrorType = loadErrorType; + } + + public String getDeviceInfrared() { + return deviceInfrared == null ? "" : deviceInfrared; + } + + public void setDeviceInfrared(String deviceInfrared) { + this.deviceInfrared = deviceInfrared; + } + + public String getDeviceVersion() { + return deviceVersion == null ? "" : deviceVersion; + } + + public void setDeviceVersion(String deviceVersion) { + this.deviceVersion = deviceVersion == null ? "" : deviceVersion; + } + + public String getLoadStatus() { + return loadStatus; + } + + public void setLoadStatus(String loadStatus) { + this.loadStatus = loadStatus == null ? "" : loadStatus; + } + } + + public static class HardwaresBean implements Serializable { + /** + * 433 : 201 + * infrared : 101 + * wifi : 301 + */ + private String infrared; + private String wifi; + + public String getInfrared() { + return infrared == null ? "" : infrared; + } + + public void setInfrared(String infrared) { + this.infrared = infrared; + } + + public String getWifi() { + return wifi == null ? "" : wifi; + } + + public void setWifi(String wifi) { + this.wifi = wifi; + } + } + } + + public static class AddressTypeBean implements Serializable { + /** + * code : 1 + * id : 48 + * name : 客厅 + * sort : 1 + */ + + private String code; + private int id; + private String name; + private String icon; + private String floor; + private int sort; + + public String getFloor() { + return floor == null ? "" : floor; + } + + public void setFloor(String floor) { + this.floor = floor == null ? "" : floor; + } + + public String getIcon() { + return icon == null ? "" : icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public String getCode() { + return code == null ? "" : code; + } + + public void setCode(String code) { + this.code = code; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + } + + public static class SoftwaresBean implements Serializable { + + /** + * electric-quantity : true + * online : true + */ + + private boolean electricquantity; + private boolean online; + + public boolean isElectricquantity() { + return electricquantity; + } + + public void setElectricquantity(boolean electricquantity) { + this.electricquantity = electricquantity; + } + + public boolean isOnline() { + return online; + } + + public void setOnline(boolean online) { + this.online = online; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/AllDeviceTypeEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AllDeviceTypeEntity.java new file mode 100644 index 0000000..e841f73 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AllDeviceTypeEntity.java @@ -0,0 +1,414 @@ +package com.yonsz.z1.database.entity.entity5; + +import com.google.gson.annotations.SerializedName; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2019/4/1. + */ + +public class AllDeviceTypeEntity { + + /** + * data : [{"code":"1","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/15/yulemoshi.jpg","name":"背景音乐红外版","pcode":"001","pname":"空调","postStatus":0,"sort":30,"standardCodes":"B1-L,B2-L"},{"code":"16","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/15/music_wifi.png","name":"背景音乐wifi版","sort":31}] + * flag : 1 + * msg : success + */ + + private int flag; + private String msg; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * code : 1 + * icon : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/15/yulemoshi.jpg + * name : 背景音乐红外版 + * pcode : 001 + * pname : 空调 + * postStatus : 0 + * sort : 30 + * standardCodes : B1-L,B2-L + */ + + /** + * createDate : 1563327726000 + * deviceModels : [{"brand":"","categoryId":"3","code":"0","deviceTypeCode":"000","deviceTypeName":"小艾","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_device_xiaoai.png","name":"语音管家","postStatus":1,"protocolType":"900","sort":-2,"standardCodes":"","uniqueCode":"000_0"},{"brand":"乐橙","categoryId":"3","code":"2","deviceTypeCode":"022","deviceTypeName":"网关","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/06/24/icon_gateway_dh-1561341173448-li1k9.png","name":"智能报警网关(大华系列)","postStatus":1,"protocolType":"202","sort":0,"standardCodes":"","uniqueCode":"022_2"}] + * id : 3 + * updateDate : 1563327777000 + */ + + private long createDate; + private int id; + private int sort; + private long updateDate; + private String name; + private List deviceModels; + /** + * appIdList : 1101 + * brand : + * categoryId : 6 + * code : 0 + * deviceTypeCode : 001 + * deviceTypeName : 空调 + * displayType : 1 + * icon : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/08/05/1564989126321-idatr.png + * postStatus : 1 + * protocolType : 100 + * standardCodes : A1-D,A1-L,A2-D,A2-L,D1-D,D1-L,YK1 + * titleRemark : + * uniqueCode : 001_0 + */ + + private String appIdList; + private String brand; + private String categoryId; + private String code; + private String deviceTypeCode; + private String deviceTypeName; + private int displayType; + private String icon; + private int postStatus; + private String protocolType; + private String standardCodes; + private String titleRemark; + private String uniqueCode; + private String subType; + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public void setDeviceModels(List deviceModels) { + this.deviceModels = deviceModels; + } + + public String getAppIdList() { + return appIdList == null ? "" : appIdList; + } + + public void setAppIdList(String appIdList) { + this.appIdList = appIdList == null ? "" : appIdList; + } + + public String getBrand() { + return brand == null ? "" : brand; + } + + public void setBrand(String brand) { + this.brand = brand == null ? "" : brand; + } + + public String getCategoryId() { + return categoryId == null ? "" : categoryId; + } + + public void setCategoryId(String categoryId) { + this.categoryId = categoryId == null ? "" : categoryId; + } + + public String getCode() { + return code == null ? "" : code; + } + + public void setCode(String code) { + this.code = code == null ? "" : code; + } + + public String getDeviceTypeCode() { + return deviceTypeCode == null ? "" : deviceTypeCode; + } + + public void setDeviceTypeCode(String deviceTypeCode) { + this.deviceTypeCode = deviceTypeCode == null ? "" : deviceTypeCode; + } + + public String getDeviceTypeName() { + return deviceTypeName == null ? "" : deviceTypeName; + } + + public void setDeviceTypeName(String deviceTypeName) { + this.deviceTypeName = deviceTypeName == null ? "" : deviceTypeName; + } + + public int getDisplayType() { + return displayType; + } + + public void setDisplayType(int displayType) { + this.displayType = displayType; + } + + public String getIcon() { + return icon == null ? "" : icon; + } + + public void setIcon(String icon) { + this.icon = icon == null ? "" : icon; + } + + public int getPostStatus() { + return postStatus; + } + + public void setPostStatus(int postStatus) { + this.postStatus = postStatus; + } + + public String getProtocolType() { + return protocolType == null ? "" : protocolType; + } + + public void setProtocolType(String protocolType) { + this.protocolType = protocolType == null ? "" : protocolType; + } + + public String getStandardCodes() { + return standardCodes == null ? "" : standardCodes; + } + + public void setStandardCodes(String standardCodes) { + this.standardCodes = standardCodes == null ? "" : standardCodes; + } + + public String getTitleRemark() { + return titleRemark == null ? "" : titleRemark; + } + + public void setTitleRemark(String titleRemark) { + this.titleRemark = titleRemark == null ? "" : titleRemark; + } + + public String getUniqueCode() { + return uniqueCode == null ? "" : uniqueCode; + } + + public void setUniqueCode(String uniqueCode) { + this.uniqueCode = uniqueCode == null ? "" : uniqueCode; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType == null ? "" : subType; + } + + public List getDeviceModels() { + if (deviceModels == null) { + return new ArrayList<>(); + } + return deviceModels; + } + + + public static class DeviceModelsBean implements Serializable { + /** + * brand : + * categoryId : 3 + * code : 0 + * deviceTypeCode : 000 + * deviceTypeName : 小艾 + * icon : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_device_xiaoai.png + * name : 语音管家 + * postStatus : 1 + * protocolType : 900 + * sort : -2 + * standardCodes : + * uniqueCode : 000_0 + */ + + private String code; + private String icon; + private String name; + private String deviceTypeCode; + private String pname; + private int postStatus; + private int sort; + private String standardCodes; + private String titleRemark; + private String subType; + private List versionList; + + public List getVersionList() { + if (versionList == null) { + return new ArrayList<>(); + } + return versionList; + } + + public void setVersionList(List versionList) { + this.versionList = versionList; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public String getTitleRemark() { + return titleRemark == null ? "" : titleRemark; + } + + public void setTitleRemark(String titleRemark) { + this.titleRemark = titleRemark; + } + + public String getDeviceTypeCode() { + return deviceTypeCode == null ? "" : deviceTypeCode; + } + + public void setDeviceTypeCode(String deviceTypeCode) { + this.deviceTypeCode = deviceTypeCode; + } + + public String getCode() { + return code == null ? "" : code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getIcon() { + return icon == null ? "" : icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPname() { + return pname == null ? "" : pname; + } + + public void setPname(String pname) { + this.pname = pname; + } + + public int getPostStatus() { + return postStatus; + } + + public void setPostStatus(int postStatus) { + this.postStatus = postStatus; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public String getStandardCodes() { + return standardCodes == null ? "" : standardCodes; + } + + public void setStandardCodes(String standardCodes) { + this.standardCodes = standardCodes; + } + + public static class VersionListBean implements Serializable{ + private String value; + private String label; + + public String getLabel() { + return label == null ? "" : label; + } + + public void setLabel(String label) { + this.label = label == null ? "" : label; + } + + public String getValue() { + return value == null ? "" : value; + } + + public void setValue(String value) { + this.value = value == null ? "" : value; + } + + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/AutoDeviceEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AutoDeviceEntity.java new file mode 100644 index 0000000..d7424f8 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AutoDeviceEntity.java @@ -0,0 +1,326 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2020/9/18. + */ + +public class AutoDeviceEntity { + + /** + * code : 1 + * data : [{"addressId":"2","addressName":"其它","createDate":1594866319000,"deviceBrand":"莲花科技","deviceModel":"0","deviceType":"029","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"1b6d2428e8afa7a792288a4554161cf7","lastInfo":{"flag":1,"openFlag":"0"},"name":"净化器","sort":500,"uniqueCode":"2_029_","voiceFlag":"1","ziId":"F0FE6BC79518"},{"addressId":"2","addressName":"其它","createDate":1594891454000,"deviceBrand":"Anthem","deviceModel":"0","deviceType":"028","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"1d6154c72848e2b9e2b0efbb49def404","lastInfo":{"flag":1,"openFlag":"0"},"name":"投影机","sort":500,"uniqueCode":"2_028_","voiceFlag":"1","ziId":"F0FE6BC79518"},{"addressId":"10","addressName":"其它","createDate":1596420510000,"deviceBrand":"创维","deviceModel":"0","deviceType":"004","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"3536233996bad3f709e62dcaf98fedfa","lastInfo":{"flag":1,"openFlag":"0"},"name":"电视","sort":15,"uniqueCode":"10_004_","voiceFlag":"1","ziId":"98D8630B5595"},{"addressId":"1","addressName":"其它","createDate":1598493295000,"deviceBrand":"创维","deviceModel":"0","deviceType":"028","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"4b72023191de4d0ff52b871475655521","lastInfo":{"flag":1,"openFlag":"0"},"name":"投影机","sort":500,"uniqueCode":"1_028_","voiceFlag":"1","ziId":"F0FE6B914DBF"},{"addressId":"1","addressName":"其它","createDate":1598493816000,"deviceBrand":"华为【有线电视机顶盒】","deviceModel":"0","deviceType":"006","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"6f6c3aac50bf9a0817d5ac43b9035dfe","lastInfo":{"flag":1,"openFlag":"0"},"name":"机顶盒","sort":500,"uniqueCode":"1_006_","voiceFlag":"1","ziId":"F0FE6B914DBF"},{"addressId":"1","addressName":"其它","createDate":1598498488000,"deviceBrand":"艾美特","deviceModel":"0","deviceType":"003","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"7a10ea8f5a5b4e00e6a462a53f1f9a22","lastInfo":{"flag":1,"openFlag":"0"},"name":"风扇","sort":500,"uniqueCode":"1_003_","voiceFlag":"1","ziId":"F0FE6B914DBF"},{"addressId":"10","addressName":"其它","createDate":1596695315000,"deviceBrand":"海尔(小超人)","deviceModel":"0","deviceType":"001","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"877e8c4b20144b77ae8c3c78f9dd59e3","lastInfo":{"authwindDirect":"0","controDirect":"0","economic":"0","flag":1,"model":"4","openFlag":"1","screen":"0","sleep":"0","speed":"3","switch":"1","temp":"20","windDirect":"0"},"name":"空调","sort":17,"uniqueCode":"10_001_","voiceFlag":"1","ziId":"98D8630B5595"},{"addressId":"1","addressName":"其它","createDate":1598493447000,"deviceBrand":"戴森","deviceModel":"0","deviceType":"029","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"9fc09850ea2dc64582464cb84a7e6932","lastInfo":{"flag":1,"openFlag":"1"},"name":"净化器","sort":500,"uniqueCode":"1_029_","voiceFlag":"1","ziId":"F0FE6B914DBF"},{"addressId":"2","addressName":"其它","createDate":1598508238000,"deviceBrand":"海尔(小超人)","deviceModel":"0","deviceType":"001","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"b04ec5b2c18e413d9a97425662d2788e","lastInfo":{"authwindDirect":"0","controDirect":"0","economic":"0","flag":1,"model":"4","openFlag":"0","screen":"0","sleep":"0","speed":"0","switch":"0","temp":"25","windDirect":"0"},"name":"空调","sort":500,"uniqueCode":"2_001_","voiceFlag":"1","ziId":"F0FE6BC79518"},{"addressId":"2","addressName":"其它","createDate":1596182110000,"deviceBrand":"科沃斯","deviceModel":"0","deviceType":"005","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"b9343391fc04a2d65c6c2f568b896705","lastInfo":{"flag":1,"openFlag":"1"},"name":"扫地机","sort":500,"uniqueCode":"2_005_","voiceFlag":"1","ziId":"F0FE6BC79518"},{"addressId":"1","addressName":"其它","createDate":1600141491000,"deviceBrand":"创维","deviceModel":"0","deviceType":"004","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"d0dedef4593856335bb39b1a5c7efffc","lastInfo":{"flag":1,"openFlag":"1"},"name":"电视","sort":500,"uniqueCode":"1_004_","voiceFlag":"1","ziId":"F0FE6B914DBF"},{"addressId":"2","addressName":"其它","createDate":1598526825000,"deviceBrand":"华为【有线电视机顶盒】","deviceModel":"0","deviceType":"006","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"d9ebfe98c16f2e89d6e188c6fa7a9479","lastInfo":{"flag":1,"openFlag":"1"},"name":"机顶盒","sort":500,"uniqueCode":"2_006_","voiceFlag":"1","ziId":"F0FE6BC79518"},{"addressId":"10","addressName":"其它","createDate":1596418523000,"deviceBrand":"艾美特","deviceModel":"0","deviceType":"003","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"e15a9f4a85bc4c439470a1b7be655d05","lastInfo":{"flag":1,"openFlag":"1"},"name":"风扇","sort":3,"uniqueCode":"10_003_","voiceFlag":"1","ziId":"98D8630B5595"},{"addition":{"panelId":"8B","panelType":2,"yblType":"03"},"addressId":"1","addressName":"其它","createDate":1598499395000,"deviceModel":"2","deviceType":"008","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"1eebe334660ce694a7b90bf517b027e4","lastInfo":{"flag":1,"openFlag":"0"},"name":"双路黄灯","order":2,"sort":500,"subType":"254","uniqueCode":"1_008_254","voiceFlag":"0","ziId":"F0FE6B914DBF"},{"addition":{"panelId":"8B","panelType":2,"yblType":"03"},"addressId":"1","addressName":"其它","createDate":1598499395000,"deviceModel":"2","deviceType":"008","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"2663004a56b4210e1036790f07d3cf15","lastInfo":{"flag":1,"openFlag":"0"},"name":"双路白灯","order":1,"sort":500,"subType":"254","uniqueCode":"1_008_254","voiceFlag":"0","ziId":"F0FE6B914DBF"},{"addition":{"panelId":"8D","panelType":2,"yblType":"07"},"addressId":"1","addressName":"其它","createDate":1598494615000,"deviceModel":"2","deviceType":"008","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"278574bfd6f8d9cb03467f3d1645e58b","lastInfo":{"flag":1,"openFlag":"0"},"name":"第一个灯","order":1,"sort":500,"subType":"254","uniqueCode":"1_008_254","voiceFlag":"0","ziId":"F0FE6B914DBF"},{"addition":{"panelId":"77","panelType":2,"yblType":"02"},"addressId":"1","addressName":"其它","createDate":1598499284000,"deviceModel":"2","deviceType":"008","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"325d304b6a51c22f62ecab26f6661448","lastInfo":{"flag":1,"openFlag":"0"},"name":"能调亮度的灯","order":1,"sort":500,"subType":"254","uniqueCode":"1_008_254","voiceFlag":"0","ziId":"F0FE6B914DBF"},{"addition":{"panelId":"FA","panelType":2,"yblType":"08"},"addressId":"1","addressName":"其它","createDate":1598499219000,"deviceModel":"2","deviceType":"008","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"a3c27f527f84d760c2c2437ade5d6891","lastInfo":{"flag":1,"openFlag":"0"},"name":"第三个灯","order":2,"sort":500,"subType":"254","uniqueCode":"1_008_254","voiceFlag":"0","ziId":"F0FE6B914DBF"},{"addition":{"panelId":"FA","panelType":2,"yblType":"08"},"addressId":"1","addressName":"其它","createDate":1598499219000,"deviceModel":"2","deviceType":"008","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"abd9c8761e84b23dd62d962148920d36","lastInfo":{"flag":1,"openFlag":"0"},"name":"第二个灯","order":1,"sort":500,"subType":"254","uniqueCode":"1_008_254","voiceFlag":"0","ziId":"F0FE6B914DBF"},{"addressId":"1","addressName":"其它","createDate":1598444203000,"deviceModel":"0","deviceType":"009","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"d3d32d61f582902a40aa823cd351c5b6","keyCount":3,"lastInfo":{"flag":1,"openFlag":"0","stop":"0"},"name":"窗帘","relatedStatus":0,"sort":500,"subType":"0","uniqueCode":"1_009_0","voiceFlag":"1","ziId":"F0FE6BC79518"},{"addition":{"yblId":"b10089cb","yblType":"12"},"addressId":"2","addressName":"其它","createDate":1596420223000,"deviceModel":"2","deviceType":"009","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"0d345f9064595210b49e310925cc16d7","keyCount":0,"lastInfo":{"flag":1,"openFlag":"1","stop":"0","travelControl":"100"},"name":"窗帘","order":1,"relatedStatus":0,"sort":14,"subType":"0","uniqueCode":"2_009_0","voiceFlag":"1","ziId":"98D8630B5595"},{"addition":{"yblId":"b3300400","yblType":"02"},"addressId":"1","addressName":"其它","createDate":1598497649000,"deviceModel":"4","deviceType":"018","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"40ff577113d088b1a278ae6fc619ab66","keyCount":4,"lastInfo":{"flag":1,"openFlag":"2"},"name":"情景面板","order":0,"relatedStatus":0,"sort":500,"uniqueCode":"1_018_","voiceFlag":"1","ziId":"F0FE6B914DBF"},{"addition":{"yblId":"00115bfa","yblType":"1f"},"addressId":"2","addressName":"其它","createDate":1596419510000,"deviceModel":"3","deviceType":"010","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"922bc1fb380cd53909b92fdd41ac2243","keyCount":0,"lastInfo":{"flag":1,"openFlag":"1"},"name":"插座","order":1,"relatedStatus":0,"sort":13,"subType":"0","uniqueCode":"2_010_0","voiceFlag":"1","ziId":"98D8630B5595"},{"addressId":"2","addressName":"其它","createDate":1596421397000,"deviceModel":"3","deviceType":"009","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"a959f515f2be4f92f843179076d906c2","keyCount":1,"lastInfo":{"flag":1,"openFlag":"1","stop":"1"},"name":"窗帘","order":2,"relatedStatus":0,"sort":16,"subType":"0","uniqueCode":"2_009_0","voiceFlag":"1","ziId":"98D8630B5595"},{"addressId":"2","addressName":"其它","createDate":1596697068000,"deviceModel":"1","deviceType":"019","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"b12a5fa9e7c7256dbd1c0d32a85764c5","keyCount":0,"lastInfo":{"airdrying":"0","anion":"0","disinfect":"0","flag":1,"light":"0","openFlag":"2","stoving":"0","voice":"0"},"name":"晾衣机","order":1,"relatedStatus":0,"sort":2,"uniqueCode":"2_019_","voiceFlag":"1","ziId":"98D8630B5595"},{"addressId":"3","addressName":"其它","createDate":1594800959000,"deviceModel":"0","deviceType":"019","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"b58d8bae6d8f164b3228792c437f6b36","keyCount":0,"name":"晾衣机","order":1,"relatedStatus":0,"sort":500,"uniqueCode":"3_019_","voiceFlag":"1","ziId":"F0FE6BC79518"},{"addition":{"yblId":"10190200","yblType":"02"},"addressId":"1","addressName":"其它","createDate":1600418443000,"deviceModel":"0","deviceType":"041","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"be47a2a24723a61b9c6b823d4c9aef3a","keyCount":2,"lastInfo":{"flag":1,"openFlag":"2"},"name":"情景触发器","order":0,"relatedStatus":0,"sort":500,"uniqueCode":"1_041_","voiceFlag":"1","ziId":"F0FE6B914DBF"},{"addition":{"yblId":"b10089cb","yblType":"12"},"addressId":"1","addressName":"其它","createDate":1598499815000,"deviceModel":"2","deviceType":"009","floor":"1","houseId":"86d945a14f22341b33adf08ef9ace960","id":"e6245bf57970e378cd54a9255651e9a2","keyCount":0,"lastInfo":{"flag":1,"openFlag":"0","stop":"0","travelControl":"100"},"name":"窗帘","order":1,"relatedStatus":0,"sort":500,"subType":"0","uniqueCode":"1_009_0","voiceFlag":"0","ziId":"F0FE6B914DBF"}] + * flag : 1 + * msg : success + */ + + private int code; + private int flag; + private String msg; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * addressId : 2 + * addressName : 其它 + * createDate : 1594866319000 + * deviceBrand : 莲花科技 + * deviceModel : 0 + * deviceType : 029 + * floor : 1 + * houseId : 86d945a14f22341b33adf08ef9ace960 + * id : 1b6d2428e8afa7a792288a4554161cf7 + * lastInfo : {"flag":1,"openFlag":"0"} + * name : 净化器 + * sort : 500 + * uniqueCode : 2_029_ + * voiceFlag : 1 + * ziId : F0FE6BC79518 + * addition : {"panelId":"8B","panelType":2,"yblType":"03"} + * order : 2 + * subType : 254 + * keyCount : 3 + * relatedStatus : 0 + */ + + private String addressId; + private String addressName; + private long createDate; + private String deviceBrand; + private String deviceModel; + private String deviceType; + private String floor; + private String houseId; + private String id; + private LastInfoBean lastInfo; + private String name; + private int sort; + private String uniqueCode; + private String voiceFlag; + private String ziId; + private AdditionBean addition; + private int order; + private String subType; + private int keyCount; + private int relatedStatus; + + public String getAddressId() { + return addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getAddressName() { + return addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getDeviceBrand() { + return deviceBrand; + } + + public void setDeviceBrand(String deviceBrand) { + this.deviceBrand = deviceBrand; + } + + public String getDeviceModel() { + return deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getFloor() { + return floor; + } + + public void setFloor(String floor) { + this.floor = floor; + } + + public String getHouseId() { + return houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public LastInfoBean getLastInfo() { + return lastInfo; + } + + public void setLastInfo(LastInfoBean lastInfo) { + this.lastInfo = lastInfo; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public String getUniqueCode() { + return uniqueCode; + } + + public void setUniqueCode(String uniqueCode) { + this.uniqueCode = uniqueCode; + } + + public String getVoiceFlag() { + return voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + + public String getZiId() { + return ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public AdditionBean getAddition() { + return addition; + } + + public void setAddition(AdditionBean addition) { + this.addition = addition; + } + + public int getOrder() { + return order; + } + + public void setOrder(int order) { + this.order = order; + } + + public String getSubType() { + return subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public int getKeyCount() { + return keyCount; + } + + public void setKeyCount(int keyCount) { + this.keyCount = keyCount; + } + + public int getRelatedStatus() { + return relatedStatus; + } + + public void setRelatedStatus(int relatedStatus) { + this.relatedStatus = relatedStatus; + } + + public static class LastInfoBean { + /** + * flag : 1 + * openFlag : 0 + */ + + private int flag; + private String openFlag; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getOpenFlag() { + return openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + } + + public static class AdditionBean { + /** + * panelId : 8B + * panelType : 2 + * yblType : 03 + */ + + private String panelId; + private int panelType; + private String yblType; + + public String getPanelId() { + return panelId; + } + + public void setPanelId(String panelId) { + this.panelId = panelId; + } + + public int getPanelType() { + return panelType; + } + + public void setPanelType(int panelType) { + this.panelType = panelType; + } + + public String getYblType() { + return yblType; + } + + public void setYblType(String yblType) { + this.yblType = yblType; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/AutoEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AutoEntity.java new file mode 100644 index 0000000..df9d207 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AutoEntity.java @@ -0,0 +1,275 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.List; + +/** + * Created by Administrator on 2020/9/19. + */ + +public class AutoEntity { + + /** + * flag : 1 + * data : [{"id":3,"createDate":1597396932000,"updateDate":1597396932000,"name":"我的自动化开","effectiveTimeJson":"{\"repeatType\":1,\"time\":\"00:00-23:59\",\"week1\":\"0\",\"week2\":\"0\",\"week3\":\"1\",\"week4\":\"0\",\"week5\":\"1\",\"week6\":\"1\",\"week7\":\"1\"}","conditionSatisfyType":"all","open":false,"userId":"e9b6c194ed194dc0a83e994e5d79690c","houseId":"88909318818a4c96ae3adddb35dff797","sort":10000,"effectiveTime":{"time":"00:00-23:59","week1":"0","week2":"0","week3":"1","week4":"0","week5":"1","week6":"1","week7":"1","repeatType":1}},{"id":4,"createDate":1597397231000,"updateDate":1597397231000,"name":"我的自动化关","effectiveTimeJson":"{\"repeatType\":1,\"time\":\"00:00-23:59\",\"week1\":\"0\",\"week2\":\"0\",\"week3\":\"1\",\"week4\":\"0\",\"week5\":\"1\",\"week6\":\"1\",\"week7\":\"1\"}","conditionSatisfyType":"all","open":false,"userId":"e9b6c194ed194dc0a83e994e5d79690c","houseId":"88909318818a4c96ae3adddb35dff797","sort":10000,"effectiveTime":{"time":"00:00-23:59","week1":"0","week2":"0","week3":"1","week4":"0","week5":"1","week6":"1","week7":"1","repeatType":1}},{"id":22,"createDate":1597992085000,"updateDate":1597992085000,"name":"我的自动化安防开启测试","effectiveTimeJson":"{\"repeatType\":2,\"time\":\"00:00-23:58\",\"week1\":\"1\",\"week2\":\"1\",\"week3\":\"1\",\"week4\":\"1\",\"week5\":\"1\",\"week6\":\"1\",\"week7\":\"1\"}","conditionSatisfyType":"all","open":false,"userId":"e9b6c194ed194dc0a83e994e5d79690c","houseId":"88909318818a4c96ae3adddb35dff797","sort":10000,"effectiveTime":{"time":"00:00-23:58","week1":"1","week2":"1","week3":"1","week4":"1","week5":"1","week6":"1","week7":"1","repeatType":2}},{"id":23,"createDate":1597992347000,"updateDate":1597992347000,"name":"我的自动化安防开启测试","effectiveTimeJson":"{\"repeatType\":2,\"time\":\"00:00-23:58\",\"week1\":\"1\",\"week2\":\"1\",\"week3\":\"1\",\"week4\":\"1\",\"week5\":\"1\",\"week6\":\"1\",\"week7\":\"1\"}","conditionSatisfyType":"all","open":true,"userId":"e9b6c194ed194dc0a83e994e5d79690c","houseId":"88909318818a4c96ae3adddb35dff797","sort":10000,"effectiveTime":{"time":"00:00-23:58","week1":"1","week2":"1","week3":"1","week4":"1","week5":"1","week6":"1","week7":"1","repeatType":2}}] + * msg : success + * code : 1 + */ + + private int flag; + private String msg; + private int code; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * id : 3 + * createDate : 1597396932000 + * updateDate : 1597396932000 + * name : 我的自动化开 + * effectiveTimeJson : {"repeatType":1,"time":"00:00-23:59","week1":"0","week2":"0","week3":"1","week4":"0","week5":"1","week6":"1","week7":"1"} + * conditionSatisfyType : all + * open : false + * userId : e9b6c194ed194dc0a83e994e5d79690c + * houseId : 88909318818a4c96ae3adddb35dff797 + * sort : 10000 + * effectiveTime : {"time":"00:00-23:59","week1":"0","week2":"0","week3":"1","week4":"0","week5":"1","week6":"1","week7":"1","repeatType":1} + */ + + private String id; + private long createDate; + private long updateDate; + private String name; + private String effectiveTimeJson; + private String conditionSatisfyType; + private boolean open; + private String userId; + private String houseId; + private String iconType; + private int sort; + private EffectiveTimeBean effectiveTime; + + public String getIconType() { + return iconType == null ? "" : iconType; + } + + public void setIconType(String iconType) { + this.iconType = iconType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEffectiveTimeJson() { + return effectiveTimeJson; + } + + public void setEffectiveTimeJson(String effectiveTimeJson) { + this.effectiveTimeJson = effectiveTimeJson; + } + + public String getConditionSatisfyType() { + return conditionSatisfyType; + } + + public void setConditionSatisfyType(String conditionSatisfyType) { + this.conditionSatisfyType = conditionSatisfyType; + } + + public boolean isOpen() { + return open; + } + + public void setOpen(boolean open) { + this.open = open; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getHouseId() { + return houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public EffectiveTimeBean getEffectiveTime() { + return effectiveTime; + } + + public void setEffectiveTime(EffectiveTimeBean effectiveTime) { + this.effectiveTime = effectiveTime; + } + + public static class EffectiveTimeBean { + /** + * time : 00:00-23:59 + * week1 : 0 + * week2 : 0 + * week3 : 1 + * week4 : 0 + * week5 : 1 + * week6 : 1 + * week7 : 1 + * repeatType : 1 + */ + + private String time; + private String week1; + private String week2; + private String week3; + private String week4; + private String week5; + private String week6; + private String week7; + private int repeatType; + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getWeek1() { + return week1; + } + + public void setWeek1(String week1) { + this.week1 = week1; + } + + public String getWeek2() { + return week2; + } + + public void setWeek2(String week2) { + this.week2 = week2; + } + + public String getWeek3() { + return week3; + } + + public void setWeek3(String week3) { + this.week3 = week3; + } + + public String getWeek4() { + return week4; + } + + public void setWeek4(String week4) { + this.week4 = week4; + } + + public String getWeek5() { + return week5; + } + + public void setWeek5(String week5) { + this.week5 = week5; + } + + public String getWeek6() { + return week6; + } + + public void setWeek6(String week6) { + this.week6 = week6; + } + + public String getWeek7() { + return week7; + } + + public void setWeek7(String week7) { + this.week7 = week7; + } + + public int getRepeatType() { + return repeatType; + } + + public void setRepeatType(int repeatType) { + this.repeatType = repeatType; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/AutoFunctionEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AutoFunctionEntity.java new file mode 100644 index 0000000..59a0514 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AutoFunctionEntity.java @@ -0,0 +1,214 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2020/9/23. + */ + +public class AutoFunctionEntity { + + /** + * flag : 1 + * data : {"deviceType":"001","label":"空调","opers":[{"name":"switch","label":"开关","valueType":"string","options":[{"lable":"开启","value":"power"},{"lable":"关闭","value":"poweroff"}]},{"name":"mode","label":"模式","valueType":"string","options":[{"lable":"制冷模式","value":"cold"},{"lable":"制热模式","value":"heat"},{"lable":"除湿模式","value":"dehumidification"}]},{"name":"tempSet","label":"温度","valueType":"int","min":16,"max":30},{"name":"windSpeed","label":"风速","valueType":"string","options":[{"lable":"自动风","value":"windSpeedAuto"},{"lable":"低速风","value":"windSpeedLow"},{"lable":"中速风","value":"windSpeedMedium"},{"lable":"高速风","value":"windSpeedHigh"}]}]} + * msg : success + * code : 1 + */ + + private int flag; + private DataBean data; + private String msg; + private int code; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public static class DataBean { + /** + * deviceType : 001 + * label : 空调 + * opers : [{"name":"switch","label":"开关","valueType":"string","options":[{"lable":"开启","value":"power"},{"lable":"关闭","value":"poweroff"}]},{"name":"mode","label":"模式","valueType":"string","options":[{"lable":"制冷模式","value":"cold"},{"lable":"制热模式","value":"heat"},{"lable":"除湿模式","value":"dehumidification"}]},{"name":"tempSet","label":"温度","valueType":"int","min":16,"max":30},{"name":"windSpeed","label":"风速","valueType":"string","options":[{"lable":"自动风","value":"windSpeedAuto"},{"lable":"低速风","value":"windSpeedLow"},{"lable":"中速风","value":"windSpeedMedium"},{"lable":"高速风","value":"windSpeedHigh"}]}] + */ + + private String deviceType; + private String label; + private List opers; + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public List getOpers() { + return opers; + } + + public void setOpers(List opers) { + this.opers = opers; + } + + public static class OpersBean { + /** + * name : switch + * label : 开关 + * valueType : string + * options : [{"lable":"开启","value":"power"},{"lable":"关闭","value":"poweroff"}] + * min : 16 + * max : 30 + */ + + private String name; + private String label; + private String valueType; + private String min; + private String max; + private String value; + private String symbol; + private List options; + + public String getSymbol() { + return symbol == null ? "=" : symbol; + } + + public void setSymbol(String symbol) { + this.symbol = symbol == null ? "=" : symbol; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public String getMin() { + return min == null ? "" : min; + } + + public void setMin(String min) { + this.min = min; + } + + public String getMax() { + return max == null ? "" : max; + } + + public void setMax(String max) { + this.max = max; + } + + public String getValue() { + return value == null ? "" : value; + } + + public void setValue(String value) { + this.value = value; + } + + public List getOptions() { + return options; + } + + public void setOptions(List options) { + this.options = options; + } + + public static class OptionsBean { + /** + * lable : 开启 + * value : power + */ + + private String label; + private String value; + private List conflictOpers; + + + public String getLabel() { + return label == null ? "" : label; + } + + public void setLabel(String label) { + this.label = label == null ? "" : label; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public List getConflictOpers() { + if (conflictOpers == null) { + return new ArrayList<>(); + } + return conflictOpers; + } + + public void setConflictOpers(List conflictOpers) { + this.conflictOpers = conflictOpers; + } + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/AutomationEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AutomationEntity.java new file mode 100644 index 0000000..145aeae --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AutomationEntity.java @@ -0,0 +1,1227 @@ +package com.yonsz.z1.database.entity.entity5; + +import com.google.gson.annotations.SerializedName; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * Created by Administrator on 2020/9/18. + */ + +public class AutomationEntity { + + /** + * flag : 1 + * data : {"id":23,"createDate":1597992347000,"updateDate":1597992347000,"name":"我的自动化安防开启测试","effectiveTimeJson":"{\"repeatType\":2,\"time\":\"00:00-23:58\",\"week1\":\"1\",\"week2\":\"1\",\"week3\":\"1\",\"week4\":\"1\",\"week5\":\"1\",\"week6\":\"1\",\"week7\":\"1\"}","conditionSatisfyType":"all","open":true,"userId":"e9b6c194ed194dc0a83e994e5d79690c","houseId":"88909318818a4c96ae3adddb35dff797","sort":10000,"triggerConditions":[{"id":15,"createDate":1597396932000,"updateDate":1597401356000,"time":"18:44","week1":"1","week3":"1","week4":"1","week5":"1","week6":"1","week7":"1","repeatType":1,"type":"timer","isTrigger":true,"automationId":3,"open":true}],"execConditions":[{"id":109,"createDate":1597992347000,"updateDate":1597992347000,"deviceId":"23dafb593bc3ca87344724c4540ccc98","gatewayId":"F0FE6B58F591","gatewayType":"xiaoai","deviceType":"008","deviceModel":"2","name":"排气扇","symbol":">","value":"90","conditionId":142,"type":"device_status","isTrigger":false,"automationId":23}],"actions":[{"id":105,"createDate":1597992347000,"updateDate":1597992347000,"type":"device","actionJson":"{\"deviceId\":\"77c36aec7def30a1f87b5dbdd44f06dc\",\"deviceModel\":\"0\",\"deviceType\":\"012\",\"gatewayId\":\"F0FE6B58F591\",\"opers\":[{\"name\":\"safetySwitch\",\"value\":\"poweroff\"}]}","sort":100000,"automationId":23,"action":{"deviceType":"012","deviceModel":"0","gatewayId":"F0FE6B58F591","deviceId":"77c36aec7def30a1f87b5dbdd44f06dc","opers":[{"name":"safetySwitch","value":"poweroff"}]}}],"effectiveTime":{"time":"00:00-23:58","week1":"1","week2":"1","week3":"1","week4":"1","week5":"1","week6":"1","week7":"1","repeatType":2}} + * msg : success + * code : 1 + */ + + private int flag; + private DataBean data; + private String msg; + private int code; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public static class DataBean { + /** + * id : 23 + * createDate : 1597992347000 + * updateDate : 1597992347000 + * name : 我的自动化安防开启测试 + * effectiveTimeJson : {"repeatType":2,"time":"00:00-23:58","week1":"1","week2":"1","week3":"1","week4":"1","week5":"1","week6":"1","week7":"1"} + * conditionSatisfyType : all + * open : true + * userId : e9b6c194ed194dc0a83e994e5d79690c + * houseId : 88909318818a4c96ae3adddb35dff797 + * sort : 10000 + * triggerConditions : [{"id":15,"createDate":1597396932000,"updateDate":1597401356000,"time":"18:44","week1":"1","week3":"1","week4":"1","week5":"1","week6":"1","week7":"1","repeatType":1,"type":"timer","isTrigger":true,"automationId":3,"open":true}] + * execConditions : [{"id":109,"createDate":1597992347000,"updateDate":1597992347000,"deviceId":"23dafb593bc3ca87344724c4540ccc98","gatewayId":"F0FE6B58F591","gatewayType":"xiaoai","deviceType":"008","deviceModel":"2","name":"排气扇","symbol":">","value":"90","conditionId":142,"type":"device_status","isTrigger":false,"automationId":23}] + * actions : [{"id":105,"createDate":1597992347000,"updateDate":1597992347000,"type":"device","actionJson":"{\"deviceId\":\"77c36aec7def30a1f87b5dbdd44f06dc\",\"deviceModel\":\"0\",\"deviceType\":\"012\",\"gatewayId\":\"F0FE6B58F591\",\"opers\":[{\"name\":\"safetySwitch\",\"value\":\"poweroff\"}]}","sort":100000,"automationId":23,"action":{"deviceType":"012","deviceModel":"0","gatewayId":"F0FE6B58F591","deviceId":"77c36aec7def30a1f87b5dbdd44f06dc","opers":[{"name":"safetySwitch","value":"poweroff"}]}}] + * effectiveTime : {"time":"00:00-23:58","week1":"1","week2":"1","week3":"1","week4":"1","week5":"1","week6":"1","week7":"1","repeatType":2} + */ + + private String id; + private long createDate; + private long updateDate; + private String name; + private String effectiveTimeJson; + private String conditionSatisfyType; + private boolean open; + private String userId; + private String houseId; + private String isNotify; + private int sort; + private EffectiveTimeBean effectiveTime; + private List triggerConditions; + private List execConditions; + private List actions; + + public String getIsNotify() { + return isNotify == null ? "false" : isNotify; + } + + public void setIsNotify(String isNotify) { + this.isNotify = isNotify; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEffectiveTimeJson() { + return effectiveTimeJson; + } + + public void setEffectiveTimeJson(String effectiveTimeJson) { + this.effectiveTimeJson = effectiveTimeJson; + } + + public String getConditionSatisfyType() { + return conditionSatisfyType; + } + + public void setConditionSatisfyType(String conditionSatisfyType) { + this.conditionSatisfyType = conditionSatisfyType; + } + + public boolean isOpen() { + return open; + } + + public void setOpen(boolean open) { + this.open = open; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getHouseId() { + return houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public EffectiveTimeBean getEffectiveTime() { + return effectiveTime; + } + + public void setEffectiveTime(EffectiveTimeBean effectiveTime) { + this.effectiveTime = effectiveTime; + } + + public List getTriggerConditions() { + return triggerConditions; + } + + public void setTriggerConditions(List triggerConditions) { + this.triggerConditions = triggerConditions; + } + + public List getExecConditions() { + return execConditions; + } + + public void setExecConditions(List execConditions) { + this.execConditions = execConditions; + } + + public List getActions() { + return actions; + } + + public void setActions(List actions) { + this.actions = actions; + } + + public static class EffectiveTimeBean implements Serializable { + /** + * time : 00:00-23:58 + * week1 : 1 + * week2 : 1 + * week3 : 1 + * week4 : 1 + * week5 : 1 + * week6 : 1 + * week7 : 1 + * repeatType : 2 + */ + + private String time; + private String week1; + private String week2; + private String week3; + private String week4; + private String week5; + private String week6; + private String week7; + private String repeatType; + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getWeek1() { + return week1; + } + + public void setWeek1(String week1) { + this.week1 = week1; + } + + public String getWeek2() { + return week2; + } + + public void setWeek2(String week2) { + this.week2 = week2; + } + + public String getWeek3() { + return week3; + } + + public void setWeek3(String week3) { + this.week3 = week3; + } + + public String getWeek4() { + return week4; + } + + public void setWeek4(String week4) { + this.week4 = week4; + } + + public String getWeek5() { + return week5; + } + + public void setWeek5(String week5) { + this.week5 = week5; + } + + public String getWeek6() { + return week6; + } + + public void setWeek6(String week6) { + this.week6 = week6; + } + + public String getWeek7() { + return week7; + } + + public void setWeek7(String week7) { + this.week7 = week7; + } + + public String getRepeatType() { + return repeatType == null ? "" : repeatType; + } + + public void setRepeatType(String repeatType) { + this.repeatType = repeatType; + } + } + + public static class TriggerConditionsBean implements Serializable { + + /** + * id : 15 + * createDate : 1597396932000 + * updateDate : 1597401356000 + * time : 18:44 + * week1 : 1 + * week3 : 1 + * week4 : 1 + * week5 : 1 + * week6 : 1 + * week7 : 1 + * repeatType : 1 + * type : timer + * isTrigger : true + * automationId : 3 + * open : true + */ + + private String id; + private long createDate; + private long updateDate; + private String time; + private String week; + private String week1; + private String week2; + private String week3; + private String week4; + private String week5; + private String week6; + private String week7; + private String repeatType; + private String type; + private String deviceType; + private String deviceModel; + private String subType; + private String name; + private String deviceName; + private boolean isTrigger; + private int automationId; + /** + * conditionId : 139 + * deviceId : 23dafb593bc3ca87344724c4540ccc98 + * gatewayId : F0FE6B58F591 + * gatewayType : xiaoai + * subType : 7 + * symbol : = + * value : power + */ + + private int conditionId; + private String deviceId; + private String gatewayId; + private String gatewayType; + private String symbol; + private String value; + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + + TriggerConditionsBean that = (TriggerConditionsBean) o; + + return id != null ? id.equals(that.id) : that.id == null; + } + + @Override + public int hashCode() { + return id != null ? id.hashCode() : 0; + } + + public String getWeek() { + return week == null ? "" : week; + } + + public void setWeek(String week) { + this.week = week; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getWeek2() { + return week2 == null ? "" : week2; + } + + public void setWeek2(String week2) { + this.week2 = week2; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public boolean isTrigger() { + return isTrigger; + } + + public void setTrigger(boolean trigger) { + isTrigger = trigger; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getTime() { + return time == null ? "" : time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getWeek1() { + return week1 == null ? "" : week1; + } + + public void setWeek1(String week1) { + this.week1 = week1; + } + + public String getWeek3() { + return week3 == null ? "" : week3; + } + + public void setWeek3(String week3) { + this.week3 = week3; + } + + public String getWeek4() { + return week4 == null ? "" : week4; + } + + public void setWeek4(String week4) { + this.week4 = week4; + } + + public String getWeek5() { + return week5 == null ? "" : week5; + } + + public void setWeek5(String week5) { + this.week5 = week5; + } + + public String getWeek6() { + return week6 == null ? "" : week6; + } + + public void setWeek6(String week6) { + this.week6 = week6; + } + + public String getWeek7() { + return week7 == null ? "" : week7; + } + + public void setWeek7(String week7) { + this.week7 = week7; + } + + public String getRepeatType() { + return repeatType == null ? "" : repeatType; + } + + public void setRepeatType(String repeatType) { + this.repeatType = repeatType; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public boolean isIsTrigger() { + return isTrigger; + } + + public void setIsTrigger(boolean isTrigger) { + this.isTrigger = isTrigger; + } + + public int getAutomationId() { + return automationId; + } + + public void setAutomationId(int automationId) { + this.automationId = automationId; + } + + + public int getConditionId() { + return conditionId; + } + + public void setConditionId(int conditionId) { + this.conditionId = conditionId; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getGatewayId() { + return gatewayId; + } + + public void setGatewayId(String gatewayId) { + this.gatewayId = gatewayId; + } + + public String getGatewayType() { + return gatewayType; + } + + public void setGatewayType(String gatewayType) { + this.gatewayType = gatewayType; + } + + public String getSymbol() { + return symbol == null ? "" : symbol; + } + + public void setSymbol(String symbol) { + this.symbol = symbol == null ? "" : symbol; + } + + public String getValue() { + return value == null ? "" : value; + } + + public void setValue(String value) { + this.value = value; + } + } + + public static class ExecConditionsBean implements Serializable { + /** + * id : 109 + * createDate : 1597992347000 + * updateDate : 1597992347000 + * deviceId : 23dafb593bc3ca87344724c4540ccc98 + * gatewayId : F0FE6B58F591 + * gatewayType : xiaoai + * deviceType : 008 + * deviceModel : 2 + * name : 排气扇 + * symbol : > + * value : 90 + * conditionId : 142 + * type : device_status + * isTrigger : false + * automationId : 23 + */ + + private String id; + private long createDate; + private long updateDate; + private String deviceId; + private String gatewayId; + private String gatewayType; + private String deviceType; + private String deviceModel; + private String name; + private String deviceName; + private String symbol; + private String value; + private int conditionId; + private String type; + private String subType; + private boolean isTrigger; + private int automationId; + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public boolean isTrigger() { + return isTrigger; + } + + public void setTrigger(boolean trigger) { + isTrigger = trigger; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getGatewayId() { + return gatewayId; + } + + public void setGatewayId(String gatewayId) { + this.gatewayId = gatewayId; + } + + public String getGatewayType() { + return gatewayType; + } + + public void setGatewayType(String gatewayType) { + this.gatewayType = gatewayType; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceModel() { + return deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getSymbol() { + return symbol == null ? "=" : symbol; + } + + public void setSymbol(String symbol) { + this.symbol = symbol == null ? "=" : symbol; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value == null ? "" : value; + } + + public void setValue(String value) { + this.value = value; + } + + public int getConditionId() { + return conditionId; + } + + public void setConditionId(int conditionId) { + this.conditionId = conditionId; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public boolean isIsTrigger() { + return isTrigger; + } + + public void setIsTrigger(boolean isTrigger) { + this.isTrigger = isTrigger; + } + + public int getAutomationId() { + return automationId; + } + + public void setAutomationId(int automationId) { + this.automationId = automationId; + } + } + + public static class ActionsBean implements Serializable { + /** + * id : 105 + * createDate : 1597992347000 + * updateDate : 1597992347000 + * type : device + * actionJson : {"deviceId":"77c36aec7def30a1f87b5dbdd44f06dc","deviceModel":"0","deviceType":"012","gatewayId":"F0FE6B58F591","opers":[{"name":"safetySwitch","value":"poweroff"}]} + * sort : 100000 + * automationId : 23 + * action : {"deviceType":"012","deviceModel":"0","gatewayId":"F0FE6B58F591","deviceId":"77c36aec7def30a1f87b5dbdd44f06dc","opers":[{"name":"safetySwitch","value":"poweroff"}]} + */ + + private String id; + private long createDate; + private long updateDate; + private String type; + private String actionJson; + private int sort; + private int automationId; + private ActionBean action; + /** + * deviceId : 308 + * deviceModel : 1 + * deviceName : 门磁感应器 + * deviceType : 012 + * gatewayId : 4J01728PAZ1C27D + * opers : [{"name":"safetySwitch","value":"poweroff"}] + */ + + private String subType; + private String name; + private String delay; + + private String deviceId; + private String deviceModel; + private String deviceName; + private String deviceType; + private String gatewayId; + private List opers; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ActionsBean that = (ActionsBean) o; + return Objects.equals(type, that.type); + } + + @Override + public int hashCode() { + return Objects.hash(type); + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDelay() { + return delay == null ? "" : delay; + } + + public void setDelay(String delay) { + this.delay = delay; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getActionJson() { + return actionJson; + } + + public void setActionJson(String actionJson) { + this.actionJson = actionJson; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public int getAutomationId() { + return automationId; + } + + public void setAutomationId(int automationId) { + this.automationId = automationId; + } + + public ActionBean getAction() { + return action; + } + + public void setAction(ActionBean action) { + this.action = action; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel == null ? "" : deviceModel; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getGatewayId() { + return gatewayId; + } + + public void setGatewayId(String gatewayId) { + this.gatewayId = gatewayId; + } + + public List getOpers() { + return opers; + } + + public void setOpers(List opers) { + this.opers = opers; + } + + public static class OpersBean implements Serializable { + /** + * name : safetySwitch + * value : poweroff + */ + + private String name; + private String value; + /** + * label : 温度 + * min : 16 + * max : 30 + * valueType : int + */ + + private String label; + private int min; + private int max; + private String valueType; + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public int getMin() { + return min; + } + + public void setMin(int min) { + this.min = min; + } + + public int getMax() { + return max; + } + + public void setMax(int max) { + this.max = max; + } + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + } + + public static class ActionBean implements Serializable { + /** + * deviceType : 012 + * deviceModel : 0 + * gatewayId : F0FE6B58F591 + * deviceId : 77c36aec7def30a1f87b5dbdd44f06dc + * opers : [{"name":"safetySwitch","value":"poweroff"}] + */ + + private String subType; + private String name; + private String deviceName; + private String deviceType; + private String deviceModel; + private String gatewayId; + private String deviceId; + private String delay; + private List opers; + + public String getDelay() { + return delay == null ? "" : delay; + } + + public void setDelay(String delay) { + this.delay = delay; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceModel() { + return deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getGatewayId() { + return gatewayId; + } + + public void setGatewayId(String gatewayId) { + this.gatewayId = gatewayId; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public List getOpers() { + if (opers == null) { + return new ArrayList<>(); + } + return opers; + } + + public void setOpers(List opers) { + this.opers = opers; + } + + public static class OpersBean implements Serializable { + /** + * name : safetySwitch + * value : poweroff + */ + + private String name; + private String value; + private String symbol; + /** + * label : 温度 + * min : 16 + * max : 30 + * valueType : int + */ + + private String label; + private int min; + private int max; + private String valueType; + + + public String getSymbol() { + return symbol == null ? "=" : symbol; + } + + public void setSymbol(String symbol) { + this.symbol = symbol == null ? "=" : symbol; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value == null ? "" : value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public int getMin() { + return min; + } + + public void setMin(int min) { + this.min = min; + } + + public int getMax() { + return max; + } + + public void setMax(int max) { + this.max = max; + } + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + } + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/AvtiveModelEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AvtiveModelEntity.java new file mode 100644 index 0000000..9fd6253 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/AvtiveModelEntity.java @@ -0,0 +1,129 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2020/1/10. + */ + +public class AvtiveModelEntity { + + /** + * flag : 1 + * data : {"name":"离家模式","success":[{"macId":"F0FE6BEB4794"},{"macId":"F0FE6BC79946"}],"failed":[{"macId":"F0FE6BC79518"}]} + * msg : success + * code : 1 + */ + + private int flag; + private DataBean data; + private String msg; + private int code; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public static class DataBean { + /** + * name : 离家模式 + * success : [{"macId":"F0FE6BEB4794"},{"macId":"F0FE6BC79946"}] + * failed : [{"macId":"F0FE6BC79518"}] + */ + + private String name; + private List success; + private List failed; + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public List getSuccess() { + if (success == null) { + return new ArrayList<>(); + } + return success; + } + + public void setSuccess(List success) { + this.success = success; + } + + public List getFailed() { + if (failed == null) { + return new ArrayList<>(); + } + return failed; + } + + public void setFailed(List failed) { + this.failed = failed; + } + + public static class SuccessBean { + /** + * macId : F0FE6BEB4794 + */ + + private String macId; + + public String getMacId() { + return macId; + } + + public void setMacId(String macId) { + this.macId = macId; + } + } + + public static class FailedBean { + /** + * macId : F0FE6BC79518 + */ + + private String macId; + + public String getMacId() { + return macId; + } + + public void setMacId(String macId) { + this.macId = macId; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/BaseModelEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/BaseModelEntity.java new file mode 100644 index 0000000..81ec8df --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/BaseModelEntity.java @@ -0,0 +1,191 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2020/1/4. + */ + +public class BaseModelEntity { + + /** + * flag : 1 + * data : [{"id":454,"createDate":1578123466000,"updateDate":1578123466000,"modeId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modeType":"1","ziId":"F0FE6B58F5B7","houseId":"e5205b9284b4e29c603383c2d7a48552","groupId":31,"execType":"single","addressName":"餐厅","gatewayName":"小艾B1-L-0228"},{"id":457,"createDate":1578123482000,"updateDate":1578123482000,"modeId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modeType":"1","ziId":"F0FE6BEB4794","houseId":"e5205b9284b4e29c603383c2d7a48552","groupId":31,"execType":"group","addressName":"卫生间","gatewayName":"小艾A1-L-0233"},{"id":458,"createDate":1578123482000,"updateDate":1578123482000,"modeId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modeType":"1","ziId":"F0FE6BC79946","houseId":"e5205b9284b4e29c603383c2d7a48552","groupId":31,"execType":"group","addressName":"客厅","gatewayName":"小艾B1-L-0233"}] + * msg : success + * code : 1 + */ + + private int flag; + private String msg; + private int code; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * id : 454 + * createDate : 1578123466000 + * updateDate : 1578123466000 + * modeId : 3ccfb8c36da348f3b5ddd1ffb03e95ed + * modeType : 1 + * ziId : F0FE6B58F5B7 + * houseId : e5205b9284b4e29c603383c2d7a48552 + * groupId : 31 + * execType : single + * addressName : 餐厅 + * gatewayName : 小艾B1-L-0228 + */ + + private int id; + private long createDate; + private long updateDate; + private String modeId; + private String modeType; + private String ziId; + private String houseId; + private int groupId; + private String execType; + private String addressName; + private String gatewayName; + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + + DataBean dataBean = (DataBean) o; + + return ziId != null ? ziId.equals(dataBean.ziId) : dataBean.ziId == null; + } + + @Override + public int hashCode() { + return ziId != null ? ziId.hashCode() : 0; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getModeId() { + return modeId == null ? "" : modeId; + } + + public void setModeId(String modeId) { + this.modeId = modeId; + } + + public String getModeType() { + return modeType == null ? "" : modeType; + } + + public void setModeType(String modeType) { + this.modeType = modeType; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public int getGroupId() { + return groupId; + } + + public void setGroupId(int groupId) { + this.groupId = groupId; + } + + public String getExecType() { + return execType == null ? "" : execType; + } + + public void setExecType(String execType) { + this.execType = execType; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getGatewayName() { + return gatewayName == null ? "" : gatewayName; + } + + public void setGatewayName(String gatewayName) { + this.gatewayName = gatewayName; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/BaseVersion5Entity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/BaseVersion5Entity.java new file mode 100644 index 0000000..a035931 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/BaseVersion5Entity.java @@ -0,0 +1,684 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2019/4/17. + */ + +public class BaseVersion5Entity implements Serializable { + + /** + * flag : 1 + * data : {"code":"7127EE","order":0} + * msg : + * code : 1 + */ + + private int flag; + private DataBean data; + private String msg; + private int code; + + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public static class DataBean implements Serializable { + /** + * code : 7127EE + * order : 0 + */ + private AdditionBean addition; + private List items; + + public AdditionBean getAddition() { + return addition; + } + + public void setAddition(AdditionBean addition) { + this.addition = addition; + } + + private String code; + private String subType; + private String subtypes; + private String addressId; + private String addressIds; + private String id; + private String groupId; + private String deviceCount; + private String relatedId; + private String parentId; + private String deviceModel; + private String version; + private String deviceId; + private String gatewayName; + private int order; + /** + * apEnable : on + * apModel : WE1 + * apName : 无线紧急按钮 + * apStatus : 1 + * apType : UrgencyButton + * apVersion : V1.104.R.20170828 + * deviceName : 无线紧急按钮 + * id : 101 + * isExist : true + * openFlag : 1 + * parentDeviceAddressId : 1 + * parentDeviceName : 网关 + */ + + private String apEnable; + private String apModel; + private String apName; + private int apStatus; + private String apType; + private String apVersion; + private String deviceName; + private boolean isExist; + private String openFlag; + private String parentDeviceAddressId; + private String parentDeviceName; + private String electric; + private String tmpId; + /** + * ability : WLAN,RegCode,AGW,RD,XUpgrade,TimeSync,ModifyPassword,BRestartFormat,DaySummerTime,WeekSummerTime,AlarmSound + * appId : lcc58705630dd248d1 + * baseline : ARC + * brand : lechange + * canBeUpgrade : false + * channelNum : 0 + * channels : [] + * devLoginName : + * devLoginPassword : + * deviceCatalog : ARC + * deviceType : 022 + * encryptMode : 0 + * floor : 1 + * id : 158 + * name : 客厅的网关 + * platForm : 4 + * status : 1 + * streamPort : 554 + * thirdDeviceModel : G1-V2 + * wifiName : HUAWEI-ysz-HW + */ + + private String ability; + private String appId; + private String baseline; + private String brand; + private boolean canBeUpgrade; + private int channelNum; + private String devLoginName; + private String devLoginPassword; + private String deviceCatalog; + private String deviceType; + private int encryptMode; + private String floor; + private String name; + private int platForm; + private int status; + private int streamPort; + private String thirdDeviceModel; + private String thirdDeviceId; + private String thirdDeviceName; + private String ip; + private String wifiName; + private List channels; + + private String rid; + private String deviceBrand; + private String ziId; + private String addressNo; + + public String getAddressNo() { + return addressNo == null ? "" : addressNo; + } + + public void setAddressNo(String addressNo) { + this.addressNo = addressNo == null ? "" : addressNo; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId == null ? "" : ziId; + } + + public String getGatewayName() { + return gatewayName == null ? "" : gatewayName; + } + + public void setGatewayName(String gatewayName) { + this.gatewayName = gatewayName == null ? "" : gatewayName; + } + + public String getIp() { + return ip == null ? "" : ip; + } + + public void setIp(String ip) { + this.ip = ip == null ? "" : ip; + } + + public String getThirdDeviceName() { + return thirdDeviceName == null ? "" : thirdDeviceName; + } + + public void setThirdDeviceName(String thirdDeviceName) { + this.thirdDeviceName = thirdDeviceName == null ? "" : thirdDeviceName; + } + + public String getThirdDeviceId() { + return thirdDeviceId == null ? "" : thirdDeviceId; + } + + public void setThirdDeviceId(String thirdDeviceId) { + this.thirdDeviceId = thirdDeviceId == null ? "" : thirdDeviceId; + } + + public String getDeviceBrand() { + return deviceBrand == null ? "" : deviceBrand; + } + + public void setDeviceBrand(String deviceBrand) { + this.deviceBrand = deviceBrand; + } + + public String getRid() { + return rid == null ? "" : rid; + } + + public void setRid(String rid) { + this.rid = rid; + } + + public String getTmpId() { + return tmpId == null ? "" : tmpId; + } + + public void setTmpId(String tmpId) { + this.tmpId = tmpId == null ? "" : tmpId; + } + + public String getElectric() { + return electric == null ? "" : electric; + } + + public void setElectric(String electric) { + this.electric = electric == null ? "" : electric; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel == null ? "" : deviceModel; + } + + public String getVersion() { + return version == null ? "" : version; + } + + public void setVersion(String version) { + this.version = version == null ? "" : version; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId == null ? "" : deviceId; + } + + public String getParentId() { + return parentId == null ? "" : parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getRelatedId() { + return relatedId == null ? "" : relatedId; + } + + public void setRelatedId(String relatedId) { + this.relatedId = relatedId; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public String getDeviceCount() { + return deviceCount == null ? "" : deviceCount; + } + + public void setDeviceCount(String deviceCount) { + this.deviceCount = deviceCount; + } + + public String getSubtypes() { + return subtypes == null ? "" : subtypes; + } + + public void setSubtypes(String subtypes) { + this.subtypes = subtypes; + } + + public String getAddressIds() { + return addressIds == null ? "" : addressIds; + } + + public void setAddressIds(String addressIds) { + this.addressIds = addressIds; + } + + public String getGroupId() { + return groupId == null ? "" : groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getCode() { + return code == null ? "" : code; + } + + public void setCode(String code) { + this.code = code == null ? "" : code; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public int getOrder() { + return order; + } + + public void setOrder(int order) { + this.order = order; + } + + public String getApEnable() { + return apEnable == null ? "" : apEnable; + } + + public void setApEnable(String apEnable) { + this.apEnable = apEnable == null ? "" : apEnable; + } + + public String getApModel() { + return apModel == null ? "" : apModel; + } + + public void setApModel(String apModel) { + this.apModel = apModel == null ? "" : apModel; + } + + public String getApName() { + return apName == null ? "" : apName; + } + + public void setApName(String apName) { + this.apName = apName == null ? "" : apName; + } + + public int getApStatus() { + return apStatus; + } + + public void setApStatus(int apStatus) { + this.apStatus = apStatus; + } + + public String getApType() { + return apType == null ? "" : apType; + } + + public void setApType(String apType) { + this.apType = apType == null ? "" : apType; + } + + public String getApVersion() { + return apVersion == null ? "" : apVersion; + } + + public void setApVersion(String apVersion) { + this.apVersion = apVersion == null ? "" : apVersion; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName == null ? "" : deviceName; + } + + public boolean isExist() { + return isExist; + } + + public void setExist(boolean exist) { + isExist = exist; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag == null ? "" : openFlag; + } + + public String getParentDeviceAddressId() { + return parentDeviceAddressId == null ? "" : parentDeviceAddressId; + } + + public void setParentDeviceAddressId(String parentDeviceAddressId) { + this.parentDeviceAddressId = parentDeviceAddressId == null ? "" : parentDeviceAddressId; + } + + public String getParentDeviceName() { + return parentDeviceName == null ? "" : parentDeviceName; + } + + public void setParentDeviceName(String parentDeviceName) { + this.parentDeviceName = parentDeviceName == null ? "" : parentDeviceName; + } + + public String getAbility() { + return ability == null ? "" : ability; + } + + public void setAbility(String ability) { + this.ability = ability == null ? "" : ability; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId == null ? "" : appId; + } + + public String getBaseline() { + return baseline == null ? "" : baseline; + } + + public void setBaseline(String baseline) { + this.baseline = baseline == null ? "" : baseline; + } + + public String getBrand() { + return brand == null ? "" : brand; + } + + public void setBrand(String brand) { + this.brand = brand == null ? "" : brand; + } + + public boolean isCanBeUpgrade() { + return canBeUpgrade; + } + + public void setCanBeUpgrade(boolean canBeUpgrade) { + this.canBeUpgrade = canBeUpgrade; + } + + public int getChannelNum() { + return channelNum; + } + + public void setChannelNum(int channelNum) { + this.channelNum = channelNum; + } + + public String getDevLoginName() { + return devLoginName == null ? "" : devLoginName; + } + + public void setDevLoginName(String devLoginName) { + this.devLoginName = devLoginName == null ? "" : devLoginName; + } + + public String getDevLoginPassword() { + return devLoginPassword == null ? "" : devLoginPassword; + } + + public void setDevLoginPassword(String devLoginPassword) { + this.devLoginPassword = devLoginPassword == null ? "" : devLoginPassword; + } + + public String getDeviceCatalog() { + return deviceCatalog == null ? "" : deviceCatalog; + } + + public void setDeviceCatalog(String deviceCatalog) { + this.deviceCatalog = deviceCatalog == null ? "" : deviceCatalog; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType == null ? "" : deviceType; + } + + public int getEncryptMode() { + return encryptMode; + } + + public void setEncryptMode(int encryptMode) { + this.encryptMode = encryptMode; + } + + public String getFloor() { + return floor == null ? "" : floor; + } + + public void setFloor(String floor) { + this.floor = floor == null ? "" : floor; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public int getPlatForm() { + return platForm; + } + + public void setPlatForm(int platForm) { + this.platForm = platForm; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public int getStreamPort() { + return streamPort; + } + + public void setStreamPort(int streamPort) { + this.streamPort = streamPort; + } + + public String getThirdDeviceModel() { + return thirdDeviceModel == null ? "" : thirdDeviceModel; + } + + public void setThirdDeviceModel(String thirdDeviceModel) { + this.thirdDeviceModel = thirdDeviceModel == null ? "" : thirdDeviceModel; + } + + public String getWifiName() { + return wifiName == null ? "" : wifiName; + } + + public void setWifiName(String wifiName) { + this.wifiName = wifiName == null ? "" : wifiName; + } + + public List getChannels() { + if (channels == null) { + return new ArrayList<>(); + } + return channels; + } + + public void setChannels(List channels) { + this.channels = channels; + } + + public List getItems() { + return items; + } + + public void setItems(List items) { + this.items = items; + } + + public static class ItemsBean implements Serializable{ + /** + * subtype : 0 + * addressId : 1 + */ + + private String subtype; + private String addressId; + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId == null ? "" : addressId; + } + + public String getSubtype() { + return subtype == null ? "" : subtype; + } + + public void setSubtype(String subtype) { + this.subtype = subtype; + } + } + } + + public static class AdditionBean implements Serializable { + + /** + * stopCode : BF675A38c03a + * openCode : BF675A3840da + * closeCode : BF675A3820ba + * codePid : a0f23028b44e430891fbf1a9e7b996b7 + */ + + private String stopCode; + private String openCode; + private String closeCode; + private String codePid; + + public String getStopCode() { + return stopCode == null ? "" : stopCode; + } + + public void setStopCode(String stopCode) { + this.stopCode = stopCode == null ? "" : stopCode; + } + + public String getOpenCode() { + return openCode == null ? "" : openCode; + } + + public void setOpenCode(String openCode) { + this.openCode = openCode == null ? "" : openCode; + } + + public String getCloseCode() { + return closeCode == null ? "" : closeCode; + } + + public void setCloseCode(String closeCode) { + this.closeCode = closeCode == null ? "" : closeCode; + } + + public String getCodePid() { + return codePid == null ? "" : codePid; + } + + public void setCodePid(String codePid) { + this.codePid = codePid == null ? "" : codePid; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/BaseVersionMultiEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/BaseVersionMultiEntity.java new file mode 100644 index 0000000..a6e5319 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/BaseVersionMultiEntity.java @@ -0,0 +1,55 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.io.Serializable; +import java.util.List; + +/** + * Created by Administrator on 2019/4/17. + */ + +public class BaseVersionMultiEntity implements Serializable { + + /** + * flag : 1 + * data : ["62a4b2d86edd4bd16deb9ea5e7b1fb12","37e576806668e0e055bb2f0a99af3798","c8b2c5f9508efbdc56d946cf26a76e06"] + * msg : + * code : 1 + */ + + private int flag; + private String msg; + private int code; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/BindDateEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/BindDateEvent.java new file mode 100644 index 0000000..f9ff153 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/BindDateEvent.java @@ -0,0 +1,22 @@ +package com.yonsz.z1.database.entity.entity5; + +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; + +public class BindDateEvent { + private DeviceEntityV4.DataBean.DevicesBean mDevicesBean; + private String mThisClassName; + + public BindDateEvent(DeviceEntityV4.DataBean.DevicesBean devicesBean, String thisClassName) { + // TODO Auto-generated constructor stub + mDevicesBean = devicesBean; + mThisClassName = thisClassName; + } + + public DeviceEntityV4.DataBean.DevicesBean getDate() { + return mDevicesBean; + } + + public String getClassName() { + return mThisClassName; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/ChannelLearnEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ChannelLearnEntity.java new file mode 100644 index 0000000..5ef0275 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ChannelLearnEntity.java @@ -0,0 +1,57 @@ +package com.yonsz.z1.database.entity.entity5; + +public class ChannelLearnEntity { + /** + * deviceId : string + * interval : 0 + * key : string + * order : 0 + * ziId : string + */ + + private String deviceId; + private int interval; + private String key; + private int order; + private String ziId; + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId == null ? "" : deviceId; + } + + public int getInterval() { + return interval; + } + + public void setInterval(int interval) { + this.interval = interval; + } + + public String getKey() { + return key == null ? "" : key; + } + + public void setKey(String key) { + this.key = key == null ? "" : key; + } + + public int getOrder() { + return order; + } + + public void setOrder(int order) { + this.order = order; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId == null ? "" : ziId; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/ColorTemperatureEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ColorTemperatureEntity.java new file mode 100644 index 0000000..8b91e6a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ColorTemperatureEntity.java @@ -0,0 +1,191 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.List; + +public class ColorTemperatureEntity { + + /** + * flag : 1 + * data : [{"createDate":1626339948000,"updateDate":1626339948000,"name":"warm","label":"暖光","deviceType":"008","deviceModel":"8","attrs":[{"createDate":1626340371000,"updateDate":1626340371000,"name":"brightness","label":"亮度","value":"40"},{"createDate":1626340613000,"updateDate":1626340613000,"name":"colorTemp","label":"色温","value":"80"}]},{"createDate":1626340046000,"updateDate":1626340046000,"name":"white","label":"白光","deviceType":"008","deviceModel":"8","attrs":[{"createDate":1626344799000,"updateDate":1626344799000,"name":"brightness","label":"亮度","value":"100"},{"createDate":1626344809000,"updateDate":1626344809000,"name":"colorTemp","label":"色温","value":"20"}]},{"createDate":1626340097000,"updateDate":1626340097000,"name":"warm_white","label":"暖白光","deviceType":"008","deviceModel":"8","attrs":[{"createDate":1626344826000,"updateDate":1626344826000,"name":"brightness","label":"亮度","value":"80"},{"createDate":1626344839000,"updateDate":1626344839000,"name":"colorTemp","label":"色温","value":"90"}]},{"createDate":1626340097000,"updateDate":1626340097000,"name":"cold","label":"冷光","deviceType":"008","deviceModel":"8","attrs":[{"createDate":1626344826000,"updateDate":1626344826000,"name":"brightness","label":"亮度","value":"68"},{"createDate":1626344839000,"updateDate":1626344839000,"name":"colorTemp","label":"色温","value":"78"}]}] + * msg : success + * code : 1 + */ + + private int flag; + private String msg; + private int code; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * createDate : 1626339948000 + * updateDate : 1626339948000 + * name : warm + * label : 暖光 + * deviceType : 008 + * deviceModel : 8 + * attrs : [{"createDate":1626340371000,"updateDate":1626340371000,"name":"brightness","label":"亮度","value":"40"},{"createDate":1626340613000,"updateDate":1626340613000,"name":"colorTemp","label":"色温","value":"80"}] + */ + + private long createDate; + private long updateDate; + private String name; + private String label; + private String deviceType; + private String deviceModel; + private String id; + private List attrs; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceModel() { + return deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public List getAttrs() { + return attrs; + } + + public void setAttrs(List attrs) { + this.attrs = attrs; + } + + public static class AttrsBean { + /** + * createDate : 1626340371000 + * updateDate : 1626340371000 + * name : brightness + * label : 亮度 + * value : 40 + */ + + private long createDate; + private long updateDate; + private String name; + private String label; + private String value; + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/EditHouseEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/EditHouseEvent.java new file mode 100644 index 0000000..966c69b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/EditHouseEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entity5; + +import com.yonsz.z1.createfamily.HouseEntity; + +import java.util.ArrayList; +import java.util.List; + +public class EditHouseEvent { + private boolean mMsg; + + public EditHouseEvent(boolean msg) { + mMsg = msg; + } + + public boolean getMsgBoolean() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/ElectricMonthEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ElectricMonthEntity.java new file mode 100644 index 0000000..8a08fae --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ElectricMonthEntity.java @@ -0,0 +1,86 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +public class ElectricMonthEntity { + + /** + * code : 1 + * data : [{"date":"20200410","value":"0"},{"date":"20200421","value":"0.00"},{"date":"20200420","value":"0.00"},{"date":"20200403","value":"0"},{"date":"20200414","value":"0"},{"date":"20200402","value":"0"},{"date":"20200413","value":"0"},{"date":"20200401","value":"0"},{"date":"20200412","value":"0"},{"date":"20200411","value":"0"},{"date":"20200407","value":"0"},{"date":"20200418","value":"0"},{"date":"20200406","value":"0"},{"date":"20200417","value":"0.18"},{"date":"20200405","value":"0"},{"date":"20200416","value":"0.10"},{"date":"20200404","value":"0"},{"date":"20200415","value":"0"},{"date":"20200409","value":"0"},{"date":"20200408","value":"0"},{"date":"20200419","value":"0"}] + * flag : 1 + * msg : success + */ + + private int code; + private int flag; + private String msg; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg == null ? "" : msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean implements Comparable { + /** + * date : 20200410 + * value : 0 + */ + + private String date; + private String value; + + public String getDate() { + return date == null ? "" : date; + } + + public void setDate(String date) { + this.date = date == null ? "" : date; + } + + public String getValue() { + return value == null ? "" : value; + } + + public void setValue(String value) { + this.value = value == null ? "" : value; + } + + @Override + public int compareTo(DataBean o) { + int i = Integer.parseInt(this.getDate()) - Integer.parseInt(o.getDate()); + return i; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/ElectricQuantityEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ElectricQuantityEntity.java new file mode 100644 index 0000000..aba8cb4 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ElectricQuantityEntity.java @@ -0,0 +1,146 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +public class ElectricQuantityEntity { + + /** + * code : 1 + * data : {"curCurrent":"0","curPower":"0","curVoltage":"2277","status":[{"date":"202004","value":"0.28"}],"tatal":"0.28","today":"0.00"} + * flag : 1 + * msg : success + */ + + private int code; + private DataBean data; + private int flag; + private String msg; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg == null ? "" : msg; + } + + public static class DataBean { + /** + * curCurrent : 0 + * curPower : 0 + * curVoltage : 2277 + * status : [{"date":"202004","value":"0.28"}] + * tatal : 0.28 + * today : 0.00 + */ + + private String curCurrent; + private String curPower; + private String curVoltage; + private String total; + private String today; + private List status; + + public String getCurCurrent() { + return curCurrent == null ? "" : curCurrent; + } + + public void setCurCurrent(String curCurrent) { + this.curCurrent = curCurrent == null ? "" : curCurrent; + } + + public String getCurPower() { + return curPower == null ? "" : curPower; + } + + public void setCurPower(String curPower) { + this.curPower = curPower == null ? "" : curPower; + } + + public String getCurVoltage() { + return curVoltage == null ? "" : curVoltage; + } + + public void setCurVoltage(String curVoltage) { + this.curVoltage = curVoltage == null ? "" : curVoltage; + } + + public String getTotal() { + return total == null ? "" : total; + } + + public void setTotal(String total) { + this.total = total == null ? "" : total; + } + + public String getToday() { + return today == null ? "" : today; + } + + public void setToday(String today) { + this.today = today == null ? "" : today; + } + + public List getStatus() { + if (status == null) { + return new ArrayList<>(); + } + return status; + } + + public void setStatus(List status) { + this.status = status; + } + + public static class StatusBean { + /** + * date : 202004 + * value : 0.28 + */ + + private String date; + private String value; + + public String getDate() { + return date == null ? "" : date; + } + + public void setDate(String date) { + this.date = date == null ? "" : date; + } + + public String getValue() { + return value == null ? "" : value; + } + + public void setValue(String value) { + this.value = value == null ? "" : value; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/EventPacketEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/EventPacketEntity.java new file mode 100644 index 0000000..27601c4 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/EventPacketEntity.java @@ -0,0 +1,21 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.net.DatagramPacket; +import java.util.List; + +/** + * Created by Administrator on 2017/9/6. + */ +public class EventPacketEntity { + private List mMsg; + + public EventPacketEntity(List packets) { + // TODO Auto-generated constructor stub + mMsg = packets; + } + + public List getMsg() { + return mMsg; + } +} + diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/ExecConditionEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ExecConditionEvent.java new file mode 100644 index 0000000..18c96e6 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ExecConditionEvent.java @@ -0,0 +1,20 @@ +package com.yonsz.z1.database.entity.entity5; + +public class ExecConditionEvent { + private AutomationEntity.DataBean.ExecConditionsBean mActionBean; + private int mPosition; + + public ExecConditionEvent(AutomationEntity.DataBean.ExecConditionsBean dataList, int position) { + // TODO Auto-generated constructor stub + mActionBean = dataList; + mPosition = position; + } + + public AutomationEntity.DataBean.ExecConditionsBean getMsg() { + return mActionBean; + } + + public int getPosotion() { + return mPosition; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/FeedBackEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/FeedBackEntity.java new file mode 100644 index 0000000..7f6ac9e --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/FeedBackEntity.java @@ -0,0 +1,178 @@ +package com.yonsz.z1.database.entity.entity5; + +/** + * Created by Administrator on 2019/12/26. + */ + +public class FeedBackEntity { + + /** + * flag : 1 + * data : {"id":2,"createDate":1577348777446,"updateDate":1577348777446,"appId":"1103","userId":"e7fe34a47b2d491bae9dcdb6c0078735","phone":"","type":2,"category":2,"description":"KTV","attachments":"","content":"路由器型号:小米路由器2","deviceId":"F0FE6B58E1FB"} + * msg : + * code : 1 + */ + + private int flag; + private DataBean data; + private String msg; + private int code; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public static class DataBean { + /** + * id : 2 + * createDate : 1577348777446 + * updateDate : 1577348777446 + * appId : 1103 + * userId : e7fe34a47b2d491bae9dcdb6c0078735 + * phone : + * type : 2 + * category : 2 + * description : KTV + * attachments : + * content : 路由器型号:小米路由器2 + * deviceId : F0FE6B58E1FB + */ + + private int id; + private long createDate; + private long updateDate; + private String appId; + private String userId; + private String phone; + private int type; + private int category; + private String description; + private String attachments; + private String content; + private String deviceId; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getPhone() { + return phone == null ? "" : phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public int getCategory() { + return category; + } + + public void setCategory(int category) { + this.category = category; + } + + public String getDescription() { + return description == null ? "" : description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getAttachments() { + return attachments == null ? "" : attachments; + } + + public void setAttachments(String attachments) { + this.attachments = attachments; + } + + public String getContent() { + return content == null ? "" : content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/FeedBackTypeEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/FeedBackTypeEntity.java new file mode 100644 index 0000000..bb1473e --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/FeedBackTypeEntity.java @@ -0,0 +1,143 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2019/12/27. + */ + +public class FeedBackTypeEntity { + /** + * code : 1 + * data : [{"category":1,"content":"","createDate":1575968437000,"id":1,"name":"设备使用问题","sort":1,"type":1,"updateDate":1575971413000},{"category":2,"content":"路由器型号:","createDate":1575968512000,"id":2,"name":"设备配网问题","sort":2,"type":2,"updateDate":1575968512000},{"category":2,"content":"","createDate":1575968537000,"id":3,"name":"APP使用问题","sort":3,"type":3,"updateDate":1575968537000},{"category":3,"content":"","createDate":1575968719000,"id":4,"name":"设备联控问题","sort":4,"type":4,"updateDate":1575968719000},{"category":2,"content":"","createDate":1575968744000,"id":5,"name":"红外学习问题","sort":5,"type":5,"updateDate":1575968744000},{"category":1,"content":"","createDate":1575968767000,"id":6,"name":"子设备问题","sort":6,"type":6,"updateDate":1575968767000},{"category":3,"content":"","createDate":1575968787000,"id":7,"name":"设备离线问题","sort":7,"type":7,"updateDate":1575968787000},{"category":3,"content":"","createDate":1575968803000,"id":8,"name":"性能优化问题","sort":8,"type":8,"updateDate":1575968803000},{"category":3,"content":"","createDate":1575968823000,"id":9,"name":"其它","sort":999,"type":999,"updateDate":1575968823000}] + * flag : 1 + * msg : + */ + + private int code; + private int flag; + private String msg; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * category : 1 + * content : + * createDate : 1575968437000 + * id : 1 + * name : 设备使用问题 + * sort : 1 + * type : 1 + * updateDate : 1575971413000 + */ + + private int category; + private String content; + private long createDate; + private int id; + private String name; + private int sort; + private String type; + private long updateDate; + + public int getCategory() { + return category; + } + + public void setCategory(int category) { + this.category = category; + } + + public String getContent() { + return content == null ? "" : content; + } + + public void setContent(String content) { + this.content = content; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public String getType() { + return type == null ? "" : type; + } + + public void setType(String type) { + this.type = type; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/FindEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/FindEntity.java new file mode 100644 index 0000000..299f2c5 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/FindEntity.java @@ -0,0 +1,652 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +public class FindEntity { + + /** + * code : 1 + * data : {"current":1,"latest":[{"brief":"《全屋智能语音遥控器-小艾》视频教程","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/4.png","id":27,"imgScaleLong":280,"imgScaleWide":164,"likes":16,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338125","pageview":26,"title":"《全屋智能语音遥控器-小艾》视频教程视频教程视频教程视频教程视频教程"},{"brief":"图文教程之如何添加电视","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/ds.jpg","id":32,"imgScaleLong":280,"imgScaleWide":164,"likes":510,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728337953","pageview":552,"title":"图文教程之如何添加电视"},{"brief":"图文教程之如何添加风扇(扫地机)","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/fs.jpg","id":31,"imgScaleLong":280,"imgScaleWide":164,"likes":521,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338141","pageview":585,"title":"图文教程之如何添加风扇(扫地机)"},{"brief":"图文教程之如何添加智能插座","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/cz.jpg","id":30,"imgScaleLong":280,"imgScaleWide":164,"likes":210,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338137","pageview":1252,"title":"图文教程之如何添加智能插座"}],"pages":0,"pdg":[{"brief":"图文教程之小艾如何配网","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/5.png","id":28,"imgScaleLong":280,"imgScaleWide":164,"likes":25,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338129","pageview":58,"title":"图文教程之小艾如何配网"},{"brief":"图文教程之如何添加电视","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/ds.jpg","id":32,"imgScaleLong":280,"imgScaleWide":164,"likes":510,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728337953","pageview":552,"title":"图文教程之如何添加电视"},{"brief":"图文教程之如何添加风扇(扫地机)","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/fs.jpg","id":31,"imgScaleLong":280,"imgScaleWide":164,"likes":521,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338141","pageview":585,"title":"图文教程之如何添加风扇(扫地机)"},{"brief":"图文教程之如何添加智能插座","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/cz.jpg","id":30,"imgScaleLong":280,"imgScaleWide":164,"likes":210,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338137","pageview":1252,"title":"图文教程之如何添加智能插座"}],"recommend":[{"brief":"深圳永顺智信息科技有限公司","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/11.png","id":24,"imgScaleLong":280,"imgScaleWide":164,"likes":12,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338113","pageview":33,"title":"深圳永顺智信息科技有限公司"},{"brief":"科技改变生活,开启智慧未来生活","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/1.png","id":25,"imgScaleLong":280,"imgScaleWide":164,"likes":2,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338117","pageview":19,"title":"科技改变生活,开启智慧未来生活"},{"brief":"有了它,天猫精灵更完美","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/2.png","id":26,"imgScaleLong":280,"imgScaleWide":164,"likes":22,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338121","pageview":28,"title":"有了它,天猫精灵更完美"},{"brief":"《全屋智能语音遥控器-小艾》视频教程","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/4.png","id":27,"imgScaleLong":280,"imgScaleWide":164,"likes":16,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338125","pageview":26,"title":"《全屋智能语音遥控器-小艾》视频教程视频教程视频教程视频教程视频教程"}],"searchCount":true,"size":10,"slideshow":[{"brief":"小水滴家居控制必备神器","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/22/8.jpg","id":20,"imgScaleLong":355,"imgScaleWide":135,"likes":2,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338161","pageview":9,"title":"小水滴"},{"brief":"【案例参考】全屋智能家居方案怎么设计?这套方案客户一定满意","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/22/3.png","id":21,"imgScaleLong":355,"imgScaleWide":135,"likes":1535,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338165","pageview":12541,"title":"智能家居设计方案"},{"brief":"家装季:智能家居装修您知多少?","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/22/4.png","id":22,"imgScaleLong":355,"imgScaleWide":135,"likes":11,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338169","pageview":113,"title":"家装季:智能家居装修您知多少?"},{"brief":"2020年寻找城市合伙人...","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/22/5.png","id":23,"imgScaleLong":355,"imgScaleWide":135,"likes":10,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338173","pageview":34,"title":"2020年寻找城市合伙人..."}],"total":0} + * flag : 1 + * msg : + */ + + private int code; + private DataBean data; + private int flag; + private String msg; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg == null ? "" : msg; + } + + public static class DataBean { + /** + * current : 1 + * latest : [{"brief":"《全屋智能语音遥控器-小艾》视频教程","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/4.png","id":27,"imgScaleLong":280,"imgScaleWide":164,"likes":16,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338125","pageview":26,"title":"《全屋智能语音遥控器-小艾》视频教程视频教程视频教程视频教程视频教程"},{"brief":"图文教程之如何添加电视","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/ds.jpg","id":32,"imgScaleLong":280,"imgScaleWide":164,"likes":510,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728337953","pageview":552,"title":"图文教程之如何添加电视"},{"brief":"图文教程之如何添加风扇(扫地机)","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/fs.jpg","id":31,"imgScaleLong":280,"imgScaleWide":164,"likes":521,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338141","pageview":585,"title":"图文教程之如何添加风扇(扫地机)"},{"brief":"图文教程之如何添加智能插座","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/cz.jpg","id":30,"imgScaleLong":280,"imgScaleWide":164,"likes":210,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338137","pageview":1252,"title":"图文教程之如何添加智能插座"}] + * pages : 0 + * pdg : [{"brief":"图文教程之小艾如何配网","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/5.png","id":28,"imgScaleLong":280,"imgScaleWide":164,"likes":25,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338129","pageview":58,"title":"图文教程之小艾如何配网"},{"brief":"图文教程之如何添加电视","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/ds.jpg","id":32,"imgScaleLong":280,"imgScaleWide":164,"likes":510,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728337953","pageview":552,"title":"图文教程之如何添加电视"},{"brief":"图文教程之如何添加风扇(扫地机)","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/fs.jpg","id":31,"imgScaleLong":280,"imgScaleWide":164,"likes":521,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338141","pageview":585,"title":"图文教程之如何添加风扇(扫地机)"},{"brief":"图文教程之如何添加智能插座","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/cz.jpg","id":30,"imgScaleLong":280,"imgScaleWide":164,"likes":210,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338137","pageview":1252,"title":"图文教程之如何添加智能插座"}] + * recommend : [{"brief":"深圳永顺智信息科技有限公司","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/11.png","id":24,"imgScaleLong":280,"imgScaleWide":164,"likes":12,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338113","pageview":33,"title":"深圳永顺智信息科技有限公司"},{"brief":"科技改变生活,开启智慧未来生活","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/1.png","id":25,"imgScaleLong":280,"imgScaleWide":164,"likes":2,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338117","pageview":19,"title":"科技改变生活,开启智慧未来生活"},{"brief":"有了它,天猫精灵更完美","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/2.png","id":26,"imgScaleLong":280,"imgScaleWide":164,"likes":22,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338121","pageview":28,"title":"有了它,天猫精灵更完美"},{"brief":"《全屋智能语音遥控器-小艾》视频教程","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/4.png","id":27,"imgScaleLong":280,"imgScaleWide":164,"likes":16,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338125","pageview":26,"title":"《全屋智能语音遥控器-小艾》视频教程视频教程视频教程视频教程视频教程"}] + * searchCount : true + * size : 10 + * slideshow : [{"brief":"小水滴家居控制必备神器","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/22/8.jpg","id":20,"imgScaleLong":355,"imgScaleWide":135,"likes":2,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338161","pageview":9,"title":"小水滴"},{"brief":"【案例参考】全屋智能家居方案怎么设计?这套方案客户一定满意","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/22/3.png","id":21,"imgScaleLong":355,"imgScaleWide":135,"likes":1535,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338165","pageview":12541,"title":"智能家居设计方案"},{"brief":"家装季:智能家居装修您知多少?","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/22/4.png","id":22,"imgScaleLong":355,"imgScaleWide":135,"likes":11,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338169","pageview":113,"title":"家装季:智能家居装修您知多少?"},{"brief":"2020年寻找城市合伙人...","coverImg":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/22/5.png","id":23,"imgScaleLong":355,"imgScaleWide":135,"likes":10,"linkUrl":"http://api.yonsz2.veryreader.com/web/cms/article/view/1728338173","pageview":34,"title":"2020年寻找城市合伙人..."}] + * total : 0 + */ + + private int current; + private int pages; + private boolean searchCount; + private int size; + private int total; + private List latest; + private List pdg; + private List recommend; + private List slideshow; + private List records; + + public int getCurrent() { + return current; + } + + public void setCurrent(int current) { + this.current = current; + } + + public int getPages() { + return pages; + } + + public void setPages(int pages) { + this.pages = pages; + } + + public boolean isSearchCount() { + return searchCount; + } + + public void setSearchCount(boolean searchCount) { + this.searchCount = searchCount; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRecords() { + if (records == null) { + return new ArrayList<>(); + } + return records; + } + + public void setRecords(List records) { + this.records = records; + } + + public List getLatest() { + if (latest == null) { + return new ArrayList<>(); + } + return latest; + } + + public void setLatest(List latest) { + this.latest = latest; + } + + public List getPdg() { + if (pdg == null) { + return new ArrayList<>(); + } + return pdg; + } + + public void setPdg(List pdg) { + this.pdg = pdg; + } + + public List getRecommend() { + if (recommend == null) { + return new ArrayList<>(); + } + return recommend; + } + + public void setRecommend(List recommend) { + this.recommend = recommend; + } + + public List getSlideshow() { + if (slideshow == null) { + return new ArrayList<>(); + } + return slideshow; + } + + public void setSlideshow(List slideshow) { + this.slideshow = slideshow; + } + + public static class RecordsBean { + /** + * brief : 《全屋智能语音遥控器-小艾》视频教程 + * coverImg : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/4.png + * id : 27 + * imgScaleLong : 280 + * imgScaleWide : 164 + * likes : 16 + * linkUrl : http://api.yonsz2.veryreader.com/web/cms/article/view/1728338125 + * pageview : 26 + * title : 《全屋智能语音遥控器-小艾》视频教程视频教程视频教程视频教程视频教程 + */ + + private String brief; + private String coverImg; + private int id; + private int imgScaleLong; + private int imgScaleWide; + private String likes; + private String linkUrl; + private String pageview; + private String title; + + public String getBrief() { + return brief == null ? "" : brief; + } + + public void setBrief(String brief) { + this.brief = brief == null ? "" : brief; + } + + public String getCoverImg() { + return coverImg == null ? "" : coverImg; + } + + public void setCoverImg(String coverImg) { + this.coverImg = coverImg == null ? "" : coverImg; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getImgScaleLong() { + return imgScaleLong; + } + + public void setImgScaleLong(int imgScaleLong) { + this.imgScaleLong = imgScaleLong; + } + + public int getImgScaleWide() { + return imgScaleWide; + } + + public void setImgScaleWide(int imgScaleWide) { + this.imgScaleWide = imgScaleWide; + } + + + public String getLinkUrl() { + return linkUrl == null ? "" : linkUrl; + } + + public void setLinkUrl(String linkUrl) { + this.linkUrl = linkUrl == null ? "" : linkUrl; + } + + public String getLikes() { + return likes == null ? "" : likes; + } + + public void setLikes(String likes) { + this.likes = likes == null ? "" : likes; + } + + public String getPageview() { + return pageview == null ? "" : pageview; + } + + public void setPageview(String pageview) { + this.pageview = pageview == null ? "" : pageview; + } + + public String getTitle() { + return title == null ? "" : title; + } + + public void setTitle(String title) { + this.title = title == null ? "" : title; + } + } + + public static class LatestBean { + /** + * brief : 《全屋智能语音遥控器-小艾》视频教程 + * coverImg : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/4.png + * id : 27 + * imgScaleLong : 280 + * imgScaleWide : 164 + * likes : 16 + * linkUrl : http://api.yonsz2.veryreader.com/web/cms/article/view/1728338125 + * pageview : 26 + * title : 《全屋智能语音遥控器-小艾》视频教程视频教程视频教程视频教程视频教程 + */ + + private String brief; + private String coverImg; + private int id; + private int imgScaleLong; + private int imgScaleWide; + private int likes; + private String linkUrl; + private int pageview; + private String title; + + public String getBrief() { + return brief == null ? "" : brief; + } + + public void setBrief(String brief) { + this.brief = brief == null ? "" : brief; + } + + public String getCoverImg() { + return coverImg == null ? "" : coverImg; + } + + public void setCoverImg(String coverImg) { + this.coverImg = coverImg == null ? "" : coverImg; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getImgScaleLong() { + return imgScaleLong; + } + + public void setImgScaleLong(int imgScaleLong) { + this.imgScaleLong = imgScaleLong; + } + + public int getImgScaleWide() { + return imgScaleWide; + } + + public void setImgScaleWide(int imgScaleWide) { + this.imgScaleWide = imgScaleWide; + } + + public int getLikes() { + return likes; + } + + public void setLikes(int likes) { + this.likes = likes; + } + + public String getLinkUrl() { + return linkUrl == null ? "" : linkUrl; + } + + public void setLinkUrl(String linkUrl) { + this.linkUrl = linkUrl == null ? "" : linkUrl; + } + + public int getPageview() { + return pageview; + } + + public void setPageview(int pageview) { + this.pageview = pageview; + } + + public String getTitle() { + return title == null ? "" : title; + } + + public void setTitle(String title) { + this.title = title == null ? "" : title; + } + } + + public static class PdgBean { + /** + * brief : 图文教程之小艾如何配网 + * coverImg : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/5.png + * id : 28 + * imgScaleLong : 280 + * imgScaleWide : 164 + * likes : 25 + * linkUrl : http://api.yonsz2.veryreader.com/web/cms/article/view/1728338129 + * pageview : 58 + * title : 图文教程之小艾如何配网 + */ + + private String brief; + private String coverImg; + private int id; + private int imgScaleLong; + private int imgScaleWide; + private int likes; + private String linkUrl; + private int pageview; + private String title; + + public String getBrief() { + return brief == null ? "" : brief; + } + + public void setBrief(String brief) { + this.brief = brief == null ? "" : brief; + } + + public String getCoverImg() { + return coverImg == null ? "" : coverImg; + } + + public void setCoverImg(String coverImg) { + this.coverImg = coverImg == null ? "" : coverImg; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getImgScaleLong() { + return imgScaleLong; + } + + public void setImgScaleLong(int imgScaleLong) { + this.imgScaleLong = imgScaleLong; + } + + public int getImgScaleWide() { + return imgScaleWide; + } + + public void setImgScaleWide(int imgScaleWide) { + this.imgScaleWide = imgScaleWide; + } + + public int getLikes() { + return likes; + } + + public void setLikes(int likes) { + this.likes = likes; + } + + public String getLinkUrl() { + return linkUrl == null ? "" : linkUrl; + } + + public void setLinkUrl(String linkUrl) { + this.linkUrl = linkUrl == null ? "" : linkUrl; + } + + public int getPageview() { + return pageview; + } + + public void setPageview(int pageview) { + this.pageview = pageview; + } + + public String getTitle() { + return title == null ? "" : title; + } + + public void setTitle(String title) { + this.title = title == null ? "" : title; + } + } + + public static class RecommendBean { + /** + * brief : 深圳永顺智信息科技有限公司 + * coverImg : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/23/11.png + * id : 24 + * imgScaleLong : 280 + * imgScaleWide : 164 + * likes : 12 + * linkUrl : http://api.yonsz2.veryreader.com/web/cms/article/view/1728338113 + * pageview : 33 + * title : 深圳永顺智信息科技有限公司 + */ + + private String brief; + private String coverImg; + private int id; + private int imgScaleLong; + private int imgScaleWide; + private int likes; + private String linkUrl; + private int pageview; + private String title; + + public String getBrief() { + return brief == null ? "" : brief; + } + + public void setBrief(String brief) { + this.brief = brief == null ? "" : brief; + } + + public String getCoverImg() { + return coverImg == null ? "" : coverImg; + } + + public void setCoverImg(String coverImg) { + this.coverImg = coverImg == null ? "" : coverImg; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getImgScaleLong() { + return imgScaleLong; + } + + public void setImgScaleLong(int imgScaleLong) { + this.imgScaleLong = imgScaleLong; + } + + public int getImgScaleWide() { + return imgScaleWide; + } + + public void setImgScaleWide(int imgScaleWide) { + this.imgScaleWide = imgScaleWide; + } + + public int getLikes() { + return likes; + } + + public void setLikes(int likes) { + this.likes = likes; + } + + public String getLinkUrl() { + return linkUrl == null ? "" : linkUrl; + } + + public void setLinkUrl(String linkUrl) { + this.linkUrl = linkUrl == null ? "" : linkUrl; + } + + public int getPageview() { + return pageview; + } + + public void setPageview(int pageview) { + this.pageview = pageview; + } + + public String getTitle() { + return title == null ? "" : title; + } + + public void setTitle(String title) { + this.title = title == null ? "" : title; + } + } + + public static class SlideshowBean { + /** + * brief : 小水滴家居控制必备神器 + * coverImg : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2020/06/22/8.jpg + * id : 20 + * imgScaleLong : 355 + * imgScaleWide : 135 + * likes : 2 + * linkUrl : http://api.yonsz2.veryreader.com/web/cms/article/view/1728338161 + * pageview : 9 + * title : 小水滴 + */ + + private String brief; + private String coverImg; + private int id; + private int imgScaleLong; + private int imgScaleWide; + private int likes; + private String linkUrl; + private int pageview; + private String title; + + public String getBrief() { + return brief == null ? "" : brief; + } + + public void setBrief(String brief) { + this.brief = brief == null ? "" : brief; + } + + public String getCoverImg() { + return coverImg == null ? "" : coverImg; + } + + public void setCoverImg(String coverImg) { + this.coverImg = coverImg == null ? "" : coverImg; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getImgScaleLong() { + return imgScaleLong; + } + + public void setImgScaleLong(int imgScaleLong) { + this.imgScaleLong = imgScaleLong; + } + + public int getImgScaleWide() { + return imgScaleWide; + } + + public void setImgScaleWide(int imgScaleWide) { + this.imgScaleWide = imgScaleWide; + } + + public int getLikes() { + return likes; + } + + public void setLikes(int likes) { + this.likes = likes; + } + + public String getLinkUrl() { + return linkUrl == null ? "" : linkUrl; + } + + public void setLinkUrl(String linkUrl) { + this.linkUrl = linkUrl == null ? "" : linkUrl; + } + + public int getPageview() { + return pageview; + } + + public void setPageview(int pageview) { + this.pageview = pageview; + } + + public String getTitle() { + return title == null ? "" : title; + } + + public void setTitle(String title) { + this.title = title == null ? "" : title; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/FloorRoomsEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/FloorRoomsEntity.java new file mode 100644 index 0000000..12bcf13 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/FloorRoomsEntity.java @@ -0,0 +1,84 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2020/2/27. + */ + +public class FloorRoomsEntity { + + /** + * floorList : -1,1,2,3,4,5,6 + * rooms : [{"id":"123"},{"floor":"2","name":"010房间","roomType":42},{"floor":"3","name":"011房间","roomType":"53"}] + */ + + private String floorList; + private List rooms; + + public String getFloorList() { + return floorList == null ? "" : floorList; + } + + public void setFloorList(String floorList) { + this.floorList = floorList; + } + + public List getRooms() { + if (rooms == null) { + return new ArrayList<>(); + } + return rooms; + } + + public void setRooms(List rooms) { + this.rooms = rooms; + } + + public static class RoomsBean { + /** + * id : 123 + * floor : 2 + * name : 010房间 + * roomType : 42 + */ + + private String id; + private String floor; + private String name; + private String roomType; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getFloor() { + return floor == null ? "" : floor; + } + + public void setFloor(String floor) { + this.floor = floor; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getRoomType() { + return roomType == null ? "" : roomType; + } + + public void setRoomType(String roomType) { + this.roomType = roomType; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/Key5Entity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/Key5Entity.java new file mode 100644 index 0000000..6f6b8f4 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/Key5Entity.java @@ -0,0 +1,141 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +public class Key5Entity { + + /** + * flag : 1 + * data : [{"name":"down","value":"0403","cmds":["18040204032506"]},{"name":"right","value":"0405","cmds":["18040204052706"]},{"name":"left","value":"0404","cmds":["18040204042606"]},{"name":"power","value":"0401","cmds":["18040204012306"]},{"name":"poweroff","value":"0401","cmds":["18040204012306"]}] + * msg : + * code : 1 + */ + + private int flag; + private String msg; + private int code; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg == null ? "" : msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : down + * value : 0403 + * cmds : ["18040204032506"] + */ + + private String name; + private String value; + private String oper; + private List cmds; + /** + * label : 回家模式 + * disabled : false + */ + + private String label; + private boolean disabled; + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DataBean dataBean = (DataBean) o; + return Objects.equals(name, dataBean.name); + } + + @Override + public int hashCode() { + return Objects.hash(name); + } + + + public String getOper() { + return oper == null ? "" : oper; + } + + public void setOper(String oper) { + this.oper = oper == null ? "" : oper; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public String getValue() { + return value == null ? "" : value; + } + + public void setValue(String value) { + this.value = value == null ? "" : value; + } + + public List getCmds() { + if (cmds == null) { + return new ArrayList<>(); + } + return cmds; + } + + public void setCmds(List cmds) { + this.cmds = cmds; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public boolean isDisabled() { + return disabled; + } + + public void setDisabled(boolean disabled) { + this.disabled = disabled; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/LockKeyEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/LockKeyEntity.java new file mode 100644 index 0000000..9f4868b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/LockKeyEntity.java @@ -0,0 +1,142 @@ +package com.yonsz.z1.database.entity.entity5; + +/** + * Created by Administrator on 2019/7/30. + */ + +public class LockKeyEntity { + + /** + * flag : 1 + * data : {"keyId":"225","snapKey":"29910480","expireDate":"2019-07-31 10:07:29","time":"1564452448"} + * msg : success + * code : 1 + */ + + private int flag; + private DataBean data; + private String msg; + private int code; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public static class DataBean { + /** + * keyId : 225 + * snapKey : 29910480 + * expireDate : 2019-07-31 10:07:29 + * time : 1564452448 + */ + + private String keyId; + private String snapKey; + private String expireDate; + private String time; + /** + * region : AY + * token : tvCex3Mw + * secret : 14EN + * deviceTokenToApp : AYtvCex3Mw14EN + */ + + private String region; + private String token; + private String secret; + private String deviceTokenToApp; + + + public String getKeyId() { + return keyId == null ? "" : keyId; + } + + public void setKeyId(String keyId) { + this.keyId = keyId; + } + + public String getSnapKey() { + return snapKey == null ? "" : snapKey; + } + + public void setSnapKey(String snapKey) { + this.snapKey = snapKey; + } + + public String getExpireDate() { + return expireDate == null ? "" : expireDate; + } + + public void setExpireDate(String expireDate) { + this.expireDate = expireDate; + } + + public String getTime() { + return time == null ? "" : time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getRegion() { + return region == null ? "" : region; + } + + public void setRegion(String region) { + this.region = region; + } + + public String getToken() { + return token == null ? "" : token; + } + + public void setToken(String token) { + this.token = token; + } + + public String getSecret() { + return secret == null ? "" : secret; + } + + public void setSecret(String secret) { + this.secret = secret; + } + + public String getDeviceTokenToApp() { + return deviceTokenToApp == null ? "" : deviceTokenToApp; + } + + public void setDeviceTokenToApp(String deviceTokenToApp) { + this.deviceTokenToApp = deviceTokenToApp; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/LockLogEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/LockLogEntity.java new file mode 100644 index 0000000..a70262e --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/LockLogEntity.java @@ -0,0 +1,280 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2019/7/30. + */ + +public class LockLogEntity { + + /** + * code : 1 + * data : {"current":1,"pages":2,"records":[{"createDate":1560993607000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":25,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:20:05","updateDate":1560993607000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993559000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":24,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:19:17","updateDate":1560993559000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993527000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":23,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:18:45","updateDate":1560993527000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993483000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":22,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:18:01","updateDate":1560993483000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993431000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":21,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:17:09","updateDate":1560993431000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993348000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":20,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:15:46","updateDate":1560993348000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993315000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":19,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:15:13","updateDate":1560993315000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993282000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":18,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:14:40","updateDate":1560993282000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560945164000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":17,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 19:52:42","updateDate":1560945164000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560945148000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":16,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 19:52:26","updateDate":1560945148000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560945142000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":15,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 19:52:20","updateDate":1560945142000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560945128000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":14,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 19:52:06","updateDate":1560945128000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560937069000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":13,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:37:47","updateDate":1560937069000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560937051000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":12,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:37:29","updateDate":1560937051000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560937018000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":11,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:36:56","updateDate":1560937018000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560936987000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":10,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:36:26","updateDate":1560936987000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560936931000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":9,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:35:29","updateDate":1560936931000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560936861000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":8,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:34:19","updateDate":1560936861000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560936822000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":7,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:33:41","updateDate":1560936822000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560936669000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":6,"keyId":"4","keyName":"客人","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:31:08","updateDate":1560936669000,"userId":"e79dbf0cf5514e559505b596db7f770f"}],"searchCount":true,"size":20,"total":25} + * flag : 1 + * msg : success + */ + + private int code; + private DataBean data; + private int flag; + private String msg; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * current : 1 + * pages : 2 + * records : [{"createDate":1560993607000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":25,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:20:05","updateDate":1560993607000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993559000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":24,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:19:17","updateDate":1560993559000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993527000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":23,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:18:45","updateDate":1560993527000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993483000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":22,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:18:01","updateDate":1560993483000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993431000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":21,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:17:09","updateDate":1560993431000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993348000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":20,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:15:46","updateDate":1560993348000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993315000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":19,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:15:13","updateDate":1560993315000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560993282000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":18,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-20 09:14:40","updateDate":1560993282000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560945164000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":17,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 19:52:42","updateDate":1560945164000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560945148000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":16,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 19:52:26","updateDate":1560945148000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560945142000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":15,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 19:52:20","updateDate":1560945142000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560945128000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":14,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 19:52:06","updateDate":1560945128000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560937069000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":13,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:37:47","updateDate":1560937069000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560937051000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":12,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:37:29","updateDate":1560937051000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560937018000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":11,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:36:56","updateDate":1560937018000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560936987000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":10,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:36:26","updateDate":1560936987000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560936931000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":9,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:35:29","updateDate":1560936931000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560936861000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":8,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:34:19","updateDate":1560936861000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560936822000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":7,"keyId":"6","keyName":"FingerPrint6","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:33:41","updateDate":1560936822000,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"createDate":1560936669000,"deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceType":"023","id":6,"keyId":"4","keyName":"客人","keyType":"fingerPrint","number":1,"openFlag":"1","result":"1","text":"使用指纹开锁成功","time":"2019-06-19 17:31:08","updateDate":1560936669000,"userId":"e79dbf0cf5514e559505b596db7f770f"}] + * searchCount : true + * size : 20 + * total : 25 + */ + + private int current; + private int pages; + private boolean searchCount; + private int size; + private int total; + private List records; + + public int getCurrent() { + return current; + } + + public void setCurrent(int current) { + this.current = current; + } + + public int getPages() { + return pages; + } + + public void setPages(int pages) { + this.pages = pages; + } + + public boolean isSearchCount() { + return searchCount; + } + + public void setSearchCount(boolean searchCount) { + this.searchCount = searchCount; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRecords() { + if (records == null) { + return new ArrayList<>(); + } + return records; + } + + public void setRecords(List records) { + this.records = records; + } + + public static class RecordsBean { + /** + * createDate : 1560993607000 + * deviceId : 4F00417PAZBB75C + * deviceModel : 0 + * deviceType : 023 + * id : 25 + * keyId : 6 + * keyName : FingerPrint6 + * keyType : fingerPrint + * number : 1 + * openFlag : 1 + * result : 1 + * text : 使用指纹开锁成功 + * time : 2019-06-20 09:20:05 + * updateDate : 1560993607000 + * userId : e79dbf0cf5514e559505b596db7f770f + */ + + private long createDate; + private String deviceId; + private String deviceModel; + private String deviceType; + private String id; + private String keyId; + private String keyName; + private String keyType; + private int number; + private String openFlag; + private String result; + private String text; + private String time; + private long updateDate; + private String userId; + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getKeyId() { + return keyId == null ? "" : keyId; + } + + public void setKeyId(String keyId) { + this.keyId = keyId; + } + + public String getKeyName() { + return keyName == null ? "" : keyName; + } + + public void setKeyName(String keyName) { + this.keyName = keyName; + } + + public String getKeyType() { + return keyType == null ? "" : keyType; + } + + public void setKeyType(String keyType) { + this.keyType = keyType; + } + + public int getNumber() { + return number; + } + + public void setNumber(int number) { + this.number = number; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + + public String getResult() { + return result == null ? "" : result; + } + + public void setResult(String result) { + this.result = result; + } + + public String getText() { + return text == null ? "" : text; + } + + public void setText(String text) { + this.text = text; + } + + public String getTime() { + return time == null ? "" : time; + } + + public void setTime(String time) { + this.time = time; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/LockModellEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/LockModellEvent.java new file mode 100644 index 0000000..405635d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/LockModellEvent.java @@ -0,0 +1,17 @@ +package com.yonsz.z1.database.entity.entity5; + +import com.yonsz.z1.database.entity.entitya2.SafeVoiceEntity; + +public class LockModellEvent { + + private SafeVoiceEntity.DataBean.ModeTriggerBean mMsg; + + public LockModellEvent(SafeVoiceEntity.DataBean.ModeTriggerBean msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public SafeVoiceEntity.DataBean.ModeTriggerBean getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/ModelChangeEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ModelChangeEntity.java new file mode 100644 index 0000000..f2a63cd --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ModelChangeEntity.java @@ -0,0 +1,182 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * Created by Administrator on 2020/1/4. + */ + +public class ModelChangeEntity { + + private List modeAiDevices; + private List modeControls; + + public List getModeAiDevices() { + return modeAiDevices; + } + + public void setModeAiDevices(List modeAiDevices) { + this.modeAiDevices = modeAiDevices; + } + + public List getModeControls() { + return modeControls; + } + + public void setModeControls(List modeControls) { + this.modeControls = modeControls; + } + + public static class ModeAiDevicesBean { + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof ModeAiDevicesBean)) return false; + ModeAiDevicesBean that = (ModeAiDevicesBean) o; + return Objects.equals(getZiIds(), that.getZiIds()); + } + + @Override + public int hashCode() { + + return Objects.hash(getZiIds()); + } + + /** + * execType : group + * groupName : 客厅小艾B1的分组 + * ziIds : ["F0FE6B58F591","F0FE6BC79533"] + * groupId : 12 + */ + + private String execType; + private String groupName; + private String groupId; + private List ziIds; + private List gatewayIds; + + public List getZiIds() { + return ziIds; + } + + public void setZiIds(List ziIds) { + this.ziIds = ziIds; + } + + public List getGatewayIds() { + if (gatewayIds == null) { + return new ArrayList<>(); + } + return gatewayIds; + } + + public void setGatewayIds(List gatewayIds) { + this.gatewayIds = gatewayIds; + } + + public String getExecType() { + return execType; + } + + public void setExecType(String execType) { + this.execType = execType; + } + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public String getGroupId() { + return groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + } + + public static class ModeControlsBean { + /** + * cmdType : 1 + * deviceId : d73ca83edf713c2922e7bf9d43b7eeb4 + * deviceModel : 0 + * deviceType : 010 + * id : a6b5f4ad4cc6fa673c3f6352912671a4 + * ziId : F0FE6BC79533 + */ + + private String cmdType; + private String deviceId; + private String deviceModel; + private String deviceType; + private String id; + private String ziId; + private List settings; + + public List getSettings() { + if (settings == null) { + return new ArrayList<>(); + } + return settings; + } + + public void setSettings(List settings) { + this.settings = settings; + } + + public String getCmdType() { + return cmdType; + } + + public void setCmdType(String cmdType) { + this.cmdType = cmdType; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getDeviceModel() { + return deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getZiId() { + return ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/ModelOperationEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ModelOperationEntity.java new file mode 100644 index 0000000..718a6cb --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ModelOperationEntity.java @@ -0,0 +1,48 @@ +package com.yonsz.z1.database.entity.entity5; + +public class ModelOperationEntity { + + /** + * id : 2 + * modeControlId : 63194aa8a8333fd013f077ed5f6ef669 + * name : travelControl + * value : 32 + */ + + private String id; + private String modeControlId; + private String name; + private String value; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public String getModeControlId() { + return modeControlId == null ? "" : modeControlId; + } + + public void setModeControlId(String modeControlId) { + this.modeControlId = modeControlId == null ? "" : modeControlId; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public String getValue() { + return value == null ? "" : value; + } + + public void setValue(String value) { + this.value = value == null ? "" : value; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/ModelSortEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ModelSortEntity.java new file mode 100644 index 0000000..6817103 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ModelSortEntity.java @@ -0,0 +1,361 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2020/7/31. + */ + +public class ModelSortEntity { + + /** + * code : 1 + * data : [{"addressId":"1","addressName":"客厅","controls":[{"appId":"1103","cmdType":"1","conndeviceAddress":"1","conndeviceId":"0c139410476641f7b6d817f429c47757","createDate":1596094277000,"delFlag":"0","deviceModel":"2","deviceName":"吊灯","deviceType":"008","houseId":"e5205b9284b4e29c603383c2d7a48552","id":"3205359f9cb555a3fc802ae7adbeed96","modelId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modelType":"1","openFlag":1,"sort":1000,"subType":5,"typeFlag":0,"uid":"e79dbf0cf5514e559505b596db7f770f","updateDate":1596096808000,"userId":"e79dbf0cf5514e559505b596db7f770f","ziId":"98D8630B57E7"},{"appId":"1103","cmdType":"1","conndeviceAddress":"1","conndeviceId":"093ed49b54fe462897a75c9c1a3f1ba4","createDate":1596094277000,"delFlag":"0","deviceModel":"2","deviceName":"T4","deviceType":"008","houseId":"e5205b9284b4e29c603383c2d7a48552","id":"8a0a3c3fc952a09203d06bf66ea4d8a7","modelId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modelType":"1","openFlag":1,"sort":1000,"subType":254,"typeFlag":0,"uid":"e79dbf0cf5514e559505b596db7f770f","updateDate":1596096808000,"userId":"e79dbf0cf5514e559505b596db7f770f","ziId":"98D8630B57E7"},{"appId":"1103","cmdType":"1","conndeviceAddress":"1","conndeviceId":"4f78ac05da884e5ebc85cfa5735b4f08","createDate":1596094277000,"delFlag":"0","deviceModel":"2","deviceName":"吊灯","deviceType":"008","houseId":"e5205b9284b4e29c603383c2d7a48552","id":"8b80e3b6a259fad0b80133bf9c04be9e","modelId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modelType":"1","openFlag":1,"sort":1000,"subType":5,"typeFlag":0,"uid":"e79dbf0cf5514e559505b596db7f770f","updateDate":1596096808000,"userId":"e79dbf0cf5514e559505b596db7f770f","ziId":"98D8630B57E7"},{"appId":"1103","cmdType":"1","conndeviceAddress":"1","conndeviceId":"63b4ee922a5d4c23a3fe23f3d8291b39","createDate":1596005272000,"delFlag":"0","deviceModel":"2","deviceName":"吊灯","deviceType":"008","houseId":"e5205b9284b4e29c603383c2d7a48552","id":"e7fce26235d9106c05e6a9cce490cdd0","modelId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modelType":"1","openFlag":1,"sort":1000,"subType":5,"typeFlag":0,"uid":"e79dbf0cf5514e559505b596db7f770f","updateDate":1596007827000,"userId":"e79dbf0cf5514e559505b596db7f770f","ziId":"98D8630B57E7"}],"gatewayId":"98D8630B57E7","name":"小艾B1-L-0302","sort":1000},{"addressId":"2","addressName":"主卧","controls":[{"appId":"1103","cmdType":"1","conndeviceAddress":"2","conndeviceId":"20f08a54f338455b98fd10afea27af63","createDate":1596005272000,"delFlag":"0","deviceModel":"2","deviceName":"别的T4","deviceType":"008","houseId":"e5205b9284b4e29c603383c2d7a48552","id":"a583c2018fab16524036c2c5f03f9abe","modelId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modelType":"1","openFlag":1,"sort":1000,"subType":254,"typeFlag":0,"uid":"e79dbf0cf5514e559505b596db7f770f","updateDate":1596007831000,"userId":"e79dbf0cf5514e559505b596db7f770f","ziId":"F0FE6BC799BD"}],"gatewayId":"F0FE6BC799BD","name":"小艾B1-L-0301","sort":1000},{"addressId":"10","addressName":"卫生间","gatewayId":"F0FE6BC79518","name":"小艾A2-L-0304","sort":1000}] + * flag : 1 + * msg : success + */ + + private int code; + private int flag; + private String msg; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * addressId : 1 + * addressName : 客厅 + * controls : [{"appId":"1103","cmdType":"1","conndeviceAddress":"1","conndeviceId":"0c139410476641f7b6d817f429c47757","createDate":1596094277000,"delFlag":"0","deviceModel":"2","deviceName":"吊灯","deviceType":"008","houseId":"e5205b9284b4e29c603383c2d7a48552","id":"3205359f9cb555a3fc802ae7adbeed96","modelId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modelType":"1","openFlag":1,"sort":1000,"subType":5,"typeFlag":0,"uid":"e79dbf0cf5514e559505b596db7f770f","updateDate":1596096808000,"userId":"e79dbf0cf5514e559505b596db7f770f","ziId":"98D8630B57E7"},{"appId":"1103","cmdType":"1","conndeviceAddress":"1","conndeviceId":"093ed49b54fe462897a75c9c1a3f1ba4","createDate":1596094277000,"delFlag":"0","deviceModel":"2","deviceName":"T4","deviceType":"008","houseId":"e5205b9284b4e29c603383c2d7a48552","id":"8a0a3c3fc952a09203d06bf66ea4d8a7","modelId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modelType":"1","openFlag":1,"sort":1000,"subType":254,"typeFlag":0,"uid":"e79dbf0cf5514e559505b596db7f770f","updateDate":1596096808000,"userId":"e79dbf0cf5514e559505b596db7f770f","ziId":"98D8630B57E7"},{"appId":"1103","cmdType":"1","conndeviceAddress":"1","conndeviceId":"4f78ac05da884e5ebc85cfa5735b4f08","createDate":1596094277000,"delFlag":"0","deviceModel":"2","deviceName":"吊灯","deviceType":"008","houseId":"e5205b9284b4e29c603383c2d7a48552","id":"8b80e3b6a259fad0b80133bf9c04be9e","modelId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modelType":"1","openFlag":1,"sort":1000,"subType":5,"typeFlag":0,"uid":"e79dbf0cf5514e559505b596db7f770f","updateDate":1596096808000,"userId":"e79dbf0cf5514e559505b596db7f770f","ziId":"98D8630B57E7"},{"appId":"1103","cmdType":"1","conndeviceAddress":"1","conndeviceId":"63b4ee922a5d4c23a3fe23f3d8291b39","createDate":1596005272000,"delFlag":"0","deviceModel":"2","deviceName":"吊灯","deviceType":"008","houseId":"e5205b9284b4e29c603383c2d7a48552","id":"e7fce26235d9106c05e6a9cce490cdd0","modelId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modelType":"1","openFlag":1,"sort":1000,"subType":5,"typeFlag":0,"uid":"e79dbf0cf5514e559505b596db7f770f","updateDate":1596007827000,"userId":"e79dbf0cf5514e559505b596db7f770f","ziId":"98D8630B57E7"}] + * gatewayId : 98D8630B57E7 + * name : 小艾B1-L-0302 + * sort : 1000 + */ + + private String addressId; + private String addressName; + private String gatewayId; + private String name; + private int sort; + private List controls; + private boolean isExpanded = true; + + public boolean isExpanded() { + return isExpanded; + } + + public void setExpanded(boolean expanded) { + isExpanded = expanded; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getGatewayId() { + return gatewayId == null ? "" : gatewayId; + } + + public void setGatewayId(String gatewayId) { + this.gatewayId = gatewayId; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public List getControls() { + if (controls == null) { + return new ArrayList<>(); + } + return controls; + } + + public void setControls(List controls) { + this.controls = controls; + } + + public static class ControlsBean { + /** + * appId : 1103 + * cmdType : 1 + * conndeviceAddress : 1 + * conndeviceId : 0c139410476641f7b6d817f429c47757 + * createDate : 1596094277000 + * delFlag : 0 + * deviceModel : 2 + * deviceName : 吊灯 + * deviceType : 008 + * houseId : e5205b9284b4e29c603383c2d7a48552 + * id : 3205359f9cb555a3fc802ae7adbeed96 + * modelId : 3ccfb8c36da348f3b5ddd1ffb03e95ed + * modelType : 1 + * openFlag : 1 + * sort : 1000 + * subType : 5 + * typeFlag : 0 + * uid : e79dbf0cf5514e559505b596db7f770f + * updateDate : 1596096808000 + * userId : e79dbf0cf5514e559505b596db7f770f + * ziId : 98D8630B57E7 + */ + + private String appId; + private String cmdType; + private String conndeviceAddress; + private String conndeviceId; + private long createDate; + private String delFlag; + private String deviceModel; + private String deviceName; + private String deviceType; + private String houseId; + private String id; + private String modelId; + private String modelType; + private String openFlag; + private String sort; + private String subType; + private String typeFlag; + private String uid; + private long updateDate; + private String userId; + private String ziId; + private String controlId; + + public String getControlId() { + return controlId == null ? "" : controlId; + } + + public void setControlId(String controlId) { + this.controlId = controlId; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getCmdType() { + return cmdType == null ? "" : cmdType; + } + + public void setCmdType(String cmdType) { + this.cmdType = cmdType; + } + + public String getConndeviceAddress() { + return conndeviceAddress == null ? "" : conndeviceAddress; + } + + public void setConndeviceAddress(String conndeviceAddress) { + this.conndeviceAddress = conndeviceAddress; + } + + public String getConndeviceId() { + return conndeviceId == null ? "" : conndeviceId; + } + + public void setConndeviceId(String conndeviceId) { + this.conndeviceId = conndeviceId; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getDelFlag() { + return delFlag == null ? "" : delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getModelId() { + return modelId == null ? "" : modelId; + } + + public void setModelId(String modelId) { + this.modelId = modelId; + } + + public String getModelType() { + return modelType == null ? "" : modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + + public String getSort() { + return sort == null ? "" : sort; + } + + public void setSort(String sort) { + this.sort = sort; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public String getTypeFlag() { + return typeFlag == null ? "" : typeFlag; + } + + public void setTypeFlag(String typeFlag) { + this.typeFlag = typeFlag; + } + + public String getUid() { + return uid == null ? "" : uid; + } + + public void setUid(String uid) { + this.uid = uid; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/MyCodeEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/MyCodeEntity.java new file mode 100644 index 0000000..502002f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/MyCodeEntity.java @@ -0,0 +1,190 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +public class MyCodeEntity { + + /** + * code : 1 + * data : [{"brand":"艾美特","createDate":1594903532000,"deviceId":"8e3e8cd3ce2b46d2bc2d1600469e3c59","deviceModel":"0","deviceType":"003","id":1,"model":"1","name":"艾美特1","rid":"12UcVOAxPcS/CViuhoR0Ww==","updateDate":1594903532000,"userId":"ff73a066c2754adda20ddb0f2cdafb77","ykyDeviceType":"6","ziId":"F0FE6BC79518"},{"brand":"艾美特","createDate":1595398012000,"deviceId":"b71dc4ad003eb4cb3cd3e4ca1af94758","deviceModel":"0","deviceType":"003","id":22,"model":"ssss","name":"yyy","rid":"12UcVOAxPcS/CViuhoR0Ww==","updateDate":1595398012000,"userId":"ff73a066c2754adda20ddb0f2cdafb77","ykyDeviceType":"6","ziId":"F0FE6BC78A5A"},{"brand":"华为【互联网机顶盒】","createDate":1595398026000,"deviceId":"49799af5ecbc5f5d01122f8daa064a7c","deviceModel":"0","deviceType":"006","id":23,"model":"dxxdd","name":"hu should","rid":"l6OYOk7jJte3XtNm0O3V/w==","updateDate":1595398026000,"userId":"ff73a066c2754adda20ddb0f2cdafb77","ykyDeviceType":"10","ziId":"F0FE6BC78A5A"},{"brand":"安利","createDate":1595397973000,"deviceId":"aeabee1f3e320f2e5f8532db45d03d55","deviceModel":"0","deviceType":"029","id":21,"model":"qqq","name":"hhh","rid":"/lLcuS0F1Qru4sD+xzgyWA==","updateDate":1595397973000,"userId":"ff73a066c2754adda20ddb0f2cdafb77","ykyDeviceType":"15","ziId":"F0FE6BC7928C"}] + * flag : 1 + * msg : + */ + + private int code; + private int flag; + private String msg; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg == null ? "" : msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * brand : 艾美特 + * createDate : 1594903532000 + * deviceId : 8e3e8cd3ce2b46d2bc2d1600469e3c59 + * deviceModel : 0 + * deviceType : 003 + * id : 1 + * model : 1 + * name : 艾美特1 + * rid : 12UcVOAxPcS/CViuhoR0Ww== + * updateDate : 1594903532000 + * userId : ff73a066c2754adda20ddb0f2cdafb77 + * ykyDeviceType : 6 + * ziId : F0FE6BC79518 + */ + + private String brand; + private long createDate; + private String deviceId; + private String deviceModel; + private String deviceType; + private String id; + private String model; + private String name; + private String rid; + private long updateDate; + private String userId; + private String ykyDeviceType; + private String ziId; + + public String getBrand() { + return brand == null ? "" : brand; + } + + public void setBrand(String brand) { + this.brand = brand == null ? "" : brand; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId == null ? "" : deviceId; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel == null ? "" : deviceModel; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType == null ? "" : deviceType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public String getModel() { + return model == null ? "" : model; + } + + public void setModel(String model) { + this.model = model == null ? "" : model; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public String getRid() { + return rid == null ? "" : rid; + } + + public void setRid(String rid) { + this.rid = rid == null ? "" : rid; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId == null ? "" : userId; + } + + public String getYkyDeviceType() { + return ykyDeviceType == null ? "" : ykyDeviceType; + } + + public void setYkyDeviceType(String ykyDeviceType) { + this.ykyDeviceType = ykyDeviceType == null ? "" : ykyDeviceType; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId == null ? "" : ziId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/NewModelSetEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/NewModelSetEntity.java new file mode 100644 index 0000000..6e2565f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/NewModelSetEntity.java @@ -0,0 +1,740 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2020/1/3. + */ + +public class NewModelSetEntity { + + /** + * code : 1 + * data : {"appId":"1103","createDate":1573570544000,"delFlag":"0","flag":1,"houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/29/icon_scene_offhome.png","id":"fc51a85a27a1f600e1aa7b53e20f513b","initStatus":1,"isCustom":false,"modeAiDevices":[{"controls":[{"cmdType":"0","conndeviceAddress":"主卧","conndeviceId":"8b42a959a0c760ceec33479298032b5c","deviceAddress":"主卧","deviceModel":"3","deviceName":"插座","deviceType":"010","floor":"1","gatewayName":"小艾B1-L-0230","id":"9f19ffefb661f06712b742038fc0de5a","modelType":"2","online":1,"openFlag":1,"subType":0,"typeFlag":0,"ziId":"F0FE6BC79946"},{"cmdType":"0","conndeviceAddress":"客厅","conndeviceId":"de6340b793506e9cde3878d9bb08ce21","deviceAddress":"主卧","deviceModel":"0","deviceName":"纱帘","deviceType":"026","floor":"1","gatewayName":"小艾B1-L-0230","id":"1f56a12ff2d950e8f871dbda06bbcdea","modelType":"2","online":1,"openFlag":1,"subType":1,"typeFlag":0,"ziId":"F0FE6BC79946"}],"createDate":1578016638000,"execType":"single","houseId":"e5205b9284b4e29c603383c2d7a48552","id":3,"modeId":"fc51a85a27a1f600e1aa7b53e20f513b","modeType":"2","updateDate":1578016638000,"ziId":"F0FE6BC79946"},{"controls":[{"cmdType":"0","conndeviceAddress":"餐厅","conndeviceId":"5cacc2172b0bfa422ab778662344aa8c","deviceAddress":"餐厅","deviceModel":"2","deviceName":"灯光","deviceType":"008","floor":"1","gatewayName":"小艾B1-L-0228","modelType":"2","online":0,"openFlag":0,"subType":0,"typeFlag":0,"ziId":"F0FE6B58F5B7"},{"cmdType":"0","conndeviceAddress":"餐厅","conndeviceId":"e9db29e01fdd6c8696e874d96b53c156","deviceAddress":"餐厅","deviceModel":"2","deviceName":"灯光","deviceType":"008","floor":"1","gatewayName":"小艾B1-L-0228","modelType":"2","online":0,"openFlag":0,"subType":1,"typeFlag":0,"ziId":"F0FE6B58F5B7"},{"cmdType":"0","conndeviceAddress":"餐厅","conndeviceId":"eee734406f9441341eb81dc7775157e8","deviceAddress":"餐厅","deviceModel":"2","deviceName":"灯光","deviceType":"008","floor":"1","gatewayName":"小艾B1-L-0228","modelType":"2","online":0,"openFlag":0,"subType":0,"typeFlag":0,"ziId":"F0FE6B58F5B7"},{"cmdType":"0","conndeviceAddress":"餐厅","conndeviceId":"55a873a4b6c5a67a7033080530436d12","deviceAddress":"餐厅","deviceModel":"3","deviceName":"插座","deviceType":"010","floor":"1","gatewayName":"小艾B1-L-0228","modelType":"2","online":0,"openFlag":0,"subType":0,"typeFlag":0,"ziId":"F0FE6B58F5B7"},{"cmdType":"0","conndeviceAddress":"餐厅","conndeviceId":"942f75502360f7f540bd3a420d61ca61","deviceAddress":"餐厅","deviceModel":"3","deviceName":"插座","deviceType":"010","floor":"1","gatewayName":"小艾B1-L-0228","modelType":"2","online":0,"openFlag":0,"subType":0,"typeFlag":0,"ziId":"F0FE6B58F5B7"}],"createDate":1578016638000,"execType":"single","houseId":"e5205b9284b4e29c603383c2d7a48552","id":4,"modeId":"fc51a85a27a1f600e1aa7b53e20f513b","modeType":"2","updateDate":1578016638000,"ziId":"F0FE6B58F5B7"}],"modelName":"离家模式","modelType":"2","sortNum":2,"uid":"e79dbf0cf5514e559505b596db7f770f","updateDate":1578022425000,"userId":"e79dbf0cf5514e559505b596db7f770f"} + * flag : 1 + * msg : success + */ + + private int code; + private DataBean data; + private int flag; + private String msg; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * appId : 1103 + * createDate : 1573570544000 + * delFlag : 0 + * flag : 1 + * houseId : e5205b9284b4e29c603383c2d7a48552 + * icon : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/29/icon_scene_offhome.png + * id : fc51a85a27a1f600e1aa7b53e20f513b + * initStatus : 1 + * isCustom : false + * modeAiDevices : [{"controls":[{"cmdType":"0","conndeviceAddress":"主卧","conndeviceId":"8b42a959a0c760ceec33479298032b5c","deviceAddress":"主卧","deviceModel":"3","deviceName":"插座","deviceType":"010","floor":"1","gatewayName":"小艾B1-L-0230","id":"9f19ffefb661f06712b742038fc0de5a","modelType":"2","online":1,"openFlag":1,"subType":0,"typeFlag":0,"ziId":"F0FE6BC79946"},{"cmdType":"0","conndeviceAddress":"客厅","conndeviceId":"de6340b793506e9cde3878d9bb08ce21","deviceAddress":"主卧","deviceModel":"0","deviceName":"纱帘","deviceType":"026","floor":"1","gatewayName":"小艾B1-L-0230","id":"1f56a12ff2d950e8f871dbda06bbcdea","modelType":"2","online":1,"openFlag":1,"subType":1,"typeFlag":0,"ziId":"F0FE6BC79946"}],"createDate":1578016638000,"execType":"single","houseId":"e5205b9284b4e29c603383c2d7a48552","id":3,"modeId":"fc51a85a27a1f600e1aa7b53e20f513b","modeType":"2","updateDate":1578016638000,"ziId":"F0FE6BC79946"},{"controls":[{"cmdType":"0","conndeviceAddress":"餐厅","conndeviceId":"5cacc2172b0bfa422ab778662344aa8c","deviceAddress":"餐厅","deviceModel":"2","deviceName":"灯光","deviceType":"008","floor":"1","gatewayName":"小艾B1-L-0228","modelType":"2","online":0,"openFlag":0,"subType":0,"typeFlag":0,"ziId":"F0FE6B58F5B7"},{"cmdType":"0","conndeviceAddress":"餐厅","conndeviceId":"e9db29e01fdd6c8696e874d96b53c156","deviceAddress":"餐厅","deviceModel":"2","deviceName":"灯光","deviceType":"008","floor":"1","gatewayName":"小艾B1-L-0228","modelType":"2","online":0,"openFlag":0,"subType":1,"typeFlag":0,"ziId":"F0FE6B58F5B7"},{"cmdType":"0","conndeviceAddress":"餐厅","conndeviceId":"eee734406f9441341eb81dc7775157e8","deviceAddress":"餐厅","deviceModel":"2","deviceName":"灯光","deviceType":"008","floor":"1","gatewayName":"小艾B1-L-0228","modelType":"2","online":0,"openFlag":0,"subType":0,"typeFlag":0,"ziId":"F0FE6B58F5B7"},{"cmdType":"0","conndeviceAddress":"餐厅","conndeviceId":"55a873a4b6c5a67a7033080530436d12","deviceAddress":"餐厅","deviceModel":"3","deviceName":"插座","deviceType":"010","floor":"1","gatewayName":"小艾B1-L-0228","modelType":"2","online":0,"openFlag":0,"subType":0,"typeFlag":0,"ziId":"F0FE6B58F5B7"},{"cmdType":"0","conndeviceAddress":"餐厅","conndeviceId":"942f75502360f7f540bd3a420d61ca61","deviceAddress":"餐厅","deviceModel":"3","deviceName":"插座","deviceType":"010","floor":"1","gatewayName":"小艾B1-L-0228","modelType":"2","online":0,"openFlag":0,"subType":0,"typeFlag":0,"ziId":"F0FE6B58F5B7"}],"createDate":1578016638000,"execType":"single","houseId":"e5205b9284b4e29c603383c2d7a48552","id":4,"modeId":"fc51a85a27a1f600e1aa7b53e20f513b","modeType":"2","updateDate":1578016638000,"ziId":"F0FE6B58F5B7"}] + * modelName : 离家模式 + * modelType : 2 + * sortNum : 2 + * uid : e79dbf0cf5514e559505b596db7f770f + * updateDate : 1578022425000 + * userId : e79dbf0cf5514e559505b596db7f770f + */ + + private String appId; + private long createDate; + private String delFlag; + private int flag; + private String houseId; + private String icon; + private String id; + private int initStatus; + private boolean isCustom; + private String modelName; + private String modelType; + private int sortNum; + private String uid; + private long updateDate; + private String userId; + private List modeAiDevices; + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getDelFlag() { + return delFlag == null ? "" : delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public String getIcon() { + return icon == null ? "" : icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public int getInitStatus() { + return initStatus; + } + + public void setInitStatus(int initStatus) { + this.initStatus = initStatus; + } + + public boolean isCustom() { + return isCustom; + } + + public void setCustom(boolean custom) { + isCustom = custom; + } + + public String getModelName() { + return modelName == null ? "" : modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public String getModelType() { + return modelType == null ? "" : modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType; + } + + public int getSortNum() { + return sortNum; + } + + public void setSortNum(int sortNum) { + this.sortNum = sortNum; + } + + public String getUid() { + return uid == null ? "" : uid; + } + + public void setUid(String uid) { + this.uid = uid; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public List getModeAiDevices() { + if (modeAiDevices == null) { + return new ArrayList<>(); + } + return modeAiDevices; + } + + public void setModeAiDevices(List modeAiDevices) { + this.modeAiDevices = modeAiDevices; + } + + public static class ModeAiDevicesBean { + /** + * controls : [{"cmdType":"0","conndeviceAddress":"主卧","conndeviceId":"8b42a959a0c760ceec33479298032b5c","deviceAddress":"主卧","deviceModel":"3","deviceName":"插座","deviceType":"010","floor":"1","gatewayName":"小艾B1-L-0230","id":"9f19ffefb661f06712b742038fc0de5a","modelType":"2","online":1,"openFlag":1,"subType":0,"typeFlag":0,"ziId":"F0FE6BC79946"},{"cmdType":"0","conndeviceAddress":"客厅","conndeviceId":"de6340b793506e9cde3878d9bb08ce21","deviceAddress":"主卧","deviceModel":"0","deviceName":"纱帘","deviceType":"026","floor":"1","gatewayName":"小艾B1-L-0230","id":"1f56a12ff2d950e8f871dbda06bbcdea","modelType":"2","online":1,"openFlag":1,"subType":1,"typeFlag":0,"ziId":"F0FE6BC79946"}] + * createDate : 1578016638000 + * execType : single + * houseId : e5205b9284b4e29c603383c2d7a48552 + * id : 3 + * modeId : fc51a85a27a1f600e1aa7b53e20f513b + * modeType : 2 + * updateDate : 1578016638000 + * ziId : F0FE6BC79946 + */ + + private long createDate; + private String execType; + private String houseId; + private int id; + private String modeId; + private String modeType; + private long updateDate; + private String ziId; + private String gatewayId; + private String groupId; + private List controls; + /** + * groupName : 分组1 + * ziIds : ["F0FE6B58F591","F0FE6BC79533,,F0FE6BC79511,F0FE6BC795221"] + */ + + private String groupName; + private String addressName; + private String gatewayName; + private String floor; + private String offline; + + public String getOffline() { + return offline == null ? "" : offline; + } + + public void setOffline(String offline) { + this.offline = offline; + } + + public String getFloor() { + return floor == null ? "" : floor; + } + + public void setFloor(String floor) { + this.floor = floor; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getGatewayName() { + return gatewayName == null ? "" : gatewayName; + } + + public void setGatewayName(String gatewayName) { + this.gatewayName = gatewayName; + } + + public String getGroupId() { + return groupId == null ? "" : groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + private List ziIds; + + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getExecType() { + return execType == null ? "" : execType; + } + + public void setExecType(String execType) { + this.execType = execType; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getModeId() { + return modeId == null ? "" : modeId; + } + + public void setModeId(String modeId) { + this.modeId = modeId; + } + + public String getModeType() { + return modeType == null ? "" : modeType; + } + + public void setModeType(String modeType) { + this.modeType = modeType; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getGatewayId() { + return gatewayId == null ? "" : gatewayId; + } + + public void setGatewayId(String gatewayId) { + this.gatewayId = gatewayId == null ? "" : gatewayId; + } + + public String getZiId() { + return gatewayId == null ? "" : gatewayId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public List getControls() { + if (controls == null) { + return new ArrayList<>(); + } + return controls; + } + + public void setControls(List controls) { + this.controls = controls; + } + + public String getGroupName() { + return groupName == null ? "" : groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public List getZiIds() { + if (ziIds == null) { + return new ArrayList<>(); + } + return ziIds; + } + + public void setZiIds(List ziIds) { + this.ziIds = ziIds; + } + + public static class ControlsBean { + /** + * cmdType : 0 + * conndeviceAddress : 主卧 + * conndeviceId : 8b42a959a0c760ceec33479298032b5c + * deviceAddress : 主卧 + * deviceModel : 3 + * deviceName : 插座 + * deviceType : 010 + * floor : 1 + * gatewayName : 小艾B1-L-0230 + * id : 9f19ffefb661f06712b742038fc0de5a + * modelType : 2 + * online : 1 + * openFlag : 1 + * subType : 0 + * typeFlag : 0 + * ziId : F0FE6BC79946 + */ + + private String cmdType; + private String conndeviceAddress; + private String conndeviceId; + private String deviceAddress; + private String deviceModel; + private String deviceName; + private String deviceType; + private String floor; + private String gatewayName; + private String id; + private String modelType; + private String online; + private int openFlag; + private String subType; + + private int typeFlag; + private String ziId; + private String gatewayId; + + private String deviceId; + private boolean isNewRecord; + private String userId; + private String lightType; + private String plugType; + private String blindType; + private String relatedStatus; + /** + * online : 1 + * settings : [{"createDate":1582093636000,"id":3,"label":"开合","modeControlId":"81b4b941793c938c50f4294dcc824294","name":"travelControl","updateDate":1582093636000,"value":"44"}] + * subType : 0 + */ + + private List settings; + + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getLightType() { + return lightType == null ? "" : lightType; + } + + public void setLightType(String lightType) { + this.lightType = lightType; + } + + public String getPlugType() { + return plugType == null ? "" : plugType; + } + + public void setPlugType(String plugType) { + this.plugType = plugType; + } + + public String getBlindType() { + return blindType == null ? "" : blindType; + } + + public void setBlindType(String blindType) { + this.blindType = blindType; + } + + public String getRelatedStatus() { + return relatedStatus == null ? "" : relatedStatus; + } + + public void setRelatedStatus(String relatedStatus) { + this.relatedStatus = relatedStatus; + } + + public String getCmdType() { + return cmdType == null ? "" : cmdType; + } + + public void setCmdType(String cmdType) { + this.cmdType = cmdType; + } + + public String getConndeviceAddress() { + return conndeviceAddress == null ? "" : conndeviceAddress; + } + + public void setConndeviceAddress(String conndeviceAddress) { + this.conndeviceAddress = conndeviceAddress; + } + + public String getConndeviceId() { + return conndeviceId == null ? "" : conndeviceId; + } + + public void setConndeviceId(String conndeviceId) { + this.conndeviceId = conndeviceId; + } + + public String getDeviceAddress() { + return deviceAddress == null ? "" : deviceAddress; + } + + public void setDeviceAddress(String deviceAddress) { + this.deviceAddress = deviceAddress; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getFloor() { + return floor == null ? "" : floor; + } + + public void setFloor(String floor) { + this.floor = floor; + } + + public String getGatewayName() { + return gatewayName == null ? "" : gatewayName; + } + + public void setGatewayName(String gatewayName) { + this.gatewayName = gatewayName; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getModelType() { + return modelType == null ? "" : modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType; + } + + public String getOnline() { + return online == null ? "" : online; + } + + public void setOnline(String online) { + this.online = online; + } + + public int getOpenFlag() { + return openFlag; + } + + public void setOpenFlag(int openFlag) { + this.openFlag = openFlag; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public int getTypeFlag() { + return typeFlag; + } + + public void setTypeFlag(int typeFlag) { + this.typeFlag = typeFlag; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getGatewayId() { + return gatewayId == null ? "" : gatewayId; + } + + public void setGatewayId(String gatewayId) { + this.gatewayId = gatewayId == null ? "" : gatewayId; + } + + public List getSettings() { + if (settings == null) { + return new ArrayList<>(); + } + return settings; + } + + public void setSettings(List settings) { + this.settings = settings; + } + + public static class SettingsBean { + /** + * createDate : 1582093636000 + * id : 3 + * label : 开合 + * modeControlId : 81b4b941793c938c50f4294dcc824294 + * name : travelControl + * updateDate : 1582093636000 + * value : 44 + */ + + private long createDate; + private String id; + private String label; + private String modeControlId; + private String name; + private long updateDate; + private String value; + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public String getLabel() { + return label == null ? "" : label; + } + + public void setLabel(String label) { + this.label = label == null ? "" : label; + } + + public String getModeControlId() { + return modeControlId == null ? "" : modeControlId; + } + + public void setModeControlId(String modeControlId) { + this.modeControlId = modeControlId == null ? "" : modeControlId; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getValue() { + return value == null ? "100" : value; + } + + public void setValue(String value) { + this.value = value == null ? "" : value; + } + } + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/NewSceneEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/NewSceneEntity.java new file mode 100644 index 0000000..df1afae --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/NewSceneEntity.java @@ -0,0 +1,422 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2020/1/3. + */ + +public class NewSceneEntity { + + /** + * code : 1 + * data : [{"appId":"1103","basicSwitch":1,"execTime":"11:37","execType":"all","houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/29/icon_scene_gohome.png","id":"82c47efbe8d041599d0d2e38f04c9a4c","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"3ccfb8c36da348f3b5ddd1ffb03e95ed","modelName":"回家模式","modelType":"1","onceFlag":0,"openFlag":1,"sortNum":1,"userId":"e79dbf0cf5514e559505b596db7f770f","weekNum1":"1","weekNum2":"0","weekNum3":"0","weekNum4":"1","weekNum5":"1","weekNum6":"0","weekNum7":"0"},{"appId":"1103","basicSwitch":1,"execTime":"11:38","execType":"all","houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/29/icon_scene_offhome.png","id":"546332193cbb4c32a1853714de414448","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"fc51a85a27a1f600e1aa7b53e20f513b","modelName":"离家模式","modelType":"2","onceFlag":0,"openFlag":1,"sortNum":2,"userId":"e79dbf0cf5514e559505b596db7f770f","weekNum1":"1","weekNum2":"0","weekNum3":"0","weekNum4":"1","weekNum5":"1","weekNum6":"0","weekNum7":"0"},{"appId":"1103","basicSwitch":0,"execTime":"16:31","execType":"all","houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/29/icon_scene_sleep.png","id":"e5920c1608994c8b901e91f52e86be32","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"828e34947a1f24e5ddc83f5485b8a3f4","modelName":"睡眠模式","modelType":"3","onceFlag":0,"openFlag":1,"sortNum":3,"userId":"e79dbf0cf5514e559505b596db7f770f","weekNum1":"0","weekNum2":"0","weekNum3":"0","weekNum4":"1","weekNum5":"0","weekNum6":"0","weekNum7":"0"},{"appId":"1103","basicSwitch":1,"execTime":"09:24","execType":"all","houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/29/icon_scene_up.png","id":"5db847efb88741a6ab6f4420025d22e7","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"8f72b169e97b722c7bb81b2ce62fd42b","modelName":"起床模式","modelType":"4","onceFlag":0,"openFlag":0,"sortNum":4,"userId":"e79dbf0cf5514e559505b596db7f770f","weekNum1":"0","weekNum2":"0","weekNum3":"0","weekNum4":"0","weekNum5":"1","weekNum6":"0","weekNum7":"0"},{"appId":"1103","basicSwitch":1,"execTime":"10:49","execType":"all","houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/29/icon_scene_guest.png","id":"9832934e15f245b5a94ec2229fad5b56","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"a208dc6955cbdf046adbfdb58859b377","modelName":"会客模式","modelType":"5","onceFlag":0,"openFlag":0,"sortNum":5,"userId":"e79dbf0cf5514e559505b596db7f770f","weekNum1":"1","weekNum2":"1","weekNum3":"0","weekNum4":"0","weekNum5":"0","weekNum6":"0","weekNum7":"0"},{"appId":"1103","basicSwitch":1,"execTime":"09:24","execType":"all","houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/29/icon_scene_onlight.png","id":"79d62d66abe14581a67841fa0f992ed0","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"0b8e13b0ea87af67863194076dbd52e0","modelName":"一键开灯模式","modelType":"6","onceFlag":0,"openFlag":1,"sortNum":6,"userId":"e79dbf0cf5514e559505b596db7f770f","weekNum1":"0","weekNum2":"1","weekNum3":"0","weekNum4":"0","weekNum5":"0","weekNum6":"0","weekNum7":"0"},{"appId":"1103","basicSwitch":1,"houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/29/icon_scene_offlight.png","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"54b2e455b157ea3505c73b37131cf646","modelName":"一键关灯模式","modelType":"7","sortNum":7,"userId":"e79dbf0cf5514e559505b596db7f770f"},{"appId":"1103","basicSwitch":1,"houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_bath.png","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"5fc9c5442c234224b089888159e12952","modelName":"沐浴模式","modelType":"23","sortNum":8,"userId":"18878476516"},{"appId":"1103","basicSwitch":1,"houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_read.png","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"2be928cf47ec4a19bff58c6eb74da5fb","modelName":"阅读模式","modelType":"24","sortNum":9,"userId":"18878476516"},{"appId":"1103","basicSwitch":1,"houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_entertainment.png","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"40e65f81a99140f692c0141ae2ea8b89","modelName":"娱乐模式","modelType":"25","sortNum":10,"userId":"18878476516"},{"appId":"1103","basicSwitch":1,"houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_arder.png","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"c7d207259dfd4a4d82492dc6d06ed003","modelName":"休闲模式","modelType":"26","sortNum":11,"userId":"18878476516"},{"appId":"1103","basicSwitch":1,"houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_repast.png","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"33b52603f6cf4c18bb3f477074787f8b","modelName":"就餐模式","modelType":"27","sortNum":12,"userId":"18878476516"},{"appId":"1103","basicSwitch":1,"houseId":"e5205b9284b4e29c603383c2d7a48552","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_outing.png","modeExecs":[{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}],"modelId":"8dd2f902a44b4b8eae6d5f764858d770","modelName":"出游模式","modelType":"28","sortNum":13,"userId":"18878476516"}] + * flag : 1 + * msg : success + */ + + private int code; + private int flag; + private String msg; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * appId : 1103 + * basicSwitch : 1 + * execTime : 11:37 + * execType : all + * houseId : e5205b9284b4e29c603383c2d7a48552 + * icon : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/29/icon_scene_gohome.png + * id : 82c47efbe8d041599d0d2e38f04c9a4c + * modeExecs : [{"execType":"single","name":"主卧小艾B1-L-0230","ziId":"F0FE6BC79946"},{"execType":"single","name":"餐厅小艾B1-L-0228","ziId":"F0FE6B58F5B7"}] + * modelId : 3ccfb8c36da348f3b5ddd1ffb03e95ed + * modelName : 回家模式 + * modelType : 1 + * onceFlag : 0 + * openFlag : 1 + * sortNum : 1 + * userId : e79dbf0cf5514e559505b596db7f770f + * weekNum1 : 1 + * weekNum2 : 0 + * weekNum3 : 0 + * weekNum4 : 1 + * weekNum5 : 1 + * weekNum6 : 0 + * weekNum7 : 0 + */ + + private String appId; + private int basicSwitch; + private String execTime; + private String execType; + private String houseId; + private String icon; + private String id; + private String modelId; + private String modelName; + private String modelType; + private int onceFlag; + private int openFlag; + private int sortNum; + private String userId; + private String weekNum1; + private String weekNum2; + private String weekNum3; + private String weekNum4; + private String weekNum5; + private String weekNum6; + private String weekNum7; + private List modeExecs; + private String name; + private String ziId; + private String groupId; + private String gatewayAddressName; + private String gatewayName; + private String modeAlias; + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public int getBasicSwitch() { + return basicSwitch; + } + + public void setBasicSwitch(int basicSwitch) { + this.basicSwitch = basicSwitch; + } + + public String getExecTime() { + return execTime == null ? "" : execTime; + } + + public void setExecTime(String execTime) { + this.execTime = execTime; + } + + public String getExecType() { + return execType == null ? "" : execType; + } + + public void setExecType(String execType) { + this.execType = execType; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public String getIcon() { + return icon == null ? "" : icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getModelId() { + return modelId == null ? "" : modelId; + } + + public void setModelId(String modelId) { + this.modelId = modelId; + } + + public String getModelName() { + return modelName == null ? "" : modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public String getModelType() { + return modelType == null ? "" : modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType; + } + + public int getOnceFlag() { + return onceFlag; + } + + public void setOnceFlag(int onceFlag) { + this.onceFlag = onceFlag; + } + + public int getOpenFlag() { + return openFlag; + } + + public void setOpenFlag(int openFlag) { + this.openFlag = openFlag; + } + + public int getSortNum() { + return sortNum; + } + + public void setSortNum(int sortNum) { + this.sortNum = sortNum; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getWeekNum1() { + return weekNum1 == null ? "" : weekNum1; + } + + public void setWeekNum1(String weekNum1) { + this.weekNum1 = weekNum1; + } + + public String getWeekNum2() { + return weekNum2 == null ? "" : weekNum2; + } + + public void setWeekNum2(String weekNum2) { + this.weekNum2 = weekNum2; + } + + public String getWeekNum3() { + return weekNum3 == null ? "" : weekNum3; + } + + public void setWeekNum3(String weekNum3) { + this.weekNum3 = weekNum3; + } + + public String getWeekNum4() { + return weekNum4 == null ? "" : weekNum4; + } + + public void setWeekNum4(String weekNum4) { + this.weekNum4 = weekNum4; + } + + public String getWeekNum5() { + return weekNum5 == null ? "" : weekNum5; + } + + public void setWeekNum5(String weekNum5) { + this.weekNum5 = weekNum5; + } + + public String getWeekNum6() { + return weekNum6 == null ? "" : weekNum6; + } + + public void setWeekNum6(String weekNum6) { + this.weekNum6 = weekNum6; + } + + public String getWeekNum7() { + return weekNum7 == null ? "" : weekNum7; + } + + public void setWeekNum7(String weekNum7) { + this.weekNum7 = weekNum7; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId == null ? "" : ziId; + } + + public String getGroupId() { + return groupId == null ? "" : groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId == null ? "" : groupId; + } + + public String getGatewayAddressName() { + return gatewayAddressName == null ? "" : gatewayAddressName; + } + + public void setGatewayAddressName(String gatewayAddressName) { + this.gatewayAddressName = gatewayAddressName == null ? "" : gatewayAddressName; + } + + public String getGatewayName() { + return gatewayName == null ? "" : gatewayName; + } + + public void setGatewayName(String gatewayName) { + this.gatewayName = gatewayName == null ? "" : gatewayName; + } + + public String getModeAlias() { + return modeAlias == null ? "" : modeAlias; + } + + public void setModeAlias(String modeAlias) { + this.modeAlias = modeAlias == null ? "" : modeAlias; + } + + public List getModeExecs() { + if (modeExecs == null) { + return new ArrayList<>(); + } + return modeExecs; + } + + public void setModeExecs(List modeExecs) { + this.modeExecs = modeExecs; + } + + public static class ModeExecsBean { + /** + * execType : single + * name : 主卧小艾B1-L-0230 + * ziId : F0FE6BC79946 + */ + + private String execType; + private String name; + private String ziId; + private String groupId; + private String gatewayAddressName; + private String gatewayName; + private String modeAlias; + private int showFlag; + + public String getExecType() { + return execType == null ? "" : execType; + } + + public void setExecType(String execType) { + this.execType = execType == null ? "" : execType; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId == null ? "" : ziId; + } + + public String getGroupId() { + return groupId == null ? "" : groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId == null ? "" : groupId; + } + + public String getGatewayAddressName() { + return gatewayAddressName == null ? "" : gatewayAddressName; + } + + public void setGatewayAddressName(String gatewayAddressName) { + this.gatewayAddressName = gatewayAddressName == null ? "" : gatewayAddressName; + } + + public String getGatewayName() { + return gatewayName; + } + + public void setGatewayName(String gatewayName) { + this.gatewayName = gatewayName; + } + + public String getModeAlias() { + return modeAlias; + } + + public void setModeAlias(String modeAlias) { + this.modeAlias = modeAlias; + } + + public int getShowFlag() { + return showFlag; + } + + public void setShowFlag(int showFlag) { + this.showFlag = showFlag; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/SyncEquipmentEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/SyncEquipmentEntity.java new file mode 100644 index 0000000..e2def5a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/SyncEquipmentEntity.java @@ -0,0 +1,106 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.List; + +public class SyncEquipmentEntity { + + /** + * flag : 1 + * data : [{"alias":"超级智能面板","appKey":"01605091470159","deviceId":"68b9d3e2cf70f11a6d75b1b62019","deviceType":"panel","room":"客厅"},{"alias":"灯光","appKey":"","deviceId":"008_2_a205ae8e0c294def81779210ab51985c_0","deviceType":"LIGHT","room":"客厅"},{"alias":"客厅","appKey":"","deviceId":"010_5_3ce47cd0c3517c08e69233c9dcbac72c_36","deviceType":"SOCKET","room":"客厅"},{"alias":"风扇","appKey":"","deviceId":"003_0_746b2805bdda472d9bb63fde70dc8024","deviceType":"FAN","room":"客厅"},{"alias":"电视","appKey":"","deviceId":"004_0_59d221f9148a693729f08927ab152ab6","deviceType":"TV_SET","room":"客厅"},{"alias":"窗帘","appKey":"","deviceId":"009_2_7bf6b322d118bd44759d0e14a5eef10f_0","deviceType":"CURTAIN","room":"客厅"},{"alias":"多功能控制器","appKey":"","deviceId":"026_0_bd93bdfea35e8a1b1dd92559194dcc26_254","deviceType":"SWITCH","room":"客厅"},{"alias":"插座","appKey":"","deviceId":"010_2_4f3f2401a17dcb63acde7c786067cd99_36","deviceType":"SOCKET","room":"客厅"},{"alias":"空调","appKey":"","deviceId":"001_0_67e521b478e845af9b6fd2574baafaa8","deviceType":"AIR_CONDITION","room":"客厅"}] + * msg : + * code : 1 + */ + + private int flag; + private String msg; + private int code; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * alias : 超级智能面板 + * appKey : 01605091470159 + * deviceId : 68b9d3e2cf70f11a6d75b1b62019 + * deviceType : panel + * room : 客厅 + */ + + private String alias; + private String appKey; + private String deviceId; + private String deviceType; + private String room; + + public String getAlias() { + return alias == null ? "" : alias; + } + + public void setAlias(String alias) { + this.alias = alias == null ? "" : alias; + } + + public String getAppKey() { + return appKey == null ? "" : appKey; + } + + public void setAppKey(String appKey) { + this.appKey = appKey == null ? "" : appKey; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId == null ? "" : deviceId; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType == null ? "" : deviceType; + } + + public String getRoom() { + return room == null ? "" : room; + } + + public void setRoom(String room) { + this.room = room == null ? "" : room; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/ThemeEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ThemeEntity.java new file mode 100644 index 0000000..9662fad --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/ThemeEntity.java @@ -0,0 +1,232 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.List; + +public class ThemeEntity { + + /** + * code : 1 + * data : {"backgroundImage":"","code":"swaiot_background_music_theme","createDate":1625476424000,"fontSize":"","icons":[{"code":"1","createDate":1625450718000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/48408783798156.png","id":23,"themeId":5,"type":"scene","updateDate":1625450718000},{"code":"2","createDate":1625450718000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/99885548203096.png","id":24,"themeId":5,"type":"scene","updateDate":1625450718000},{"code":"3","createDate":1625450718000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/79129357491279.png","id":25,"themeId":5,"type":"scene","updateDate":1625450718000},{"code":"4","createDate":1625450718000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/59340602362696.png","id":26,"themeId":5,"type":"scene","updateDate":1625450718000},{"code":"5","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/65737708630134.png","id":27,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"6","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/56446648764306.png","id":28,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"7","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/47185384970981.png","id":29,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"23","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/95028697487302.png","id":30,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"24","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/70687877326383.png","id":31,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"25","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/35715574908383.png","id":32,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"26","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/28038555615582.png","id":33,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"27","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/6414321121833.png","id":34,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"28","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/74403524384344.png","id":35,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"254","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/89549423256922.png","id":36,"themeId":5,"type":"scene","updateDate":1625450719000}],"id":5,"mainColor":"","name":"创维背景音乐主题","updateDate":1625476424000,"weatherTextColor":""} + * flag : 1 + * msg : success + */ + + private int code; + private DataBean data; + private int flag; + private String msg; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * backgroundImage : + * code : swaiot_background_music_theme + * createDate : 1625476424000 + * fontSize : + * icons : [{"code":"1","createDate":1625450718000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/48408783798156.png","id":23,"themeId":5,"type":"scene","updateDate":1625450718000},{"code":"2","createDate":1625450718000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/99885548203096.png","id":24,"themeId":5,"type":"scene","updateDate":1625450718000},{"code":"3","createDate":1625450718000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/79129357491279.png","id":25,"themeId":5,"type":"scene","updateDate":1625450718000},{"code":"4","createDate":1625450718000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/59340602362696.png","id":26,"themeId":5,"type":"scene","updateDate":1625450718000},{"code":"5","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/65737708630134.png","id":27,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"6","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/56446648764306.png","id":28,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"7","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/47185384970981.png","id":29,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"23","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/95028697487302.png","id":30,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"24","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/70687877326383.png","id":31,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"25","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/35715574908383.png","id":32,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"26","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/28038555615582.png","id":33,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"27","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/6414321121833.png","id":34,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"28","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/74403524384344.png","id":35,"themeId":5,"type":"scene","updateDate":1625450719000},{"code":"254","createDate":1625450719000,"icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/89549423256922.png","id":36,"themeId":5,"type":"scene","updateDate":1625450719000}] + * id : 5 + * mainColor : + * name : 创维背景音乐主题 + * updateDate : 1625476424000 + * weatherTextColor : + */ + + private String backgroundImage; + private String code; + private long createDate; + private String fontSize; + private int id; + private String mainColor; + private String name; + private long updateDate; + private String weatherTextColor; + private List icons; + + public String getBackgroundImage() { + return backgroundImage; + } + + public void setBackgroundImage(String backgroundImage) { + this.backgroundImage = backgroundImage; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getFontSize() { + return fontSize; + } + + public void setFontSize(String fontSize) { + this.fontSize = fontSize; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getMainColor() { + return mainColor; + } + + public void setMainColor(String mainColor) { + this.mainColor = mainColor; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getWeatherTextColor() { + return weatherTextColor; + } + + public void setWeatherTextColor(String weatherTextColor) { + this.weatherTextColor = weatherTextColor; + } + + public List getIcons() { + return icons; + } + + public void setIcons(List icons) { + this.icons = icons; + } + + public static class IconsBean { + /** + * code : 1 + * createDate : 1625450718000 + * icon : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/file/2021/6/3/48408783798156.png + * id : 23 + * themeId : 5 + * type : scene + * updateDate : 1625450718000 + */ + + private String code; + private long createDate; + private String icon; + private int id; + private String themeId; + private String type; + private long updateDate; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getThemeId() { + return themeId; + } + + public void setThemeId(String themeId) { + this.themeId = themeId; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/TriggerConditionEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/TriggerConditionEvent.java new file mode 100644 index 0000000..38dd912 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/TriggerConditionEvent.java @@ -0,0 +1,20 @@ +package com.yonsz.z1.database.entity.entity5; + +public class TriggerConditionEvent { + private AutomationEntity.DataBean.TriggerConditionsBean mActionBean; + private int mPosition; + + public TriggerConditionEvent(AutomationEntity.DataBean.TriggerConditionsBean dataList, int position) { + // TODO Auto-generated constructor stub + mActionBean = dataList; + mPosition = position; + } + + public AutomationEntity.DataBean.TriggerConditionsBean getMsg() { + return mActionBean; + } + + public int getPosotion() { + return mPosition; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/TuyaDeviceEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/TuyaDeviceEntity.java new file mode 100644 index 0000000..712e941 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/TuyaDeviceEntity.java @@ -0,0 +1,142 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +public class TuyaDeviceEntity { + + /** + * flag : 1 + * data : {"successDevices":[{"id":"15157100bcddc2a4bc05","productId":"3kegaoajpj5qv4ng","name":"安顺祥WiFi插座","ip":"61.141.250.242"}],"errorDevices":[]} + * msg : success + * code : 1 + */ + + private int flag; + private DataBean data; + private String msg; + private int code; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg == null ? "" : msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public static class DataBean { + private List successDevices; + private List errorDevices; + + public List getSuccessDevices() { + if (successDevices == null) { + return new ArrayList<>(); + } + return successDevices; + } + + public void setSuccessDevices(List successDevices) { + this.successDevices = successDevices; + } + + public List getErrorDevices() { + if (errorDevices == null) { + return new ArrayList<>(); + } + return errorDevices; + } + + public void setErrorDevices(List errorDevices) { + this.errorDevices = errorDevices; + } + + public static class SuccessDevicesBean { + /** + * id : 15157100bcddc2a4bc05 + * productId : 3kegaoajpj5qv4ng + * name : 安顺祥WiFi插座 + * ip : 61.141.250.242 + */ + + private String id; + private String productId; + private String name; + private String ip; + private String floor; + private String deviceId; + + public String getFloor() { + return floor == null ? "" : floor; + } + + public void setFloor(String floor) { + this.floor = floor == null ? "" : floor; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId == null ? "" : deviceId; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public String getProductId() { + return productId == null ? "" : productId; + } + + public void setProductId(String productId) { + this.productId = productId == null ? "" : productId; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public String getIp() { + return ip == null ? "" : ip; + } + + public void setIp(String ip) { + this.ip = ip == null ? "" : ip; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/UnlockRecordEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/UnlockRecordEntity.java new file mode 100644 index 0000000..2efe2fc --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/UnlockRecordEntity.java @@ -0,0 +1,161 @@ +package com.yonsz.z1.database.entity.entity5; + +/** + * Created by Administrator on 2019/7/26. + */ + +public class UnlockRecordEntity { + /** + * createDate : 1560993607000 + * deviceId : 4F00417PAZBB75C + * deviceModel : 0 + * deviceType : 023 + * id : 25 + * keyId : 6 + * keyName : FingerPrint6 + * keyType : fingerPrint + * number : 1 + * openFlag : 1 + * result : 1 + * text : 使用指纹开锁成功 + * time : 2019-06-20 09:20:05 + * updateDate : 1560993607000 + * userId : e79dbf0cf5514e559505b596db7f770f + */ + + private String createDate; + private String deviceId; + private String deviceModel; + private String deviceType; + private String id; + private String keyId; + private String keyName; + private String keyType; + private int number; + private String openFlag; + private String result; + private String text; + private String time; + private String updateDate; + private String userId; + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getKeyId() { + return keyId == null ? "" : keyId; + } + + public void setKeyId(String keyId) { + this.keyId = keyId; + } + + public String getKeyName() { + return keyName == null ? "" : keyName; + } + + public void setKeyName(String keyName) { + this.keyName = keyName; + } + + public String getKeyType() { + return keyType == null ? "" : keyType; + } + + public void setKeyType(String keyType) { + this.keyType = keyType; + } + + public int getNumber() { + return number; + } + + public void setNumber(int number) { + this.number = number; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + + public String getResult() { + return result == null ? "" : result; + } + + public void setResult(String result) { + this.result = result; + } + + public String getText() { + return text == null ? "" : text; + } + + public void setText(String text) { + this.text = text; + } + + public String getTime() { + return time == null ? "" : time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/UpgradeEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/UpgradeEntity.java new file mode 100644 index 0000000..93935f4 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/UpgradeEntity.java @@ -0,0 +1,94 @@ +package com.yonsz.z1.database.entity.entity5; + +public class UpgradeEntity { + + /** + * code : 1 + * data : {"id":88,"progress":100,"reason":"","status":3} + * flag : 1 + * msg : + */ + + private int code; + private DataBean data; + private int flag; + private String msg; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class DataBean { + /** + * id : 88 + * progress : 100 + * reason : + * status : 3 + */ + + private String id; + private String progress; + private String reason; + private int status; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public String getProgress() { + return progress == null ? "" : progress; + } + + public void setProgress(String progress) { + this.progress = progress == null ? "" : progress; + } + + public String getReason() { + return reason == null ? "" : reason; + } + + public void setReason(String reason) { + this.reason = reason == null ? "" : reason; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entity5/YBLBodyEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entity5/YBLBodyEntity.java new file mode 100644 index 0000000..9172959 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entity5/YBLBodyEntity.java @@ -0,0 +1,175 @@ +package com.yonsz.z1.database.entity.entity5; + +import java.util.ArrayList; +import java.util.List; + +public class YBLBodyEntity { + + private List items; + private String code; + private String deviceCount; + private String yblId; + private String yblType; + private String ziId; + private String addressNo; + private String parentId; + private String sendSetAddress; + private String version; + + public String getVersion() { + return version == null ? "" : version; + } + + public void setVersion(String version) { + this.version = version == null ? "" : version; + } + + public String getSendSetAddress() { + return sendSetAddress; + } + + public void setSendSetAddress(String sendSetAddress) { + this.sendSetAddress = sendSetAddress; + } + + public String getAddressNo() { + return addressNo == null ? "" : addressNo; + } + + public void setAddressNo(String addressNo) { + this.addressNo = addressNo; + } + + public String getParentId() { + return parentId == null ? "" : parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getYblId() { + return yblId == null ? "" : yblId; + } + + public void setYblId(String yblId) { + this.yblId = yblId; + } + + public String getYblType() { + return yblType == null ? "" : yblType; + } + + public void setYblType(String yblType) { + this.yblType = yblType; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public List getItems() { + if (items == null) { + return new ArrayList<>(); + } + return items; + } + + public void setItems(List items) { + this.items = items; + } + + public String getCode() { + return code == null ? "" : code; + } + + public void setCode(String code) { + this.code = code == null ? "" : code; + } + + public String getDeviceCount() { + return deviceCount == null ? "" : deviceCount; + } + + public void setDeviceCount(String deviceCount) { + this.deviceCount = deviceCount == null ? "" : deviceCount; + } + + public static class ItemsBean { + /** + * deviceName : 多功能控制器 + * yblId : b1004ec4 + * yblType : 04 + * addressId : 1 + */ + + private String deviceName; + private String yblId; + private String yblType; + private String addressId; + private String subtype; + private String code; + + private String modeId; + + public String getModeId() { + return modeId == null ? "" : modeId; + } + + public void setModeId(String modeId) { + this.modeId = modeId == null ? "" : modeId; + } + + public String getCode() { + return code == null ? "" : code; + } + + public void setCode(String code) { + this.code = code == null ? "" : code; + } + + public String getSubtype() { + return subtype == null ? "" : subtype; + } + + public void setSubtype(String subtype) { + this.subtype = subtype == null ? "" : subtype; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName == null ? "" : deviceName; + } + + public String getYblId() { + return yblId == null ? "" : yblId; + } + + public void setYblId(String yblId) { + this.yblId = yblId == null ? "" : yblId; + } + + public String getYblType() { + return yblType == null ? "" : yblType; + } + + public void setYblType(String yblType) { + this.yblType = yblType == null ? "" : yblType; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId == null ? "" : addressId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/AddModelEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/AddModelEntity.java new file mode 100644 index 0000000..fdccc34 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/AddModelEntity.java @@ -0,0 +1,215 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2017/12/15. + */ + +public class AddModelEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : {"weekNum5":"1","weekNum4":"0","updateDate":"2017-12-15 11:12:07","weekNum3":"1","weekNum2":"0","weekNum7":"1","weekNum6":"0","isNewRecord":false,"modelType":"1","userId":"18824634311","openFlag":0,"onceTime":"20:00","id":"9422a923a5ee438fb05df06f05c8b866","weekNum1":"1","createDate":"2017-12-15 11:12:07"} + */ + private String msg; + private int flag; + private ObjEntity obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * weekNum5 : 1 + * weekNum4 : 0 + * updateDate : 2017-12-15 11:12:07 + * weekNum3 : 1 + * weekNum2 : 0 + * weekNum7 : 1 + * weekNum6 : 0 + * isNewRecord : false + * modelType : 1 + * userId : 18824634311 + * openFlag : 0 + * onceTime : 20:00 + * id : 9422a923a5ee438fb05df06f05c8b866 + * weekNum1 : 1 + * createDate : 2017-12-15 11:12:07 + */ + private String weekNum5; + private String weekNum4; + private String updateDate; + private String weekNum3; + private String weekNum2; + private String weekNum7; + private String weekNum6; + private String weekNum0; + private boolean isNewRecord; + private String modelType; + private String userId; + private int openFlag; + private int basicSwitch; + private String onceTime; + private String id; + private String weekNum1; + private String createDate; + + + public int getBasicSwitch() { + return basicSwitch; + } + + public void setBasicSwitch(int basicSwitch) { + this.basicSwitch = basicSwitch; + } + + public String getWeekNum5() { + return weekNum5 == null ? "" : weekNum5; + } + + public void setWeekNum5(String weekNum5) { + this.weekNum5 = weekNum5; + } + + public String getWeekNum4() { + return weekNum4 == null ? "" : weekNum4; + } + + public void setWeekNum4(String weekNum4) { + this.weekNum4 = weekNum4; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getWeekNum3() { + return weekNum3 == null ? "" : weekNum3; + } + + public void setWeekNum3(String weekNum3) { + this.weekNum3 = weekNum3; + } + + public String getWeekNum2() { + return weekNum2 == null ? "" : weekNum2; + } + + public void setWeekNum2(String weekNum2) { + this.weekNum2 = weekNum2; + } + + public String getWeekNum7() { + return weekNum7 == null ? "" : weekNum7; + } + + public void setWeekNum7(String weekNum7) { + this.weekNum7 = weekNum7; + } + + public String getWeekNum6() { + return weekNum6 == null ? "" : weekNum6; + } + + public void setWeekNum6(String weekNum6) { + this.weekNum6 = weekNum6; + } + + public String getWeekNum0() { + return weekNum0 == null ? "" : weekNum0; + } + + public void setWeekNum0(String weekNum0) { + this.weekNum0 = weekNum0; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getModelType() { + return modelType == null ? "" : modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public int getOpenFlag() { + return openFlag; + } + + public void setOpenFlag(int openFlag) { + this.openFlag = openFlag; + } + + public String getOnceTime() { + return onceTime == null ? "" : onceTime; + } + + public void setOnceTime(String onceTime) { + this.onceTime = onceTime; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWeekNum1() { + return weekNum1 == null ? "" : weekNum1; + } + + public void setWeekNum1(String weekNum1) { + this.weekNum1 = weekNum1; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/AirAllEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/AirAllEntity.java new file mode 100644 index 0000000..859be2d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/AirAllEntity.java @@ -0,0 +1,374 @@ +package com.yonsz.z1.database.entity.entitya2; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/1/22. + */ + +public class AirAllEntity { + /** + * sm : 8 + * rs : [{"rid":"FSYOHtrZJcWDA75nB7H5lg==","v":3,"name":"美的 华凌 小天鹅 荣事达","t":7,"be_rmodel":"Universal1(V3)","rmodel":"Universal1(V3)","rdesc":"","order_no":-1,"zip":1,"rc_command":{"off":{"kn":"","src":"s/WWSKMGpJ6dD1trmlC9iS/gudI8QK2bpfbnKbYF0f069vSDR3D6R7rH7v33mkEvucXsv79+F/PRE20O5zTquAVcZjMPo/iDasRaNUtIGuc=","short":"","order":0},"on":{"kn":"","src":"s/WWSKMGpJ6dD1trmlC9idbzzmgBTWakUvPmJ9zaQ8UBN229aYwZfyacR+eU7Rg3RS0P1RsE4Q3cXPij6R7X5oM9yr5uCSzL0YwjeHSul1c=","short":"","order":1}}},{"rid":"1e3Marg8YK/XU6+NlREFvA==","v":3,"name":"美的 华凌 小天鹅 荣事达","t":7,"be_rmodel":"Universal2(V3)","rmodel":"Universal2(V3)","rdesc":"","order_no":0,"zip":1,"rc_command":{"off":{"kn":"","src":"s/WWSKMGpJ6dD1trmlC9iS/gudI8QK2bpfbnKbYF0f069vSDR3D6R7rH7v33mkEvucXsv79+F/PRE20O5zTquAVcZjMPo/iDasRaNUtIGuc=","short":"","order":0},"on":{"kn":"","src":"s/WWSKMGpJ6dD1trmlC9idbzzmgBTWakUvPmJ9zaQ8UBN229aYwZfyacR+eU7Rg3RS0P1RsE4Q3cXPij6R7X5oM9yr5uCSzL0YwjeHSul1c=","short":"","order":1}}},{"rid":"o4qkHrN4/pHQ5O3PdeO1bg==","v":3,"name":"美的 华凌 小天鹅 荣事达","t":7,"be_rmodel":"1(V3)","rmodel":"1(V3)","rdesc":"","order_no":7,"zip":1,"rc_command":{"off":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWkpi4E8EuHcnX3QakCnoQ7zJoBdQvrgZ+WTfbc5j9oR0Dzk2irB2sKwDwymboCnq8YhTQSF0xQVtDI3PZ42kedS8=","short":"","order":0},"on":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWknKKYp9V+/Dbe8riw1XL+vh/ZUHrNg+fWUyzOV516EJUwYjbSqkEL2JFrXF8fcMZfgAEdSs6xizDmyzYMULzjYg=","short":"","order":1}}},{"rid":"x9x2fBUEa9xBMEXdWz2wMg==","v":3,"name":"美的 华凌 小天鹅 荣事达","t":7,"be_rmodel":"2(V3)","rmodel":"2(V3)","rdesc":"","order_no":8,"zip":1,"rc_command":{"off":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWkpi4E8EuHcnX3QakCnoQ7zIh2dyya7ViL+Vw6dnhM/Ui8YOAgF8lyO5nKHj1+3LuZj6pQcXAXqbv/Cl3uTS7yGU=","short":"","order":0},"on":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWknKKYp9V+/Dbe8riw1XL+vhD03AOZ3S/j2O670PuM5RbXE2yzG/NccA7Uq3fJ3yucE6AoGKJ2N5tf/cgeaq+e8g=","short":"","order":1}}},{"rid":"MozozTTkMtqrM5kgBx9xvYQcfwUigZAHB3+DuVUqsJ8=","v":3,"name":"美的 华凌 小天鹅 荣事达","t":7,"be_rmodel":"3(V3)","rmodel":"3(V3)","rdesc":"","order_no":9,"zip":1,"rc_command":{"off":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWkpi4E8EuHcnX3QakCnoQ7zIh2dyya7ViL+Vw6dnhM/Ui8YOAgF8lyO5nKHj1+3LuZj6pQcXAXqbv/Cl3uTS7yGU=","short":"","order":0},"on":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWknKKYp9V+/Dbe8riw1XL+vjXSz4JoCnUarJFgWSShWINEGhklD614T+E7WxQe0ZmhsNyvG5chtfgY5YIt9OyrRA=","short":"","order":1}}},{"rid":"4PqfIQYCXFBwo9x31BozLw==","v":3,"name":"美的 华凌 小天鹅 荣事达","t":7,"be_rmodel":"8(V3)","rmodel":"8(V3)","rdesc":"","order_no":14,"zip":1,"rc_command":{"off":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWknKKYp9V+/Dbe8riw1XL+vjAVgGnIM0NW/zJE19MBFgoC48qC88GkUy6MqkWD26tiWV9/DRD9SpModRy1TP0MKs=","short":"","order":0},"on":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWknKKYp9V+/Dbe8riw1XL+vh/ZUHrNg+fWUyzOV516EJUwYjbSqkEL2JFrXF8fcMZfgAEdSs6xizDmyzYMULzjYg=","short":"","order":1}}},{"rid":"tdppochS72Cmy7VPiNvOew==","v":3,"name":"美的 华凌 小天鹅 荣事达","t":7,"be_rmodel":"11(V3)","rmodel":"11(V3)","rdesc":"","order_no":17,"zip":1,"rc_command":{"off":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWkpi4E8EuHcnX3QakCnoQ7zJoBdQvrgZ+WTfbc5j9oR0Dzk2irB2sKwDwymboCnq8YsOI9hrvV0tJlL0CWE6z56hy3VF6SnHJKz2DYOXME4xT","short":"","order":0},"on":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWknKKYp9V+/Dbe8riw1XL+vh/ZUHrNg+fWUyzOV516EJUwYjbSqkEL2JFrXF8fcMZfgAEdSs6xizDmyzYMULzjYg=","short":"","order":1}}},{"rid":"KxUanCU3YnMGdl3kWq5okg==","v":3,"name":"美的 华凌 小天鹅 荣事达","t":7,"be_rmodel":"12(V3)","rmodel":"12(V3)","rdesc":"","order_no":18,"zip":1,"rc_command":{"a_s1__u1_l1_p0":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWksf3Z8z8uH+kzXvKTEoMgpEMfTogBbzpE9176XfVvlE7V8GmB1W4YAatylzy2bQEM5WlEuZJ2YC69zsxus4l0DA=","short":"","order":0},"a_s2__u0_l0_p0":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWktEhkOcwTuHgBCycvFevlmbSKTcmXV148vGwYrYxewuI2OdrWu4+DAOIFEJyhEesdaHqDHmi4jPv1+HV0vI0uAw=","short":"","order":1},"off":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWkpi4E8EuHcnX3QakCnoQ7zJoBdQvrgZ+WTfbc5j9oR0Dzk2irB2sKwDwymboCnq8YhTQSF0xQVtDI3PZ42kedS8=","short":"","order":2},"on":{"kn":"","src":"yc+HXSNE1r1kMxbcfDCWknKKYp9V+/Dbe8riw1XL+vjXSz4JoCnUarJFgWSShWINEGhklD614T+E7WxQe0ZmhsNyvG5chtfgY5YIt9OyrRA=","short":"","order":3}}}] + */ + + private int sm; + private List rs; + + public int getSm() { + return sm; + } + + public void setSm(int sm) { + this.sm = sm; + } + + public List getRs() { + if (rs == null) { + return new ArrayList<>(); + } + return rs; + } + + public void setRs(List rs) { + this.rs = rs; + } + + public static class RsBean { + /** + * rid : FSYOHtrZJcWDA75nB7H5lg== + * v : 3 + * name : 美的 华凌 小天鹅 荣事达 + * t : 7 + * be_rmodel : Universal1(V3) + * rmodel : Universal1(V3) + * rdesc : + * order_no : -1 + * zip : 1 + * rc_command : {"off":{"kn":"","src":"s/WWSKMGpJ6dD1trmlC9iS/gudI8QK2bpfbnKbYF0f069vSDR3D6R7rH7v33mkEvucXsv79+F/PRE20O5zTquAVcZjMPo/iDasRaNUtIGuc=","short":"","order":0},"on":{"kn":"","src":"s/WWSKMGpJ6dD1trmlC9idbzzmgBTWakUvPmJ9zaQ8UBN229aYwZfyacR+eU7Rg3RS0P1RsE4Q3cXPij6R7X5oM9yr5uCSzL0YwjeHSul1c=","short":"","order":1}} + */ + + private String rid; + private int v; + private String name; + private int t; + private String be_rmodel; + private String rmodel; + private String rdesc; + private int order_no; + private int zip; + private RcCommandBean rc_command; + + public String getRid() { + return rid == null ? "" : rid; + } + + public void setRid(String rid) { + this.rid = rid; + } + + public int getV() { + return v; + } + + public void setV(int v) { + this.v = v; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public int getT() { + return t; + } + + public void setT(int t) { + this.t = t; + } + + public String getBe_rmodel() { + return be_rmodel == null ? "" : be_rmodel; + } + + public void setBe_rmodel(String be_rmodel) { + this.be_rmodel = be_rmodel; + } + + public String getRmodel() { + return rmodel == null ? "" : rmodel; + } + + public void setRmodel(String rmodel) { + this.rmodel = rmodel; + } + + public String getRdesc() { + return rdesc == null ? "" : rdesc; + } + + public void setRdesc(String rdesc) { + this.rdesc = rdesc; + } + + public int getOrder_no() { + return order_no; + } + + public void setOrder_no(int order_no) { + this.order_no = order_no; + } + + public int getZip() { + return zip; + } + + public void setZip(int zip) { + this.zip = zip; + } + + public RcCommandBean getRc_command() { + return rc_command; + } + + public void setRc_command(RcCommandBean rc_command) { + this.rc_command = rc_command; + } + + public static class RcCommandBean { + + /** + * a_s1__u1_l1_p0 : {"kn":"","order":0,"short":"","src":"yc+HXSNE1r1kMxbcfDCWksf3Z8z8uH+kzXvKTEoMgpEMfTogBbzpE9176XfVvlE7V8GmB1W4YAatylzy2bQEM5WlEuZJ2YC69zsxus4l0DA="} + * a_s2__u0_l0_p0 : {"kn":"","order":1,"short":"","src":"yc+HXSNE1r1kMxbcfDCWktEhkOcwTuHgBCycvFevlmbSKTcmXV148vGwYrYxewuI2OdrWu4+DAOIFEJyhEesdaHqDHmi4jPv1+HV0vI0uAw="} + * off : {"kn":"","order":2,"short":"","src":"yc+HXSNE1r1kMxbcfDCWkpi4E8EuHcnX3QakCnoQ7zJoBdQvrgZ+WTfbc5j9oR0Dzk2irB2sKwDwymboCnq8YhTQSF0xQVtDI3PZ42kedS8="} + * on : {"kn":"","order":3,"short":"","src":"yc+HXSNE1r1kMxbcfDCWknKKYp9V+/Dbe8riw1XL+vjXSz4JoCnUarJFgWSShWINEGhklD614T+E7WxQe0ZmhsNyvG5chtfgY5YIt9OyrRA="} + */ + + private AS1U1L1P0Bean a_s1__u1_l1_p0; + private AS2U0L0P0Bean a_s2__u0_l0_p0; + private OffBean off; + private OnBean on; + + public AS1U1L1P0Bean getA_s1__u1_l1_p0() { + return a_s1__u1_l1_p0; + } + + public void setA_s1__u1_l1_p0(AS1U1L1P0Bean a_s1__u1_l1_p0) { + this.a_s1__u1_l1_p0 = a_s1__u1_l1_p0; + } + + public AS2U0L0P0Bean getA_s2__u0_l0_p0() { + return a_s2__u0_l0_p0; + } + + public void setA_s2__u0_l0_p0(AS2U0L0P0Bean a_s2__u0_l0_p0) { + this.a_s2__u0_l0_p0 = a_s2__u0_l0_p0; + } + + public OffBean getOff() { + return off; + } + + public void setOff(OffBean off) { + this.off = off; + } + + public OnBean getOn() { + return on; + } + + public void setOn(OnBean on) { + this.on = on; + } + + public static class AS1U1L1P0Bean { + /** + * kn : + * order : 0 + * short : + * src : yc+HXSNE1r1kMxbcfDCWksf3Z8z8uH+kzXvKTEoMgpEMfTogBbzpE9176XfVvlE7V8GmB1W4YAatylzy2bQEM5WlEuZJ2YC69zsxus4l0DA= + */ + + private String kn; + private int order; + private String shortX; + private String src; + + public String getKn() { + return kn == null ? "" : kn; + } + + public void setKn(String kn) { + this.kn = kn; + } + + public int getOrder() { + return order; + } + + public void setOrder(int order) { + this.order = order; + } + + public String getShortX() { + return shortX == null ? "" : shortX; + } + + public void setShortX(String shortX) { + this.shortX = shortX; + } + + public String getSrc() { + return src == null ? "" : src; + } + + public void setSrc(String src) { + this.src = src; + } + } + + public static class AS2U0L0P0Bean { + /** + * kn : + * order : 1 + * short : + * src : yc+HXSNE1r1kMxbcfDCWktEhkOcwTuHgBCycvFevlmbSKTcmXV148vGwYrYxewuI2OdrWu4+DAOIFEJyhEesdaHqDHmi4jPv1+HV0vI0uAw= + */ + + private String kn; + private int order; + private String shortX; + private String src; + + public String getKn() { + return kn == null ? "" : kn; + } + + public void setKn(String kn) { + this.kn = kn; + } + + public int getOrder() { + return order; + } + + public void setOrder(int order) { + this.order = order; + } + + public String getShortX() { + return shortX == null ? "" : shortX; + } + + public void setShortX(String shortX) { + this.shortX = shortX; + } + + public String getSrc() { + return src == null ? "" : src; + } + + public void setSrc(String src) { + this.src = src; + } + } + + public static class OffBean { + /** + * kn : + * order : 2 + * short : + * src : yc+HXSNE1r1kMxbcfDCWkpi4E8EuHcnX3QakCnoQ7zJoBdQvrgZ+WTfbc5j9oR0Dzk2irB2sKwDwymboCnq8YhTQSF0xQVtDI3PZ42kedS8= + */ + + private String kn; + private int order; + private String shortX; + private String src; + + public String getKn() { + return kn == null ? "" : kn; + } + + public void setKn(String kn) { + this.kn = kn; + } + + public int getOrder() { + return order; + } + + public void setOrder(int order) { + this.order = order; + } + + public String getShortX() { + return shortX == null ? "" : shortX; + } + + public void setShortX(String shortX) { + this.shortX = shortX; + } + + public String getSrc() { + return src == null ? "" : src; + } + + public void setSrc(String src) { + this.src = src; + } + } + + public static class OnBean { + /** + * kn : + * order : 3 + * short : + * src : yc+HXSNE1r1kMxbcfDCWknKKYp9V+/Dbe8riw1XL+vjXSz4JoCnUarJFgWSShWINEGhklD614T+E7WxQe0ZmhsNyvG5chtfgY5YIt9OyrRA= + */ + + private String kn; + private int order; + private String shortX; + private String src; + + public String getKn() { + return kn == null ? "" : kn; + } + + public void setKn(String kn) { + this.kn = kn; + } + + public int getOrder() { + return order; + } + + public void setOrder(int order) { + this.order = order; + } + + public String getShortX() { + return shortX == null ? "" : shortX; + } + + public void setShortX(String shortX) { + this.shortX = shortX; + } + + public String getSrc() { + return src == null ? "" : src; + } + + public void setSrc(String src) { + this.src = src; + } + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/BlindTestEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/BlindTestEntity.java new file mode 100644 index 0000000..1ed40d7 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/BlindTestEntity.java @@ -0,0 +1,212 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2017/12/16. + */ + +public class BlindTestEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : {"stopCode":"BF675A20c022","stopFlag":"1","voiceFlag":"0","pid":2,"isNewRecord":true,"addressId":"1","closeCode":"BF675A2020a2","closeFlag":"1","openCode":"BF675A2040c2","openFlag":"1","ziId":"F0FE6B58E232","addressName":"客厅","codePid":"56535ce4cfda4a4ca33973074259ab0f"} + */ + private String msg; + private int flag; + private ObjEntity obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * stopCode : BF675A20c022 + * stopFlag : 1 + * voiceFlag : 0 + * pid : 2 + * isNewRecord : true + * addressId : 1 + * closeCode : BF675A2020a2 + * closeFlag : 1 + * openCode : BF675A2040c2 + * openFlag : 1 + * ziId : F0FE6B58E232 + * addressName : 客厅 + * codePid : 56535ce4cfda4a4ca33973074259ab0f + */ + private String stopCode; + private String stopFlag; + private String voiceFlag; + private int pid; + private boolean isNewRecord; + private String addressId; + private String closeCode; + private String closeFlag; + private String openCode; + private String openFlag; + private String ziId; + private String addressName; + private String codePid; + private String id; + private String offInfrared; + private String onInfrared; + private String relatedId; + + public String getStopCode() { + return stopCode == null ? "" : stopCode; + } + + public void setStopCode(String stopCode) { + this.stopCode = stopCode; + } + + public String getStopFlag() { + return stopFlag == null ? "" : stopFlag; + } + + public void setStopFlag(String stopFlag) { + this.stopFlag = stopFlag; + } + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + + public int getPid() { + return pid; + } + + public void setPid(int pid) { + this.pid = pid; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getCloseCode() { + return closeCode == null ? "" : closeCode; + } + + public void setCloseCode(String closeCode) { + this.closeCode = closeCode; + } + + public String getCloseFlag() { + return closeFlag == null ? "" : closeFlag; + } + + public void setCloseFlag(String closeFlag) { + this.closeFlag = closeFlag; + } + + public String getOpenCode() { + return openCode == null ? "" : openCode; + } + + public void setOpenCode(String openCode) { + this.openCode = openCode; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getCodePid() { + return codePid == null ? "" : codePid; + } + + public void setCodePid(String codePid) { + this.codePid = codePid; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getOffInfrared() { + return offInfrared == null ? "" : offInfrared; + } + + public void setOffInfrared(String offInfrared) { + this.offInfrared = offInfrared; + } + + public String getOnInfrared() { + return onInfrared == null ? "" : onInfrared; + } + + public void setOnInfrared(String onInfrared) { + this.onInfrared = onInfrared; + } + + public String getRelatedId() { + return relatedId == null ? "" : relatedId; + } + + public void setRelatedId(String relatedId) { + this.relatedId = relatedId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/BrandListA2Entity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/BrandListA2Entity.java new file mode 100644 index 0000000..8a08466 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/BrandListA2Entity.java @@ -0,0 +1,136 @@ +package com.yonsz.z1.database.entity.entitya2; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/11/21. + */ + +public class BrandListA2Entity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : {"brandList":[{"brandName":"海尔","common":0,"brandId":72,"isNewRecord":true,"deviceId":7},{"brandName":"格力","common":0,"brandId":104,"isNewRecord":true,"deviceId":7},{"brandName":"海信","common":0,"brandId":246,"isNewRecord":true,"deviceId":7},{"brandName":"美的 华凌 小天鹅 荣事达","common":0,"brandId":1101,"isNewRecord":true,"deviceId":7},{"brandName":"奥克斯","common":0,"brandId":1361,"isNewRecord":true,"deviceId":7},{"brandName":"天津空调","common":0,"brandId":1740,"isNewRecord":true,"deviceId":7}],"deviceId":7} + */ + private String msg; + private int flag; + private ObjEntity obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * brandList : [{"brandName":"海尔","common":0,"brandId":72,"isNewRecord":true,"deviceId":7},{"brandName":"格力","common":0,"brandId":104,"isNewRecord":true,"deviceId":7},{"brandName":"海信","common":0,"brandId":246,"isNewRecord":true,"deviceId":7},{"brandName":"美的 华凌 小天鹅 荣事达","common":0,"brandId":1101,"isNewRecord":true,"deviceId":7},{"brandName":"奥克斯","common":0,"brandId":1361,"isNewRecord":true,"deviceId":7},{"brandName":"天津空调","common":0,"brandId":1740,"isNewRecord":true,"deviceId":7}] + * deviceId : 7.0 + */ + private List brandList; + private double deviceId; + + public List getBrandList() { + if (brandList == null) { + return new ArrayList<>(); + } + return brandList; + } + + public void setBrandList(List brandList) { + this.brandList = brandList; + } + + public double getDeviceId() { + return deviceId; + } + + public void setDeviceId(double deviceId) { + this.deviceId = deviceId; + } + + public static class BrandListEntity { + /** + * brandName : 海尔 + * common : 0.0 + * brandId : 72.0 + * isNewRecord : true + * deviceId : 7.0 + */ + private String brandName; + private String common; + private String brandId; + private boolean isNewRecord; + private String deviceId; + private String deviceModel; + + public String getDeviceModel() { + return deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getBrandName() { + return brandName == null ? "" : brandName; + } + + public void setBrandName(String brandName) { + this.brandName = brandName; + } + + public String getCommon() { + return common == null ? "" : common; + } + + public void setCommon(String common) { + this.common = common; + } + + public String getBrandId() { + return brandId == null ? "" : brandId; + } + + public void setBrandId(String brandId) { + this.brandId = brandId; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/DeviceAllEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/DeviceAllEntity.java new file mode 100644 index 0000000..b9dff7c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/DeviceAllEntity.java @@ -0,0 +1,744 @@ +package com.yonsz.z1.database.entity.entitya2; + +import com.yonsz.z1.database.entity.DeviceDetailEntity; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/12/8. + */ + +public class DeviceAllEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : [{"ziName":"设备A1-02","blindList":[{"voiceFlag":"0","ziId":"F0FE6B58F931","reverseFlag":"0","addressName":"客厅","pid":"01","id":"87695cb056be403694c17601474d708d","isNewRecord":false,"studyFlag":"0"}],"isNewRecord":true,"userName":"嗨友","blindNum":0,"list":[{"deviceType":"001","updateDate":"2017-12-06 17:07:24","ziId":"F0FE6B58F931","id":"b760789a376246fe9930bef814a00fd1","isNewRecord":false,"rid":"9Z00XTtnpsvWwlHKnMBTNecJ9bDiwkSDV+7EtOYRyzE=","deviceId":"001","deviceName":"空调","addStyle":"0","assistFlag":"0","deviceBrand":"海尔","createDate":"2017-12-06 17:07:24"},{"deviceType":"003","updateDate":"2017-12-06 16:21:38","ziId":"F0FE6B58F931","id":"e02b894c717245efa5bed9a0fca2c0ee","isNewRecord":false,"deviceId":"003","deviceName":"风扇","addStyle":"0","assistFlag":"0","deviceBrand":"艾美特","createDate":"2017-12-06 16:21:38"},{"deviceType":"004","updateDate":"2017-12-08 10:34:44","ziId":"F0FE6B58F931","id":"a338bb57d47b4f7aa1c98a35b2339b0f","isNewRecord":false,"rid":"erRkODA4z32qncU4c33HBEAhZ95TEEQ2uMPW0sbOuOg=","deviceId":"004","deviceName":"网络电视","addStyle":"0","assistFlag":"0","deviceBrand":"索尼","createDate":"2017-12-08 10:34:44"},{"deviceType":"005","updateDate":"2017-12-02 09:55:52","ziId":"F0FE6B58F931","id":"9f5486b1a66743c7879739bfee9cc83e","isNewRecord":false,"rid":"Ua0gLGurW9qZRP/cNXiSIw==","deviceId":"005","deviceBrand":"飞利浦","createDate":"2017-12-02 09:55:52"},{"deviceType":"008","updateDate":"2017-12-02 10:46:53","ziId":"F0FE6B58F931","id":"97433de7dc42465a97f71e342cb867e3","isNewRecord":false,"deviceId":"008","deviceBrand":"未知品牌","createDate":"2017-12-02 10:46:53"},{"deviceType":"009","updateDate":"2017-12-02 10:59:51","ziId":"F0FE6B58F931","id":"b1fad031bc8148b885bec282f03a96bc","isNewRecord":false,"deviceId":"009","deviceBrand":"未知品牌","createDate":"2017-12-02 10:59:51"},{"deviceType":"010","updateDate":"2017-11-30 16:23:22","ziId":"F0FE6B58F931","id":"95a639088f03437ebdc429ade33644d1","isNewRecord":false,"deviceId":"010","deviceBrand":"未知品牌","createDate":"2017-11-30 16:23:22"}],"lightNum":0,"deviceAddress":"客厅","ziId":"F0FE6B58F931","isOwner":"1","lightLlist":[{"onFlag":"0","voiceFlag":"0","ziId":"F0FE6B58F931","pid":60,"addressName":"客厅","id":"916bc8c3edd24fb7bc23ffddc7b384b2","isNewRecord":false,"offFlag":"0"}],"plugList":[{"voiceFlag":"0","ziId":"F0FE6B58F931","addressName":"脚上","id":"5fda553ee4614bd39c0d94eb5af81a03","isNewRecord":false,"studyFlag":"0"}],"user":{"admin":false,"loginFlag":"1","id":"18824634311","isNewRecord":false,"roleNames":""},"plugNum":0}] + */ + private String msg; + private int flag; + private List obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getObj() { + if (obj == null) { + return new ArrayList<>(); + } + return obj; + } + + public void setObj(List obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * ziName : 设备A1-02 + * blindList : [{"voiceFlag":"0","ziId":"F0FE6B58F931","reverseFlag":"0","addressName":"客厅","pid":"01","id":"87695cb056be403694c17601474d708d","isNewRecord":false,"studyFlag":"0"}] + * isNewRecord : true + * userName : 嗨友 + * blindNum : 0 + * list : [{"deviceType":"001","updateDate":"2017-12-06 17:07:24","ziId":"F0FE6B58F931","id":"b760789a376246fe9930bef814a00fd1","isNewRecord":false,"rid":"9Z00XTtnpsvWwlHKnMBTNecJ9bDiwkSDV+7EtOYRyzE=","deviceId":"001","deviceName":"空调","addStyle":"0","assistFlag":"0","deviceBrand":"海尔","createDate":"2017-12-06 17:07:24"},{"deviceType":"003","updateDate":"2017-12-06 16:21:38","ziId":"F0FE6B58F931","id":"e02b894c717245efa5bed9a0fca2c0ee","isNewRecord":false,"deviceId":"003","deviceName":"风扇","addStyle":"0","assistFlag":"0","deviceBrand":"艾美特","createDate":"2017-12-06 16:21:38"},{"deviceType":"004","updateDate":"2017-12-08 10:34:44","ziId":"F0FE6B58F931","id":"a338bb57d47b4f7aa1c98a35b2339b0f","isNewRecord":false,"rid":"erRkODA4z32qncU4c33HBEAhZ95TEEQ2uMPW0sbOuOg=","deviceId":"004","deviceName":"网络电视","addStyle":"0","assistFlag":"0","deviceBrand":"索尼","createDate":"2017-12-08 10:34:44"},{"deviceType":"005","updateDate":"2017-12-02 09:55:52","ziId":"F0FE6B58F931","id":"9f5486b1a66743c7879739bfee9cc83e","isNewRecord":false,"rid":"Ua0gLGurW9qZRP/cNXiSIw==","deviceId":"005","deviceBrand":"飞利浦","createDate":"2017-12-02 09:55:52"},{"deviceType":"008","updateDate":"2017-12-02 10:46:53","ziId":"F0FE6B58F931","id":"97433de7dc42465a97f71e342cb867e3","isNewRecord":false,"deviceId":"008","deviceBrand":"未知品牌","createDate":"2017-12-02 10:46:53"},{"deviceType":"009","updateDate":"2017-12-02 10:59:51","ziId":"F0FE6B58F931","id":"b1fad031bc8148b885bec282f03a96bc","isNewRecord":false,"deviceId":"009","deviceBrand":"未知品牌","createDate":"2017-12-02 10:59:51"},{"deviceType":"010","updateDate":"2017-11-30 16:23:22","ziId":"F0FE6B58F931","id":"95a639088f03437ebdc429ade33644d1","isNewRecord":false,"deviceId":"010","deviceBrand":"未知品牌","createDate":"2017-11-30 16:23:22"}] + * lightNum : 0 + * deviceAddress : 客厅 + * ziId : F0FE6B58F931 + * isOwner : 1 + * lightLlist : [{"onFlag":"0","voiceFlag":"0","ziId":"F0FE6B58F931","pid":60,"addressName":"客厅","id":"916bc8c3edd24fb7bc23ffddc7b384b2","isNewRecord":false,"offFlag":"0"}] + * plugList : [{"voiceFlag":"0","ziId":"F0FE6B58F931","addressName":"脚上","id":"5fda553ee4614bd39c0d94eb5af81a03","isNewRecord":false,"studyFlag":"0"}] + * user : {"admin":false,"loginFlag":"1","id":"18824634311","isNewRecord":false,"roleNames":""} + * plugNum : 0 + */ + private String ziName; + private List blindList; + private boolean isNewRecord; + private String userName; + private int blindNum; + private List list; + private int lightNum; + private String deviceAddress; + private String ziId; + private String isOwner; + private List lightLlist; + private List plugList; + private List safeList; + private UserEntity user; + private int plugNum; + private String conndeviceId; + private String id; + + public String getConndeviceId() { + return conndeviceId == null ? "" : conndeviceId; + } + + public void setConndeviceId(String conndeviceId) { + this.conndeviceId = conndeviceId; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getZiName() { + return ziName == null ? "" : ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + + public List getBlindList() { + if (blindList == null) { + return new ArrayList<>(); + } + return blindList; + } + + public void setBlindList(List blindList) { + this.blindList = blindList; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getUserName() { + return userName == null ? "" : userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public int getBlindNum() { + return blindNum; + } + + public void setBlindNum(int blindNum) { + this.blindNum = blindNum; + } + + public List getList() { + if (list == null) { + return new ArrayList<>(); + } + return list; + } + + public void setList(List list) { + this.list = list; + } + + public int getLightNum() { + return lightNum; + } + + public void setLightNum(int lightNum) { + this.lightNum = lightNum; + } + + public String getDeviceAddress() { + return deviceAddress == null ? "" : deviceAddress; + } + + public void setDeviceAddress(String deviceAddress) { + this.deviceAddress = deviceAddress; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getIsOwner() { + return isOwner == null ? "" : isOwner; + } + + public void setIsOwner(String isOwner) { + this.isOwner = isOwner; + } + + public List getLightLlist() { + if (lightLlist == null) { + return new ArrayList<>(); + } + return lightLlist; + } + + public void setLightLlist(List lightLlist) { + this.lightLlist = lightLlist; + } + + public List getPlugList() { + if (plugList == null) { + return new ArrayList<>(); + } + return plugList; + } + + public void setPlugList(List plugList) { + this.plugList = plugList; + } + + public List getSafeList() { + if (safeList == null) { + return new ArrayList<>(); + } + return safeList; + } + + public void setSafeList(List safeList) { + this.safeList = safeList; + } + + public UserEntity getUser() { + return user; + } + + public void setUser(UserEntity user) { + this.user = user; + } + + public int getPlugNum() { + return plugNum; + } + + public void setPlugNum(int plugNum) { + this.plugNum = plugNum; + } + + public static class BlindListEntity extends DeviceDetailEntity { + /** + * voiceFlag : 0 + * ziId : F0FE6B58F931 + * reverseFlag : 0 + * addressName : 客厅 + * pid : 01 + * id : 87695cb056be403694c17601474d708d + * isNewRecord : false + * studyFlag : 0 + */ + private String voiceFlag; + private String ziId; + private String reverseFlag; + private String addressName; + private String pid; + private String id; + private boolean isNewRecord; + private String studyFlag; + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + + @Override + public String getZiId() { + return ziId == null ? "" : ziId; + } + + @Override + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getReverseFlag() { + return reverseFlag == null ? "" : reverseFlag; + } + + public void setReverseFlag(String reverseFlag) { + this.reverseFlag = reverseFlag; + } + + @Override + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + @Override + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getPid() { + return pid == null ? "" : pid; + } + + public void setPid(String pid) { + this.pid = pid; + } + + @Override + public String getId() { + return id == null ? "" : id; + } + + @Override + public void setId(String id) { + this.id = id; + } + + @Override + public boolean isNewRecord() { + return isNewRecord; + } + + @Override + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getStudyFlag() { + return studyFlag == null ? "" : studyFlag; + } + + public void setStudyFlag(String studyFlag) { + this.studyFlag = studyFlag; + } + } + + public static class ListEntity extends DeviceDetailEntity { + /** + * deviceType : 001 + * updateDate : 2017-12-06 17:07:24 + * ziId : F0FE6B58F931 + * id : b760789a376246fe9930bef814a00fd1 + * isNewRecord : false + * rid : 9Z00XTtnpsvWwlHKnMBTNecJ9bDiwkSDV+7EtOYRyzE= + * deviceId : 001 + * deviceName : 空调 + * addStyle : 0 + * assistFlag : 0 + * deviceBrand : 海尔 + * createDate : 2017-12-06 17:07:24 + */ + private String deviceType; + private String updateDate; + private String ziId; + private String id; + private boolean isNewRecord; + private String rid; + private String deviceId; + private String deviceName; + private String addStyle; + private String assistFlag; + private String deviceBrand; + private String createDate; + + @Override + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + @Override + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + @Override + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + @Override + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + @Override + public String getZiId() { + return ziId == null ? "" : ziId; + } + + @Override + public void setZiId(String ziId) { + this.ziId = ziId; + } + + @Override + public String getId() { + return id == null ? "" : id; + } + + @Override + public void setId(String id) { + this.id = id; + } + + @Override + public boolean isNewRecord() { + return isNewRecord; + } + + @Override + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + @Override + public String getRid() { + return rid == null ? "" : rid; + } + + @Override + public void setRid(String rid) { + this.rid = rid; + } + + @Override + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + @Override + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + @Override + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + @Override + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getAddStyle() { + return addStyle == null ? "" : addStyle; + } + + public void setAddStyle(String addStyle) { + this.addStyle = addStyle; + } + + @Override + public String getAssistFlag() { + return assistFlag == null ? "" : assistFlag; + } + + @Override + public void setAssistFlag(String assistFlag) { + this.assistFlag = assistFlag; + } + + @Override + public String getDeviceBrand() { + return deviceBrand == null ? "" : deviceBrand; + } + + @Override + public void setDeviceBrand(String deviceBrand) { + this.deviceBrand = deviceBrand; + } + + @Override + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + @Override + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + } + + public static class LightLlistEntity extends DeviceDetailEntity { + /** + * onFlag : 0 + * voiceFlag : 0 + * ziId : F0FE6B58F931 + * pid : 60 + * addressName : 客厅 + * id : 916bc8c3edd24fb7bc23ffddc7b384b2 + * isNewRecord : false + * offFlag : 0 + */ + private String onFlag; + private String voiceFlag; + private String ziId; + private int pid; + private String addressName; + private String id; + private boolean isNewRecord; + private String offFlag; + + public String getOnFlag() { + return onFlag == null ? "" : onFlag; + } + + public void setOnFlag(String onFlag) { + this.onFlag = onFlag; + } + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + + @Override + public String getZiId() { + return ziId == null ? "" : ziId; + } + + @Override + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public int getPid() { + return pid; + } + + public void setPid(int pid) { + this.pid = pid; + } + + @Override + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + @Override + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + @Override + public String getId() { + return id == null ? "" : id; + } + + @Override + public void setId(String id) { + this.id = id; + } + + @Override + public boolean isNewRecord() { + return isNewRecord; + } + + @Override + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getOffFlag() { + return offFlag == null ? "" : offFlag; + } + + public void setOffFlag(String offFlag) { + this.offFlag = offFlag; + } + } + + public static class PlugListEntity extends DeviceDetailEntity { + /** + * voiceFlag : 0 + * ziId : F0FE6B58F931 + * addressName : 脚上 + * id : 5fda553ee4614bd39c0d94eb5af81a03 + * isNewRecord : false + * studyFlag : 0 + */ + private String voiceFlag; + private String ziId; + private String addressName; + private String id; + private boolean isNewRecord; + private String studyFlag; + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + + @Override + public String getZiId() { + return ziId == null ? "" : ziId; + } + + @Override + public void setZiId(String ziId) { + this.ziId = ziId; + } + + @Override + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + @Override + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + @Override + public String getId() { + return id == null ? "" : id; + } + + @Override + public void setId(String id) { + this.id = id; + } + + @Override + public boolean isNewRecord() { + return isNewRecord; + } + + @Override + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getStudyFlag() { + return studyFlag == null ? "" : studyFlag; + } + + public void setStudyFlag(String studyFlag) { + this.studyFlag = studyFlag; + } + } + + public static class SafeListEntity extends DeviceDetailEntity { + + /** + * deviceInfrared : BAE554 + * openFlag : 1 + * rawCode : 01180110646361585F5E010268 + * voiceFlag : 1 + */ + + private String deviceInfrared; + private int openFlag; + private String rawCode; + private int voiceFlag; + + public String getDeviceInfrared() { + return deviceInfrared == null ? "" : deviceInfrared; + } + + public void setDeviceInfrared(String deviceInfrared) { + this.deviceInfrared = deviceInfrared; + } + + public int getOpenFlag() { + return openFlag; + } + + public void setOpenFlag(int openFlag) { + this.openFlag = openFlag; + } + + public String getRawCode() { + return rawCode == null ? "" : rawCode; + } + + public void setRawCode(String rawCode) { + this.rawCode = rawCode; + } + + public int getVoiceFlag() { + return voiceFlag; + } + + public void setVoiceFlag(int voiceFlag) { + this.voiceFlag = voiceFlag; + } + } + + public static class UserEntity { + /** + * admin : false + * loginFlag : 1 + * id : 18824634311 + * isNewRecord : false + * roleNames : + */ + private boolean admin; + private String loginFlag; + private String id; + private boolean isNewRecord; + private String roleNames; + + public boolean isAdmin() { + return admin; + } + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public String getLoginFlag() { + return loginFlag == null ? "" : loginFlag; + } + + public void setLoginFlag(String loginFlag) { + this.loginFlag = loginFlag; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getRoleNames() { + return roleNames == null ? "" : roleNames; + } + + public void setRoleNames(String roleNames) { + this.roleNames = roleNames; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/DeviceEntityV4.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/DeviceEntityV4.java new file mode 100644 index 0000000..38d8299 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/DeviceEntityV4.java @@ -0,0 +1,1200 @@ +package com.yonsz.z1.database.entity.entitya2; + +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.fragment.scene.treerecyclerview.base.BaseItemData; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/6/16. + */ + +public class DeviceEntityV4 implements Serializable { + + /** + * flag : 1 + * data : [{"id":"486671cedb99488694c9d99cb0110a27","isNewRecord":false,"userName":"哈哈","ziId":"F0FE6B58E597","ziName":"设备A1-086","appId":"1101","partner":"18824634310","partnerName":"啦啦啦啦","isOwner":"1","addressId":"5","deviceAddress":"书房","wifiName":"YSZNET","onlineFlag":"0","lightNum":2,"blindNum":1,"plugNum":1,"safeNum":1,"deviceVersion":"2","loadStatus":"0","loadErrorType":"001","firmwareVersion":"2.1.180227B","isNewOtaFlag":0,"devices":[{"id":"0e066b9f761d425e9a1ce208d2ed9e1d","isNewRecord":false,"createDate":"2018-01-25 17:05:46","updateDate":"2018-01-25 17:05:46","deviceId":"011","ziId":"F0FE6B58E597","deviceType":"011","deviceBrand":"未知品牌","cancelFlag":0,"addressId":"5","sortNum":500},{"id":"1fa1a639d4554765b213924a015f6f1f","isNewRecord":false,"createDate":"2018-01-29 14:16:48","updateDate":"2018-01-29 14:16:48","deviceId":"009","ziId":"F0FE6B58E597","deviceType":"009","deviceBrand":"未知品牌","cancelFlag":0,"addressId":"5","sortNum":500},{"id":"3493231ba8ea446e9cf4b6dca22b426b","isNewRecord":false,"createDate":"2018-01-29 15:56:57","updateDate":"2018-01-29 15:56:57","deviceId":"008","ziId":"F0FE6B58E597","deviceType":"008","deviceBrand":"未知品牌","cancelFlag":0,"addressId":"5","sortNum":500},{"id":"7ee08ecf0730482388edfdda6a02d50f","isNewRecord":false,"createDate":"2018-01-29 16:02:37","updateDate":"2018-01-29 16:02:37","deviceId":"010","ziId":"F0FE6B58E597","deviceType":"010","deviceBrand":"未知品牌","cancelFlag":0,"addressId":"5","sortNum":500},{"id":"d7ed1ed4deb84e69939652217492972d","isNewRecord":false,"createDate":"2018-03-23 17:41:07","updateDate":"2018-03-23 17:41:07","deviceId":"001","ziId":"F0FE6B58E597","deviceType":"001","deviceBrand":"格力","rid":"1j7fqU/U0EtaimR9ufpxxA==","cancelFlag":0,"addressId":"5","sortNum":500},{"id":"fd9a98745cc94a6d878ddb0da349bcf4","isNewRecord":false,"createDate":"2018-03-19 17:48:12","updateDate":"2018-03-19 17:48:12","deviceId":"003","ziId":"F0FE6B58E597","deviceType":"003","deviceBrand":"艾美特","rid":"12UcVOAxPcS/CViuhoR0Ww==","cancelFlag":0,"addressId":"5","sortNum":500},{"id":"c553c2121a964994b382b2c31c936e22","isNewRecord":false,"pid":2957,"addressId":"9","addressName":"门口","ziId":"F0FE6B58E597","onInfrared":"383895","offInfrared":"38389a","onFlag":"1","offFlag":"1","voiceFlag":"0","panelId":"38","lightOrder":1,"deviceType":"008","sortNum":500},{"id":"1fc702d00e4c444fa9c215d664e7f2f2","isNewRecord":false,"pid":2958,"addressId":"9","addressName":"门口","ziId":"F0FE6B58E597","onInfrared":"3838AA","offInfrared":"3838A5","onFlag":"1","offFlag":"1","voiceFlag":"1","panelId":"38","lightOrder":2,"deviceType":"008","sortNum":500},{"id":"ca93edec94184c3f94e39dcbf8d792a2","isNewRecord":false,"addressName":"阳台","addressId":"8","ziId":"F0FE6B58E597","pid":2,"codePid":"aff6e6858ce64ac5a581091699a7d3e1","openCode":"BF675Ad8203a","closeCode":"BF675Ad8405a","stopCode":"BF675Ad8c0da","openFlag":"1","voiceFlag":"1","deviceType":"009","sortNum":500},{"id":"f18899e0521c4f8c875ce93c388969f4","isNewRecord":false,"addressId":"6","addressName":"厨房","ziId":"F0FE6B58E597","onInfrared":"0000BF84AC","offInfrared":"0000BF84A9","studyFlag":"1","voiceFlag":"1","deviceType":"010","sortNum":500},{"id":"406cfdb095d14f8fb50d70dfd212d360","isNewRecord":false,"addressName":"门口","addressId":"9","ziId":"F0FE6B58E597","rawCode":"01180110646361585F5C010266","openFlag":1,"deviceType":"012","deviceInfrared":"BAE552","warnId":"BAE55","powerFlag":"1","voiceFlag":0,"sortNum":500}]}] + * msg : 查询设备设备成功。 + */ + + private int flag; + private String msg; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean extends BaseItemData implements Serializable { + /** + * id : 486671cedb99488694c9d99cb0110a27 + * isNewRecord : false + * userName : 哈哈 + * ziId : F0FE6B58E597 + * ziName : 设备A1-086 + * appId : 1101 + * partner : 18824634310 + * partnerName : 啦啦啦啦 + * isOwner : 1 + * addressId : 5 + * deviceAddress : 书房 + * wifiName : YSZNET + * onlineFlag : 0 + * lightNum : 2 + * blindNum : 1 + * plugNum : 1 + * safeNum : 1 + * deviceVersion : 2 + * loadStatus : 0 + * loadErrorType : 001 + * firmwareVersion : 2.1.180227B + * isNewOtaFlag : 0 + * devices : [{"id":"0e066b9f761d425e9a1ce208d2ed9e1d","isNewRecord":false,"createDate":"2018-01-25 17:05:46","updateDate":"2018-01-25 17:05:46","deviceId":"011","ziId":"F0FE6B58E597","deviceType":"011","deviceBrand":"未知品牌","cancelFlag":0,"addressId":"5","sortNum":500},{"id":"1fa1a639d4554765b213924a015f6f1f","isNewRecord":false,"createDate":"2018-01-29 14:16:48","updateDate":"2018-01-29 14:16:48","deviceId":"009","ziId":"F0FE6B58E597","deviceType":"009","deviceBrand":"未知品牌","cancelFlag":0,"addressId":"5","sortNum":500},{"id":"3493231ba8ea446e9cf4b6dca22b426b","isNewRecord":false,"createDate":"2018-01-29 15:56:57","updateDate":"2018-01-29 15:56:57","deviceId":"008","ziId":"F0FE6B58E597","deviceType":"008","deviceBrand":"未知品牌","cancelFlag":0,"addressId":"5","sortNum":500},{"id":"7ee08ecf0730482388edfdda6a02d50f","isNewRecord":false,"createDate":"2018-01-29 16:02:37","updateDate":"2018-01-29 16:02:37","deviceId":"010","ziId":"F0FE6B58E597","deviceType":"010","deviceBrand":"未知品牌","cancelFlag":0,"addressId":"5","sortNum":500},{"id":"d7ed1ed4deb84e69939652217492972d","isNewRecord":false,"createDate":"2018-03-23 17:41:07","updateDate":"2018-03-23 17:41:07","deviceId":"001","ziId":"F0FE6B58E597","deviceType":"001","deviceBrand":"格力","rid":"1j7fqU/U0EtaimR9ufpxxA==","cancelFlag":0,"addressId":"5","sortNum":500},{"id":"fd9a98745cc94a6d878ddb0da349bcf4","isNewRecord":false,"createDate":"2018-03-19 17:48:12","updateDate":"2018-03-19 17:48:12","deviceId":"003","ziId":"F0FE6B58E597","deviceType":"003","deviceBrand":"艾美特","rid":"12UcVOAxPcS/CViuhoR0Ww==","cancelFlag":0,"addressId":"5","sortNum":500},{"id":"c553c2121a964994b382b2c31c936e22","isNewRecord":false,"pid":2957,"addressId":"9","addressName":"门口","ziId":"F0FE6B58E597","onInfrared":"383895","offInfrared":"38389a","onFlag":"1","offFlag":"1","voiceFlag":"0","panelId":"38","lightOrder":1,"deviceType":"008","sortNum":500},{"id":"1fc702d00e4c444fa9c215d664e7f2f2","isNewRecord":false,"pid":2958,"addressId":"9","addressName":"门口","ziId":"F0FE6B58E597","onInfrared":"3838AA","offInfrared":"3838A5","onFlag":"1","offFlag":"1","voiceFlag":"1","panelId":"38","lightOrder":2,"deviceType":"008","sortNum":500},{"id":"ca93edec94184c3f94e39dcbf8d792a2","isNewRecord":false,"addressName":"阳台","addressId":"8","ziId":"F0FE6B58E597","pid":2,"codePid":"aff6e6858ce64ac5a581091699a7d3e1","openCode":"BF675Ad8203a","closeCode":"BF675Ad8405a","stopCode":"BF675Ad8c0da","openFlag":"1","voiceFlag":"1","deviceType":"009","sortNum":500},{"id":"f18899e0521c4f8c875ce93c388969f4","isNewRecord":false,"addressId":"6","addressName":"厨房","ziId":"F0FE6B58E597","onInfrared":"0000BF84AC","offInfrared":"0000BF84A9","studyFlag":"1","voiceFlag":"1","deviceType":"010","sortNum":500},{"id":"406cfdb095d14f8fb50d70dfd212d360","isNewRecord":false,"addressName":"门口","addressId":"9","ziId":"F0FE6B58E597","rawCode":"01180110646361585F5C010266","openFlag":1,"deviceType":"012","deviceInfrared":"BAE552","warnId":"BAE55","powerFlag":"1","voiceFlag":0,"sortNum":500}] + */ + + private String id; + private boolean isNewRecord; + private String userName; + private String ziId; + private String name; + private String appId; + private String partner; + private String partnerName; + private String isOwner; + private String addressId; + private String deviceAddress; + private String addressName; + private String wifiName; + private String online; + private int lightNum; + private int blindNum; + private int plugNum; + private int safeNum; + private String deviceVersion; + private String deviceModel; + private String loadStatus; + private String loadErrorType; + private String firmwareVersion; + private String connectFlag; + private int isNewOtaFlag; + private List children; + private int zigbeeFlag; + private String minOtaFlag; + private String subVersion; + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName == null ? "" : addressName; + } + + public String getSubVersion() { + return subVersion == null ? "" : subVersion; + } + + public void setSubVersion(String subVersion) { + this.subVersion = subVersion; + } + + public String getMinOtaFlag() { + return minOtaFlag == null ? "" : minOtaFlag; + } + + public void setMinOtaFlag(String minOtaFlag) { + this.minOtaFlag = minOtaFlag; + } + + public String getConnectFlag() { + return connectFlag == null ? "" : connectFlag; + } + + public void setConnectFlag(String connectFlag) { + this.connectFlag = connectFlag; + } + + public int getZigbeeFlag() { + return zigbeeFlag; + } + + public void setZigbeeFlag(int zigbeeFlag) { + this.zigbeeFlag = zigbeeFlag; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getUserName() { + return userName == null ? "" : userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public String getOnline() { + return online == null ? "" : online; + } + + public void setOnline(String online) { + this.online = online == null ? "" : online; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getPartner() { + return partner == null ? "" : partner; + } + + public void setPartner(String partner) { + this.partner = partner; + } + + public String getPartnerName() { + return partnerName == null ? "" : partnerName; + } + + public void setPartnerName(String partnerName) { + this.partnerName = partnerName; + } + + public String getIsOwner() { + return isOwner == null ? "" : isOwner; + } + + public void setIsOwner(String isOwner) { + this.isOwner = isOwner; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getDeviceAddress() { + return deviceAddress == null ? "" : deviceAddress; + } + + public void setDeviceAddress(String deviceAddress) { + this.deviceAddress = deviceAddress; + } + + public String getWifiName() { + return wifiName == null ? "" : wifiName; + } + + public void setWifiName(String wifiName) { + this.wifiName = wifiName; + } + + public String getOnlineFlag() { + return online == null ? "" : online; + } + + public void setOnlineFlag(String onlineFlag) { + this.online = onlineFlag; + } + + public int getLightNum() { + return lightNum; + } + + public void setLightNum(int lightNum) { + this.lightNum = lightNum; + } + + public int getBlindNum() { + return blindNum; + } + + public void setBlindNum(int blindNum) { + this.blindNum = blindNum; + } + + public int getPlugNum() { + return plugNum; + } + + public void setPlugNum(int plugNum) { + this.plugNum = plugNum; + } + + public int getSafeNum() { + return safeNum; + } + + public void setSafeNum(int safeNum) { + this.safeNum = safeNum; + } + + public String getDeviceVersion() { + return deviceVersion == null ? "" : deviceVersion; + } + + public void setDeviceVersion(String deviceVersion) { + this.deviceVersion = deviceVersion; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel == null ? "" : deviceModel; + } + + public String getLoadStatus() { + return loadStatus == null ? "" : loadStatus; + } + + public void setLoadStatus(String loadStatus) { + this.loadStatus = loadStatus; + } + + public String getLoadErrorType() { + return loadErrorType == null ? "" : loadErrorType; + } + + public void setLoadErrorType(String loadErrorType) { + this.loadErrorType = loadErrorType; + } + + public String getFirmwareVersion() { + return firmwareVersion == null ? "" : firmwareVersion; + } + + public void setFirmwareVersion(String firmwareVersion) { + this.firmwareVersion = firmwareVersion; + } + + public int getIsNewOtaFlag() { + return isNewOtaFlag; + } + + public void setIsNewOtaFlag(int isNewOtaFlag) { + this.isNewOtaFlag = isNewOtaFlag; + } + + public List getChildren() { + if (children == null) { + return new ArrayList<>(); + } + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public List getDevices() { + if (children == null) { + return new ArrayList<>(); + } + return children; + } + + public void setDevices(List devices) { + this.children = devices; + } + + public static class DevicesBean extends BaseItemData implements Serializable { + /** + * id : 0e066b9f761d425e9a1ce208d2ed9e1d + * isNewRecord : false + * createDate : 2018-01-25 17:05:46 + * updateDate : 2018-01-25 17:05:46 + * deviceId : 011 + * ziId : F0FE6B58E597 + * deviceType : 011 + * deviceBrand : 未知品牌 + * cancelFlag : 0 + * addressId : 5 + * sortNum : 500 + * rid : 1j7fqU/U0EtaimR9ufpxxA== + * pid : 2957 + * addressName : 门口 + * onInfrared : 383895 + * offInfrared : 38389a + * onFlag : 1 + * offFlag : 1 + * voiceFlag : 0 + * panelId : 38 + * lightOrder : 1 + * codePid : aff6e6858ce64ac5a581091699a7d3e1 + * openCode : BF675Ad8203a + * closeCode : BF675Ad8405a + * stopCode : BF675Ad8c0da + * openFlag : 1 + * studyFlag : 1 + * rawCode : 01180110646361585F5C010266 + * deviceInfrared : BAE552 + * warnId : BAE55 + * powerFlag : 1 + */ + + private String id; + private String deviceName; + private String name; + private String deviceModel; + private boolean modeTriggerFlag; + private boolean modeTriggerBound; + private boolean isNewRecord; + private String createDate; + private String updateDate; + private String deviceId; + private String ziId; + private String deviceType; + private String deviceBrand; + private int cancelFlag; + private String addressId; + private int sortNum; + private String rid; + private int pid; + private String addressName; + private String onInfrared; + private String offInfrared; + private String onFlag; + private String offFlag; + private String voiceFlag; + private String panelId; + private int lightOrder; + private String codePid; + private String openCode; + private String closeCode; + private String stopCode; + private String openFlag; + private String studyFlag; + private String rawCode; + private String deviceInfrared; + private String warnId; + private String powerFlag; + private String lightType; + private String plugType; + private String blindType; + private String relatedStatus; + private String assistFlag; + private String largeClass; + private int newFlag; + private RelatedBlindBean relatedBlind; + private int deviceCount; + private String extendId; + private String subType; + private String yblType; + private String modelName; + private String icon; + private String relatedId; + private int protocalType; + private List controlKeys; + private List children; + /** + * lastInfo : {"airdrying":"0","anion":"0","disinfect":"0","light":"0","openFlag":"2","stoving":"0","voice":"0"} + */ + + private LastInfoBean lastInfo; + + public List getChildren() { + if (children == null) { + return new ArrayList<>(); + } + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + + public List getControlKeys() { + if (controlKeys == null) { + return new ArrayList<>(); + } + return controlKeys; + } + + private boolean electricquantity; + private boolean online; + + public String getRelatedId() { + return relatedId == null ? "" : relatedId; + } + + public void setRelatedId(String relatedId) { + this.relatedId = relatedId; + } + + public boolean isElectricquantity() { + return electricquantity; + } + + public String getIcon() { + return icon == null ? "" : icon; + } + + public void setIcon(String icon) { + this.icon = icon == null ? "" : icon; + } + + public String getModelName() { + return modelName == null ? "" : modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName == null ? "" : modelName; + } + + public void setElectricquantity(boolean electricquantity) { + this.electricquantity = electricquantity; + } + + public boolean isOnline() { + return online; + } + + public void setOnline(boolean online) { + this.online = online; + } + + public void setControlKeys(List controlKeys) { + this.controlKeys = controlKeys; + } + + public String getYblType() { + return yblType == null ? "" : yblType; + } + + public void setYblType(String yblType) { + this.yblType = yblType; + } + + public boolean isModeTriggerFlag() { + return modeTriggerFlag; + } + + public void setModeTriggerFlag(boolean modeTriggerFlag) { + this.modeTriggerFlag = modeTriggerFlag; + } + + public boolean isModeTriggerBound() { + return modeTriggerBound; + } + + public void setModeTriggerBound(boolean modeTriggerBound) { + this.modeTriggerBound = modeTriggerBound; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType == null ? "" : subType; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getBlindType() { + return blindType == null ? "" : blindType; + } + + public void setBlindType(String blindType) { + this.blindType = blindType; + } + + public String getRelatedStatus() { + return relatedStatus == null ? "" : relatedStatus; + } + + public void setRelatedStatus(String relatedStatus) { + this.relatedStatus = relatedStatus; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName == null ? "" : deviceName; + } + + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public String getLargeClass() { + return largeClass == null ? "" : largeClass; + } + + public void setLargeClass(String largeClass) { + this.largeClass = largeClass; + } + + public String getAssistFlag() { + return assistFlag == null ? "" : assistFlag; + } + + public void setAssistFlag(String assistFlag) { + this.assistFlag = assistFlag; + } + + public String getLightType() { + return lightType == null ? "" : lightType; + } + + public void setLightType(String lightType) { + this.lightType = lightType; + } + + public String getPlugType() { + return plugType == null ? "" : plugType; + } + + public void setPlugType(String plugType) { + this.plugType = plugType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceBrand() { + return deviceBrand == null ? "" : deviceBrand; + } + + public void setDeviceBrand(String deviceBrand) { + this.deviceBrand = deviceBrand; + } + + public int getCancelFlag() { + return cancelFlag; + } + + public void setCancelFlag(int cancelFlag) { + this.cancelFlag = cancelFlag; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public int getSortNum() { + return sortNum; + } + + public void setSortNum(int sortNum) { + this.sortNum = sortNum; + } + + public String getRid() { + return rid == null ? "" : rid; + } + + public void setRid(String rid) { + this.rid = rid; + } + + public int getPid() { + return pid; + } + + public void setPid(int pid) { + this.pid = pid; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getOnInfrared() { + return onInfrared == null ? "" : onInfrared; + } + + public void setOnInfrared(String onInfrared) { + this.onInfrared = onInfrared; + } + + public String getOffInfrared() { + return offInfrared == null ? "" : offInfrared; + } + + public void setOffInfrared(String offInfrared) { + this.offInfrared = offInfrared; + } + + public String getOnFlag() { + return onFlag == null ? "" : onFlag; + } + + public void setOnFlag(String onFlag) { + this.onFlag = onFlag; + } + + public String getOffFlag() { + return offFlag == null ? "" : offFlag; + } + + public void setOffFlag(String offFlag) { + this.offFlag = offFlag; + } + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + + public String getPanelId() { + return panelId == null ? "" : panelId; + } + + public void setPanelId(String panelId) { + this.panelId = panelId; + } + + public int getLightOrder() { + return lightOrder; + } + + public void setLightOrder(int lightOrder) { + this.lightOrder = lightOrder; + } + + public String getCodePid() { + return codePid == null ? "" : codePid; + } + + public void setCodePid(String codePid) { + this.codePid = codePid; + } + + public String getOpenCode() { + return openCode == null ? "" : openCode; + } + + public void setOpenCode(String openCode) { + this.openCode = openCode; + } + + public String getCloseCode() { + return closeCode == null ? "" : closeCode; + } + + public void setCloseCode(String closeCode) { + this.closeCode = closeCode; + } + + public String getStopCode() { + return stopCode == null ? "" : stopCode; + } + + public void setStopCode(String stopCode) { + this.stopCode = stopCode; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + + public String getStudyFlag() { + return studyFlag == null ? "" : studyFlag; + } + + public void setStudyFlag(String studyFlag) { + this.studyFlag = studyFlag; + } + + public String getRawCode() { + return rawCode == null ? "" : rawCode; + } + + public void setRawCode(String rawCode) { + this.rawCode = rawCode; + } + + public String getDeviceInfrared() { + return deviceInfrared == null ? "" : deviceInfrared; + } + + public void setDeviceInfrared(String deviceInfrared) { + this.deviceInfrared = deviceInfrared; + } + + public String getWarnId() { + return warnId == null ? "" : warnId; + } + + public void setWarnId(String warnId) { + this.warnId = warnId; + } + + public String getPowerFlag() { + return powerFlag == null ? "" : powerFlag; + } + + public void setPowerFlag(String powerFlag) { + this.powerFlag = powerFlag; + } + + public int getNewFlag() { + return newFlag; + } + + public void setNewFlag(int newFlag) { + this.newFlag = newFlag; + } + + public RelatedBlindBean getRelatedBlind() { + return relatedBlind; + } + + public void setRelatedBlind(RelatedBlindBean relatedBlind) { + this.relatedBlind = relatedBlind; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getExtendId() { + return extendId == null ? "" : extendId; + } + + public void setExtendId(String extendId) { + this.extendId = extendId; + } + + public int getProtocalType() { + return protocalType; + } + + public void setProtocalType(int protocalType) { + this.protocalType = protocalType; + } + + public LastInfoBean getLastInfo() { + return lastInfo; + } + + public void setLastInfo(LastInfoBean lastInfo) { + this.lastInfo = lastInfo; + } + + public static class RelatedBlindBean implements Serializable { + /** + * addressId : 1 + * addressName : 客厅 + * blindType : 1 + * closeCode : BF675A4820ca + * codePid : 29202596f35742aab6c66b7b4537d1e0 + * createDate : 2018-07-13 11:08:27 + * deviceType : 009 + * id : b46d5090662544cb848e999ef4acf41c + * isNewRecord : false + * newFlag : 1 + * openCode : BF675A48408a + * openFlag : 1 + * pid : 1 + * relatedId : 5a6d762098054176b495472d11bf1466 + * relatedStatus : 2 + * sortNum : 500 + * stopCode : BF675A48c04a + * voiceFlag : 1 + * ziId : F0FE6BC79502 + */ + + + private String addressId; + private String addressName; + private int blindType; + private String closeCode; + private String codePid; + private String createDate; + private String deviceType; + private String id; + private boolean isNewRecord; + private int newFlag; + private String openCode; + private String openFlag; + private int pid; + private String relatedId; + private int relatedStatus; + private int sortNum; + private String stopCode; + private String voiceFlag; + private String ziId; + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public int getBlindType() { + return blindType; + } + + public void setBlindType(int blindType) { + this.blindType = blindType; + } + + public String getCloseCode() { + return closeCode == null ? "" : closeCode; + } + + public void setCloseCode(String closeCode) { + this.closeCode = closeCode; + } + + public String getCodePid() { + return codePid == null ? "" : codePid; + } + + public void setCodePid(String codePid) { + this.codePid = codePid; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public int getNewFlag() { + return newFlag; + } + + public void setNewFlag(int newFlag) { + this.newFlag = newFlag; + } + + public String getOpenCode() { + return openCode == null ? "" : openCode; + } + + public void setOpenCode(String openCode) { + this.openCode = openCode; + } + + public String getOpenFlag() { + return openFlag == null ? "1" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + + public int getPid() { + return pid; + } + + public void setPid(int pid) { + this.pid = pid; + } + + public String getRelatedId() { + return relatedId == null ? "" : relatedId; + } + + public void setRelatedId(String relatedId) { + this.relatedId = relatedId; + } + + public int getRelatedStatus() { + return relatedStatus; + } + + public void setRelatedStatus(int relatedStatus) { + this.relatedStatus = relatedStatus; + } + + public int getSortNum() { + return sortNum; + } + + public void setSortNum(int sortNum) { + this.sortNum = sortNum; + } + + public String getStopCode() { + return stopCode == null ? "" : stopCode; + } + + public void setStopCode(String stopCode) { + this.stopCode = stopCode; + } + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + } + + public static class LastInfoBean implements Serializable { + /** + * airdrying : 0 + * anion : 0 + * disinfect : 0 + * light : 0 + * openFlag : 2 + * stoving : 0 + * voice : 0 + */ + + private String airdrying; + private String anion; + private String disinfect; + private String light; + private String openFlag; + private String stoving; + private String voice; + + public String getAirdrying() { + return airdrying == null ? "" : airdrying; + } + + public void setAirdrying(String airdrying) { + this.airdrying = airdrying == null ? "" : airdrying; + } + + public String getAnion() { + return anion == null ? "" : anion; + } + + public void setAnion(String anion) { + this.anion = anion == null ? "" : anion; + } + + public String getDisinfect() { + return disinfect == null ? "" : disinfect; + } + + public void setDisinfect(String disinfect) { + this.disinfect = disinfect == null ? "" : disinfect; + } + + public String getLight() { + return light == null ? "" : light; + } + + public void setLight(String light) { + this.light = light == null ? "" : light; + } + + public String getOpenFlag() { + return openFlag == null ? "" : openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag == null ? "" : openFlag; + } + + public String getStoving() { + return stoving == null ? "" : stoving; + } + + public void setStoving(String stoving) { + this.stoving = stoving == null ? "" : stoving; + } + + public String getVoice() { + return voice == null ? "" : voice; + } + + public void setVoice(String voice) { + this.voice = voice == null ? "" : voice; + } + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/DevieFirstBean.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/DevieFirstBean.java new file mode 100644 index 0000000..6b1cff9 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/DevieFirstBean.java @@ -0,0 +1,44 @@ +package com.yonsz.z1.database.entity.entitya2; + + +import com.yonsz.z1.fragment.scene.treerecyclerview.base.BaseItemData; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by baozi on 2016/12/8. + */ +public class DevieFirstBean extends BaseItemData { + + private int addressId; + private String addressName; + private List mA1Beans; + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public int getAddressId() { + return addressId; + } + + public void setAddressId(int addressId) { + this.addressId = addressId; + } + + public List getCitys() { + if (mA1Beans == null) { + return new ArrayList<>(); + } + return mA1Beans; + } + + public void setCitys(List citys) { + this.mA1Beans = citys; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/EventCloseEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/EventCloseEntity.java new file mode 100644 index 0000000..68a2172 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/EventCloseEntity.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2017/9/6. + */ +public class EventCloseEntity { + private String mMsg; + + public EventCloseEntity(String msg) { + // TODO Auto-generated constructor stub + mMsg = "MainEvent:" + msg; + } + + public String getMsg() { + return mMsg; + } +} + diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/EventShowEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/EventShowEntity.java new file mode 100644 index 0000000..17e61f2 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/EventShowEntity.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2017/9/6. + */ +public class EventShowEntity { + private String mMsg; + + public EventShowEntity(String msg) { + // TODO Auto-generated constructor stub + mMsg = "MainEvent:" + msg; + } + + public String getMsg() { + return mMsg; + } +} + diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/KeyEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/KeyEntity.java new file mode 100644 index 0000000..ec8ca84 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/KeyEntity.java @@ -0,0 +1,112 @@ +package com.yonsz.z1.database.entity.entitya2; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/11/29. + */ + +public class KeyEntity { + + /** + * msg : 查询成功。 + * flag : 1 + * obj : [{"pushKey":"01","zip":0,"ziId":"F0FE6B58F5B6","keyId":"power","isNewRecord":true,"deviceId":0},{"pushKey":"06","zip":0,"ziId":"F0FE6B58F5B6","keyId":"mode","isNewRecord":true,"deviceId":0},{"pushKey":"04","zip":0,"ziId":"F0FE6B58F5B6","keyId":"timer","isNewRecord":true,"deviceId":0},{"pushKey":"02","zip":0,"ziId":"F0FE6B58F5B6","keyId":"oscillation","isNewRecord":true,"deviceId":0},{"pushKey":"03","zip":0,"ziId":"F0FE6B58F5B6","keyId":"fanspeed","isNewRecord":true,"deviceId":0}] + */ + private String msg; + private int flag; + private List obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getObj() { + if (obj == null) { + return new ArrayList<>(); + } + return obj; + } + + public void setObj(List obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * pushKey : 01 + * zip : 0 + * ziId : F0FE6B58F5B6 + * keyId : power + * isNewRecord : true + * deviceId : 0.0 + */ + private String pushKey; + private int zip; + private String ziId; + private String keyId; + private boolean isNewRecord; + private double deviceId; + + public String getPushKey() { + return pushKey == null ? "" : pushKey; + } + + public void setPushKey(String pushKey) { + this.pushKey = pushKey; + } + + public int getZip() { + return zip; + } + + public void setZip(int zip) { + this.zip = zip; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getKeyId() { + return keyId == null ? "" : keyId; + } + + public void setKeyId(String keyId) { + this.keyId = keyId; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public double getDeviceId() { + return deviceId; + } + + public void setDeviceId(double deviceId) { + this.deviceId = deviceId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/KeyMatchEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/KeyMatchEvent.java new file mode 100644 index 0000000..0b61e92 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/KeyMatchEvent.java @@ -0,0 +1,17 @@ +package com.yonsz.z1.database.entity.entitya2; + +import com.yonsz.z1.database.entity.NettyEntity; + +public class KeyMatchEvent { + + private NettyEntity mMsg; + + public KeyMatchEvent(NettyEntity msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public NettyEntity getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/LearnWhatEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/LearnWhatEvent.java new file mode 100644 index 0000000..2a319f4 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/LearnWhatEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2017/11/24. + */ + +public class LearnWhatEvent { + private String mMsg; + + public LearnWhatEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/LightTestEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/LightTestEntity.java new file mode 100644 index 0000000..f6de8d9 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/LightTestEntity.java @@ -0,0 +1,203 @@ +package com.yonsz.z1.database.entity.entitya2; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/12/19. + */ + +public class LightTestEntity implements Serializable { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : [{"panelId":"f2","updateDate":"2017-12-19 14:13:47","voiceFlag":"1","onInfrared":"f2f215","offInfrared":"f2f21a","pid":0,"isNewRecord":false,"addressId":"1","onFlag":"1","ziId":"F0FE6B58E22F","lightOrder":1,"addressName":"客厅","id":"6caf159dd7aa427982ab9e297e156e67","offFlag":"1","createDate":"2017-12-19 14:13:47"}] + */ + private String msg; + private int flag; + private List obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getObj() { + if (obj == null) { + return new ArrayList<>(); + } + return obj; + } + + public void setObj(List obj) { + this.obj = obj; + } + + public static class ObjEntity implements Serializable { + /** + * panelId : f2 + * updateDate : 2017-12-19 14:13:47 + * voiceFlag : 1 + * onInfrared : f2f215 + * offInfrared : f2f21a + * pid : 0 + * isNewRecord : false + * addressId : 1 + * onFlag : 1 + * ziId : F0FE6B58E22F + * lightOrder : 1 + * addressName : 客厅 + * id : 6caf159dd7aa427982ab9e297e156e67 + * offFlag : 1 + * createDate : 2017-12-19 14:13:47 + */ + private String panelId; + private String updateDate; + private String voiceFlag; + private String onInfrared; + private String offInfrared; + private int pid; + private boolean isNewRecord; + private String addressId; + private String onFlag; + private String ziId; + private int lightOrder; + private String addressName; + private String id; + private String offFlag; + private String createDate; + + public String getPanelId() { + return panelId == null ? "" : panelId; + } + + public void setPanelId(String panelId) { + this.panelId = panelId; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag; + } + + public String getOnInfrared() { + return onInfrared == null ? "" : onInfrared; + } + + public void setOnInfrared(String onInfrared) { + this.onInfrared = onInfrared; + } + + public String getOffInfrared() { + return offInfrared == null ? "" : offInfrared; + } + + public void setOffInfrared(String offInfrared) { + this.offInfrared = offInfrared; + } + + public int getPid() { + return pid; + } + + public void setPid(int pid) { + this.pid = pid; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getOnFlag() { + return onFlag == null ? "" : onFlag; + } + + public void setOnFlag(String onFlag) { + this.onFlag = onFlag; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public int getLightOrder() { + return lightOrder; + } + + public void setLightOrder(int lightOrder) { + this.lightOrder = lightOrder; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getOffFlag() { + return offFlag == null ? "" : offFlag; + } + + public void setOffFlag(String offFlag) { + this.offFlag = offFlag; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/LoadEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/LoadEvent.java new file mode 100644 index 0000000..2f54f37 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/LoadEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2017/11/24. + */ + +public class LoadEvent { + private String mMsg; + + public LoadEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/MessageAllEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/MessageAllEntity.java new file mode 100644 index 0000000..ea44300 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/MessageAllEntity.java @@ -0,0 +1,329 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2018/5/25. + */ + +public class MessageAllEntity { + + /** + * flag : 1 + * obj : {"totalNum":9,"safeMsg":{"id":"2","isNewRecord":false,"createDate":"2018-03-15 16:34:15","userId":"13682483232","appId":"1101","execTime":"2018-03-15 16:33:47","addressId":"1","addressName":"客厅","deviceType":"013","ziId":"F0FE6B58F93A","viewFlag":1,"netAddr":"","deviceStatus":"","tamperStatus":"","powerStatus":"","temperature":"","humidity":"","num":0},"sysMsg":{"isNewRecord":true,"createDate":"2017-11-16 20:58:02","msgInfo":"方便你我他1","msgType":"注册成功","num":9}} + * msg : 成功。 + */ + + private int flag; + private ObjBean obj; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjBean getObj() { + return obj; + } + + public void setObj(ObjBean obj) { + this.obj = obj; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class ObjBean { + /** + * totalNum : 9 + * safeMsg : {"id":"2","isNewRecord":false,"createDate":"2018-03-15 16:34:15","userId":"13682483232","appId":"1101","execTime":"2018-03-15 16:33:47","addressId":"1","addressName":"客厅","deviceType":"013","ziId":"F0FE6B58F93A","viewFlag":1,"netAddr":"","deviceStatus":"","tamperStatus":"","powerStatus":"","temperature":"","humidity":"","num":0} + * sysMsg : {"isNewRecord":true,"createDate":"2017-11-16 20:58:02","msgInfo":"方便你我他1","msgType":"注册成功","num":9} + */ + + private int totalNum; + private int onlineBindFlag; + private SafeMsgBean safeMsg; + private SysMsgBean sysMsg; + + public int getTotalNum() { + return totalNum; + } + + public void setTotalNum(int totalNum) { + this.totalNum = totalNum; + } + + public int getOnlineBindFlag() { + return onlineBindFlag; + } + + public void setOnlineBindFlag(int onlineBindFlag) { + this.onlineBindFlag = onlineBindFlag; + } + + public SafeMsgBean getSafeMsg() { + return safeMsg; + } + + public void setSafeMsg(SafeMsgBean safeMsg) { + this.safeMsg = safeMsg; + } + + public SysMsgBean getSysMsg() { + return sysMsg; + } + + public void setSysMsg(SysMsgBean sysMsg) { + this.sysMsg = sysMsg; + } + + public static class SafeMsgBean { + /** + * id : 2 + * isNewRecord : false + * createDate : 2018-03-15 16:34:15 + * userId : 13682483232 + * appId : 1101 + * execTime : 2018-03-15 16:33:47 + * addressId : 1 + * addressName : 客厅 + * deviceType : 013 + * ziId : F0FE6B58F93A + * viewFlag : 1 + * netAddr : + * deviceStatus : + * tamperStatus : + * powerStatus : + * temperature : + * humidity : + * num : 0 + */ + + private String id; + private boolean isNewRecord; + private String createDate; + private String userId; + private String appId; + private String execTime; + private String addressId; + private String addressName; + private String deviceType; + private String ziId; + private int viewFlag; + private String netAddr; + private String deviceStatus; + private String tamperStatus; + private String powerStatus; + private String temperature; + private String humidity; + private int num; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getExecTime() { + return execTime == null ? "" : execTime; + } + + public void setExecTime(String execTime) { + this.execTime = execTime; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public int getViewFlag() { + return viewFlag; + } + + public void setViewFlag(int viewFlag) { + this.viewFlag = viewFlag; + } + + public String getNetAddr() { + return netAddr == null ? "" : netAddr; + } + + public void setNetAddr(String netAddr) { + this.netAddr = netAddr; + } + + public String getDeviceStatus() { + return deviceStatus == null ? "" : deviceStatus; + } + + public void setDeviceStatus(String deviceStatus) { + this.deviceStatus = deviceStatus; + } + + public String getTamperStatus() { + return tamperStatus == null ? "" : tamperStatus; + } + + public void setTamperStatus(String tamperStatus) { + this.tamperStatus = tamperStatus; + } + + public String getPowerStatus() { + return powerStatus == null ? "" : powerStatus; + } + + public void setPowerStatus(String powerStatus) { + this.powerStatus = powerStatus; + } + + public String getTemperature() { + return temperature == null ? "" : temperature; + } + + public void setTemperature(String temperature) { + this.temperature = temperature; + } + + public String getHumidity() { + return humidity == null ? "" : humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + public int getNum() { + return num; + } + + public void setNum(int num) { + this.num = num; + } + } + + public static class SysMsgBean { + /** + * isNewRecord : true + * createDate : 2017-11-16 20:58:02 + * msgInfo : 方便你我他1 + * msgType : 注册成功 + * num : 9 + */ + + private boolean isNewRecord; + private String createDate; + private String msgInfo; + private String msgType; + private int num; + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getMsgInfo() { + return msgInfo == null ? "" : msgInfo; + } + + public void setMsgInfo(String msgInfo) { + this.msgInfo = msgInfo; + } + + public String getMsgType() { + return msgType == null ? "" : msgType; + } + + public void setMsgType(String msgType) { + this.msgType = msgType; + } + + public int getNum() { + return num; + } + + public void setNum(int num) { + this.num = num; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/ModelOpenEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/ModelOpenEntity.java new file mode 100644 index 0000000..819df66 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/ModelOpenEntity.java @@ -0,0 +1,115 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2017/12/12. + */ + +public class ModelOpenEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : {"modelName":"回家模式","flag":1,"id":"d3c85f489be44e3f8577578047ca0156","isNewRecord":false,"modelType":"1","userId":"18824634311"} + */ + private String msg; + private int flag; + private ObjEntity obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * modelName : 回家模式 + * flag : 1 + * id : d3c85f489be44e3f8577578047ca0156 + * isNewRecord : false + * modelType : 1 + * userId : 18824634311 + */ + private String modelName; + private int flag; + private String id; + private boolean isNewRecord; + private String modelType; + private String userId; + private String cmdType; + + public String getCmdType() { + return cmdType == null ? "" : cmdType; + } + + public void setCmdType(String cmdType) { + this.cmdType = cmdType; + } + + public String getModelName() { + return modelName == null ? "" : modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getModelType() { + return modelType == null ? "" : modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/ModelSetEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/ModelSetEntity.java new file mode 100644 index 0000000..0947c1a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/ModelSetEntity.java @@ -0,0 +1,732 @@ +package com.yonsz.z1.database.entity.entitya2; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/12/11. + */ + +public class ModelSetEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : {"modelName":"回家模式","flag":0,"controlList":[{"deviceType":"009","conndeviceId":"0b62acd7dc364b9c95d19f07e52d1a1d","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"餐厅","id":"3d258d62e0ba476a990528779945b9a0","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"008","conndeviceAddress":"主卧","conndeviceId":"db0b12f7396c4d2fbe8724adf1d8649c","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"f6b2a2db6a69463bb2db9efaad273c19","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"009","conndeviceId":"39515190f977436abf961bacd36d0c64","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"次卫","id":"f0b4e4cbe9af4dfba69b69391e1ab855","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"009","conndeviceId":"5b3f0e0790e340b4965242e659ec2d12","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"客厅","id":"b9c12e87b0f34bd399a1836ac9ce4a6c","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"001","conndeviceId":"fb898d90b7c74017b85d7745d6d7fb41","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"8ee97536744c43cebdccebef9990e80d","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":1},{"deviceType":"008","conndeviceAddress":"餐厅","conndeviceId":"898d6ec5cd02411dace0eb7d1823e958","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"551af9b7a88c4398aa0be3aef97c7a70","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"008","conndeviceAddress":"厨房","conndeviceId":"aa0ffe5099994eac90376400be040cad","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"46c7b9f7168046ce8a97fb5d1ce0a4d9","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"003","conndeviceId":"3441469fe7d64db1b0aa3aba9d0183e5","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"3e0c43f9957b4b62b965dee48d8622aa","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":1}],"id":"c833f77db802433e913f23d73b53af47","isNewRecord":false,"modelType":"1","userId":"18922844450"} + */ + private String msg; + private int flag; + private ObjEntity obj; + /** + * data : {"id":"264bc18731c6f1f0fbd35ec0430e4bca","createDate":1561443134000,"updateDate":1561981275000,"userId":"e79dbf0cf5514e559505b596db7f770f","appId":"1103","modelType":"1","modelName":"回家模式","flag":1,"sortNum":1,"delFlag":"0","houseId":"5b3773ecf5ffaafbdfa9991bc86d5c5e","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/29/icon_scene_gohome.png","initStatus":1,"controlList":[{"ziId":"F0FE6B58E1FF","modelType":"1","deviceType":"001","conndeviceId":"89155804599e4dc085f1815dfb6afaea","cmdType":"1","typeFlag":1,"openFlag":0,"deviceModel":"0","deviceAddress":"儿童房","conndeviceAddress":"儿童房","floor":"2","id":"2331b459027ff5ba6de3d9c4a48628a2","subType":2,"relatedStatus":0},{"id":"2331b459027ff5ba6de3d9c4a48628a2","ziId":"F0FE6B58E1FF","modelType":"1","deviceType":"026","conndeviceId":"4771dbc87c48e286e448425c2de6c4bf","cmdType":"1","typeFlag":0,"openFlag":1,"deviceModel":"0","deviceAddress":"儿童房","conndeviceAddress":"儿童房","subType":2,"relatedStatus":0,"floor":"1"},{"ziId":"F0FE6BC79552","modelType":"1","deviceType":"001","conndeviceId":"d7ff1c8cb275444db9aca0b71e94abee","cmdType":"1","typeFlag":1,"openFlag":0,"deviceModel":"0","deviceAddress":"客厅","conndeviceAddress":"客厅","floor":"2"},{"ziId":"F0FE6BC79552","modelType":"1","deviceType":"012","conndeviceId":"3fc733f4df712e61322375cd8491e5fc","cmdType":"0","typeFlag":0,"openFlag":0,"deviceAddress":"客厅","conndeviceAddress":"厨房","floor":"1"}],"isCustom":false} + * code : 1 + */ + + private DataBean data; + private int code; + + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg == null ? "" : msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public static class ObjEntity { + /** + * modelName : 回家模式 + * flag : 0 + * controlList : [{"deviceType":"009","conndeviceId":"0b62acd7dc364b9c95d19f07e52d1a1d","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"餐厅","id":"3d258d62e0ba476a990528779945b9a0","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"008","conndeviceAddress":"主卧","conndeviceId":"db0b12f7396c4d2fbe8724adf1d8649c","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"f6b2a2db6a69463bb2db9efaad273c19","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"009","conndeviceId":"39515190f977436abf961bacd36d0c64","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"次卫","id":"f0b4e4cbe9af4dfba69b69391e1ab855","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"009","conndeviceId":"5b3f0e0790e340b4965242e659ec2d12","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"客厅","id":"b9c12e87b0f34bd399a1836ac9ce4a6c","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"001","conndeviceId":"fb898d90b7c74017b85d7745d6d7fb41","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"8ee97536744c43cebdccebef9990e80d","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":1},{"deviceType":"008","conndeviceAddress":"餐厅","conndeviceId":"898d6ec5cd02411dace0eb7d1823e958","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"551af9b7a88c4398aa0be3aef97c7a70","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"008","conndeviceAddress":"厨房","conndeviceId":"aa0ffe5099994eac90376400be040cad","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"46c7b9f7168046ce8a97fb5d1ce0a4d9","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"003","conndeviceId":"3441469fe7d64db1b0aa3aba9d0183e5","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"3e0c43f9957b4b62b965dee48d8622aa","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":1}] + * id : c833f77db802433e913f23d73b53af47 + * isNewRecord : false + * modelType : 1 + * userId : 18922844450 + */ + private String modelName; + private int flag; + private List controlList; + private String id; + private boolean isNewRecord; + private String modelType; + private String userId; + + public String getModelName() { + return modelName == null ? "" : modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getControlList() { + if (controlList == null) { + return new ArrayList<>(); + } + return controlList; + } + + public void setControlList(List controlList) { + this.controlList = controlList; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getModelType() { + return modelType == null ? "" : modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public static class ControlListEntity { + /** + * deviceType : 009 + * conndeviceId : 0b62acd7dc364b9c95d19f07e52d1a1d + * deviceAddress : 客厅 + * openFlag : 0 + * ziId : F0FE6B58F5B6 + * cmdType : 餐厅 + * id : 3d258d62e0ba476a990528779945b9a0 + * isNewRecord : false + * modelType : 1 + * userId : 18922844450 + * typeFlag : 0 + */ + private String deviceType; + private String conndeviceId; + private String deviceAddress; + private int openFlag; + private String ziId; + private String cmdType; + private String id; + private boolean isNewRecord; + private String modelType; + private String userId; + private String conndeviceAddress; + private String lightType; + private String plugType; + private int typeFlag; + private String blindType; + private String relatedStatus; + private String subType; + private String deviceModel; + private String online; + private String gatewayName; + + public String getOnline() { + return online == null ? "" : online; + } + + public void setOnline(String online) { + this.online = online; + } + + public String getGatewayName() { + return gatewayName == null ? "" : gatewayName; + } + + public void setGatewayName(String gatewayName) { + this.gatewayName = gatewayName; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getConndeviceId() { + return conndeviceId == null ? "" : conndeviceId; + } + + public void setConndeviceId(String conndeviceId) { + this.conndeviceId = conndeviceId; + } + + public String getDeviceAddress() { + return deviceAddress == null ? "" : deviceAddress; + } + + public void setDeviceAddress(String deviceAddress) { + this.deviceAddress = deviceAddress; + } + + public int getOpenFlag() { + return openFlag; + } + + public void setOpenFlag(int openFlag) { + this.openFlag = openFlag; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getCmdType() { + return cmdType == null ? "" : cmdType; + } + + public void setCmdType(String cmdType) { + this.cmdType = cmdType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getModelType() { + return modelType == null ? "" : modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getConndeviceAddress() { + return conndeviceAddress == null ? "" : conndeviceAddress; + } + + public void setConndeviceAddress(String conndeviceAddress) { + this.conndeviceAddress = conndeviceAddress; + } + + public String getLightType() { + return lightType == null ? "" : lightType; + } + + public void setLightType(String lightType) { + this.lightType = lightType; + } + + public String getPlugType() { + return plugType == null ? "" : plugType; + } + + public void setPlugType(String plugType) { + this.plugType = plugType; + } + + public int getTypeFlag() { + return typeFlag; + } + + public void setTypeFlag(int typeFlag) { + this.typeFlag = typeFlag; + } + + public String getBlindType() { + return blindType == null ? "" : blindType; + } + + public void setBlindType(String blindType) { + this.blindType = blindType; + } + + public String getRelatedStatus() { + return relatedStatus == null ? "" : relatedStatus; + } + + public void setRelatedStatus(String relatedStatus) { + this.relatedStatus = relatedStatus; + } + } + } + + public static class DataBean { + /** + * modelName : 回家模式 + * flag : 0 + * controlList : [{"deviceType":"009","conndeviceId":"0b62acd7dc364b9c95d19f07e52d1a1d","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"餐厅","id":"3d258d62e0ba476a990528779945b9a0","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"008","conndeviceAddress":"主卧","conndeviceId":"db0b12f7396c4d2fbe8724adf1d8649c","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"f6b2a2db6a69463bb2db9efaad273c19","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"009","conndeviceId":"39515190f977436abf961bacd36d0c64","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"次卫","id":"f0b4e4cbe9af4dfba69b69391e1ab855","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"009","conndeviceId":"5b3f0e0790e340b4965242e659ec2d12","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"客厅","id":"b9c12e87b0f34bd399a1836ac9ce4a6c","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"001","conndeviceId":"fb898d90b7c74017b85d7745d6d7fb41","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"8ee97536744c43cebdccebef9990e80d","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":1},{"deviceType":"008","conndeviceAddress":"餐厅","conndeviceId":"898d6ec5cd02411dace0eb7d1823e958","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"551af9b7a88c4398aa0be3aef97c7a70","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"008","conndeviceAddress":"厨房","conndeviceId":"aa0ffe5099994eac90376400be040cad","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"46c7b9f7168046ce8a97fb5d1ce0a4d9","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":0},{"deviceType":"003","conndeviceId":"3441469fe7d64db1b0aa3aba9d0183e5","deviceAddress":"客厅","openFlag":0,"ziId":"F0FE6B58F5B6","cmdType":"1","id":"3e0c43f9957b4b62b965dee48d8622aa","isNewRecord":false,"modelType":"1","userId":"18922844450","typeFlag":1}] + * id : c833f77db802433e913f23d73b53af47 + * isNewRecord : false + * modelType : 1 + * userId : 18922844450 + */ + private String modelName; + private int flag; + private List controlList; + private String id; + private boolean isNewRecord; + private String modelType; + private String userId; + + public String getModelName() { + return modelName == null ? "" : modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName == null ? "" : modelName; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getControlList() { + if (controlList == null) { + return new ArrayList<>(); + } + return controlList; + } + + public void setControlList(List controlList) { + this.controlList = controlList; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getModelType() { + return modelType == null ? "" : modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType == null ? "" : modelType; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId == null ? "" : userId; + } + + public static class ControlListEntity { + /** + * deviceType : 009 + * conndeviceId : 0b62acd7dc364b9c95d19f07e52d1a1d + * deviceAddress : 客厅 + * openFlag : 0 + * ziId : F0FE6B58F5B6 + * cmdType : 餐厅 + * id : 3d258d62e0ba476a990528779945b9a0 + * isNewRecord : false + * modelType : 1 + * userId : 18922844450 + * typeFlag : 0 + */ + private String deviceType; + private String conndeviceId; + private String deviceId; + private String deviceAddress; + private int openFlag; + private String ziId; + private String cmdType; + private String id; + private boolean isNewRecord; + private String modelType; + private String userId; + private String conndeviceAddress; + private String lightType; + private String plugType; + private int typeFlag; + private String blindType; + private String relatedStatus; + private String subType; + private String deviceModel; + private String deviceName; + private String floor; + private String online; + private String gatewayName; + + private List settings; + + public List getSettings() { + if (settings == null) { + return new ArrayList<>(); + } + return settings; + } + + public void setSettings(List settings) { + this.settings = settings; + } + + public static class SettingsBean { + /** + * createDate : 1582093636000 + * id : 3 + * label : 开合 + * modeControlId : 81b4b941793c938c50f4294dcc824294 + * name : travelControl + * updateDate : 1582093636000 + * value : 44 + */ + + private long createDate; + private String id; + private String label; + private String modeControlId; + private String name; + private long updateDate; + private String value; + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public String getLabel() { + return label == null ? "" : label; + } + + public void setLabel(String label) { + this.label = label == null ? "" : label; + } + + public String getModeControlId() { + return modeControlId == null ? "" : modeControlId; + } + + public void setModeControlId(String modeControlId) { + this.modeControlId = modeControlId == null ? "" : modeControlId; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getValue() { + return value == null ? "100" : value; + } + + public void setValue(String value) { + this.value = value == null ? "" : value; + } + } + + public String getOnline() { + return online == null ? "" : online; + } + + public void setOnline(String online) { + this.online = online; + } + + public String getGatewayName() { + return gatewayName == null ? "" : gatewayName; + } + + public void setGatewayName(String gatewayName) { + this.gatewayName = gatewayName; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId == null ? "" : deviceId; + } + + public String getFloor() { + return floor == null ? "" : floor; + } + + public void setFloor(String floor) { + this.floor = floor == null ? "" : floor; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName == null ? "" : deviceName; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType == null ? "" : deviceType; + } + + public String getConndeviceId() { + return conndeviceId == null ? "" : conndeviceId; + } + + public void setConndeviceId(String conndeviceId) { + this.conndeviceId = conndeviceId == null ? "" : conndeviceId; + } + + public String getDeviceAddress() { + return deviceAddress == null ? "" : deviceAddress; + } + + public void setDeviceAddress(String deviceAddress) { + this.deviceAddress = deviceAddress == null ? "" : deviceAddress; + } + + public int getOpenFlag() { + return openFlag; + } + + public void setOpenFlag(int openFlag) { + this.openFlag = openFlag; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId == null ? "" : ziId; + } + + public String getCmdType() { + return cmdType == null ? "" : cmdType; + } + + public void setCmdType(String cmdType) { + this.cmdType = cmdType == null ? "" : cmdType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getModelType() { + return modelType == null ? "" : modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType == null ? "" : modelType; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId == null ? "" : userId; + } + + public String getConndeviceAddress() { + return conndeviceAddress == null ? "" : conndeviceAddress; + } + + public void setConndeviceAddress(String conndeviceAddress) { + this.conndeviceAddress = conndeviceAddress == null ? "" : conndeviceAddress; + } + + public String getLightType() { + return lightType == null ? "" : lightType; + } + + public void setLightType(String lightType) { + this.lightType = lightType == null ? "" : lightType; + } + + public String getPlugType() { + return plugType == null ? "" : plugType; + } + + public void setPlugType(String plugType) { + this.plugType = plugType == null ? "" : plugType; + } + + public int getTypeFlag() { + return typeFlag; + } + + public void setTypeFlag(int typeFlag) { + this.typeFlag = typeFlag; + } + + public String getBlindType() { + return blindType == null ? "" : blindType; + } + + public void setBlindType(String blindType) { + this.blindType = blindType == null ? "" : blindType; + } + + public String getRelatedStatus() { + return relatedStatus == null ? "" : relatedStatus; + } + + public void setRelatedStatus(String relatedStatus) { + this.relatedStatus = relatedStatus == null ? "" : relatedStatus; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType == null ? "" : subType; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel == null ? "" : deviceModel; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/NextkeyEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/NextkeyEntity.java new file mode 100644 index 0000000..154a970 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/NextkeyEntity.java @@ -0,0 +1,68 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2018/1/19. + */ + +public class NextkeyEntity { + + /** + * flag : 7002 + * obj : {"next_cmp_key":"oscillation","rid":"XNqgF7ZHUyts/nbUKUCo7g=="} + * msg : 继续匹配 + */ + + private int flag; + private ObjBean obj; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjBean getObj() { + return obj; + } + + public void setObj(ObjBean obj) { + this.obj = obj; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class ObjBean { + /** + * next_cmp_key : oscillation + * rid : XNqgF7ZHUyts/nbUKUCo7g== + */ + + private String next_cmp_key; + private String rid; + + public String getNext_cmp_key() { + return next_cmp_key == null ? "" : next_cmp_key; + } + + public void setNext_cmp_key(String next_cmp_key) { + this.next_cmp_key = next_cmp_key; + } + + public String getRid() { + return rid == null ? "" : rid; + } + + public void setRid(String rid) { + this.rid = rid; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/NormalEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/NormalEntity.java new file mode 100644 index 0000000..aed151a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/NormalEntity.java @@ -0,0 +1,41 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2017/11/29. + */ + +public class NormalEntity { + + /** + * msg : 正在努力加载数据... + * flag : 1 + * obj : 6 + */ + private String msg; + private int flag; + private String obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getObj() { + return obj == null ? "" : obj; + } + + public void setObj(String obj) { + this.obj = obj; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/RomoteListA2Entity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/RomoteListA2Entity.java new file mode 100644 index 0000000..1d69af3 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/RomoteListA2Entity.java @@ -0,0 +1,157 @@ +package com.yonsz.z1.database.entity.entitya2; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/11/21. + */ + +public class RomoteListA2Entity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : {"roundList":[{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"bVxdT/Lithxb4r5I8eJSAg==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdk69Y4Kj3Dvi9HfWIQ2eX80c3wIUAfCJ3I3u4TGKQvgaQ=="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"7MP2HhIzdTB5qBZRhOQn8Q==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdky0caq9GU2pZ2r4ZdGaVX9"},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"ApjHJ/AxIk12aDsMHR4qXQ==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdk69Y4Kj3Dvi9HfWIQ2eX80c3wIUAfCJ3I3u4TGKQvgaQ=="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"kWXt04RVD2P+hlQ1gRbXXQ==","deviceId":6,"keyInfrared":"vbrHyw8afYS5+HtNoz5MqW9yuF2V4UAR3CpRy2+w3t1B9MMuvHNZ24cGtekDLobaoAYpj2zVu4h7ho+dBROlcB5/7Q41zR7nCen95xkOzyI="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"Lf3BwBFNsHoNAygijk+yNg==","deviceId":6,"keyInfrared":"vbrHyw8afYS5+HtNoz5MqW9yuF2V4UAR3CpRy2+w3t1B9MMuvHNZ24cGtekDLobaoAYpj2zVu4h7ho+dBROlcB5/7Q41zR7nCen95xkOzyI="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"nRPgvg6554Tyn99mNaa72A==","deviceId":6,"keyInfrared":"vbrHyw8afYS5+HtNoz5MqW9yuF2V4UAR3CpRy2+w3t1B9MMuvHNZ24cGtekDLobaoAYpj2zVu4h7ho+dBROlcB5/7Q41zR7nCen95xkOzyI="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"G43jyPbxclDhh/bOu+1oJQ==","deviceId":6,"keyInfrared":"2gsZEW3fikI7O9LqqtMQXfKQxK4IC16w3whT46EEHJ+NTFFpNnWYZ4QGY7UumJsDKguetbzz9EBYbBFM/XAVAZLKhWLvIBrLTA+pc/ZrRMlaPihoFFnwcxHx2NNL4xNuuhiodM8t4NN5QZJIFJL6dKUBiDE9vK3i7XiOIJHfgT9aXk/blTGfj2aJBm2W/04BGvzNjYdq3HNZDndyiodmTg=="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"Z7Eu8MUV89ixJal2lrAY8A==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdlyhtcznuHO3CFLKkj5a5ZrXF547e0QxIjiVzs3dcsNIQ=="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"5va7UOb+6eRGbPxL8KRHQQ==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdlyhtcznuHO3CFLKkj5a5ZrXF547e0QxIjiVzs3dcsNIQ=="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"7rCOfNZT7Etqse/HSWeoZQ==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdlyhtcznuHO3CFLKkj5a5ZrXF547e0QxIjiVzs3dcsNIQ=="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"wkEW2Gv6wZx/CZbKbGGwUA==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdlyhtcznuHO3CFLKkj5a5ZrXF547e0QxIjiVzs3dcsNIQ=="}],"brandId":"1100.0"} + */ + private String msg; + private int flag; + private ObjEntity obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjEntity getObj() { + return obj; + } + + public void setObj(ObjEntity obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * roundList : [{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"bVxdT/Lithxb4r5I8eJSAg==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdk69Y4Kj3Dvi9HfWIQ2eX80c3wIUAfCJ3I3u4TGKQvgaQ=="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"7MP2HhIzdTB5qBZRhOQn8Q==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdky0caq9GU2pZ2r4ZdGaVX9"},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"ApjHJ/AxIk12aDsMHR4qXQ==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdk69Y4Kj3Dvi9HfWIQ2eX80c3wIUAfCJ3I3u4TGKQvgaQ=="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"kWXt04RVD2P+hlQ1gRbXXQ==","deviceId":6,"keyInfrared":"vbrHyw8afYS5+HtNoz5MqW9yuF2V4UAR3CpRy2+w3t1B9MMuvHNZ24cGtekDLobaoAYpj2zVu4h7ho+dBROlcB5/7Q41zR7nCen95xkOzyI="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"Lf3BwBFNsHoNAygijk+yNg==","deviceId":6,"keyInfrared":"vbrHyw8afYS5+HtNoz5MqW9yuF2V4UAR3CpRy2+w3t1B9MMuvHNZ24cGtekDLobaoAYpj2zVu4h7ho+dBROlcB5/7Q41zR7nCen95xkOzyI="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"nRPgvg6554Tyn99mNaa72A==","deviceId":6,"keyInfrared":"vbrHyw8afYS5+HtNoz5MqW9yuF2V4UAR3CpRy2+w3t1B9MMuvHNZ24cGtekDLobaoAYpj2zVu4h7ho+dBROlcB5/7Q41zR7nCen95xkOzyI="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"G43jyPbxclDhh/bOu+1oJQ==","deviceId":6,"keyInfrared":"2gsZEW3fikI7O9LqqtMQXfKQxK4IC16w3whT46EEHJ+NTFFpNnWYZ4QGY7UumJsDKguetbzz9EBYbBFM/XAVAZLKhWLvIBrLTA+pc/ZrRMlaPihoFFnwcxHx2NNL4xNuuhiodM8t4NN5QZJIFJL6dKUBiDE9vK3i7XiOIJHfgT9aXk/blTGfj2aJBm2W/04BGvzNjYdq3HNZDndyiodmTg=="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"Z7Eu8MUV89ixJal2lrAY8A==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdlyhtcznuHO3CFLKkj5a5ZrXF547e0QxIjiVzs3dcsNIQ=="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"5va7UOb+6eRGbPxL8KRHQQ==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdlyhtcznuHO3CFLKkj5a5ZrXF547e0QxIjiVzs3dcsNIQ=="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"7rCOfNZT7Etqse/HSWeoZQ==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdlyhtcznuHO3CFLKkj5a5ZrXF547e0QxIjiVzs3dcsNIQ=="},{"zip":1,"orderNo":0,"brandId":1100,"keyId":"power","isNewRecord":true,"rid":"wkEW2Gv6wZx/CZbKbGGwUA==","deviceId":6,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdlyhtcznuHO3CFLKkj5a5ZrXF547e0QxIjiVzs3dcsNIQ=="}] + * brandId : 1100.0 + */ + private List roundList; + private String brandId; + + public List getRoundList() { + if (roundList == null) { + return new ArrayList<>(); + } + return roundList; + } + + public void setRoundList(List roundList) { + this.roundList = roundList; + } + + public String getBrandId() { + return brandId == null ? "" : brandId; + } + + public void setBrandId(String brandId) { + this.brandId = brandId; + } + + public static class RoundListEntity { + /** + * zip : 1.0 + * orderNo : 0 + * brandId : 1100.0 + * keyId : power + * isNewRecord : true + * rid : bVxdT/Lithxb4r5I8eJSAg== + * deviceId : 6.0 + * keyInfrared : cM2zK0BTDi0c/9EQbP+htd3SgJEbM4Spx9qOf4oixdk69Y4Kj3Dvi9HfWIQ2eX80c3wIUAfCJ3I3u4TGKQvgaQ== + */ + private double zip; + private int orderNo; + private double brandId; + private String keyId; + private boolean isNewRecord; + private String rid; + private double deviceId; + private String keyInfrared; + + public double getZip() { + return zip; + } + + public void setZip(double zip) { + this.zip = zip; + } + + public int getOrderNo() { + return orderNo; + } + + public void setOrderNo(int orderNo) { + this.orderNo = orderNo; + } + + public double getBrandId() { + return brandId; + } + + public void setBrandId(double brandId) { + this.brandId = brandId; + } + + public String getKeyId() { + return keyId == null ? "" : keyId; + } + + public void setKeyId(String keyId) { + this.keyId = keyId; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getRid() { + return rid == null ? "" : rid; + } + + public void setRid(String rid) { + this.rid = rid; + } + + public double getDeviceId() { + return deviceId; + } + + public void setDeviceId(double deviceId) { + this.deviceId = deviceId; + } + + public String getKeyInfrared() { + return keyInfrared == null ? "" : keyInfrared; + } + + public void setKeyInfrared(String keyInfrared) { + this.keyInfrared = keyInfrared; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/SafeLogEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/SafeLogEntity.java new file mode 100644 index 0000000..568f9d6 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/SafeLogEntity.java @@ -0,0 +1,167 @@ +package com.yonsz.z1.database.entity.entitya2; + +import java.io.Serializable; +import java.util.List; + +/** + * Created by Administrator on 2018/1/12. + */ + +public class SafeLogEntity implements Serializable{ + /** + * flag : 1 + * msg : 操作成功。 + * obj : [{"addressId":"2","addressName":"卧室","createDate":"2018-01-12 17:58:26","execTime":"2018-01-12 17:58:25","id":"58e8057f5d2c46079b23d9fbfca80ffa","isNewRecord":false,"userId":"18824634310","viewFlag":1,"ziId":"F0FE6B58E232"},{"addressId":"2","addressName":"卧室","createDate":"2018-01-12 17:58:25","execTime":"2018-01-12 17:58:25","id":"5c0be5597c0842398bed58d138bdf1c2","isNewRecord":false,"userId":"18824634310","viewFlag":1,"ziId":"F0FE6B58E232"},{"addressId":"2","addressName":"卧室","createDate":"2018-01-12 17:57:24","execTime":"2018-01-12 17:57:23","id":"c1957d620fb04adface97f63c5d60e41","isNewRecord":false,"userId":"18824634310","viewFlag":1,"ziId":"F0FE6B58E232"},{"addressId":"2","addressName":"卧室","createDate":"2018-01-12 17:57:23","execTime":"2018-01-12 17:57:23","id":"a35f4cdfbae34756bfb6115c47ababa1","isNewRecord":false,"userId":"18824634310","viewFlag":1,"ziId":"F0FE6B58E232"},{"addressId":"2","addressName":"卧室","createDate":"2018-01-12 17:57:23","execTime":"2018-01-12 17:57:22","id":"ee780a56952c42cf860c55f45657333a","isNewRecord":false,"userId":"18824634310","viewFlag":1,"ziId":"F0FE6B58E232"},{"addressId":"2","addressName":"卧室","createDate":"2018-01-12 17:57:09","execTime":"2018-01-12 17:57:08","id":"38088f727c994e76966a490b8eb9d452","isNewRecord":false,"userId":"18824634310","viewFlag":1,"ziId":"F0FE6B58E232"},{"addressId":"2","addressName":"卧室","createDate":"2018-01-12 17:57:08","execTime":"2018-01-12 17:57:08","id":"3ee5e72c55fe4803b26a8170b23d697c","isNewRecord":false,"userId":"18824634310","viewFlag":1,"ziId":"F0FE6B58E232"},{"createDate":"2018-01-09 14:28:30","deviceType":"014","execTime":"2018-01-09 14:25:48","id":"5c95848d662e4928b54fc05950cfe1d2","isNewRecord":false,"userId":"18824634310","viewFlag":1,"ziId":"F0FE6B58E232"},{"createDate":"2018-01-09 14:28:28","deviceType":"014","execTime":"2018-01-09 14:24:16","id":"657fb49720884747a70be8427573b0ad","isNewRecord":false,"userId":"18824634310","viewFlag":1,"ziId":"F0FE6B58E232"},{"createDate":"2018-01-09 14:28:24","deviceType":"014","execTime":"2018-01-09 14:22:42","id":"12567f1f36264350b875f3ef9e1ba7ac","isNewRecord":false,"userId":"18824634310","viewFlag":1,"ziId":"F0FE6B58E232"},{"createDate":"2018-01-09 14:28:23","deviceType":"014","execTime":"2018-01-09 14:21:08","id":"96c8c4e66bfb4eb0926766dc5aca730b","isNewRecord":false,"userId":"18824634310","viewFlag":1,"ziId":"F0FE6B58E232"},{"createDate":"2018-01-09 14:27:50","deviceType":"014","execTime":"2018-01-09 11:19:08","id":"4f192edd8da04f73963e9ae33e6f3172","isNewRecord":false,"userId":"18824634310","viewFlag":1,"ziId":"F0FE6B58E232"}] + */ + + private int flag; + private String msg; + private List data; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getObj() { + return data; + } + + public void setObj(List obj) { + this.data = obj; + } + + public static class DataBean implements Serializable { + /** + * addressId : 2 + * addressName : 主卧 + * createDate : 2018-01-12 17:58:26 + * execTime : 2018-01-12 17:58:25 + * id : 58e8057f5d2c46079b23d9fbfca80ffa + * isNewRecord : false + * userId : 18824634310 + * viewFlag : 1 + * ziId : F0FE6B58E232 + * deviceType : 014 + */ + + private String addressId; + private String addressName; + private String createDate; + private String execTime; + private String id; + private boolean isNewRecord; + private String userId; + private int viewFlag; + private String ziId; + private String deviceType; + private String content; + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getContent() { + return content == null ? "" : content; + } + + public void setContent(String content) { + this.content = content == null ? "" : content; + } + + public String getAddressId() { + return addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getAddressName() { + return addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getExecTime() { + return execTime; + } + + public void setExecTime(String execTime) { + this.execTime = execTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isIsNewRecord() { + return isNewRecord; + } + + public void setIsNewRecord(boolean isNewRecord) { + this.isNewRecord = isNewRecord; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public int getViewFlag() { + return viewFlag; + } + + public void setViewFlag(int viewFlag) { + this.viewFlag = viewFlag; + } + + public String getZiId() { + return ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/SafeVoiceEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/SafeVoiceEntity.java new file mode 100644 index 0000000..8ef77d1 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/SafeVoiceEntity.java @@ -0,0 +1,1440 @@ +package com.yonsz.z1.database.entity.entitya2; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/1/5. + */ + +public class SafeVoiceEntity { + + /** + * flag : 1 + * obj : {"isNewRecord":true,"openFlag":0,"deviceInfrared":"7d0d6a","voiceFlag":0,"producer":0} + * msg : 操作成功。 + */ + + private int flag; + private ObjBean obj; + private String msg; + /** + * code : 1 + * data : {"modeTrigger":{"modeId":"9cb5bb31a772cd43b5c5f50eab5618c2","modeName":"回家模式","validTimeAfter":30},"target":{"addressId":"1","addressName":"客厅","createBy":"18074709322","createDate":1560302029000,"defenseDeployed":false,"delFlag":"0","deviceInfrared":"692321","deviceModel":"0","deviceName":"红外探测器","deviceType":"013","id":"c2d128e865a941c9a21fc2fc33a40e04","newFlag":"0","openFlag":1,"powerValue":0,"producer":"01","rawCode":"011801295F6255565C5B020268","sortNum":500,"typeId":"013","updateDate":1560302029000,"voiceFlag":"0","warnId":"69232","ziId":"F0FE6B58E1FF"}} + */ + + private DataBean data; + + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjBean getObj() { + return obj; + } + + public void setObj(ObjBean obj) { + this.obj = obj; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg == null ? "" : msg; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public static class ObjBean { + + + /** + * isNewRecord : true + * openFlag : 0 + * deviceInfrared : 7d0d6a + * voiceFlag : 0 + * producer : 0 + */ + + + private boolean isNewRecord; + private int openFlag; + private String deviceInfrared; + private int voiceFlag; + private int producer; + /** + * addressId : 13 + * addressName : 车库 + * createDate : 2018-01-09 10:27:12 + * deviceType : 013 + * id : 58293b1351684f29860f1e4f4c7be1fd + * producer : 01 + * rawCode : 0118010360665360606402 + * updateDate : 2018-01-09 10:27:12 + * ziId : F0FE6B58E232 + */ + + private String addressId; + private String addressName; + private String createDate; + private String deviceType; + private String id; + private String producerX; + private String rawCode; + private String updateDate; + private String ziId; + private String powerFlag; + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public int getOpenFlag() { + return openFlag; + } + + public void setOpenFlag(int openFlag) { + this.openFlag = openFlag; + } + + public String getDeviceInfrared() { + return deviceInfrared == null ? "" : deviceInfrared; + } + + public void setDeviceInfrared(String deviceInfrared) { + this.deviceInfrared = deviceInfrared == null ? "" : deviceInfrared; + } + + public int getVoiceFlag() { + return voiceFlag; + } + + public void setVoiceFlag(int voiceFlag) { + this.voiceFlag = voiceFlag; + } + + public int getProducer() { + return producer; + } + + public void setProducer(int producer) { + this.producer = producer; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId == null ? "" : addressId; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName == null ? "" : addressName; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate == null ? "" : createDate; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType == null ? "" : deviceType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public String getProducerX() { + return producerX == null ? "" : producerX; + } + + public void setProducerX(String producerX) { + this.producerX = producerX == null ? "" : producerX; + } + + public String getRawCode() { + return rawCode == null ? "" : rawCode; + } + + public void setRawCode(String rawCode) { + this.rawCode = rawCode == null ? "" : rawCode; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate == null ? "" : updateDate; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId == null ? "" : ziId; + } + + public String getPowerFlag() { + return powerFlag == null ? "" : powerFlag; + } + + public void setPowerFlag(String powerFlag) { + this.powerFlag = powerFlag == null ? "" : powerFlag; + } + } + + public static class DataBean { + /** + * modeTrigger : {"modeId":"9cb5bb31a772cd43b5c5f50eab5618c2","modeName":"回家模式","validTimeAfter":30} + * target : {"addressId":"1","addressName":"客厅","createBy":"18074709322","createDate":1560302029000,"defenseDeployed":false,"delFlag":"0","deviceInfrared":"692321","deviceModel":"0","deviceName":"红外探测器","deviceType":"013","id":"c2d128e865a941c9a21fc2fc33a40e04","newFlag":"0","openFlag":1,"powerValue":0,"producer":"01","rawCode":"011801295F6255565C5B020268","sortNum":500,"typeId":"013","updateDate":1560302029000,"voiceFlag":"0","warnId":"69232","ziId":"F0FE6B58E1FF"} + */ + + private ModeTriggerBean modeTrigger; + private LockModeTriggerBean lockModeTrigger; + private TargetBean target; + private NotifySwitchBean notifySwitch; + /** + * aiDevice : {"name":"小艾A2-L-0123","ziId":"F0FE6BC79518"} + */ + + private AiDeviceBean aiDevice; + /** + * target : {"addressId":"4","addressName":"儿童房","createDate":1564124614000,"delFlag":"0","deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceName":"智能门锁","deviceProvider":"lc","deviceType":"023","floorCode":"2","houseId":"246925173e2bbba4dcf8d36a89145d76","id":255,"openFlag":"1","parentThirdDeviceId":252,"protocalType":301,"relatedId":"252","sort":6,"sortNum":6,"thirdDeviceAccountId":7,"typeId":"023","updateDate":1564130512000,"userId":"e79dbf0cf5514e559505b596db7f770f"} + * thirdInfo : {"addition":{"expireData":"2019-07-30 15:06:12","isExpire":false,"securityCode":"C65689","snapKey":"64313553"},"addressId":"4","apEnable":"on","apModel":"K6","apName":"智能门锁","apStatus":1,"apType":"SmartLock","apVersion":"V1.0.0.0.20180329","deviceId":"4F00417PAZBB75C","deviceModel":"0","deviceName":"智能门锁","deviceType":"023","electric":"61","floor":"2","id":255,"isExist":true,"openFlag":"1","parentDeviceAddressId":"4","parentDeviceName":"智能报警网关"} + */ + + private ThirdInfoBean thirdInfo; + private List addressNoInfoList; + private String backLight; + private String defence; + private String interval; + private String sn; + private String lastHeartbeat; + private String apModel; + private String deviceAlias; + private String positionAlias; + private boolean showInfraredStudy; + private boolean showInfraredDownload; + private boolean longHeartbeat; + private boolean power; + private boolean reverse; + private List reminds; + private List keys; + private List openInit; + private AbilitiesBean abilities; + private SettingBean setting; + + public NotifySwitchBean getNotifySwitch() { + return notifySwitch; + } + + public void setNotifySwitch(NotifySwitchBean notifySwitch) { + this.notifySwitch = notifySwitch; + } + + public LockModeTriggerBean getLockModeTrigger() { + return lockModeTrigger; + } + + public void setLockModeTrigger(LockModeTriggerBean lockModeTrigger) { + this.lockModeTrigger = lockModeTrigger; + } + + public String getDeviceAlias() { + return deviceAlias == null ? "" : deviceAlias; + } + + public void setDeviceAlias(String deviceAlias) { + this.deviceAlias = deviceAlias == null ? "" : deviceAlias; + } + + public String getPositionAlias() { + return positionAlias == null ? "" : positionAlias; + } + + public void setPositionAlias(String positionAlias) { + this.positionAlias = positionAlias == null ? "" : positionAlias; + } + + public boolean isShowInfraredStudy() { + return showInfraredStudy; + } + + public void setShowInfraredStudy(boolean showInfraredStudy) { + this.showInfraredStudy = showInfraredStudy; + } + + public boolean isShowInfraredDownload() { + return showInfraredDownload; + } + + public void setShowInfraredDownload(boolean showInfraredDownload) { + this.showInfraredDownload = showInfraredDownload; + } + + public String getApModel() { + return apModel == null ? "" : apModel; + } + + public void setApModel(String apModel) { + this.apModel = apModel == null ? "" : apModel; + } + + public String getSn() { + return sn; + } + + public void setSn(String sn) { + this.sn = sn; + } + + public boolean isPower() { + return power; + } + + public void setPower(boolean power) { + this.power = power; + } + + public boolean isReverse() { + return reverse; + } + + public void setReverse(boolean reverse) { + this.reverse = reverse; + } + + public String getLastHeartbeat() { + return lastHeartbeat == null ? "" : lastHeartbeat; + } + + public void setLastHeartbeat(String lastHeartbeat) { + this.lastHeartbeat = lastHeartbeat; + } + + public boolean isLongHeartbeat() { + return longHeartbeat; + } + + public void setLongHeartbeat(boolean longHeartbeat) { + this.longHeartbeat = longHeartbeat; + } + + public SettingBean getSetting() { + return setting; + } + + public void setSetting(SettingBean setting) { + this.setting = setting; + } + + public AbilitiesBean getAbilities() { + return abilities; + } + + public void setAbilities(AbilitiesBean abilities) { + this.abilities = abilities; + } + + public List getOpenInit() { + if (openInit == null) { + return new ArrayList<>(); + } + return openInit; + } + + public void setOpenInit(List openInit) { + this.openInit = openInit; + } + + public List getKeys() { + if (keys == null) { + return new ArrayList<>(); + } + return keys; + } + + public void setKeys(List keys) { + this.keys = keys; + } + + public List getReminds() { + if (reminds == null) { + return new ArrayList<>(); + } + return reminds; + } + + public void setReminds(List reminds) { + this.reminds = reminds; + } + + public String getDefence() { + return defence == null ? "" : defence; + } + + public void setDefence(String defence) { + this.defence = defence; + } + + public String getInterval() { + return interval == null ? "" : interval; + } + + public void setInterval(String interval) { + this.interval = interval; + } + + public String getBackLight() { + return backLight == null ? "true" : backLight; + } + + public void setBackLight(String backLight) { + this.backLight = backLight == null ? "" : backLight; + } + + public ThirdInfoBean getThirdInfo() { + return thirdInfo; + } + + public void setThirdInfo(ThirdInfoBean thirdInfo) { + this.thirdInfo = thirdInfo; + } + + public ModeTriggerBean getModeTrigger() { + return modeTrigger; + } + + public void setModeTrigger(ModeTriggerBean modeTrigger) { + this.modeTrigger = modeTrigger; + } + + public TargetBean getTarget() { + return target; + } + + public void setTarget(TargetBean target) { + this.target = target; + } + + public AiDeviceBean getAiDevice() { + return aiDevice; + } + + public void setAiDevice(AiDeviceBean aiDevice) { + this.aiDevice = aiDevice; + } + + public List getAddressNoInfoList() { + if (addressNoInfoList == null) { + return new ArrayList<>(); + } + return addressNoInfoList; + } + + public void setAddressNoInfoList(List addressNoInfoList) { + this.addressNoInfoList = addressNoInfoList; + } + + public static class ModeTriggerBean { + /** + * modeId : 9cb5bb31a772cd43b5c5f50eab5618c2 + * modeName : 回家模式 + * validTimeAfter : 30 + */ + private String type; + private String modeId; + private String modeName; + private String autoCloseAfterTrigger; + private int validTimeAfter; + + public String getType() { + return type == null ? "" : type; + } + + public void setType(String type) { + this.type = type == null ? "" : type; + } + + public String getAutoCloseAfterTrigger() { + return autoCloseAfterTrigger == null ? "" : autoCloseAfterTrigger; + } + + public void setAutoCloseAfterTrigger(String autoCloseAfterTrigger) { + this.autoCloseAfterTrigger = autoCloseAfterTrigger; + } + + public String getModeId() { + return modeId == null ? "" : modeId; + } + + public void setModeId(String modeId) { + this.modeId = modeId == null ? "" : modeId; + } + + public String getModeName() { + return modeName == null ? "" : modeName; + } + + public void setModeName(String modeName) { + this.modeName = modeName == null ? "" : modeName; + } + + public int getValidTimeAfter() { + return validTimeAfter; + } + + public void setValidTimeAfter(int validTimeAfter) { + this.validTimeAfter = validTimeAfter; + } + } + + public static class NotifySwitchBean { + private String alarmNotifySwitch; + private String callNotifySwitch; + private String unlockNotifySwitch; + + public String getAlarmNotifySwitch() { + return alarmNotifySwitch == null ? "" : alarmNotifySwitch; + } + + public void setAlarmNotifySwitch(String alarmNotifySwitch) { + this.alarmNotifySwitch = alarmNotifySwitch == null ? "" : alarmNotifySwitch; + } + + public String getCallNotifySwitch() { + return callNotifySwitch == null ? "" : callNotifySwitch; + } + + public void setCallNotifySwitch(String callNotifySwitch) { + this.callNotifySwitch = callNotifySwitch == null ? "" : callNotifySwitch; + } + + public String getUnlockNotifySwitch() { + return unlockNotifySwitch == null ? "" : unlockNotifySwitch; + } + + public void setUnlockNotifySwitch(String unlockNotifySwitch) { + this.unlockNotifySwitch = unlockNotifySwitch == null ? "" : unlockNotifySwitch; + } + } + + public static class TargetBean { + /** + * addressId : 1 + * addressName : 客厅 + * createBy : 18074709322 + * createDate : 1560302029000 + * defenseDeployed : false + * delFlag : 0 + * deviceInfrared : 692321 + * deviceModel : 0 + * deviceName : 红外探测器 + * deviceType : 013 + * id : c2d128e865a941c9a21fc2fc33a40e04 + * newFlag : 0 + * openFlag : 1 + * powerValue : 0 + * producer : 01 + * rawCode : 011801295F6255565C5B020268 + * sortNum : 500 + * typeId : 013 + * updateDate : 1560302029000 + * voiceFlag : 0 + * warnId : 69232 + * ziId : F0FE6B58E1FF + */ + + private String addressId; + private String addressName; + private String createBy; + private long createDate; + private boolean defenseDeployed; + private String delFlag; + private String deviceInfrared; + private String deviceModel; + private String deviceName; + private String deviceType; + private String id; + private String newFlag; + private int openFlag; + private String powerFlag; + private String producer; + private String rawCode; + private int sortNum; + private String typeId; + private long updateDate; + private String voiceFlag; + private String warnId; + private String ziId; + private String code; + private String subType; + private String providerType; + private boolean modeTriggerBound; + private boolean modeTriggerFlag; + private String addition; + + public String getAddition() { + return addition == null ? "" : addition; + } + + public void setAddition(String addition) { + this.addition = addition == null ? "" : addition; + } + + public String getProviderType() { + return providerType; + } + + public void setProviderType(String providerType) { + this.providerType = providerType; + } + + public boolean isModeTriggerBound() { + return modeTriggerBound; + } + + public void setModeTriggerBound(boolean modeTriggerBound) { + this.modeTriggerBound = modeTriggerBound; + } + + public boolean isModeTriggerFlag() { + return modeTriggerFlag; + } + + public void setModeTriggerFlag(boolean modeTriggerFlag) { + this.modeTriggerFlag = modeTriggerFlag; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public String getCode() { + return code == null ? "" : code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId == null ? "" : addressId; + } + + public String getAddressName() { + return addressName == null ? "" : addressName; + } + + public void setAddressName(String addressName) { + this.addressName = addressName == null ? "" : addressName; + } + + public String getCreateBy() { + return createBy == null ? "" : createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy == null ? "" : createBy; + } + + public long getCreateDate() { + return createDate; + } + + public void setCreateDate(long createDate) { + this.createDate = createDate; + } + + public boolean isDefenseDeployed() { + return defenseDeployed; + } + + public void setDefenseDeployed(boolean defenseDeployed) { + this.defenseDeployed = defenseDeployed; + } + + public String getDelFlag() { + return delFlag == null ? "" : delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag == null ? "" : delFlag; + } + + public String getDeviceInfrared() { + return deviceInfrared == null ? "" : deviceInfrared; + } + + public void setDeviceInfrared(String deviceInfrared) { + this.deviceInfrared = deviceInfrared == null ? "" : deviceInfrared; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel == null ? "" : deviceModel; + } + + public String getDeviceName() { + return deviceName == null ? "" : deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName == null ? "" : deviceName; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType == null ? "" : deviceType; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id == null ? "" : id; + } + + public String getNewFlag() { + return newFlag == null ? "" : newFlag; + } + + public void setNewFlag(String newFlag) { + this.newFlag = newFlag == null ? "" : newFlag; + } + + public int getOpenFlag() { + return openFlag; + } + + public void setOpenFlag(int openFlag) { + this.openFlag = openFlag; + } + + public String getPowerFlag() { + return powerFlag == null ? "" : powerFlag; + } + + public void setPowerFlag(String powerValue) { + this.powerFlag = powerValue == null ? "" : powerValue; + } + + public String getProducer() { + return producer == null ? "" : producer; + } + + public void setProducer(String producer) { + this.producer = producer == null ? "" : producer; + } + + public String getRawCode() { + return rawCode == null ? "" : rawCode; + } + + public void setRawCode(String rawCode) { + this.rawCode = rawCode == null ? "" : rawCode; + } + + public int getSortNum() { + return sortNum; + } + + public void setSortNum(int sortNum) { + this.sortNum = sortNum; + } + + public String getTypeId() { + return typeId == null ? "" : typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId == null ? "" : typeId; + } + + public long getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(long updateDate) { + this.updateDate = updateDate; + } + + public String getVoiceFlag() { + return voiceFlag == null ? "" : voiceFlag; + } + + public void setVoiceFlag(String voiceFlag) { + this.voiceFlag = voiceFlag == null ? "" : voiceFlag; + } + + public String getWarnId() { + return warnId == null ? "" : warnId; + } + + public void setWarnId(String warnId) { + this.warnId = warnId == null ? "" : warnId; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId == null ? "" : ziId; + } + } + + public static class KeysBean { + + /** + * disabled : false + * label : 回家模式 + * name : key1 + * value : f29d5953d0d75909400b371e6c37afa8 + */ + + private boolean disabled; + private String label; + private String name; + private String value; + + public boolean isDisabled() { + return disabled; + } + + public void setDisabled(boolean disabled) { + this.disabled = disabled; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } + + public static class AiDeviceBean { + /** + * name : 小艾A2-L-0123 + * ziId : F0FE6BC79518 + */ + + private String name; + private String ziId; + private String addressId; + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId == null ? "" : addressId; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + + public String getZiId() { + return ziId == null ? "" : ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId == null ? "" : ziId; + } + } + + public static class LockModeTriggerBean { + /** + * modeId : 9cb5bb31a772cd43b5c5f50eab5618c2 + * modeName : 回家模式 + * validTimeAfter : 30 + */ + + private String modeId; + private String modeName; + private String autoCloseAfterTrigger; + private int validTimeAfter; + + public String getAutoCloseAfterTrigger() { + return autoCloseAfterTrigger == null ? "" : autoCloseAfterTrigger; + } + + public void setAutoCloseAfterTrigger(String autoCloseAfterTrigger) { + this.autoCloseAfterTrigger = autoCloseAfterTrigger; + } + + public String getModeId() { + return modeId == null ? "" : modeId; + } + + public void setModeId(String modeId) { + this.modeId = modeId == null ? "" : modeId; + } + + public String getModeName() { + return modeName == null ? "" : modeName; + } + + public void setModeName(String modeName) { + this.modeName = modeName == null ? "" : modeName; + } + + public int getValidTimeAfter() { + return validTimeAfter; + } + + public void setValidTimeAfter(int validTimeAfter) { + this.validTimeAfter = validTimeAfter; + } + } + + public static class ThirdInfoBean { + + /** + * addition : {"expireData":"2019-07-30 15:06:12","isExpire":false,"securityCode":"C65689","snapKey":"64313553"} + * addressId : 4 + * apEnable : on + * apModel : K6 + * apName : 智能门锁 + * apStatus : 1 + * apType : SmartLock + * apVersion : V1.0.0.0.20180329 + * deviceId : 4F00417PAZBB75C + * deviceModel : 0 + * deviceName : 智能门锁 + * deviceType : 023 + * electric : 61 + * floor : 2 + * id : 255 + * isExist : true + * openFlag : 1 + * parentDeviceAddressId : 4 + * parentDeviceName : 智能报警网关 + */ + + + private AdditionBean addition; + private String addressId; + private String apEnable; + private String apModel; + private String apName; + private int apStatus; + private String apType; + private String apVersion; + private String deviceId; + private String deviceModel; + private String deviceName; + private String deviceType; + private String electric; + private String floor; + private int id; + private boolean isExist; + private String openFlag; + private String parentDeviceAddressId; + private String parentDeviceName; + private String gatewayName; + + public String getGatewayName() { + return gatewayName == null ? "" : gatewayName; + } + + public void setGatewayName(String gatewayName) { + this.gatewayName = gatewayName == null ? "" : gatewayName; + } + + /** + * ability : WLAN,MT,HSEncrypt,CloudStorage,XUpgrade,Auth,ModifyPassword,CallAbility,ESV1,DLOCS,PlaySoundModify,RDV2,CK,HoveringAlarm,BeOpenedDoor,Dormant,ElecReport,WifiReport,WideDynamic,TalkSoundModify,HAV3,AudioTalk,Electric,WIFI + * appId : lcc58705630dd248d1 + * baseline : SmartLock + * brand : lechange + * canBeUpgrade : false + * channelNum : 1 + * channels : [{"channelAbility":"","channelId":0,"channelName":"V6-CA5E","channelOnline":true,"channelPicUrl":"","csStatus":0,"resolutions":[],"shareStatus":false}] + * deviceCatalog : SmartLock + * electricitys : [{"alkElec":"97","electric":"0","litElec":"100","type":"battery"}] + * name : V6-CA5E + * platForm : 4 + * privateStreamPort : 8086 + * status : 4 + * streamPort : 554 + * thirdDeviceModel : V6 + * version : 1.000.0000001.7.R.20200826 + * wifiName : + */ + + + private List electricitys; + + public AdditionBean getAddition() { + return addition; + } + + public void setAddition(AdditionBean addition) { + this.addition = addition; + } + + public String getAddressId() { + return addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getApEnable() { + return apEnable; + } + + public void setApEnable(String apEnable) { + this.apEnable = apEnable; + } + + public String getApModel() { + return apModel; + } + + public void setApModel(String apModel) { + this.apModel = apModel; + } + + public String getApName() { + return apName; + } + + public void setApName(String apName) { + this.apName = apName; + } + + public int getApStatus() { + return apStatus; + } + + public void setApStatus(int apStatus) { + this.apStatus = apStatus; + } + + public String getApType() { + return apType; + } + + public void setApType(String apType) { + this.apType = apType; + } + + public String getApVersion() { + return apVersion; + } + + public void setApVersion(String apVersion) { + this.apVersion = apVersion; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getDeviceModel() { + return deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getElectric() { + return electric; + } + + public void setElectric(String electric) { + this.electric = electric; + } + + public String getFloor() { + return floor; + } + + public void setFloor(String floor) { + this.floor = floor; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public boolean isIsExist() { + return isExist; + } + + public void setIsExist(boolean isExist) { + this.isExist = isExist; + } + + public String getOpenFlag() { + return openFlag; + } + + public void setOpenFlag(String openFlag) { + this.openFlag = openFlag; + } + + public String getParentDeviceAddressId() { + return parentDeviceAddressId; + } + + public void setParentDeviceAddressId(String parentDeviceAddressId) { + this.parentDeviceAddressId = parentDeviceAddressId; + } + + public String getParentDeviceName() { + return parentDeviceName; + } + + public void setParentDeviceName(String parentDeviceName) { + this.parentDeviceName = parentDeviceName; + } + + public List getElectricitys() { + if (electricitys == null) { + return new ArrayList<>(); + } + return electricitys; + } + + public void setElectricitys(List electricitys) { + this.electricitys = electricitys; + } + + public static class ElectricitysBean { + /** + * alkElec : 97 + * electric : 0 + * litElec : 100 + * type : battery + */ + + private String alkElec; + private String electric; + private String litElec; + private String type; + + public String getAlkElec() { + return alkElec; + } + + public void setAlkElec(String alkElec) { + this.alkElec = alkElec; + } + + public String getElectric() { + return electric; + } + + public void setElectric(String electric) { + this.electric = electric; + } + + public String getLitElec() { + return litElec; + } + + public void setLitElec(String litElec) { + this.litElec = litElec; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + } + + public static class AdditionBean { + /** + * expireData : 2019-07-30 15:06:12 + * isExpire : false + * securityCode : C65689 + * snapKey : 64313553 + */ + + private String expireData; + private String isExpire; + private String securityCode; + private String snapKey; + /** + * totalNum : 4 + * residueNum : 4 + */ + + private int totalNum; + private int residueNum; + + + public String getExpireData() { + return expireData == null ? "" : expireData; + } + + public void setExpireData(String expireData) { + this.expireData = expireData; + } + + public String getIsExpire() { + return isExpire == null ? "" : isExpire; + } + + public void setIsExpire(String isExpire) { + this.isExpire = isExpire; + } + + public String getSecurityCode() { + return securityCode == null ? "" : securityCode; + } + + public void setSecurityCode(String securityCode) { + this.securityCode = securityCode; + } + + public String getSnapKey() { + return snapKey == null ? "" : snapKey; + } + + public void setSnapKey(String snapKey) { + this.snapKey = snapKey; + } + + public int getTotalNum() { + return totalNum; + } + + public void setTotalNum(int totalNum) { + this.totalNum = totalNum; + } + + public int getResidueNum() { + return residueNum; + } + + public void setResidueNum(int residueNum) { + this.residueNum = residueNum; + } + } + } + + public static class AddressNoInfoListBean { + /** + * addressNo : 7 + * name : 调光面板 + */ + + private String addressNo; + private String name; + + public String getAddressNo() { + return addressNo == null ? "" : addressNo; + } + + public void setAddressNo(String addressNo) { + this.addressNo = addressNo == null ? "" : addressNo; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name == null ? "" : name; + } + } + + public static class AbilitiesBean { + /** + * openInit : false + */ + private boolean openInit; + + public boolean isOpenInit() { + return openInit; + } + + public void setOpenInit(boolean openInit) { + this.openInit = openInit; + } + } + + public static class SettingBean { + + /** + * delayBrightness : 30 + * delayFirst : 5 + * delaySecond : 5 + * lightSensation : 0 + * lightSource : 60 + * motion : 0 + * motionSensitivity : 0 + */ + + private String delayBrightness; + private String delayFirst; + private String delaySecond; + private String lightSensation; + private String lightSource; + private String motion; + private String motionSensitivity; + + public String getDelayBrightness() { + return delayBrightness; + } + + public void setDelayBrightness(String delayBrightness) { + this.delayBrightness = delayBrightness; + } + + public String getDelayFirst() { + return delayFirst; + } + + public void setDelayFirst(String delayFirst) { + this.delayFirst = delayFirst; + } + + public String getDelaySecond() { + return delaySecond; + } + + public void setDelaySecond(String delaySecond) { + this.delaySecond = delaySecond; + } + + public String getLightSensation() { + return lightSensation; + } + + public void setLightSensation(String lightSensation) { + this.lightSensation = lightSensation; + } + + public String getLightSource() { + return lightSource; + } + + public void setLightSource(String lightSource) { + this.lightSource = lightSource; + } + + public String getMotion() { + return motion; + } + + public void setMotion(String motion) { + this.motion = motion; + } + + public String getMotionSensitivity() { + return motionSensitivity; + } + + public void setMotionSensitivity(String motionSensitivity) { + this.motionSensitivity = motionSensitivity; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/SafeVoiceEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/SafeVoiceEvent.java new file mode 100644 index 0000000..adb1ca7 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/SafeVoiceEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2017/11/24. + */ + +public class SafeVoiceEvent { + private String mMsg; + + public SafeVoiceEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/SolidEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/SolidEntity.java new file mode 100644 index 0000000..840a2d3 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/SolidEntity.java @@ -0,0 +1,176 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2018/4/9. + */ + +public class SolidEntity { + + /** + * flag : 1 + * obj : {"id":"1af5e05e51744e7abfa7b435278e1d9e","isNewRecord":false,"remarks":"aa","createDate":"2018-04-04 10:16:29","updateDate":"2018-04-08 15:23:12","deviceVersion":1,"versionCode":"1.2.1804","versionName":"1.2.180403B","downUrl":"http://app-static.yonsz.net/ota/chiper180408_1.2.180403B.bin","fileSize":"28796","downType":1,"appId":"1101"} + * msg : 获取设备最新的固件版本成功 + */ + + private int flag; + private ObjBean obj; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjBean getObj() { + return obj; + } + + public void setObj(ObjBean obj) { + this.obj = obj; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class ObjBean { + /** + * id : 1af5e05e51744e7abfa7b435278e1d9e + * isNewRecord : false + * remarks : aa + * createDate : 2018-04-04 10:16:29 + * updateDate : 2018-04-08 15:23:12 + * deviceVersion : 1 + * versionCode : 1.2.1804 + * versionName : 1.2.180403B + * fileSize : 28796 + * downType : 1 + * appId : 1101 + */ + + private String id; + private boolean isNewRecord; + private String remarks; + private String createDate; + private String updateDate; + private int deviceVersion; + private String versionCode; + private String versionName; + private String downUrl; + private String fileSize; + private int downType; + private String appId; + private String md5; + + public String getMd5() { + return md5 == null ? "" : md5; + } + + public void setMd5(String md5) { + this.md5 = md5; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getRemarks() { + return remarks == null ? "" : remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } + + public String getCreateDate() { + return createDate == null ? "" : createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getUpdateDate() { + return updateDate == null ? "" : updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public int getDeviceVersion() { + return deviceVersion; + } + + public void setDeviceVersion(int deviceVersion) { + this.deviceVersion = deviceVersion; + } + + public String getVersionCode() { + return versionCode == null ? "" : versionCode; + } + + public void setVersionCode(String versionCode) { + this.versionCode = versionCode; + } + + public String getVersionName() { + return versionName == null ? "" : versionName; + } + + public void setVersionName(String versionName) { + this.versionName = versionName; + } + + public String getDownUrl() { + return downUrl == null ? "" : downUrl; + } + + public void setDownUrl(String downUrl) { + this.downUrl = downUrl; + } + + public String getFileSize() { + return fileSize == null ? "" : fileSize; + } + + public void setFileSize(String fileSize) { + this.fileSize = fileSize; + } + + public int getDownType() { + return downType; + } + + public void setDownType(int downType) { + this.downType = downType; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/TimeSetEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/TimeSetEntity.java new file mode 100644 index 0000000..6aacd81 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/TimeSetEntity.java @@ -0,0 +1,680 @@ +package com.yonsz.z1.database.entity.entitya2; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/12/15. + */ +public class TimeSetEntity implements Serializable { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : [{"weekNum5":"1","weekNum4":"0","weekNum3":"1","weekNum2":"0","weekNum7":"1","weekNum6":"0","isNewRecord":false,"modelType":"2","userId":"18824634311","openFlag":0,"onceTime":"20:00","id":"337971bd8bef4ccf8dc99a48693a1d97","weekNum1":"1"},{"openFlag":0,"onceTime":"20:00","id":"f9937b239dbc4fc28a6f7d3f0b036254","isNewRecord":false,"modelType":"1","userId":"18824634311","weekNum0":"0"}] + */ + private String msg; + private int flag; + private List obj; + /** + * data : [{"id":13,"code":"23","name":"沐浴模式","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_bath.png","sort":23},{"id":14,"code":"24","name":"阅读模式","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_read.png","sort":24},{"id":15,"code":"25","name":"娱乐模式","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_entertainment.png","sort":25},{"id":16,"code":"26","name":"休闲模式","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_arder.png","sort":26},{"id":17,"code":"27","name":"就餐模式","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_repast.png","sort":27},{"id":18,"code":"28","name":"出游模式","icon":"https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_outing.png","sort":28}] + * code : 1 + */ + + private int code; + private List data; + + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getObj() { + if (obj == null) { + return new ArrayList<>(); + } + return obj; + } + + public void setObj(List obj) { + this.obj = obj; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class ObjEntity implements Serializable { + /** + * weekNum5 : 1 + * weekNum4 : 0 + * weekNum3 : 1 + * weekNum2 : 0 + * weekNum7 : 1 + * weekNum6 : 0 + * isNewRecord : false + * modelType : 2 + * userId : 18824634311 + * openFlag : 0 + * onceTime : 20:00 + * id : 337971bd8bef4ccf8dc99a48693a1d97 + * weekNum1 : 1 + */ + private String weekNum5; + private String weekNum4; + private String weekNum3; + private String weekNum2; + private String weekNum7; + private String weekNum6; + private boolean isNewRecord; + private String modelType; + private String userId; + private int openFlag; + private String execTime; + private String id; + private String weekNum1; + private int onceFlag; + private int basicSwitch; + private String appId; + private String houseId; + private String modelName; + private String uid; + private String modelId; + private String icon; + + public String getIcon() { + return icon == null ? "" : icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public String getModelId() { + return modelId == null ? "" : modelId; + } + + public void setModelId(String modelId) { + this.modelId = modelId; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getHouseId() { + return houseId == null ? "" : houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public String getModelName() { + return modelName == null ? "" : modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public String getUid() { + return uid == null ? "" : uid; + } + + public void setUid(String uid) { + this.uid = uid; + } + + public int getBasicSwitch() { + return basicSwitch; + } + + public void setBasicSwitch(int basicSwitch) { + this.basicSwitch = basicSwitch; + } + + public String getWeekNum5() { + return weekNum5 == null ? "" : weekNum5; + } + + public void setWeekNum5(String weekNum5) { + this.weekNum5 = weekNum5; + } + + public String getWeekNum4() { + return weekNum4 == null ? "" : weekNum4; + } + + public void setWeekNum4(String weekNum4) { + this.weekNum4 = weekNum4; + } + + public String getWeekNum3() { + return weekNum3 == null ? "" : weekNum3; + } + + public void setWeekNum3(String weekNum3) { + this.weekNum3 = weekNum3; + } + + public String getWeekNum2() { + return weekNum2 == null ? "" : weekNum2; + } + + public void setWeekNum2(String weekNum2) { + this.weekNum2 = weekNum2; + } + + public String getWeekNum7() { + return weekNum7 == null ? "" : weekNum7; + } + + public void setWeekNum7(String weekNum7) { + this.weekNum7 = weekNum7; + } + + public String getWeekNum6() { + return weekNum6 == null ? "" : weekNum6; + } + + public void setWeekNum6(String weekNum6) { + this.weekNum6 = weekNum6; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getModelType() { + return modelType == null ? "" : modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType; + } + + public String getUserId() { + return userId == null ? "" : userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public int getOpenFlag() { + return openFlag; + } + + public void setOpenFlag(int openFlag) { + this.openFlag = openFlag; + } + + public String getExecTime() { + return execTime == null ? "" : execTime; + } + + public void setExecTime(String execTime) { + this.execTime = execTime; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWeekNum1() { + return weekNum1 == null ? "" : weekNum1; + } + + public void setWeekNum1(String weekNum1) { + this.weekNum1 = weekNum1; + } + + public int getOnceFlag() { + return onceFlag; + } + + public void setOnceFlag(int onceFlag) { + this.onceFlag = onceFlag; + } + } + + public static class DataBean implements Serializable { + /** + * id : 13 + * code : 23 + * name : 沐浴模式 + * icon : https://development-1253338722.cos.ap-guangzhou.myqcloud.com/0000/image/0000/2019/03/21/icon_scene_bath.png + * sort : 23 + */ + + private String id; + private String deviceId; + private String code; + private String name; + private String gatewayDesc; + private String icon; + private int sort; + /** + * execType : single + * houseId : e5205b9284b4e29c603383c2d7a48552 + * modelId : 3ccfb8c36da348f3b5ddd1ffb03e95ed + * modelName : 回家模式(单独) + * modelType : 1 + * openFlag : 0 + * ziId : F0FE6BEB4794 + * ziName : 卫生间小艾A1-L-0233 + */ + + private String execType; + private String houseId; + private String modelId; + private String modelName; + private String modelType; + private int openFlag; + private int showFlag; + private String ziId; + private String ziName; + private String execTime; + private String groupId; + private String timeId; + private String groupName; + private String cmdType; + private String defaultSwitchType; + + private String weekNum1; + private String weekNum2; + private String weekNum3; + private String weekNum4; + private String weekNum5; + private String weekNum6; + private String weekNum7; + private int remainTime; + private int onceFlag; + /** + * deviceModel : 2 + * deviceType : 008 + * subTypeClass : 2 + */ + + private String deviceModel; + private String deviceType; + private String subTypeClass; + private String subType; + private String addressId; + private String address; + private String oper; + private String timerType; + private String userId; + private int basicSwitch; + + + public String getAddress() { + return address == null ? "" : address; + } + + public void setAddress(String address) { + this.address = address == null ? "" : address; + } + + public int getShowFlag() { + return showFlag; + } + + public void setShowFlag(int showFlag) { + this.showFlag = showFlag; + } + + public int getBasicSwitch() { + return basicSwitch; + } + + public void setBasicSwitch(int basicSwitch) { + this.basicSwitch = basicSwitch; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getDefaultSwitchType() { + return defaultSwitchType; + } + + public void setDefaultSwitchType(String defaultSwitchType) { + this.defaultSwitchType = defaultSwitchType; + } + + public String getTimerType() { + return timerType; + } + + public void setTimerType(String timerType) { + this.timerType = timerType; + } + + public String getOper() { + return oper == null ? "" : oper; + } + + public void setOper(String oper) { + this.oper = oper; + } + + public String getAddressId() { + return addressId == null ? "" : addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getCmdType() { + return cmdType == null ? "" : cmdType; + } + + public void setCmdType(String cmdType) { + this.cmdType = cmdType == null ? "" : cmdType; + } + + public int getRemainTime() { + return remainTime; + } + + public void setRemainTime(int remainTime) { + this.remainTime = remainTime; + } + + public String getGatewayDesc() { + return gatewayDesc == null ? "" : gatewayDesc; + } + + public void setGatewayDesc(String gatewayDesc) { + this.gatewayDesc = gatewayDesc == null ? "" : gatewayDesc; + } + + public String getGroupName() { + return groupName == null ? "" : groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public String getTimeId() { + return timeId == null ? "" : timeId; + } + + public void setTimeId(String timeId) { + this.timeId = timeId; + } + + public String getGroupId() { + return groupId == null ? "" : groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + public String getWeekNum1() { + return weekNum1 == null ? "" : weekNum1; + } + + public void setWeekNum1(String weekNum1) { + this.weekNum1 = weekNum1; + } + + public String getWeekNum2() { + return weekNum2 == null ? "" : weekNum2; + } + + public void setWeekNum2(String weekNum2) { + this.weekNum2 = weekNum2; + } + + public String getWeekNum3() { + return weekNum3 == null ? "" : weekNum3; + } + + public void setWeekNum3(String weekNum3) { + this.weekNum3 = weekNum3; + } + + public String getWeekNum4() { + return weekNum4 == null ? "" : weekNum4; + } + + public void setWeekNum4(String weekNum4) { + this.weekNum4 = weekNum4; + } + + public String getWeekNum5() { + return weekNum5 == null ? "" : weekNum5; + } + + public void setWeekNum5(String weekNum5) { + this.weekNum5 = weekNum5; + } + + public String getWeekNum6() { + return weekNum6 == null ? "" : weekNum6; + } + + public void setWeekNum6(String weekNum6) { + this.weekNum6 = weekNum6; + } + + public String getWeekNum7() { + return weekNum7 == null ? "" : weekNum7; + } + + public void setWeekNum7(String weekNum7) { + this.weekNum7 = weekNum7; + } + + public int getOnceFlag() { + return onceFlag; + } + + public void setOnceFlag(int onceFlag) { + this.onceFlag = onceFlag; + } + + public String getExecTime() { + return execTime == null ? "" : execTime; + } + + public void setExecTime(String execTime) { + this.execTime = execTime; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getCode() { + return code == null ? "" : code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getIcon() { + return icon == null ? "" : icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public String getExecType() { + return execType; + } + + public void setExecType(String execType) { + this.execType = execType; + } + + public String getHouseId() { + return houseId; + } + + public void setHouseId(String houseId) { + this.houseId = houseId; + } + + public String getModelId() { + return modelId; + } + + public void setModelId(String modelId) { + this.modelId = modelId; + } + + public String getModelName() { + return modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public String getModelType() { + return modelType; + } + + public void setModelType(String modelType) { + this.modelType = modelType; + } + + public int getOpenFlag() { + return openFlag; + } + + public void setOpenFlag(int openFlag) { + this.openFlag = openFlag; + } + + public String getZiId() { + return ziId; + } + + public void setZiId(String ziId) { + this.ziId = ziId; + } + + public String getZiName() { + return ziName; + } + + public void setZiName(String ziName) { + this.ziName = ziName; + } + + public String getDeviceId() { + return deviceId == null ? "" : deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId == null ? "" : deviceId; + } + + public String getDeviceModel() { + return deviceModel == null ? "" : deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getDeviceType() { + return deviceType == null ? "" : deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getSubTypeClass() { + return subTypeClass == null ? "" : subTypeClass; + } + + public void setSubTypeClass(String subTypeClass) { + this.subTypeClass = subTypeClass; + } + + public String getSubType() { + return subType == null ? "" : subType; + } + + public void setSubType(String subType) { + this.subType = subType == null ? "" : subType; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/TvTryEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/TvTryEntity.java new file mode 100644 index 0000000..ac68d52 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/TvTryEntity.java @@ -0,0 +1,132 @@ +package com.yonsz.z1.database.entity.entitya2; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2017/12/7. + */ + +public class TvTryEntity { + + /** + * msg : 操作成功。 + * flag : 1 + * obj : [{"zip":1,"orderNo":0,"brandId":244,"keyId":"power","isNewRecord":true,"rid":"IU6Tca/YAVj+ubWtBMQAwQ==","deviceId":2,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htYl1KEOH3r/fxijvC54JFyhfgxrG38sGXbriPOglqNZh"},{"zip":1,"orderNo":0,"brandId":244,"keyId":"vol+","isNewRecord":true,"rid":"IU6Tca/YAVj+ubWtBMQAwQ==","deviceId":2,"keyInfrared":"cM2zK0BTDi0c/9EQbP+htfy82YbohHp+fUTdYYIhNMSsm6h6rGzspy2Kaakvi+UW"},{"zip":1,"orderNo":0,"brandId":244,"keyId":"ch+","isNewRecord":true,"rid":"IU6Tca/YAVj+ubWtBMQAwQ==","deviceId":2,"keyInfrared":"cM2zK0BTDi0c/9EQbP+hteia0GIYu1T0BU9WkJOG6OHdXsdY8x2ntphGYZMWauei"}] + */ + private String msg; + private int flag; + private List obj; + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public List getObj() { + if (obj == null) { + return new ArrayList<>(); + } + return obj; + } + + public void setObj(List obj) { + this.obj = obj; + } + + public static class ObjEntity { + /** + * zip : 1.0 + * orderNo : 0 + * brandId : 244.0 + * keyId : power + * isNewRecord : true + * rid : IU6Tca/YAVj+ubWtBMQAwQ== + * deviceId : 2.0 + * keyInfrared : cM2zK0BTDi0c/9EQbP+htYl1KEOH3r/fxijvC54JFyhfgxrG38sGXbriPOglqNZh + */ + private double zip; + private int orderNo; + private double brandId; + private String keyId; + private boolean isNewRecord; + private String rid; + private double deviceId; + private String keyInfrared; + + public double getZip() { + return zip; + } + + public void setZip(double zip) { + this.zip = zip; + } + + public int getOrderNo() { + return orderNo; + } + + public void setOrderNo(int orderNo) { + this.orderNo = orderNo; + } + + public double getBrandId() { + return brandId; + } + + public void setBrandId(double brandId) { + this.brandId = brandId; + } + + public String getKeyId() { + return keyId == null ? "" : keyId; + } + + public void setKeyId(String keyId) { + this.keyId = keyId; + } + + public boolean isNewRecord() { + return isNewRecord; + } + + public void setNewRecord(boolean newRecord) { + isNewRecord = newRecord; + } + + public String getRid() { + return rid == null ? "" : rid; + } + + public void setRid(String rid) { + this.rid = rid; + } + + public double getDeviceId() { + return deviceId; + } + + public void setDeviceId(double deviceId) { + this.deviceId = deviceId; + } + + public String getKeyInfrared() { + return keyInfrared == null ? "" : keyInfrared; + } + + public void setKeyInfrared(String keyInfrared) { + this.keyInfrared = keyInfrared; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/WxLoginEntity.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/WxLoginEntity.java new file mode 100644 index 0000000..5d21b68 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/WxLoginEntity.java @@ -0,0 +1,183 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2018/3/12. + */ + +public class WxLoginEntity { + + /** + * flag : 1012 + * obj : {"userInfo":{"id":"c345b148c2c2461c82109a6126f400f9","loginName":"18824634310","name":"啦啦啦啦","mobileLogin":false,"loginIp":"192.168.3.44","appId":"1101","sessionid":"4467f98dc757409ba1b1e9c0586fdc0a"},"session":"8b27114403254e17a127d270af940d99","headUrl":"http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTIia6JywZv309s2a7fWJTatOqon3NSGVqc6hm5Y4jRmZYeQD3qJ9uWtnO3zwMl6hjSicWNHEEVME6xg/132","wxId":"oatKh1GTa5UeFor_h2hfvUnr9nG4","userName":"gaojie"} + * msg : 登录成功. + */ + + private int flag; + private ObjBean obj; + private String msg; + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public ObjBean getObj() { + return obj; + } + + public void setObj(ObjBean obj) { + this.obj = obj; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public static class ObjBean { + /** + * userInfo : {"id":"c345b148c2c2461c82109a6126f400f9","loginName":"18824634310","name":"啦啦啦啦","mobileLogin":false,"loginIp":"192.168.3.44","appId":"1101","sessionid":"4467f98dc757409ba1b1e9c0586fdc0a"} + * session : 8b27114403254e17a127d270af940d99 + * headUrl : http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTIia6JywZv309s2a7fWJTatOqon3NSGVqc6hm5Y4jRmZYeQD3qJ9uWtnO3zwMl6hjSicWNHEEVME6xg/132 + * wxId : oatKh1GTa5UeFor_h2hfvUnr9nG4 + * userName : gaojie + */ + + private UserInfoBean userInfo; + private String session; + private String headUrl; + private String wxId; + private String userName; + private String name; + + public UserInfoBean getUserInfo() { + return userInfo; + } + + public void setUserInfo(UserInfoBean userInfo) { + this.userInfo = userInfo; + } + + public String getSession() { + return session == null ? "" : session; + } + + public void setSession(String session) { + this.session = session; + } + + public String getHeadUrl() { + return headUrl == null ? "" : headUrl; + } + + public void setHeadUrl(String headUrl) { + this.headUrl = headUrl; + } + + public String getWxId() { + return wxId == null ? "" : wxId; + } + + public void setWxId(String wxId) { + this.wxId = wxId; + } + + public String getUserName() { + return userName == null ? "" : userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public static class UserInfoBean { + /** + * id : c345b148c2c2461c82109a6126f400f9 + * loginName : 18824634310 + * name : 啦啦啦啦 + * mobileLogin : false + * loginIp : 192.168.3.44 + * appId : 1101 + * sessionid : 4467f98dc757409ba1b1e9c0586fdc0a + */ + + private String id; + private String loginName; + private String name; + private boolean mobileLogin; + private String loginIp; + private String appId; + private String sessionid; + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLoginName() { + return loginName == null ? "" : loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isMobileLogin() { + return mobileLogin; + } + + public void setMobileLogin(boolean mobileLogin) { + this.mobileLogin = mobileLogin; + } + + public String getLoginIp() { + return loginIp == null ? "" : loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public String getAppId() { + return appId == null ? "" : appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getSessionid() { + return sessionid == null ? "" : sessionid; + } + + public void setSessionid(String sessionid) { + this.sessionid = sessionid; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/database/entity/entitya2/WxLoginEvent.java b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/WxLoginEvent.java new file mode 100644 index 0000000..849c9da --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/database/entity/entitya2/WxLoginEvent.java @@ -0,0 +1,18 @@ +package com.yonsz.z1.database.entity.entitya2; + +/** + * Created by Administrator on 2017/11/24. + */ + +public class WxLoginEvent { + private String mMsg; + + public WxLoginEvent(String msg) { + // TODO Auto-generated constructor stub + mMsg = msg; + } + + public String getMsg() { + return mMsg; + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/ChangeBgPicActivity.java b/app/src/main/java/com/yonsz/z1/version4/ChangeBgPicActivity.java new file mode 100644 index 0000000..6b3c507 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/ChangeBgPicActivity.java @@ -0,0 +1,462 @@ +package com.yonsz.z1.version4; + +import android.Manifest; +import android.app.Activity; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.content.Intent; +import android.content.res.Resources; +import android.database.Cursor; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Color; +import android.net.Uri; +import android.os.Bundle; +import android.os.Message; +import android.provider.MediaStore; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.qw.soul.permission.SoulPermission; +import com.qw.soul.permission.bean.Permission; +import com.qw.soul.permission.bean.Permissions; +import com.qw.soul.permission.callbcak.CheckRequestPermissionsListener; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.entity4.ChangePicEntity; +import com.yonsz.z1.homemanage.UploadBigBgService; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.personcenter.CutImageViewActivity; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.view.TitleView; + +import java.io.File; +import java.io.FileInputStream; +import java.util.ArrayList; +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.umeng.analytics.pro.x.i; +import static com.yonsz.z1.mine.personcenter.PersonCenterActivity.CUT_IMAGE; +import static com.yonsz.z1.mine.personcenter.PersonCenterActivity.PHOTO_ALBUM; +import static com.yonsz.z1.mine.personcenter.PersonCenterActivity.TAKING_PICTURES; +import static com.yonsz.z1.net.Constans.QUERY_HOUSE_INFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_SYS_BANNERS_FAIL; + + +/** + * Created by Administrator on 2018/7/5. + */ + +public class ChangeBgPicActivity extends BaseActivity { + private TitleView mTitleView; + private TextView albumTv, photographIv; + private String imageIconFile; + private String headPath = null; + private File Image;//临时存储头像图片 + private String iconUrl; + private ImageView picOne, picTwo, picThree, picFour; + private TextView picOneTv, picTwoTv, picThreeTv, picFourTv; + private String mFilePath; + private FileInputStream is; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_change_bg_pic); + initView(); + initListener(); + } + + private void initView() { + albumTv = (TextView) findViewById(R.id.tv_from_album); + photographIv = (TextView) findViewById(R.id.tv_from_photograph); + picOne = (ImageView) findViewById(R.id.iv_pic_one); + picTwo = (ImageView) findViewById(R.id.iv_pic_two); + picThree = (ImageView) findViewById(R.id.iv_pic_three); + picFour = (ImageView) findViewById(R.id.iv_pic_four); + picOneTv = (TextView) findViewById(R.id.tv_pic_one); + picTwoTv = (TextView) findViewById(R.id.tv_pic_two); + picThreeTv = (TextView) findViewById(R.id.tv_pic_three); + picFourTv = (TextView) findViewById(R.id.tv_pic_four); + mTitleView = (TitleView) findViewById(R.id.title_bg_pic); + mTitleView.setHead("修改场所的壁纸"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.MAIN_BG_URL, ""))) { + String msg = SharedpreferencesUtil.get(Constans.MAIN_BG_URL, ""); + switch (msg) { + case "1": + picOneTv.setVisibility(View.VISIBLE); + break; + case "2": + picTwoTv.setVisibility(View.VISIBLE); + break; + case "3": + picThreeTv.setVisibility(View.VISIBLE); + break; + case "4": + picFourTv.setVisibility(View.VISIBLE); + break; + default: + + break; + } + } else { + picOneTv.setVisibility(View.VISIBLE); + } + } + + private void initListener() { + albumTv.setOnClickListener(this); + photographIv.setOnClickListener(this); + picOne.setOnClickListener(this); + picTwo.setOnClickListener(this); + picThree.setOnClickListener(this); + picFour.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + Intent intent; + switch (v.getId()) { + case R.id.tv_from_album: + intent = new Intent(); + //开启Picture画面Type定位image + intent.setType("image/*"); + /* 使用Intent.ACTION_GET_CONTENT这个Action */ + intent.setAction(Intent.ACTION_GET_CONTENT); + //取得相片后返回本画面 + startActivityForResult(intent, PHOTO_ALBUM); + break; + case R.id.tv_from_photograph: + SoulPermission.getInstance().checkAndRequestPermissions( + Permissions.build(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE), + //if you want do noting or no need all the callbacks you may use SimplePermissionsAdapter instead + new CheckRequestPermissionsListener() { + @Override + public void onAllPermissionOk(Permission[] allPermissions) { + /*// 获取SD卡路径 + mFilePath = Environment.getExternalStorageDirectory().getPath(); + // 保存图片的文件名 + mFilePath = mFilePath + "/" + "unikong.png"; + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + takePhotoBiggerThan7((new File(mFilePath)).getAbsolutePath()); + } else { + // 指定拍照意图 + Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + // 加载路径图片路径 + Uri mUri = Uri.fromFile(new File(mFilePath)); + // 指定存储路径,这样就可以保存原图了 + openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mUri); + startActivityForResult(openCameraIntent, TAKING_PICTURES); + }*/ + + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + startActivityForResult(intent, TAKING_PICTURES); + } + + @Override + public void onPermissionDenied(Permission[] refusedPermissions) { + /*Toast.makeText(ChangeBgPicActivity.this, refusedPermissions[0].toString() + + " \n is refused you can not do next things", Toast.LENGTH_SHORT).show();*/ + } + }); + break; + case R.id.iv_pic_one: + if (AppIdUtil.isWork()) { + uploadHousePic("https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/1106/home/background/pic_work_wallpaper01.png"); + } else if (AppIdUtil.isStandard()) { + uploadLocal(R.drawable.pic_wallpaper01); + } else { + uploadHousePic("https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/0000/banner/0000/2018/11/27/aa6u0exq68qc0mhppvatf0lq6rezpndp.png"); + } + EventBus.getDefault().post( + new ChangePicEntity("1")); + finish(); + break; + case R.id.iv_pic_two: + if (AppIdUtil.isWork()) { + uploadHousePic("https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/1106/home/background/pic_work_wallpaper02.png"); + } else if (AppIdUtil.isStandard()) { + uploadLocal(R.drawable.pic_wallpaper02); + } else { + uploadHousePic("https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/0000/banner/0000/2018/11/27/xdjus1wa1hk3e3vy8udxvbk6qvnpgdkc.png"); + } + EventBus.getDefault().post( + new ChangePicEntity("2")); + finish(); + break; + case R.id.iv_pic_three: + if (AppIdUtil.isWork()) { + uploadHousePic("https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/1106/home/background/pic_work_wallpaper03.png"); + } else if (AppIdUtil.isStandard()) { + uploadLocal(R.drawable.pic_wallpaper03); + } else { + uploadHousePic("https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/0000/banner/0000/2018/11/27/4alwb27ldge3dt4kshxjewkdx5xj3w55.png"); + } + EventBus.getDefault().post( + new ChangePicEntity("3")); + finish(); + break; + case R.id.iv_pic_four: + if (AppIdUtil.isWork()) { + uploadHousePic("https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/1106/home/background/pic_work_wallpaper04.png"); + } else if (AppIdUtil.isStandard()) { + uploadLocal(R.drawable.pic_wallpaper04); + } else { + uploadHousePic("https://public-yonsz-1253338722.cos.ap-guangzhou.myqcloud.com/0000/banner/0000/2018/11/27/gh0owxgoq7bn5z06e3213nxxf81wgk45.png"); + } + EventBus.getDefault().post( + new ChangePicEntity("4")); + finish(); + break; + } + } + + private void uploadLocal(int imageId) { + Bitmap bitmap = BitmapFactory.decodeResource(getResources(), imageId, null); + String uriToString = MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, null, null); + if (uriToString != null) { + Uri uri = Uri.parse(uriToString); + imageIconFile = uri.toString(); + headPath = uri2Path(uri); + String string = ImageLoader.getInstance().getDiskCache().get(i).getPath(); + Image = new File(string); + if (Image == null) { + Toast.makeText(ChangeBgPicActivity.this, "信息填写不完整", Toast.LENGTH_SHORT).show(); + } else { + ArrayList files = new ArrayList<>(); + Intent service = new Intent(this, UploadBigBgService.class); + files.add(headPath); + service.putExtra("data", files); + service.putExtra("parentId", getIntent().getExtras().get("id").toString()); + startService(service); + } + Log.i("gaojie", "PersonalCenterActivity onActivityResult()" + uriToString + "--" + uri + "--" + i + "--" + Image.toString() + "-------" + headPath); + EventBus.getDefault().post( + new ChangePicEntity(imageIconFile)); + finish(); + } + } + + /** + * 得到资源文件中图片的Uri + * + * @param context 上下文对象 + * @param id 资源id + * @return Uri + */ + public Uri getUriFromDrawableRes(Context context, int id) { + Resources resources = context.getResources(); + String path = ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + + resources.getResourcePackageName(id) + "/" + + resources.getResourceTypeName(id) + "/" + + resources.getResourceEntryName(id); + return Uri.parse(path); + } + + + private void uploadHousePic(String picUrl) { + HashMap map = new HashMap<>(); + map.put("houseId", getIntent().getExtras().get("id").toString()); + map.put("picUrl", picUrl); + NetWorkUtil net = NetWorkUtil.instans(); + net.requestPostByAsynewApi(NetWorkUrl.UPLOAD_HOUSE_PIC_LOCAL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("uploadHousePic", "UpdatePwActivity onSuccess()" + respone); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_HOUSE_INFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void takePhotoBiggerThan7(String absolutePath) { + Uri mCameraTempUri; + try { + ContentValues values = new ContentValues(1); + values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpg"); + values.put(MediaStore.Images.Media.DATA, absolutePath); + mCameraTempUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION + | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + if (mCameraTempUri != null) { + intent.putExtra(MediaStore.EXTRA_OUTPUT, mCameraTempUri); + intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); + } + startActivityForResult(intent, TAKING_PICTURES); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void callBackUiThread(Message msg) { + + } + + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (Activity.RESULT_CANCELED != resultCode) { + if (data != null) { + //获取相册图片 + if (requestCode == PHOTO_ALBUM) { + ContentResolver resolver = getContentResolver(); + Uri uri = data.getData(); + byte[] mContent; + try { + mContent = CutImageViewActivity.readStream(resolver.openInputStream(Uri.parse(uri.toString()))); + //将字节数组转换成ImageView可调用的Bitmap对象 + CutImageViewActivity.myBitmap = CutImageViewActivity.getPicFromBytes(mContent, null); + startActivityForResult(new Intent(ChangeBgPicActivity.this, CutImageViewActivity.class), CUT_IMAGE); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + //获取拍照后的相片 + if (requestCode == TAKING_PICTURES) { + Bundle bundle = data.getExtras(); + CutImageViewActivity.myBitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式 + startActivityForResult(new Intent(ChangeBgPicActivity.this, CutImageViewActivity.class), CUT_IMAGE); + + /*try { + // 获取输入流 + is = new FileInputStream(mFilePath); + // 把流解析成bitmap,此时就得到了清晰的原图 + Bitmap bitmap = BitmapFactory.decodeStream(is); + //接下来就可以展示了(或者做上传处理) + CutImageViewActivity.myBitmap = bitmap;// 获取相机返回的数据,并转换为Bitmap图片格式 + startActivityForResult(new Intent(ChangeBgPicActivity.this, CutImageViewActivity.class), CUT_IMAGE); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + // 关闭流 + try { + is.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + }*/ + } + } + //裁剪后的照片 + if (requestCode == CUT_IMAGE) { + //把bitmap转化成uri + String uriToString = MediaStore.Images.Media.insertImage(getContentResolver(), CutImageViewActivity.cutBitmap, null, null); + if (uriToString != null) { + Uri uri = Uri.parse(uriToString); + imageIconFile = uri.toString(); + headPath = uri2Path(uri); + /*ImageLoaderUtil util = new ImageLoaderUtil(); + util.setImageUrl(imageIconFile, picOne);*/ + String string = ImageLoader.getInstance().getDiskCache().get(i).getPath(); + Image = new File(string); + if (Image == null) { + Toast.makeText(ChangeBgPicActivity.this, "信息填写不完整", Toast.LENGTH_SHORT).show(); + } else { + ArrayList files = new ArrayList<>(); + Intent service = new Intent(this, UploadBigBgService.class); + files.add(headPath); + service.putExtra("data", files); + service.putExtra("parentId", getIntent().getExtras().get("id").toString()); + startService(service); + } + Log.i("gaojie", "PersonalCenterActivity onActivityResult()" + uriToString + "--" + uri + "--" + i + "--" + Image.toString() + "-------" + headPath); + + + EventBus.getDefault().post( + new ChangePicEntity(imageIconFile)); + finish(); + /*ArrayList files = new ArrayList<>(); + Intent service = new Intent(this, UploadHeadIconService.class); + files.add(headPath); + service.putExtra("data", files); + service.putExtra("parentId", SharedpreferencesUtil.get(Constans.USERPHONE, null)); + startService(service);*/ + } + } + super.onActivityResult(requestCode, resultCode, data); + } + + private String uri2Path(Uri uri) { + String path = null; + String[] proj = {MediaStore.Images.Media.DATA}; + ContentResolver cr = this.getContentResolver(); + Cursor cursor = cr.query(uri, proj, null, null, null); + int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); + cursor.moveToFirst(); + //最后根据索引值获取图片路径 + path = cursor.getString(column_index); + return path; + } + + private void cropImageUri(Uri uri, int outputX, int outputY, int requestCode) { + + Intent intent = new Intent("com.android.camera.action.CROP"); + + intent.setDataAndType(uri, "image/*"); + + intent.putExtra("crop", "true"); + + intent.putExtra("aspectX", 2); + + intent.putExtra("aspectY", 1); + + intent.putExtra("outputX", outputX); + + intent.putExtra("outputY", outputY); + + intent.putExtra("scale", true); + + intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); + + intent.putExtra("return-data", false); + + intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString()); + + intent.putExtra("noFaceDetection", true); // no face detection + + startActivityForResult(intent, requestCode); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/DeviceControlActivity.java b/app/src/main/java/com/yonsz/z1/version4/DeviceControlActivity.java new file mode 100644 index 0000000..5fa23b5 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/DeviceControlActivity.java @@ -0,0 +1,548 @@ +package com.yonsz.z1.version4; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.view.ViewPager; +import android.util.Log; +import android.view.View; +import android.widget.RelativeLayout; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.login.LoginActivity; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.ConnectNettyUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.fragment.AirA1Fragment; +import com.yonsz.z1.version4.fragment.AirA2Fragment; +import com.yonsz.z1.version4.fragment.AirCleanerFragment; +import com.yonsz.z1.version4.fragment.FanA1Fragment; +import com.yonsz.z1.version4.fragment.FanA2Fragment; +import com.yonsz.z1.version4.fragment.LightA1Fragment; +import com.yonsz.z1.version4.fragment.MovieCameraFragment; +import com.yonsz.z1.version4.fragment.MusicFragment; +import com.yonsz.z1.version4.fragment.SafeDeviceFragment; +import com.yonsz.z1.version4.fragment.ScrollViewPager; +import com.yonsz.z1.version4.fragment.SweepA1Fragment; +import com.yonsz.z1.version4.fragment.SweepA2Fragment; +import com.yonsz.z1.version4.fragment.SwitchFragment; +import com.yonsz.z1.version4.fragment.TvA1BoxFragment; +import com.yonsz.z1.version4.fragment.TvA1Fragment; +import com.yonsz.z1.version4.fragment.TvA2BoxFragment; +import com.yonsz.z1.version4.fragment.TvA2Fragment; +import com.yonsz.z1.version4.fragment.ViewPagerAdapter; +import com.yonsz.z1.version4.fragment.ZigbeeDeviceFragment; +import com.yonsz.z1.version5.curtainandWindow.Curtain5Fragment; +import com.yonsz.z1.version5.fragment.ClothesHangerFragment; +import com.yonsz.z1.version5.fragment.GemstoneElvesFragment; +import com.yonsz.z1.view.loading.LoadingDialog; +import com.yonsz.z1.ybl.panel.YblPanelFragment; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.GEMSTONE_ELVES; +import static com.yonsz.z1.net.Constans.GETZIINFO_FAIL; +import static com.yonsz.z1.net.Constans.GETZIINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.GET_USER_SESSION_NULL; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.Constans.isLocalControl; + +/** + * Created by Administrator on 2018/8/7. + */ + +public class DeviceControlActivity extends BaseActivity { + public static String safeDefenceType = ""; + private DeviceEntityV4.DataBean parentBean; + private ScrollViewPager mViewPager; + private ViewPagerAdapter mAdAdapter; + private List fragmentList; + private FragmentManager manager; + private String id; + private String ziId; + private int localPosition = 0; + private String deviceIp = ""; + private LoadingDialog mLoadingDialog; + private RelativeLayout rl_learn_guide; + private String isAddState = "0"; + + public void onEventMainThread(CanloopEvent event) { + boolean isCanScroll = event.getMsg(); + Log.e("nettyUtil", isCanScroll + ""); + //设置能否滑动 + mViewPager.setScanScroll(!isCanScroll); + } + + protected void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_device_control); + initView(); + } + + @Override + public void onResume() { + super.onResume(); + } + + private void initView() { + mViewPager = (ScrollViewPager) findViewById(R.id.mvp_main_top); + rl_learn_guide = (RelativeLayout) findViewById(R.id.rl_learn_guide); + rl_learn_guide.setOnClickListener(this); + fragmentList = new ArrayList<>(); + id = getIntent().getExtras().get("id").toString(); + ziId = getIntent().getExtras().get("ziId").toString(); + if (getIntent().getExtras() != null && getIntent().getExtras().get("parentBean") != null) { + parentBean = (DeviceEntityV4.DataBean) getIntent().getExtras().get("parentBean"); + if (null != parentBean.getChildren()) { + setPagerNumber(parentBean.getChildren()); + } + manager = getSupportFragmentManager(); + mAdAdapter = new ViewPagerAdapter(manager, fragmentList); + mViewPager.setScanScroll(true); + mViewPager.setAdapter(mAdAdapter); + mViewPager.setOffscreenPageLimit(fragmentList.size()); + mViewPager.setCurrentItem(localPosition, false); + mAdAdapter.notifyDataSetChanged(); + } else { + getZ1Info(); + } + + ConnectNettyUtil.connectNetty(ziId, deviceIp, this); + + mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageSelected(int position) { + localPosition = position; + } + + @Override + public void onPageScrollStateChanged(int state) { + /*if (fragmentList.size() < 2) + return; + // 若viewpager滑动未停止,直接返回 + if (state != ViewPager.SCROLL_STATE_IDLE) + return; + // 若当前为第一张,设置页面为倒数第二张 + if (localPosition == 0) { + mViewPager.setCurrentItem(fragmentList.size() - 2, false); + } else if (localPosition == fragmentList.size() - 1) { + // 若当前为倒数第一张,设置页面为第二张 + mViewPager.setCurrentItem(1, false); + }*/ + } + }); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (isLocalControl) { + NettyManager.closeCtx(); + } + } + + @Override + public void onClick(View v) { + super.onClick(v); + switch (v.getId()) { + case R.id.rl_learn_guide: + rl_learn_guide.setVisibility(View.GONE); + SharedpreferencesUtil.save(ziId + "scroll", false); + break; + } + } + + private List setPagerNumber(List devices) { + fragmentList.clear(); + Bundle bundle; + + for (int i = 0; i < devices.size(); i++) { + if (devices.get(i).getId().equals(id)) { + localPosition = i; + } + switch (devices.get(i).getDeviceType()) { + case Constans.AIR_TAG: + if (parentBean.getDeviceVersion().equals("1") && !parentBean.getSubVersion().equals("Y") && !parentBean.getSubVersion().equals("D")) { + AirA1Fragment airA1Fragment = AirA1Fragment.getInstance(devices.get(i)); + bundle = new Bundle(); + // bundle.putSerializable("DATA", devices.get(i)); + if (null != getIntent().getExtras().get("airStateTag")) { + bundle.putString("airStateTag", getIntent().getExtras().get("airStateTag").toString()); + } else { + bundle.putString("airStateTag", "1"); + } + airA1Fragment.setArguments(bundle); + fragmentList.add(airA1Fragment); + } else { + AirA2Fragment airA2Fragment = AirA2Fragment.getInstance(devices.get(i)); + bundle = new Bundle(); + // bundle.putSerializable("DATA", devices.get(i)); + bundle.putString("loadStatus", parentBean.getLoadStatus()); + bundle.putString("loadErrorType", isAddState); + airA2Fragment.setArguments(bundle); + fragmentList.add(airA2Fragment); + } + break; + case Constans.FAN_TAG: + if (parentBean.getDeviceVersion().equals("1") && !parentBean.getSubVersion().equals("Y") && !parentBean.getSubVersion().equals("D")) { + FanA1Fragment fanA1Fragment = FanA1Fragment.getInstance(devices.get(i)); + bundle = new Bundle(); + // bundle.putSerializable("DATA", devices.get(i)); + if (null != getIntent().getExtras().get("fanStateTag")) { + bundle.putString("fanStateTag", getIntent().getExtras().get("fanStateTag").toString()); + } else { + bundle.putString("fanStateTag", "1"); + } + fanA1Fragment.setArguments(bundle); + fragmentList.add(fanA1Fragment); + } else { + FanA2Fragment fanA2Fragment = FanA2Fragment.getInstance(devices.get(i)); + bundle = new Bundle(); + // bundle.putSerializable("DATA", devices.get(i)); + bundle.putString("loadStatus", parentBean.getLoadStatus()); + bundle.putString("loadErrorType", parentBean.getLoadErrorType()); + bundle.putString("subVersion", parentBean.getSubVersion()); + fanA2Fragment.setArguments(bundle); + fragmentList.add(fanA2Fragment); + } + break; + case Constans.TV_TAG: + if (parentBean.getDeviceVersion().equals("1") && !parentBean.getSubVersion().equals("Y") && !parentBean.getSubVersion().equals("D")) { + TvA1Fragment tvA1Fragment = TvA1Fragment.getInstance(devices.get(i)); + bundle = new Bundle(); + // bundle.putSerializable("DATA", devices.get(i)); + if (null != getIntent().getExtras().get("tvStateTag")) { + bundle.putString("tvStateTag", getIntent().getExtras().get("tvStateTag").toString()); + } else { + bundle.putString("tvStateTag", "1"); + } + tvA1Fragment.setArguments(bundle); + fragmentList.add(tvA1Fragment); + } else { + TvA2Fragment tvA2Fragment = TvA2Fragment.getInstance(devices.get(i)); + bundle = new Bundle(); + // bundle.putSerializable("DATA", devices.get(i)); + bundle.putString("loadStatus", parentBean.getLoadStatus()); + bundle.putString("loadErrorType", parentBean.getLoadErrorType()); + bundle.putString("subVersion", parentBean.getSubVersion()); + tvA2Fragment.setArguments(bundle); + fragmentList.add(tvA2Fragment); + } + break; + case MOVIE_CAMERA: + MovieCameraFragment cameraFragment = MovieCameraFragment.getInstance(devices.get(i)); + bundle = new Bundle(); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + if (null != getIntent().getExtras().get("mcStateTag")) { + bundle.putString("mcStateTag", getIntent().getExtras().get("mcStateTag").toString()); + } + cameraFragment.setArguments(bundle); + fragmentList.add(cameraFragment); + break; + case AIR_CLEANER: + AirCleanerFragment airCleanerFragment = AirCleanerFragment.getInstance(devices.get(i)); + bundle = new Bundle(); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + if (null != getIntent().getExtras().get("acStateTag")) { + bundle.putString("acStateTag", getIntent().getExtras().get("acStateTag").toString()); + } + airCleanerFragment.setArguments(bundle); + fragmentList.add(airCleanerFragment); + break; + case Constans.TVONE_TAG: + if (parentBean.getDeviceVersion().equals("1") && !parentBean.getSubVersion().equals("Y") && !parentBean.getSubVersion().equals("D")) { + TvA1BoxFragment tvA1Fragment = TvA1BoxFragment.getInstance(devices.get(i)); + bundle = new Bundle(); + // bundle.putSerializable("DATA", devices.get(i)); + if (null != getIntent().getExtras().get("tvStateTag")) { + bundle.putString("tvStateTag", getIntent().getExtras().get("tvStateTag").toString()); + } else { + bundle.putString("tvStateTag", "1"); + } + tvA1Fragment.setArguments(bundle); + fragmentList.add(tvA1Fragment); + } else { + TvA2BoxFragment tvA2Fragment = TvA2BoxFragment.getInstance(devices.get(i)); + bundle = new Bundle(); + // bundle.putSerializable("DATA", devices.get(i)); + bundle.putString("loadStatus", parentBean.getLoadStatus()); + bundle.putString("loadErrorType", parentBean.getLoadErrorType()); + bundle.putString("subVersion", parentBean.getSubVersion()); + tvA2Fragment.setArguments(bundle); + fragmentList.add(tvA2Fragment); + } + break; + case Constans.SWEEP_TAG: + if (parentBean.getDeviceVersion().equals("1") && !parentBean.getSubVersion().equals("Y") && !parentBean.getSubVersion().equals("D")) { + SweepA1Fragment sweepA1Fragment = SweepA1Fragment.getInstance(devices.get(i)); + bundle = new Bundle(); + // bundle.putSerializable("DATA", devices.get(i)); + if (null != getIntent().getExtras().get("sweepStateTag")) { + bundle.putString("sweepStateTag", getIntent().getExtras().get("sweepStateTag").toString()); + } else { + bundle.putString("sweepStateTag", "1"); + } + sweepA1Fragment.setArguments(bundle); + fragmentList.add(sweepA1Fragment); + } else { + SweepA2Fragment sweepA2Fragment = SweepA2Fragment.getInstance(devices.get(i)); + bundle = new Bundle(); + // bundle.putSerializable("DATA", devices.get(i)); + bundle.putString("loadStatus", parentBean.getLoadStatus()); + bundle.putString("loadErrorType", parentBean.getLoadErrorType()); + bundle.putString("subVersion", parentBean.getSubVersion()); + sweepA2Fragment.setArguments(bundle); + fragmentList.add(sweepA2Fragment); + } + break; + case Constans.LIGHT_TAG: + /* bundle = new Bundle(); + bundle.putSerializable("DATA", devices.get(i)); + if (1 == 1) { + LightA1Fragment lightFragment = new LightA1Fragment(); + lightFragment.setArguments(bundle); + fragmentList.add(lightFragment); + } else { + LightFragment lightFragment = new LightFragment(); + lightFragment.setArguments(bundle); + fragmentList.add(lightFragment); + }*/ + LightA1Fragment lightFragment = LightA1Fragment.getInstance(devices.get(i)); + fragmentList.add(lightFragment); + break; + case Constans.CURTAINS_TAG: + Curtain5Fragment curtainFragment = Curtain5Fragment.getInstance(devices.get(i)); + bundle = new Bundle(); + // bundle.putSerializable("DATA", devices.get(i)); + if (null != getIntent().getExtras().get("relatedStatus") && i == devices.size() - 1) { + bundle.putString("relatedStatus", getIntent().getExtras().get("relatedStatus").toString()); + } else { + bundle.putString("relatedStatus", devices.get(i).getRelatedStatus()); + } + curtainFragment.setArguments(bundle); + fragmentList.add(curtainFragment); + break; + case Constans.SWITCH_TAG: + SwitchFragment switchFragment = SwitchFragment.getInstance(devices.get(i)); + /*bundle = new Bundle(); + bundle.putSerializable("DATA", devices.get(i)); + switchFragment.setArguments(bundle);*/ + fragmentList.add(switchFragment); + break; + case Constans.DOOR_LOCK_TAG: + case Constans.INFRARED_TAG: + case Constans.SMOKE_TAG: + case Constans.GAS_TAG: + case Constans.WATER_TAG: + SafeDeviceFragment safeDeviceFragment = SafeDeviceFragment.getInstance(devices.get(i)); + /* bundle = new Bundle(); + bundle.putSerializable("DATA", devices.get(i)); + bundle.putString("deviceName", parentBean.getZiName()); + safeDeviceFragment.setArguments(bundle);*/ + fragmentList.add(safeDeviceFragment); + break; + case Constans.SITUATIONAL_PANEL: + YblPanelFragment yblPanelDetailFragment = YblPanelFragment.getInstance(devices.get(i)); + /*bundle = new Bundle(); + bundle.putSerializable("DATA", devices.get(i)); + bundle.putString("deviceName", parentBean.getZiName()); + yblPanelDetailFragment.setArguments(bundle);*/ + fragmentList.add(yblPanelDetailFragment); + break; + case Constans.MUSIC_TAG: + MusicFragment musicFragment = MusicFragment.getInstance(devices.get(i)); + bundle = new Bundle(); + // bundle.putSerializable("DATA", devices.get(i)); + bundle.putString("loadStatus", parentBean.getLoadStatus()); + bundle.putString("loadErrorType", parentBean.getLoadErrorType()); + bundle.putString("subVersion", parentBean.getSubVersion()); + + musicFragment.setArguments(bundle); + fragmentList.add(musicFragment); + break; + case Constans.ZIGBEE_LIGHT: + case Constans.ZIGBEE_PLUG: + case Constans.ZIGBEE_INFRARED: + case Constans.ZIGBEE_TEMPERATURE: + case Constans.ZIGBEE_DOOR: + case Constans.ZIGBEE_CO: + case Constans.ZIGBEE_WATER: + case Constans.ZIGBEE_SMOKE: + fragmentList.add(new ZigbeeDeviceFragment()); + break; + case GEMSTONE_ELVES: + GemstoneElvesFragment elvesFragment = new GemstoneElvesFragment(); + bundle = new Bundle(); + bundle.putSerializable("DATA", devices.get(i)); + elvesFragment.setArguments(bundle); + fragmentList.add(elvesFragment); + break; + case CLOTHES_HANGER: + /*if (null != thisBean.getLastInfo()) { + DeviceEntityV4.DataBean.DevicesBean.LastInfoBean lastInfoBean = new DeviceEntityV4.DataBean.DevicesBean.LastInfoBean(); + lastInfoBean.setAirdrying(thisBean.getLastInfo().getAirdrying()); + lastInfoBean.setAnion(thisBean.getLastInfo().getAnion()); + lastInfoBean.setDisinfect(thisBean.getLastInfo().getDisinfect()); + lastInfoBean.setLight(thisBean.getLastInfo().getLight()); + lastInfoBean.setOpenFlag(thisBean.getLastInfo().getOpenFlag()); + lastInfoBean.setStoving(thisBean.getLastInfo().getStoving()); + lastInfoBean.setVoice(thisBean.getLastInfo().getVoice()); + sendBean.setLastInfo(lastInfoBean); + } + sendBean.setVoiceFlag(thisBean.getVoiceFlag());*/ + ClothesHangerFragment clothesHangerFragment = ClothesHangerFragment.getInstance(devices.get(i)); + /*bundle = new Bundle(); + bundle.putSerializable("DATA", sendBean); + bundle.putString("DATA", JSON.toJSONString(sendBean)); + clothesHangerFragment.setArguments(bundle);*/ + fragmentList.add(clothesHangerFragment); + break; + } + } + if ("air".equals(id)) { + localPosition = devices.size(); + AirA1Fragment airA1Fragment = new AirA1Fragment(); + bundle = new Bundle(); + if (localPosition != 0) { + bundle.putSerializable("DATA", devices.get(0)); + } else { + bundle.putSerializable("DATA", ""); + } + if (null != getIntent().getExtras().get("airStateTag")) { + bundle.putString("airStateTag", getIntent().getExtras().get("airStateTag").toString()); + } else { + bundle.putString("airStateTag", "1"); + } + airA1Fragment.setArguments(bundle); + fragmentList.add(airA1Fragment); + } + /*if (fragmentList.size() > 1) { + //添加最后一页到第一页 + fragmentList.add(0, fragmentList.get(fragmentList.size() - 1)); + //添加第一页(经过上行的添加已经是第二页了)到最后一页 + fragmentList.add(fragmentList.get(1)); + localPosition += 1; + }*/ + return fragmentList; + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case GETZIINFO_SUCCESS: + parentBean = new DeviceEntityV4.DataBean(); + DeviceEntityV4 entity = (DeviceEntityV4) msg.obj; + for (int i = 0; i < entity.getData().size(); i++) { + if (entity.getData().get(i).getZiId().equals(ziId)) { + parentBean = entity.getData().get(i); + } + } + if (null != parentBean.getChildren()) { + isAddState = "1"; + setPagerNumber(parentBean.getChildren()); + } + manager = getSupportFragmentManager(); + mAdAdapter = new ViewPagerAdapter(manager, fragmentList); + mViewPager.setScanScroll(true); + mViewPager.setAdapter(mAdAdapter); + mViewPager.setOffscreenPageLimit(fragmentList.size()); + mViewPager.setCurrentItem(localPosition, false); + mAdAdapter.notifyDataSetChanged(); + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + if (fragmentList.size() == 2) { + rl_learn_guide.setVisibility(View.VISIBLE); + } else { + rl_learn_guide.setVisibility(View.GONE); + } + break; + case GETZIINFO_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case GET_USER_SESSION_NULL: + NettyHandlerUtil.closeCtx(); + ToastUtil.show(this, "用户在其他手机登陆"); + SharedpreferencesUtil.save(Constans.SEESSIONID, ""); + SharedpreferencesUtil.save(Constans.TOKENID, ""); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Intent intent = new Intent(DeviceControlActivity.this, LoginActivity.class); + startActivity(intent); + finish(); + } + }, 1000); + break; + } + } + + //获取Z1列表 + private void getZ1Info() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + if (deviceNumListPosition > homeListEntity.getData().size() - 1) { + deviceNumListPosition = 0; + } + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + util.requestGetByAsy(NetWorkUrl.SEARCH_DEVICE_INFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getZ1Info", respone); + DeviceEntityV4 entity = JSON.parseObject(respone, DeviceEntityV4.class); + if (1 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(GETZIINFO_SUCCESS); + msg.obj = entity; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GETZIINFO_FAIL); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(); + msg.what = GETZIINFO_FAIL; + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/MainActivity4.java b/app/src/main/java/com/yonsz/z1/version4/MainActivity4.java new file mode 100644 index 0000000..63db160 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/MainActivity4.java @@ -0,0 +1,982 @@ +package com.yonsz.z1.version4; + +import android.Manifest; +import android.annotation.TargetApi; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.graphics.Color; +import android.graphics.Rect; +import android.os.Build; +import android.os.Bundle; +import android.os.Message; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v7.app.ActionBar; +import android.util.Log; +import android.view.DisplayCutout; +import android.view.View; +import android.view.WindowInsets; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RadioButton; +import android.widget.RadioGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import com.alibaba.fastjson.JSON; +import com.amap.api.location.AMapLocation; +import com.amap.api.location.AMapLocationClient; +import com.amap.api.location.AMapLocationClientOption; +import com.amap.api.location.AMapLocationListener; +import com.qw.soul.permission.SoulPermission; +import com.qw.soul.permission.bean.Permission; +import com.qw.soul.permission.bean.Permissions; +import com.qw.soul.permission.callbcak.CheckRequestPermissionListener; +import com.qw.soul.permission.callbcak.CheckRequestPermissionsListener; +import com.smarx.notchlib.INotchScreen; +import com.smarx.notchlib.NotchScreenManager; +import com.tencent.android.tpush.XGIOperateCallback; +import com.tencent.android.tpush.XGPushManager; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.activity.MainActivityAdapter; +import com.yonsz.z1.baiduai.UnitActivity; +import com.yonsz.z1.chat.ChatFragment; +import com.yonsz.z1.chat.RecyclerViewChatFragment; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.ThirdEvent; +import com.yonsz.z1.database.entity.VersionEntity; +import com.yonsz.z1.database.entity.entity4.QureyBindEntity; +import com.yonsz.z1.database.entity.entity5.ThemeEntity; +import com.yonsz.z1.database.entity.entitya2.MessageAllEntity; +import com.yonsz.z1.database.entity.entitya2.SafeLogEntity; +import com.yonsz.z1.device.deviceadd.ConfigWifiActicity; +import com.yonsz.z1.devicea2.safedevice.FullDialogActivity; +import com.yonsz.z1.devicea2.safedevice.dialog.FullDialogFragment; +import com.yonsz.z1.fragment.main4.MainFragment4; +import com.yonsz.z1.fragment.message.MessageFragment; +import com.yonsz.z1.fragment.message.TmallFragment; +import com.yonsz.z1.fragment.person.DeviceConnectActivity; +import com.yonsz.z1.fragment.person.PersonFragment; +import com.yonsz.z1.fragment.scene.SceneFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmBindDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.util.UpdateAppReceiver; +import com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppGenerUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.MainFragment5; +import com.yonsz.z1.version5.ScreenStatusReceiver; +import com.yonsz.z1.version5.fragment.FindFragment; +import com.yonsz.z1.version5.fragment.Scene5Fragment; +import com.yonsz.z1.version5.scene.MainSceneFragment; +import com.yonsz.z1.version6.MainFragment6; +import com.yonsz.z1.view.BadgeView; +import com.yonsz.z1.view.MainViewPager; +import com.yonsz.z1.view.TitleView; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.UniKongApp.getActivity; +import static com.yonsz.z1.difference.DifferConstans.APPID_S; +import static com.yonsz.z1.difference.DifferConstans.APPID_S_VOICE; +import static com.yonsz.z1.difference.DifferConstans.TEPRINCIPLE_UPDATE; +import static com.yonsz.z1.difference.DifferConstans.versionUrl; +import static com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils.DOWNLOAD_BY_APP; +import static com.yonsz.z1.net.Constans.GET_LOG_FAIL; +import static com.yonsz.z1.net.Constans.GET_LOG_SUCCESS; +import static com.yonsz.z1.net.Constans.GET_USERDEVICES4_SIMPLEINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.GET_USER_MSGS_FAIL; +import static com.yonsz.z1.net.Constans.GET_USER_MSGS_SUCCESS; +import static com.yonsz.z1.net.Constans.GET_USER_SESSION_NULL; +import static com.yonsz.z1.net.Constans.HAS_BIND_DEVICE_FAIL; +import static com.yonsz.z1.net.Constans.HAS_BIND_DEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_FULL_WARN; +import static com.yonsz.z1.net.Constans.UPDATE_STATE_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_STATE_SUCCESS; +import static com.yonsz.z1.net.Constans.deviceNumList; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; + +public class MainActivity4 extends BaseActivity implements DialogInterface.OnDismissListener { + public static String versionId = ""; + public static VersionEntity.ObjEntity versionEntity; + public static int listInfoNum, msgViewNum; + public static double latitudeMain; + public static double longitudeMain; + public static boolean isRefreshMessage = true; + private static BadgeView badge1, badge2; + private TitleView mTitle; + private LinearLayout inHomeLl, outHomeLl, inBedLl, outBedLl, timeSettingLl; + private RadioButton mainRb; + private ImageView storeRb; + private RadioButton messageRb; + private RadioButton meRb; + private RadioButton sceneRb; + private LinearLayout mydeviceLl, shareDeviceLl; + private ImageView mydeviceIv, shareDeviceIv; + private TextView mydeviceTv, shareDeviceTv; + private MainFragment4 mMainFragment; + private MainFragment5 mMainFragment5; + private MainFragment6 mMainFragment6; + /** + * 定位监听 + */ + AMapLocationListener locationListener = new AMapLocationListener() { + @Override + public void onLocationChanged(AMapLocation location) { + if (null != location) { + StringBuffer sb = new StringBuffer(); + //errCode等于0代表定位成功,其他的为定位失败,具体的可以参照官网定位错误码说明 + if (location.getErrorCode() == 0) { + latitudeMain = location.getLatitude();//获取纬度 + longitudeMain = location.getLongitude();//获取经度 + } else { + } + } + if (AppIdUtil.isChuangWei()) { + if (null != mMainFragment6) { + mMainFragment6.getAllDate(); + } + } else { + if (null != mMainFragment5) { + mMainFragment5.getAllDate(); + } + } + } + }; + private PersonFragment mPersonFragment; + private RecyclerViewChatFragment mRecyclerViewChatFragment; + private ChatFragment mChatFragment; + private SceneFragment mSceneFragment; + private Scene5Fragment mScene5Fragment; + private FullDialogFragment fullDialogFragment; + private FullDialogActivity mFullDialogActivity; + private Button btn_msg, btn_my, btn_home; + private MainViewPager mViewPager; + private RadioGroup mRadioGroup; + private Message m; + // private RelativeLayout rl_bind_red_circle; + private AMapLocationClient locationClient = null; + private AMapLocationClientOption locationOption = null; + private IntentFilter mIntentFilter = null; + private UpdateAppReceiver mMyBroadcastRecvier = null; + private ScreenStatusReceiver mScreenStatusReceiver = null; + //全面屏适配 + private NotchScreenManager notchScreenManager = NotchScreenManager.getInstance(); + private MainSceneFragment mainSceneFragment; + + public static void remind(int totalNum) { //BadgeView的具体使用 +/*// badge1.setText("" + totalNum); // 需要显示的提醒类容 + badge1.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);// 显示的位置.右上角,BadgeView.POSITION_BOTTOM_LEFT,下左,还有其他几个属性 + badge1.setTextColor(Color.WHITE); // 文本颜色 + badge1.setBadgeBackgroundColor(Color.RED); // 提醒信息的背景颜色,自己设置 + //badge1.setBackgroundResource(R.mipmap.icon_message_png); //设置背景图片 + badge1.setTextSize(6); // 文本大小 + badge1.setBadgeMargin(40, 3); // 水平和竖直方向的间距 + //badge1.setBadgeMargin(40); //各边间隔 + // badge1.toggle(); //显示效果,如果已经显示,则影藏,如果影藏,则显示 + badge1.show();// 只有显示 + // badge1.hide();//影藏显示*/ + + // badge1.setText(""); // 需要显示的提醒类容 + badge1.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);// 显示的位置.右上角,BadgeView.POSITION_BOTTOM_LEFT,下左,还有其他几个属性 + // badge1.setTextColor(Color.RED); // 文本颜色 + badge1.setBadgeBackgroundColor(Color.RED); // 提醒信息的背景颜色,自己设置 + //badge1.setBackgroundResource(R.mipmap.icon_message_png); //设置背景图片 + badge1.setTextSize(7); // 文本大小 + // badge1.setBadgeMargin(60, 3); // 水平和竖直方向的间距 + //badge1.setBadgeMargin(40); //各边间隔 + // badge1.toggle(); //显示效果,如果已经显示,则影藏,如果影藏,则显示 + if (totalNum != 0) { + badge1.show();// 只有显示 + } else { + badge1.hide(); + } + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + /*// 设置Activity全屏 + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);*/ + + setContentView(R.layout.activity_main); + //先注释起来 + NettyHandlerUtil.getInstance(); + SoulPermission.getInstance().checkAndRequestPermissions( + Permissions.build(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE), + //if you want do noting or no need all the callbacks you may use SimplePermissionsAdapter instead + new CheckRequestPermissionsListener() { + @Override + public void onAllPermissionOk(Permission[] allPermissions) { + //初始化定位 + initLocation(); + //信鸽推送 + /*XGPushManager.registerPush(MainActivity4.this, SharedpreferencesUtil.get(Constans.USERID, ""), new XGIOperateCallback() { + @Override + public void onSuccess(Object data, int flag) { + //token在设备卸载重装的时候有可能会变 + Log.e("TPush", "注册成功,设备token为:" + data); + } + + @Override + public void onFail(Object data, int errCode, String msg) { + Log.e("TPush", "注册失败,错误码:" + errCode + ",错误信息:" + msg); + } + });*/ + + XGPushManager.registerPush(MainActivity4.this, new XGIOperateCallback() { + @Override + public void onSuccess(Object data, int flag) { + //token在设备卸载重装的时候有可能会变 + Log.d("TPush", "注册成功,设备token为:" + data); + XGPushManager.bindAccount(MainActivity4.this, SharedpreferencesUtil.get(Constans.USERID, "")); + } + + @Override + public void onFail(Object data, int errCode, String msg) { + Log.d("TPush", "注册失败,错误码:" + errCode + ",错误信息:" + msg); + } + }); + } + + @Override + public void onPermissionDenied(Permission[] refusedPermissions) { + /*Toast.makeText(MainActivity4.this, refusedPermissions[0].toString() + + " \n is refused you can not do next things", Toast.LENGTH_SHORT).show();*/ + } + }); + initView(); + } + + @Override + public boolean enableSliding() { + return false; + } + + private void initLocation() { + //初始化client + locationClient = new AMapLocationClient(this.getApplicationContext()); + locationOption = getDefaultOption(); + //设置定位参数 + locationClient.setLocationOption(locationOption); + // 设置定位监听 + locationClient.setLocationListener(locationListener); + //启动定位 + locationClient.startLocation(); + } + + private AMapLocationClientOption getDefaultOption() { + AMapLocationClientOption mOption = new AMapLocationClientOption(); + mOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);//可选,设置定位模式,可选的模式有高精度、仅设备、仅网络。默认为高精度模式 + mOption.setGpsFirst(false);//可选,设置是否gps优先,只在高精度模式下有效。默认关闭 + mOption.setHttpTimeOut(30000);//可选,设置网络请求超时时间。默认为30秒。在仅设备模式下无效 + mOption.setInterval(2000);//可选,设置定位间隔。默认为2秒 + mOption.setNeedAddress(true);//可选,设置是否返回逆地理地址信息。默认是true + mOption.setOnceLocation(true);//可选,设置是否单次定位。默认是false + mOption.setOnceLocationLatest(false);//可选,设置是否等待wifi刷新,默认为false.如果设置为true,会自动变为单次定位,持续定位时不要使用 + AMapLocationClientOption.setLocationProtocol(AMapLocationClientOption.AMapLocationProtocol.HTTP);//可选, 设置网络请求的协议。可选HTTP或者HTTPS。默认为HTTP + mOption.setSensorEnable(false);//可选,设置是否使用传感器。默认是false + mOption.setWifiScan(true); //可选,设置是否开启wifi扫描。默认为true,如果设置为false会同时停止主动刷新,停止以后完全依赖于系统刷新,定位位置可能存在误差 + mOption.setLocationCacheEnable(true); //可选,设置是否使用缓存定位,默认为true + mOption.setGeoLanguage(AMapLocationClientOption.GeoLanguage.DEFAULT);//可选,设置逆地理信息的语言,默认值为默认语言(根据所在地区选择语言) + return mOption; + } + + public void onEventMainThread(ThirdEvent event) { + final String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_FULL_WARN; + mHandler.sendMessage(message); + } + + public void onEventMainThread(QureyBindEntity event) { + final String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("SearchWaitActivity")) { + hasBindDevice(); + } + } + + private void hasBindDevice() { + HashMap map = new HashMap<>(); + NetWorkUtil net = NetWorkUtil.instans(); + if (null != homeListEntity && null != homeListEntity.getData()) { + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + } + net.requestPostByAsynew(NetWorkUrl.HAS_BIND_DEVICE, map, new NetWorkUtil.ReqCallBack() { + + @Override + public void onSuccess(String respone) { + Log.i("hasBindDevice", "onSuccess: " + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(HAS_BIND_DEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(HAS_BIND_DEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(HAS_BIND_DEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onResume() { + super.onResume(); + // initData(); + if (isRefreshMessage) { + selectSafetyLog(); + getListMessage(); + } + isRefreshMessage = false; + } + + private void initView() { + // BadgeUtil.setBadgeCount(this, 10, R.mipmap.app_lan); + + mMainFragment = new MainFragment4(); + mMainFragment5 = new MainFragment5(); + mMainFragment6 = new MainFragment6(); + mPersonFragment = new PersonFragment(); + // mMessageFragment = new MessageFragment(); + // mTmallFragment = new TmallFragment(); + mRecyclerViewChatFragment = new RecyclerViewChatFragment(); + // mSceneFragment = new SceneFragment(); + mScene5Fragment = new Scene5Fragment(); + + mRadioGroup = (RadioGroup) findViewById(R.id.rg_main_activity); + btn_msg = (Button) findViewById(R.id.btn_msg); + btn_my = (Button) findViewById(R.id.btn_my); + btn_home = (Button) findViewById(R.id.btn_home); + badge1 = new BadgeView(this, btn_home); + badge2 = new BadgeView(this, btn_my); + // rl_bind_red_circle = (RelativeLayout) findViewById(R.id.rl_bind_red_circle); + mydeviceIv = (ImageView) findViewById(R.id.iv_icon_side_nav_my); + shareDeviceIv = (ImageView) findViewById(R.id.iv_icon_side_nav_share); + mydeviceTv = (TextView) findViewById(R.id.tv_side_nav_my); + shareDeviceTv = (TextView) findViewById(R.id.tv_side_nav_share); + mTitle = (TitleView) findViewById(R.id.title_main); + mTitle.setHeadBackGone(); + mTitle.setHeadFuntionGone(); + mTitle.clearBackGroud(); + mTitle.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + + } + + @Override + public void onFunction() { + /* //判断wifi是否打开 + WifiManager wifimanager; + wifimanager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE); + if (wifimanager.isWifiEnabled()) { + Intent intent = new Intent(MainActivity4.this, ConfigWifiActicity.class); + startActivity(intent); + } else { + Intent intent = new Intent(MainActivity4.this, NoWifiConnectActicity.class); + startActivity(intent); + }*/ + } + + @Override + public void onFunctionText() { + + } + }); + // 隐藏ActionBar + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.hide(); + } + // 支持显示到刘海区域 + notchScreenManager.setDisplayInNotch(this); + // 获取刘海屏信息 + notchScreenManager.getNotchInfo(this, new INotchScreen.NotchScreenCallback() { + @Override + public void onResult(INotchScreen.NotchScreenInfo notchScreenInfo) { + if (notchScreenInfo.hasNotch) { + for (Rect rect : notchScreenInfo.notchRects) { + // 将被遮挡的TextView下移 + RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) mTitle.getLayoutParams(); + layoutParams.topMargin = rect.bottom; + mTitle.setLayoutParams(layoutParams); + } + } + } + }); + /** + * A2 + */ + + mainRb = (RadioButton) findViewById(R.id.rb_main_page); + storeRb = (ImageView) findViewById(R.id.btn_voice); + messageRb = (RadioButton) findViewById(R.id.rb_message_page); + meRb = (RadioButton) findViewById(R.id.rb_me_page); + sceneRb = (RadioButton) findViewById(R.id.rb_scene_page); + + mainRb.setOnClickListener(this); + storeRb.setOnClickListener(this); + messageRb.setOnClickListener(this); + meRb.setOnClickListener(this); + sceneRb.setOnClickListener(this); + + + mViewPager = (MainViewPager) findViewById(R.id.mvp_main); + + List fragmentList = new ArrayList<>(); + if (AppIdUtil.isBaseZhiKong()) { + if (AppIdUtil.isChuangWei()) { + fragmentList.add(mMainFragment6); + } else { + fragmentList.add(mMainFragment5); + } + // fragmentList.add(mScene5Fragment); + mainSceneFragment = new MainSceneFragment(); + fragmentList.add(mainSceneFragment); + // fragmentList.add(mRecyclerViewChatFragment); + /*FindFragment findFragment = new FindFragment(); + fragmentList.add(findFragment);*/ + mChatFragment = new ChatFragment(); + fragmentList.add(mChatFragment); + // fragmentList.add(mScene5Fragment); + } else { + messageRb.setText("发现"); + mSceneFragment = new SceneFragment(); + fragmentList.add(mMainFragment); + fragmentList.add(mSceneFragment); + FindFragment findFragment = new FindFragment(); + fragmentList.add(findFragment); + } + // fragmentList.add(new StroeFragment()); + // fragmentList.add(mSceneFragment); + // fragmentList.add(mMessageFragment); + // fragmentList.add(mTmallFragment); + fragmentList.add(mPersonFragment); + FragmentManager manager = this.getSupportFragmentManager(); + mViewPager.setAdapter(new MainActivityAdapter(manager, fragmentList)); + mViewPager.setOffscreenPageLimit(3); + + if (DensityUtil.isNetConnected(this)) { + updataUserState(); + if (AppIdUtil.isChuangWei()) { + getThemeCode(); + } + // getListMessage(); + } else { + ToastUtil.show(this, R.string.net_error_info); + } + registReceiver(); + } + + + private void registReceiver() { + //过滤器 + mIntentFilter = new IntentFilter(TEPRINCIPLE_UPDATE); + //创建广播接收者的对象 + mMyBroadcastRecvier = new UpdateAppReceiver(); + //注册广播接收者的对象 + registerReceiver(mMyBroadcastRecvier, mIntentFilter); + + mScreenStatusReceiver = new ScreenStatusReceiver(); + IntentFilter screenStatusIF = new IntentFilter(); + screenStatusIF.addAction(Intent.ACTION_SCREEN_ON); + screenStatusIF.addAction(Intent.ACTION_SCREEN_OFF); + registerReceiver(mScreenStatusReceiver, screenStatusIF); + } + + private void getListMessage() { + HashMap map = new HashMap<>(); + NetWorkUtil net = NetWorkUtil.instans(); + if (null != SharedpreferencesUtil.get(Constans.HOUSEID, "")) { + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + } else { + return; + } + net.requestPostByAsynew(NetWorkUrl.GET_USER_MSGS, map, new NetWorkUtil.ReqCallBack() { + + @Override + public void onSuccess(String respone) { + Log.i("getListMessage", "onSuccess: " + respone); + MessageAllEntity obj = JSON.parseObject(respone, MessageAllEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(GET_USER_MSGS_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GET_USER_MSGS_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(GET_USER_MSGS_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + //上传用户经纬度信息 + private void updataUserState() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", SharedpreferencesUtil.get(Constans.USERPHONE, "")); + map.put("appId", APPID_S); + map.put("appBrandId", APPID_S_VOICE); + util.requestPostByAsynew(NetWorkUrl.UPDATE_USERINFO_STATE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updataUserState", "onSuccess: " + respone); + if (respone.length() < 100) { + return; + } + VersionEntity entity = JSON.parseObject(respone, VersionEntity.class); + if (-401 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(GET_USER_SESSION_NULL); + msg.obj = entity; + mHandler.sendMessage(msg); + } else if (1 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_STATE_SUCCESS); + msg.obj = entity.getObj(); + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_STATE_FAIL); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_STATE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onClick(View v) { + Intent intent; + switch (v.getId()) { + case R.id.iv_add_device: + intent = new Intent(MainActivity4.this, ConfigWifiActicity.class); + startActivity(intent); + break; + case R.id.rb_main_page: + mViewPager.setCurrentItem(0, false); + break; + case R.id.rb_scene_page: + mViewPager.setCurrentItem(1, false); + if (AppIdUtil.isBaseZhiKong()) { + + } else { + mSceneFragment.reRefrash(); + } + break; + case R.id.rb_message_page: + mViewPager.setCurrentItem(2, false); + break; + case R.id.rb_me_page: + mViewPager.setCurrentItem(3, false); + break; + case R.id.btn_voice: + if (DensityUtil.isNetConnected(this)) { + + } else { + ToastUtil.show(this, R.string.net_error_info); + return; + } + SoulPermission.getInstance().checkAndRequestPermission(Manifest.permission.RECORD_AUDIO, + //if you want do noting or no need all the callbacks you may use SimplePermissionAdapter instead + new CheckRequestPermissionListener() { + @Override + public void onPermissionOk(Permission permission) { + Intent intent = new Intent(getActivity(), UnitActivity.class); + if (null != deviceNumList && deviceNumList.size() != 0) { + intent.putExtra("homeName", deviceNumList.get(deviceNumListPosition)); + startActivity(intent); + } + } + + @Override + public void onPermissionDenied(Permission permission) { + /*Toast.makeText(MainActivity4.this, permission.toString() + + " \n is refused you can not do next things", Toast.LENGTH_SHORT).show();*/ + } + }); + /*if (AppIdUtil.isZhiKong()) { + switch (mMainFragment5.isHaveDevice()) { + case 0: + ToastUtil.show(this, "您暂时没有添加设备,请先添加设备"); + break; + case 1: + intent = new Intent(getActivity(), DeviceUpgradeActivity.class); + startActivity(intent); + break; + case 2: + SoulPermission.getInstance().checkAndRequestPermission(Manifest.permission.RECORD_AUDIO, + //if you want do noting or no need all the callbacks you may use SimplePermissionAdapter instead + new CheckRequestPermissionListener() { + @Override + public void onPermissionOk(Permission permission) { + Intent intent = new Intent(getActivity(), UnitActivity.class); + intent.putExtra("homeName", deviceNumList.get(deviceNumListPosition)); + startActivity(intent); + } + + @Override + public void onPermissionDenied(Permission permission) { + Toast.makeText(MainActivity4.this, permission.toString() + + " \n is refused you can not do next things", Toast.LENGTH_SHORT).show(); + } + }); + break; + default: + + break; + } + } else { + SoulPermission.getInstance().checkAndRequestPermission(Manifest.permission.RECORD_AUDIO, + //if you want do noting or no need all the callbacks you may use SimplePermissionAdapter instead + new CheckRequestPermissionListener() { + @Override + public void onPermissionOk(Permission permission) { + Intent intent = new Intent(getActivity(), UnitActivity.class); + intent.putExtra("homeName", deviceNumList.get(deviceNumListPosition)); + startActivity(intent); + } + + @Override + public void onPermissionDenied(Permission permission) { + Toast.makeText(MainActivity4.this, permission.toString() + + " \n is refused you can not do next things", Toast.LENGTH_SHORT).show(); + } + }); + switch (mMainFragment.isHaveDevice()) { + case 0: + ToastUtil.show(this, "您暂时没有添加设备,请先添加设备"); + break; + case 1: + intent = new Intent(getActivity(), DeviceUpgradeActivity.class); + startActivity(intent); + break; + case 2: + SoulPermission.getInstance().checkAndRequestPermission(Manifest.permission.RECORD_AUDIO, + //if you want do noting or no need all the callbacks you may use SimplePermissionAdapter instead + new CheckRequestPermissionListener() { + @Override + public void onPermissionOk(Permission permission) { + Intent intent = new Intent(getActivity(), UnitActivity.class); + intent.putExtra("homeName", deviceNumList.get(deviceNumListPosition)); + startActivity(intent); + } + + @Override + public void onPermissionDenied(Permission permission) { + Toast.makeText(MainActivity4.this, permission.toString() + + " \n is refused you can not do next things", Toast.LENGTH_SHORT).show(); + } + }); + default: + + break; + } + }*/ + break; + } + } + + @Override + public void onPause() { + super.onPause(); + ToastUtil.disMiss(this); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case GET_USER_SESSION_NULL: + /*ToastUtil.show(MainActivity4.this, "用户在其他手机登陆"); + SharedpreferencesUtil.save(Constans.SEESSIONID, ""); + SharedpreferencesUtil.save(Constans.TOKENID, ""); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Intent intent = new Intent(MainActivity4.this, LoginActivity.class); + startActivity(intent); + finish(); + } + }, 1000);*/ + break; + case UPDATE_STATE_SUCCESS: + versionEntity = (VersionEntity.ObjEntity) msg.obj; + // initRedCircle(versionEntity); + versionId = versionEntity.getVersionInfo().getVersionId().substring(2, 7); + if (!versionId.equals(AppGenerUtil.getVersionName(this))) { + mPersonFragment.isShowRedCircle(true); + } else { + mPersonFragment.isShowRedCircle(false); + } + //暂时修改成每次进入都提醒 + getVersion(versionEntity.getVersionInfo().getServiceUrl()); + /*if (null != SharedpreferencesUtil.get(Constans.VESION_NOW, "")) { + if (versionId.equals(SharedpreferencesUtil.get(Constans.VESION_NOW, ""))) { + + } else { + getVersion(); + } + } else { + getVersion(); + }*/ + break; + case UPDATE_STATE_FAIL: + + break; + case SHOW_FULL_WARN: + selectSafetyLog(); + /*if (getActivity() == this) { + selectSafetyLog(); + } else { + EventBus.getDefault().post( + new EventBusEntity("关闭")); + Intent intent = new Intent(getActivity(), FullDialogActivity.class); + startActivity(intent); + }*/ + break; + case GET_LOG_SUCCESS: + if (msg.obj != null) { + if (null != fullDialogFragment && fullDialogFragment.getShowsDialog()) { + fullDialogFragment.eixtDioalog(); + } + List objBeanList = (List) msg.obj; + if (objBeanList.size() != 0) { + if (getActivity() == this) { + fullDialogFragment = new FullDialogFragment(getActivity(), (List) msg.obj); + fullDialogFragment.show(getSupportFragmentManager(), "FullDialogFragment"); + } else { + EventBus.getDefault().post( + new EventBusEntity("关闭")); + Intent intent = new Intent(getActivity(), FullDialogActivity.class); + intent.putExtra("addBeans", (Serializable) (List) msg.obj); + startActivity(intent); + } + } + } + break; + case GET_USER_MSGS_SUCCESS: + MessageAllEntity messageAllEntity = (MessageAllEntity) msg.obj; + try { + mPersonFragment.setBindCircle(messageAllEntity); + mPersonFragment.setMessageNum(messageAllEntity); + } catch (Exception e) { + e.printStackTrace(); + } + if (messageAllEntity.getObj().getTotalNum() != 0) { + remind1(btn_msg, messageAllEntity.getObj().getTotalNum()); + } else { + badge2.hide(); + } + break; + case HAS_BIND_DEVICE_SUCCESS: + SimpleEntty obj = (SimpleEntty) msg.obj; + if (obj.getObj().equals("1")) { + ConfirmBindDialog dialog = new ConfirmBindDialog(getActivity(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + + break; + case 1: + Intent intent = new Intent(MainActivity4.this, DeviceConnectActivity.class); + intent.putExtra("isFirst", "1"); + startActivity(intent); + break; + } + } + }); + dialog.setCancelable(false); + dialog.show(); + } + break; + case GET_USERDEVICES4_SIMPLEINFO_SUCCESS: + ThemeEntity themeEntity = (ThemeEntity) msg.obj; + AddressNameUtil.setInstance(themeEntity); + break; + } + } + + private void remind1(View view, int totalNum) { //BadgeView的具体使用 + /*badge2.setText("" + totalNum); // 需要显示的提醒类容 + badge2.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);// 显示的位置.右上角,BadgeView.POSITION_BOTTOM_LEFT,下左,还有其他几个属性 + badge2.setTextColor(Color.RED); // 文本颜色 + badge2.setBadgeBackgroundColor(Color.RED); // 提醒信息的背景颜色,自己设置 + //badge1.setBackgroundResource(R.mipmap.icon_message_png); //设置背景图片 + badge2.setTextSize(12); // 文本大小 + badge2.setBadgeMargin(60, 3); // 水平和竖直方向的间距 + //badge1.setBadgeMargin(40); //各边间隔 + // badge1.toggle(); //显示效果,如果已经显示,则影藏,如果影藏,则显示 + badge2.show();// 只有显示 + // badge1.hide();//影藏显示*/ + + badge2.setText("" + totalNum); // 需要显示的提醒类容 + badge2.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);// 显示的位置.右上角,BadgeView.POSITION_BOTTOM_LEFT,下左,还有其他几个属性 + badge2.setTextColor(Color.WHITE); // 文本颜色 + badge2.setBadgeBackgroundColor(Color.RED); // 提醒信息的背景颜色,自己设置 + //badge2.setBackgroundResource(R.mipmap.icon_message_png); //设置背景图片 + badge2.setTextSize(12); // 文本大小 + badge2.setBadgeMargin(40, 3); // 水平和竖直方向的间距 + //badge2.setBadgeMargin(40); //各边间隔 + // badge2.toggle(); //显示效果,如果已经显示,则影藏,如果影藏,则显示 + badge2.show();// 只有显示 + // badge2.hide();//影藏显示 + } + + private void initRedCircle(VersionEntity.ObjEntity versionEntity) { + versionId = versionEntity.getVersionInfo().getVersionId().substring(2, 7); + msgViewNum = versionEntity.getSysMsgNnum(); + //先把红点注释起来 + /*if (msgViewNum != 0) { + mTitle.setHeadBackRed(true); + } else if (!versionId.equals(AppGenerUtil.getVersionName(this))) { + mTitle.setHeadBackRed(true); + } else { + mTitle.setHeadBackRed(false); + }*/ + } + + // 获取更新版本号 + private void getVersion(String serviceUrl) { + versionUrl = serviceUrl; + UpdateAppUtils.from(this) + .checkBy(UpdateAppUtils.CHECK_BY_VERSION_NAME) + .serverVersionName(versionId) + .serverVersionCode(5) + // .apkPath(versionUrl) + .apkPath(serviceUrl) + .downloadBy(DOWNLOAD_BY_APP) + .isForce(false) + .update(1); + } + + public void getThemeCode() { + HashMap map = new HashMap<>(); + map.put("code", "swaiot_zhikong_theme"); + NetWorkUtil net = NetWorkUtil.instans(); + net.requestGetByAsy(NetWorkUrl.THEME_GET_CODE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("getThemeCode", "UpdatePwActivity onSuccess()" + respone); + ThemeEntity obj = JSON.parseObject(respone, ThemeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(GET_USERDEVICES4_SIMPLEINFO_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + + } + }); + } + + private void selectSafetyLog() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("startNo", 0 + ""); + if (1 == 1) { + map.put("viewFlag", "0"); + } else { + map.put("viewFlag", "0"); + } + netWorkUtil.requestPostByAsynew(NetWorkUrl.SELECT_SAFETY_LOG, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("selectSafetyLog", "ShareDeviceActivity onSuccess()" + respone); + SafeLogEntity obj = JSON.parseObject(respone, SafeLogEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(GET_LOG_SUCCESS); + msg.obj = obj.getObj(); + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GET_LOG_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + + } + }); + } + + @Override + public void onDismiss(DialogInterface dialog) { + + } + + @Override + protected void onDestroy() { + super.onDestroy(); + destroyLocation(); + //注销事件 + unregisterReceiver(mMyBroadcastRecvier); + unregisterReceiver(mScreenStatusReceiver); + } + + /** + * 销毁定位 + * + * @author hongming.wang + * @since 2.8.0 + */ + private void destroyLocation() { + if (null != locationClient) { + /** + * 如果AMapLocationClient是在当前Activity实例化的, + * 在Activity的onDestroy中一定要执行AMapLocationClient的onDestroy + */ + locationClient.onDestroy(); + locationClient = null; + locationOption = null; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/MyFragmentAdapter.java b/app/src/main/java/com/yonsz/z1/version4/MyFragmentAdapter.java new file mode 100644 index 0000000..cfb197d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/MyFragmentAdapter.java @@ -0,0 +1,67 @@ +package com.yonsz.z1.version4; + +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; + +import java.util.List; + +/** + * Created by Administrator on 2018/4/27. + */ + +public class MyFragmentAdapter extends FragmentPagerAdapter { + + private List fraglist; + private List titlelist; + + public MyFragmentAdapter(FragmentManager fm, List fraglist, List titlelist) { + super(fm); + this.fraglist = fraglist; + this.titlelist = titlelist; + // TODO Auto-generated constructor stub + } + + @Override + public Fragment getItem(int arg0) { + // TODO Auto-generated method stub + return fraglist.get(arg0); + } + + @Override + public int getCount() { + // TODO Auto-generated method stub + return fraglist.size(); + } + + @Override + public CharSequence getPageTitle(int position) { + // TODO Auto-generated method stub + return titlelist.get(position); + } + + + // FragmentstateAdapter和FrgmentAdapter大致上相同,不同的是前者可以自动创建和销毁item,也就说后者的每次显示必须将所有的item都显示出来,前者则可显示部分。 + // FragmentstateAdapter需要多实现两个函数 + // 就是instantiateItem和destroyItem....(好像是这两个) + + + // ViewPager的监听器 OnPagerChangeListenner + + public void onPageScrollStateChanged(int arg0) { + // TODO Auto-generated method stub + + } + + public void onPageScrolled(int arg0, float arg1, int arg2) { + // TODO Auto-generated method stub + + } + + public void onPageSelected(int arg0) { + // TODO Auto-generated method stub + // Toast.makeText(this, "当前是第" + arg0 + "个页面", Toast.LENGTH_SHORT).show(); + } +} + + diff --git a/app/src/main/java/com/yonsz/z1/version4/NoticeDelayActivity.java b/app/src/main/java/com/yonsz/z1/version4/NoticeDelayActivity.java new file mode 100644 index 0000000..368110c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/NoticeDelayActivity.java @@ -0,0 +1,187 @@ +package com.yonsz.z1.version4; + +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.RelativeLayout; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.TitleView; + +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.SEND_UPDATEVOICE_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.SEND_UPDATEVOICE_CONTROL_SUCCESS; + +/** + * Created by Administrator on 2017/11/7. + */ + +public class NoticeDelayActivity extends BaseActivity { + private TitleView mTitleView; + private RelativeLayout oneRl, twoRl, threeRl; + private ImageView oneIv, twoIv, threeIv; + private String interval = "10分钟"; + private Button bt_commit; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_notice_delay); + initView(); + initListener(); + } + + private void initListener() { + oneRl.setOnClickListener(this); + twoRl.setOnClickListener(this); + threeRl.setOnClickListener(this); + bt_commit.setOnClickListener(this); + } + + @Override + public void onBackPressed() { + finish(); + } + + private void initView() { + bt_commit = (Button) findViewById(R.id.bt_commit); + oneRl = (RelativeLayout) findViewById(R.id.rl_one); + twoRl = (RelativeLayout) findViewById(R.id.rl_two); + threeRl = (RelativeLayout) findViewById(R.id.rl_three); + + oneIv = (ImageView) findViewById(R.id.iv_one); + twoIv = (ImageView) findViewById(R.id.iv_two); + threeIv = (ImageView) findViewById(R.id.iv_three); + + mTitleView = (TitleView) findViewById(R.id.title_repeat_time); + mTitleView.setHead("通知间隔"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + if (getIntent().getExtras() != null) { + interval = (String) getIntent().getExtras().get("interval"); + setIntervalVisible(interval); + } + } + + private void setIntervalVisible(String interval) { + switch (interval) { + case "5分钟": + oneIv.setVisibility(View.VISIBLE); + twoIv.setVisibility(View.GONE); + threeIv.setVisibility(View.GONE); + break; + case "10分钟": + oneIv.setVisibility(View.GONE); + twoIv.setVisibility(View.VISIBLE); + threeIv.setVisibility(View.GONE); + break; + case "30分钟": + oneIv.setVisibility(View.GONE); + twoIv.setVisibility(View.GONE); + threeIv.setVisibility(View.VISIBLE); + break; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.rl_one: + interval = "5分钟"; + setIntervalVisible(interval); + break; + case R.id.rl_two: + interval = "10分钟"; + setIntervalVisible(interval); + break; + case R.id.rl_three: + interval = "30分钟"; + setIntervalVisible(interval); + break; + case R.id.bt_commit: + safetySetinterval(); + break; + } + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SEND_UPDATEVOICE_CONTROL_SUCCESS: + EventBus.getDefault().post( + new EventBusEntity("关闭")); + ToastUtil.show(this, "保存成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + break; + case SEND_UPDATEVOICE_CONTROL_FAIL: + ToastUtil.show(this, String.valueOf(msg.obj)); + break; + } + } + + private void safetySetinterval() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("deviceId").toString()); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + map.put("deviceType", getIntent().getExtras().get("deviceType").toString()); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + map.put("interval", interval.substring(0, interval.length() - 2)); + util.requestPostByAsyBody(NetWorkUrl.SAFETY_SETINTERVAL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("safetySetinterval", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SEND_UPDATEVOICE_CONTROL_SUCCESS); + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SEND_UPDATEVOICE_CONTROL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SEND_UPDATEVOICE_CONTROL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/NoticeTypeActivity.java b/app/src/main/java/com/yonsz/z1/version4/NoticeTypeActivity.java new file mode 100644 index 0000000..d39b54f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/NoticeTypeActivity.java @@ -0,0 +1,288 @@ +package com.yonsz.z1.version4; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.MessageEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.fragment.person.upgrade.UpgradeSmsActivity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNextDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.NEEDUPGRADE_TOONLINE_DEVICES_FAIL; +import static com.yonsz.z1.net.Constans.NEEDUPGRADE_TOONLINE_DEVICES_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_UPDATEVOICE_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.SEND_UPDATEVOICE_CONTROL_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.GET_USERSMS_INFO; + +/** + * Created by Administrator on 2017/11/7. + */ + +public class NoticeTypeActivity extends BaseActivity { + private TitleView mTitleView; + private RelativeLayout oneRl, twoRl, threeRl; + private CheckBox oneIv, twoIv, threeIv; + private Button bt_commit; + private List reminds = new ArrayList<>(); + private TextView messageNumberTv; + private String smsSurplus = "0"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_notice_type); + initView(); + initListener(); + } + + private void initListener() { + oneIv.setOnClickListener(this); + twoIv.setOnClickListener(this); + threeIv.setOnClickListener(this); + bt_commit.setOnClickListener(this); + } + + @Override + public void onBackPressed() { + finish(); + } + + private void initView() { + messageNumberTv = (TextView) findViewById(R.id.tv_message_number); + bt_commit = (Button) findViewById(R.id.bt_commit); + oneRl = (RelativeLayout) findViewById(R.id.rl_one); + twoRl = (RelativeLayout) findViewById(R.id.rl_two); + threeRl = (RelativeLayout) findViewById(R.id.rl_three); + + oneIv = (CheckBox) findViewById(R.id.cb_one); + twoIv = (CheckBox) findViewById(R.id.cb_two); + threeIv = (CheckBox) findViewById(R.id.cb_three); + + mTitleView = (TitleView) findViewById(R.id.title_repeat_time); + mTitleView.setHead("提醒方式"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + getUserSmsInfo(); + + if (getIntent().getExtras() != null) { + String deviceMessage = (String) getIntent().getExtras().get("deviceMessage"); + if (deviceMessage.isEmpty()) { + return; + } + if (deviceMessage.contains("APP")) { + reminds.add("app"); + } + if (deviceMessage.contains("短信")) { + reminds.add("sms"); + } + if (deviceMessage.contains("关闭")) { + reminds.clear(); + } + setIntervalVisible(reminds); + } + } + + private void setIntervalVisible(List reminds) { + if (reminds.size() == 0) { + oneIv.setChecked(false); + twoIv.setChecked(false); + threeIv.setChecked(true); + } else { + threeIv.setChecked(false); + if (reminds.contains("app")) { + oneIv.setChecked(true); + } else { + oneIv.setChecked(false); + } + if (reminds.contains("sms")) { + twoIv.setChecked(true); + } else { + twoIv.setChecked(false); + } + + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.cb_one: + if (!oneIv.isChecked()) { + reminds.remove("app"); + } else { + if (!reminds.contains("app")) { + reminds.add("app"); + } + } + setIntervalVisible(reminds); + break; + case R.id.cb_two: + if (!twoIv.isChecked()) { + reminds.remove("sms"); + } else { + if (smsSurplus.equals("0")) { + ConfirmNextDialog dialog = new ConfirmNextDialog(this, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + + break; + case 1: + Intent intent = new Intent(NoticeTypeActivity.this, UpgradeSmsActivity.class); + startActivity(intent); + break; + } + } + }); + dialog.setTopTxt("短信不足告"); + dialog.setContent("警尊敬的客户,目前您帐号下短信剩余0条,为避免影响您错过重要告警提醒,请及时充值。"); + dialog.setCancleBtn("取消"); + dialog.setSureBtn("立即充值"); + dialog.setCancelable(false); + dialog.show(); + } + if (!reminds.contains("sms")) { + reminds.add("sms"); + } + } + setIntervalVisible(reminds); + break; + case R.id.cb_three: + reminds.clear(); + setIntervalVisible(reminds); + break; + case R.id.bt_commit: + safetySetreminds(); + break; + } + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SEND_UPDATEVOICE_CONTROL_SUCCESS: + EventBus.getDefault().post( + new EventBusEntity("关闭")); + ToastUtil.show(this, "保存成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + break; + case SEND_UPDATEVOICE_CONTROL_FAIL: + case NEEDUPGRADE_TOONLINE_DEVICES_FAIL: + ToastUtil.show(this, String.valueOf(msg.obj)); + break; + case NEEDUPGRADE_TOONLINE_DEVICES_SUCCESS: + MessageEntity messageEntity = (MessageEntity) msg.obj; + smsSurplus = String.valueOf((Integer.parseInt(messageEntity.getData().getSmsSurplus()) + Integer.parseInt(messageEntity.getData().getFreeSmsSurplus()))); + if (smsSurplus.isEmpty() || smsSurplus.equals("0")) { + messageNumberTv.setText("短信剩余0条,请立即购买!"); + } else { + messageNumberTv.setText("短信剩余" + smsSurplus + "条"); + } + break; + } + } + + private void getUserSmsInfo() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + netWorkUtil.requestPostByAsynewApi(GET_USERSMS_INFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("getUserSmsInfo", "onSuccess()" + respone); + MessageEntity obj = JSON.parseObject(respone, MessageEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(NEEDUPGRADE_TOONLINE_DEVICES_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(NEEDUPGRADE_TOONLINE_DEVICES_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(NEEDUPGRADE_TOONLINE_DEVICES_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void safetySetreminds() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("deviceId").toString()); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + map.put("deviceType", getIntent().getExtras().get("deviceType").toString()); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + util.requestPostByAsyBody(NetWorkUrl.SAFETY_SETREMINDS, map, JSONObject.toJSONString(reminds), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("safetySetinterval", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SEND_UPDATEVOICE_CONTROL_SUCCESS); + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SEND_UPDATEVOICE_CONTROL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SEND_UPDATEVOICE_CONTROL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/ScenceControlFragment.java b/app/src/main/java/com/yonsz/z1/version4/ScenceControlFragment.java new file mode 100644 index 0000000..4f35b76 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/ScenceControlFragment.java @@ -0,0 +1,127 @@ +package com.yonsz.z1.version4; + +import android.annotation.SuppressLint; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AdInfo; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.utils.SharedpreferencesUtil; + +import java.util.List; + +import static com.yonsz.z1.net.Constans.SCENCE_CONTROL_ORDER; + +/** + * Created by Administrator on 2018/4/27. + */ + +public class ScenceControlFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private TextView tv_model_in_home, tv_model_out_home, tv_model_in_bed, tv_model_out_bed, tv_share_name; + private LinearLayout ll_share_name; + private Handler handler; + private int postion; + private List adInfoList; + + public ScenceControlFragment() { + } + + @SuppressLint("ValidFragment") + public ScenceControlFragment(int postion, List adInfoList, Handler handler) { + this.adInfoList = adInfoList; + this.handler = handler; + this.postion = postion; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.fragment_scene_control, null); + initView(fragView); + return fragView; + } + + private void initView(View fragView) { + tv_model_in_home = (TextView) fragView.findViewById(R.id.tv_model_in_home); + tv_model_out_home = (TextView) fragView.findViewById(R.id.tv_model_out_home); + tv_model_in_bed = (TextView) fragView.findViewById(R.id.tv_model_in_bed); + tv_model_out_bed = (TextView) fragView.findViewById(R.id.tv_model_out_bed); + tv_share_name = (TextView) fragView.findViewById(R.id.tv_share_name); + ll_share_name = (LinearLayout) fragView.findViewById(R.id.ll_share_name); + + tv_model_in_home.setOnClickListener(this); + tv_model_out_home.setOnClickListener(this); + tv_model_in_bed.setOnClickListener(this); + tv_model_out_bed.setOnClickListener(this); + + String userName = SharedpreferencesUtil.get(Constans.USERPHONE, ""); + for (int i = 0; i < adInfoList.size(); i++) { + if (!TextUtils.isEmpty(adInfoList.get(postion - 1).getShareName()) && !adInfoList.get(postion - 1).getShareNumber().equals(userName)) { + tv_share_name.setText(adInfoList.get(postion - 1).getShareName()); + ll_share_name.setVisibility(View.VISIBLE); + } else { + ll_share_name.setVisibility(View.GONE); + } + } + } + + public void setSharename(String shareName) { + String userName = SharedpreferencesUtil.get(Constans.USERNAME, ""); + if (!TextUtils.isEmpty(shareName) && !shareName.equals(userName)) { + ll_share_name.setVisibility(View.VISIBLE); + tv_share_name.setText(shareName); + } else { + ll_share_name.setVisibility(View.GONE); + } + } + + @Override + public void onClick(View v) { + Message message; + switch (v.getId()) { + case R.id.tv_model_in_home: + message = handler.obtainMessage(); + message.what = SCENCE_CONTROL_ORDER; + message.obj = postion; + message.arg1 = 1; + handler.sendMessage(message); + break; + case R.id.tv_model_out_home: + message = handler.obtainMessage(); + message.what = SCENCE_CONTROL_ORDER; + message.obj = postion; + message.arg1 = 2; + handler.sendMessage(message); + break; + case R.id.tv_model_in_bed: + message = handler.obtainMessage(); + message.what = SCENCE_CONTROL_ORDER; + message.obj = postion; + message.arg1 = 3; + handler.sendMessage(message); + break; + case R.id.tv_model_out_bed: + message = handler.obtainMessage(); + message.what = SCENCE_CONTROL_ORDER; + message.obj = postion; + message.arg1 = 4; + handler.sendMessage(message); + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/WeatherFragment.java b/app/src/main/java/com/yonsz/z1/version4/WeatherFragment.java new file mode 100644 index 0000000..7f981fe --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/WeatherFragment.java @@ -0,0 +1,215 @@ +package com.yonsz.z1.version4; + +import android.annotation.SuppressLint; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity4.NewLogNumEntity; +import com.yonsz.z1.database.entity.entity4.WeatherEntity; +import com.yonsz.z1.database.entity.entity4.WeatherNewEntity; +import com.yonsz.z1.difference.DifferConstans; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; + +import java.io.InputStream; +import java.lang.ref.WeakReference; +import java.net.URL; +import java.net.URLConnection; +import java.util.HashMap; + +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.GET_WEATHER_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_SYS_BANNERS_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_SYS_BANNERS_SUCCESS; + +/** + * Created by Administrator on 2018/4/27. + */ + +public class WeatherFragment extends BaseFragment { + private static int safeNum; + private View fragView; + private TextView tv_warm_index, tv_warm_index_c, tv_weather_index, tv_air_index, tv_humidity_index, tv_safe_device_number, tv_cityName; + private UIHandle mHandler; + private String cnBylocation = "深圳"; + private int toDay; + private int month; + private int hour; + private RelativeLayout bgPicRl; + + public WeatherFragment() { + + } + + @SuppressLint("ValidFragment") + public WeatherFragment(int safeNum) { + this.safeNum = safeNum; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.fragment_weather, null); + initView(fragView); + return fragView; + } + + public void refreshWeather() { + getWeather(); + } + + private void initView(View fragView) { +// cnBylocation = LocationUtils.getCNBylocation(getContext()); + tv_warm_index = (TextView) fragView.findViewById(R.id.tv_warm_index); + tv_warm_index_c = (TextView) fragView.findViewById(R.id.tv_warm_index_c); + tv_weather_index = (TextView) fragView.findViewById(R.id.tv_weather_index); + tv_air_index = (TextView) fragView.findViewById(R.id.tv_air_index); + tv_humidity_index = (TextView) fragView.findViewById(R.id.tv_humidity_index); + tv_safe_device_number = (TextView) fragView.findViewById(R.id.tv_safe_device_number); + tv_cityName = (TextView) fragView.findViewById(R.id.tv_cityName); + bgPicRl = (RelativeLayout) fragView.findViewById(R.id.rl_bg_pic); + + tv_safe_device_number.setText(safeNum + ""); + getWeather(); + + /*Calendar calendar = Calendar.getInstance(); + month = calendar.get(Calendar.MONTH) + 1; + toDay = calendar.get(Calendar.DAY_OF_MONTH); + hour = calendar.get(Calendar.HOUR_OF_DAY); + if (!TextUtils.isEmpty(SharedpreferencesUtil.get("weatherEntity" + toDay + hour, ""))) { + String weatherEntity1 = SharedpreferencesUtil.get("weatherEntity" + toDay + hour, ""); + WeatherEntity weatherEntity = JSON.parseObject(weatherEntity1, WeatherEntity.class); + Message message = new Message(); + message.what = GET_WEATHER_SUCCESS; + message.obj = weatherEntity; + mHandler.sendMessage(message); + } else { + new Thread(new Runnable() { + @Override + public void run() { + try { + json(); + } catch (Exception e) { + e.printStackTrace(); + } + } + }).start(); + }*/ + } + + private void getWeather() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("appId", DifferConstans.APPID_S); +// map.put("lat", String.valueOf(MainActivity4.latitudeMain)); +// map.put("lng", String.valueOf(MainActivity4.longitudeMain)); + util.requestPostByAsynewApi(NetWorkUrl.GET_WEATHER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("getWeather", "onSuccess: " + respone); + WeatherNewEntity weatherEntity = JSON.parseObject(respone, WeatherNewEntity.class); + Message message = new Message(); + message.what = GET_WEATHER_SUCCESS; + message.obj = weatherEntity; + mHandler.sendMessage(message); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ADD_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void json() throws Exception { + //参数url化 + String city; + if (!TextUtils.isEmpty(cnBylocation)) { + city = java.net.URLEncoder.encode(cnBylocation, "utf-8"); + } else { + city = java.net.URLEncoder.encode("深圳", "utf-8"); + } + //拼地址 + String apiUrl = String.format("https://www.sojson.com/open/api/weather/json.shtml?city=%s", city); + // String apiUrl = String.format("http://wthrcdn.etouch.cn/weather_mini?city=北京"); + //开始请求 + URL url = new URL(apiUrl); + /*if ("https".equalsIgnoreCase(url.getProtocol())) { + SslUtils.ignoreSsl(); + }*/ + URLConnection open = url.openConnection(); + InputStream input = open.getInputStream(); + //这里转换为String,带上包名,怕你们引错包 + String result = org.apache.commons.io.IOUtils.toString(input, "utf-8"); + Log.e("gaojie", result); + WeatherEntity weatherEntity = JSON.parseObject(result, WeatherEntity.class); + if (weatherEntity.getStatus() == 200) { + SharedpreferencesUtil.save("weatherEntity" + toDay + hour, result); + Message message = new Message(); + message.what = GET_WEATHER_SUCCESS; + message.obj = weatherEntity; + mHandler.sendMessage(message); + } else { + if (!TextUtils.isEmpty(SharedpreferencesUtil.get("weatherEntity" + toDay + hour, ""))) { + String weatherEntity1 = SharedpreferencesUtil.get("weatherEntity", ""); + WeatherEntity weatherEntity2 = JSON.parseObject(weatherEntity1, WeatherEntity.class); + Message message = new Message(); + message.what = GET_WEATHER_SUCCESS; + message.obj = weatherEntity2; + mHandler.sendMessage(message); + } + } + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case GET_WEATHER_SUCCESS: + WeatherNewEntity weatherEntity = (WeatherNewEntity) msg.obj; + if (null != weatherEntity.getData() && null != weatherEntity.getData().getCity()) { + tv_cityName.setText(weatherEntity.getData().getCity()); + tv_warm_index.setText(weatherEntity.getData().getTemperature()); + tv_warm_index_c.setText("℃"); + tv_weather_index.setText(weatherEntity.getData().getWeather()); + tv_air_index.setText(weatherEntity.getData().getAir()); + tv_humidity_index.setText(weatherEntity.getData().getHumidity() + "%"); + } + break; + } + } + + //handler + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(WeatherFragment activity) { + weakReference = new WeakReference(activity); + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + WeatherFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/childdevice/Curtai4Activity.java b/app/src/main/java/com/yonsz/z1/version4/childdevice/Curtai4Activity.java new file mode 100644 index 0000000..c8ad772 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/childdevice/Curtai4Activity.java @@ -0,0 +1,1051 @@ +/* +package com.yonsz.z1.version4.childdevice; + +import android.app.Service; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Message; +import android.os.Vibrator; +import android.support.annotation.RequiresApi; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.LightListEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.VoiceControllEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entitya2.BlindTestEntity; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNextDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.curtain.CurtainsReAddOneActivity; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.ConnectNettyUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.view.PositionPopupWindow; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DELBLIND_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELBLIND_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_FAIL; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_FAIL; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDVOICE_BLINDMSG_FAIL; +import static com.yonsz.z1.net.Constans.SENDVOICE_BLINDMSG_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.isLocalControl; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +*/ +/** + * Created by Administrator on 2018/5/21. + *//* + + +public class Curtai4Activity extends BaseActivity { + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition; + private CheckBox childVoiceCb; + private CheckBox childPicture; + private TextView firstControl, secondControl, thirdControl; + private ImageView firstControlIv, thirdControlIv; + private FrameLayout secondControlFl; + private String ziId; + private String curtainId; + private String relatedId; + private String addressName; + private String addressId; + private String voiceFlag; + private String deviceIp = ""; + private ImageView localControlIv; + private String blindType; + private String relatedStatus; + private LinearLayout ll_show_one; + private RelativeLayout rl_show_all; + private TextView chuangControlOne, chuangControlTwo, chuangControlThree; + private TextView shaControlOne, shaControlTwo, shaControlThree; + private TextView allControlOne, allControlTwo, allControlThree; + private String openCode, stopCode, closeCode; + private String openCodeX, stopCodeX, closeCodeX; + private String blindState; + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("Curtai4Activity")) { + finish(); + } + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_curtain4); + initView(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView() { + ziId = getIntent().getExtras().get("ziId").toString(); + curtainId = getIntent().getExtras().get("id").toString(); + openCode = getIntent().getExtras().get("openCode").toString(); + stopCode = getIntent().getExtras().get("stopCode").toString(); + closeCode = getIntent().getExtras().get("closeCode").toString(); + addressName = getIntent().getExtras().get("addressName").toString(); + addressId = getIntent().getExtras().get("deviceAddress").toString(); + voiceFlag = getIntent().getExtras().get("voiceFlag").toString(); + blindType = getIntent().getExtras().get("blindType").toString(); + relatedStatus = getIntent().getExtras().get("relatedStatus").toString(); + childPosition = (TextView) findViewById(R.id.tv_child_position); + childVoiceCb = (CheckBox) findViewById(R.id.tv_child_voice); + childPicture = (CheckBox) findViewById(R.id.iv_child_picture); + firstControl = (TextView) findViewById(R.id.tv_first_control); + secondControl = (TextView) findViewById(R.id.tv_second_control); + thirdControl = (TextView) findViewById(R.id.tv_third_control); + chuangControlOne = (TextView) findViewById(R.id.tv_first_control_chuanglian); + chuangControlTwo = (TextView) findViewById(R.id.tv_second_control_chuanglian); + chuangControlThree = (TextView) findViewById(R.id.tv_third_control_chuanglian); + shaControlOne = (TextView) findViewById(R.id.tv_first_control_shalian); + shaControlTwo = (TextView) findViewById(R.id.tv_second_control_shalian); + shaControlThree = (TextView) findViewById(R.id.tv_third_control_shalian); + allControlOne = (TextView) findViewById(R.id.tv_first_control_all); + allControlTwo = (TextView) findViewById(R.id.tv_second_control_all); + allControlThree = (TextView) findViewById(R.id.tv_third_control_all); + firstControlIv = (ImageView) findViewById(R.id.iv_first_control); + thirdControlIv = (ImageView) findViewById(R.id.iv_third_control); + secondControlFl = (FrameLayout) findViewById(R.id.fl_second_control); + localControlIv = (ImageView) findViewById(R.id.iv_local_control); + ll_show_one = (LinearLayout) findViewById(R.id.ll_show_one); + rl_show_all = (RelativeLayout) findViewById(R.id.rl_show_all); + childVoiceCb.setOnClickListener(this); + firstControl.setOnClickListener(this); + secondControl.setOnClickListener(this); + thirdControl.setOnClickListener(this); + chuangControlOne.setOnClickListener(this); + chuangControlTwo.setOnClickListener(this); + chuangControlThree.setOnClickListener(this); + shaControlOne.setOnClickListener(this); + shaControlTwo.setOnClickListener(this); + shaControlThree.setOnClickListener(this); + allControlOne.setOnClickListener(this); + allControlTwo.setOnClickListener(this); + allControlThree.setOnClickListener(this); + + + mTitleView = (TitleView) findViewById(R.id.title_light4); + mTitleView.setHead(R.string.curtains); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(Curtai4Activity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除窗帘 + ConfirmDialog dialog = new ConfirmDialog(Curtai4Activity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + delBlindEntity(curtainId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //修改窗帘位置信息 + showPositionBottom(curtainId.toString(), "0", addressId); + break; + case 3: + //语令说明 + Intent intent = new Intent(Curtai4Activity.this, VoiceDeclareActivity.class); + intent.putExtra("tag", CURTAINS_TAG); + intent.putExtra("blindType", blindType); + intent.putExtra("relatedStatus", relatedStatus); + startActivity(intent); + break; + case 4: + gotoReAddCurtain(); + break; + } + } + }); + + if (relatedStatus.equals("1")) { + dialog2.setContent("修改纱帘&窗帘位置信息"); + dialog2.setLearn(); + dialog2.setSureBtnTxt("删除纱帘&窗帘"); + } else { + if (blindType.equals("1")) { + dialog2.setContent("修改纱帘位置信息"); + dialog2.setLearnTxt("添加窗帘"); + dialog2.setSureBtnTxt("删除纱帘"); + } else { + dialog2.setContent("修改窗帘位置信息"); + dialog2.setLearnTxt("添加纱帘"); + dialog2.setSureBtnTxt("删除窗帘"); + } + } + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + childPosition.setText(addressName); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConnectNettyUtil.connectNetty(ziId, deviceIp, this); + setPicState(); + } + + private void gotoReAddCurtain() { + Intent intent = new Intent(Curtai4Activity.this, CurtainsReAddOneActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceType", CURTAINS_TAG); + if (blindType.equals("1")) { + intent.putExtra("largeClass", "0"); + } else { + intent.putExtra("largeClass", "1"); + } + intent.putExtra("isFirst", "0"); + intent.putExtra("addressId", "0"); + intent.putExtra("deviceAddress", addressId); + intent.putExtra("addressId", addressId); + intent.putExtra("relatedId", curtainId); + intent.putExtra("openCode", openCode); + intent.putExtra("closeCode", closeCode); + intent.putExtra("stopCode", stopCode); + startActivity(intent); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setPicState() { + if (relatedStatus.equals("-1")) { + if (blindType.equals("1")) { + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_shalian_open_close)); + } else { + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain_open_close)); + } + ConfirmNextDialog dialog = new ConfirmNextDialog(Curtai4Activity.this, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + relatedStatus = "0"; + break; + case 1: + relatedStatus = "0"; + gotoReAddCurtain(); + break; + } + } + }); + if (blindType.equals("1")) { + dialog.setContent("是否继续添加窗帘?"); + } else { + dialog.setContent("是否继续添加纱帘?"); + } + dialog.setTopTxt("同一个窗户"); + dialog.setCancleBtn("暂时不添加"); + dialog.setSureBtn("继续添加"); + dialog.setCancelable(false); + dialog.show(); + } else if (relatedStatus.equals("1")) { + mTitleView.setHead("窗帘&纱帘"); + openCodeX = getIntent().getExtras().get("openCodeX").toString(); + stopCodeX = getIntent().getExtras().get("stopCodeX").toString(); + closeCodeX = getIntent().getExtras().get("closeCodeX").toString(); + ll_show_one.setVisibility(View.GONE); + rl_show_all.setVisibility(View.VISIBLE); + } else { + ll_show_one.setVisibility(View.VISIBLE); + rl_show_all.setVisibility(View.GONE); + if (blindType.equals("1")) { + mTitleView.setHead("纱帘"); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_shalian_open_close)); + } else { + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain_open_close)); + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(curtainId, CURTAINS_TAG); + } + + */ +/*@Override + public int getWifiBtn() { + return ; + }*//* + + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + netWorkUtil.requestPostByAsynew(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (isLocalControl) { + NettyManager.closeCtx(); + } + } + + private void showPositionBottom(final String id, final String tag, String position) { + View rootview = LayoutInflater.from(Curtai4Activity.this).inflate(R.layout.activity_curtains, null); + PositionPopupWindow popupWindow = new PositionPopupWindow(this, position, new PositionPopupWindow.OnCompleteListener() { + @Override + public void onComplete(String time, List conditionList) { + Log.i("showPositionBottom", "SwitcherActivity onComplete()" + time + conditionList.toString()); + switch (tag) { + case "0": + if (time.equals("13")) { + updateBlindEntityName("0", id); + } else { + updateBlindEntityName(String.valueOf(Integer.valueOf(time) + 1), id); + } + break; + case "1": + + break; + } + } + }); + popupWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0); + } + + private void updateBlindEntityName(String addressId, String id) { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("addressId", addressId); + map.put("id", id); + util.requestPostByAsynew(NetWorkUrl.UPDATE_BLINDENTITY_NAME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateBlindEntityName", "ShareDeviceActivity onSuccess()" + respone); + BlindTestEntity obj = JSON.parseObject(respone, BlindTestEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void delBlindEntity(String id) { + initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", id); + map.put("deviceType", CURTAINS_TAG); + netWorkUtil.requestPostByAsynew(NetWorkUrl.DELBLIND_ENTITY, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("delBlindEntity", "ShareDeviceActivity onSuccess()" + respone); + VoiceControllEntity obj = JSON.parseObject(respone, VoiceControllEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELBLIND_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELBLIND_ENTITY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELBLIND_ENTITY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + setShake(); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConfirmDialog dialog = new ConfirmDialog(Curtai4Activity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (voiceFlag.equals("1")) { + allowVoiceControll(0, "id"); + } else { + allowVoiceControll(1, "id"); + } + break; + } + } + }); + if (!voiceFlag.equals("1")) { + dialog.setContent("开启语音控制?"); + } else { + dialog.setContent("关闭语音控制?"); + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_first_control: + setShake(); + //打开窗帘 + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(openCode, "02")); + } else + studyAndControllBlind(openCode); + break; + case R.id.tv_second_control: + setShake(); + //暂停 + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(stopCode, "02")); + } else + studyAndControllBlind(stopCode); + break; + case R.id.tv_third_control: + setShake(); + //关闭窗帘 + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(closeCode, "02")); + } else + studyAndControllBlind(closeCode); + break; + case R.id.tv_first_control_chuanglian: + setControlType("1", ToolsUtil.completeAiInfo(openCodeX, "02"), openCodeX, ToolsUtil.completeAiInfo(openCode, "02"), openCode); + break; + case R.id.tv_second_control_chuanglian: + setControlType("1", ToolsUtil.completeAiInfo(stopCodeX, "02"), stopCodeX, ToolsUtil.completeAiInfo(stopCode, "02"), stopCode); + break; + case R.id.tv_third_control_chuanglian: + setControlType("1", ToolsUtil.completeAiInfo(closeCodeX, "02"), closeCodeX, ToolsUtil.completeAiInfo(closeCode, "02"), closeCode); + break; + case R.id.tv_first_control_shalian: + setControlType("0", ToolsUtil.completeAiInfo(openCodeX, "02"), openCodeX, ToolsUtil.completeAiInfo(openCode, "02"), openCode); + break; + case R.id.tv_second_control_shalian: + setControlType("0", ToolsUtil.completeAiInfo(stopCodeX, "02"), stopCodeX, ToolsUtil.completeAiInfo(stopCode, "02"), stopCode); + break; + case R.id.tv_third_control_shalian: + setControlType("0", ToolsUtil.completeAiInfo(closeCodeX, "02"), closeCodeX, ToolsUtil.completeAiInfo(closeCode, "02"), closeCode); + break; + case R.id.tv_first_control_all: + setControlType("1", ToolsUtil.completeAiInfo(openCodeX, "02"), openCodeX, ToolsUtil.completeAiInfo(openCode, "02"), openCode); + setControlType("0", ToolsUtil.completeAiInfo(openCodeX, "02"), openCodeX, ToolsUtil.completeAiInfo(openCode, "02"), openCode); + break; + case R.id.tv_second_control_all: + setControlType("1", ToolsUtil.completeAiInfo(stopCodeX, "02"), stopCodeX, ToolsUtil.completeAiInfo(stopCode, "02"), stopCode); + setControlType("0", ToolsUtil.completeAiInfo(stopCodeX, "02"), stopCodeX, ToolsUtil.completeAiInfo(stopCode, "02"), stopCode); + break; + case R.id.tv_third_control_all: + setControlType("1", ToolsUtil.completeAiInfo(closeCodeX, "02"), closeCodeX, ToolsUtil.completeAiInfo(closeCode, "02"), closeCode); + setControlType("0", ToolsUtil.completeAiInfo(closeCodeX, "02"), closeCodeX, ToolsUtil.completeAiInfo(closeCode, "02"), closeCode); + break; + */ +/*default: + super.registerOnClick(v.getId());*//* + + + } + } + + private void setControlType(String type, String order, String openCodeX, String order2, String openCode) { + if (blindType.equals(type)) { + if (isLocalControl) { + setShake(); + NettyManager.sendBleMsg2Server(order); + } else + studyAndControllBlind(openCodeX); + } else { + if (isLocalControl) { + setShake(); + NettyManager.sendBleMsg2Server(order2); + } else + studyAndControllBlind(openCode); + } + } + + private void studyAndControllBlind(String order) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("sendMsg", order); + map.put("macId", ziId); + map.put("userId", SharedpreferencesUtil.get(Constans.USERPHONE, "")); + util.requestPostByAsyn(ziId, NetWorkUrl.STUDY_CONTROLL_BLIND, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("studyAndControllBlind", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SENDPID_STUDYBLIND_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + Message msg = mHandler.obtainMessage(SENDPID_STUDYBLIND_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SENDPID_STUDYBLIND_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SENDPID_STUDYBLIND_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void allowVoiceControll(int controlFlag, String id) { + initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", curtainId); + map.put("controlFlag", controlFlag + ""); + map.put("ziId", ziId); + netWorkUtil.requestPostByAsynew(NetWorkUrl.SENDVOICE_BLINDMSG, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("allowVoiceControll", "ShareDeviceActivity onSuccess()" + respone); + VoiceControllEntity obj = JSON.parseObject(respone, VoiceControllEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SENDVOICE_BLINDMSG_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + } else { + Message msg = mHandler.obtainMessage(SENDVOICE_BLINDMSG_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SENDVOICE_BLINDMSG_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECTBLIND_BYZI_SUCCESS: + LightListEntity obj = (LightListEntity) msg.obj; + break; + case SELECTBLIND_BYZI_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + finish(); + break; + case DELBLIND_ENTITY_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + finish(); + break; + case DELBLIND_ENTITY_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BlindTestEntity blindTestEntity = (BlindTestEntity) msg.obj; + addressId = blindTestEntity.getObj().getAddressId(); + childPosition.setText(blindTestEntity.getObj().getAddressName()); + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case SENDVOICE_BLINDMSG_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + VoiceControllEntity voiceControllEntity = (VoiceControllEntity) msg.obj; + voiceFlag = voiceControllEntity.getObj().getVoiceFlag(); + if (voiceFlag.equals("1")) { + ToastUtil.show(Curtai4Activity.this, "开启语音成功"); + childVoiceCb.setChecked(true); + } else { + ToastUtil.show(Curtai4Activity.this, "关闭语音成功"); + childVoiceCb.setChecked(false); + } + break; + case SENDPID_STUDYBLIND_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + String infrared = nettyEntity.getInfrared(); + String cmdType = nettyEntity.getCmdType(); + String deviceIds = nettyEntity.getDeviceIds(); + List result = Arrays.asList(deviceIds.split(",")); + if (null != nettyEntity.getDeviceType() && nettyEntity.getDeviceType().equals(CURTAINS_TAG) && nettyEntity.getAddressId().equals(addressId)) { + if (relatedStatus.equals("1")) { + if (cmdType.equals("voiceControll")) { + String detailType = nettyEntity.getDetailType(); + if (detailType.equals("0")) { + if (nettyEntity.getOpenFlag().equals("1")) { + switch (blindState) { + case "1": + setBlindState("1"); + break; + case "2": + setBlindState("3"); + break; + case "3": + setBlindState("3"); + break; + case "4": + setBlindState("1"); + break; + } + } else if (nettyEntity.getOpenFlag().equals("0")) { + switch (blindState) { + case "1": + setBlindState("4"); + break; + case "2": + setBlindState("2"); + break; + case "3": + setBlindState("2"); + break; + case "4": + setBlindState("4"); + break; + } + } + } else { + if (nettyEntity.getOpenFlag().equals("1")) { + switch (blindState) { + case "1": + setBlindState("1"); + break; + case "2": + setBlindState("4"); + break; + case "3": + setBlindState("1"); + break; + case "4": + setBlindState("4"); + break; + } + } else if (nettyEntity.getOpenFlag().equals("0")) { + switch (blindState) { + case "1": + setBlindState("3"); + break; + case "2": + setBlindState("2"); + break; + case "3": + setBlindState("3"); + break; + case "4": + setBlindState("2"); + break; + } + } + } + } else if (cmdType.equals("appControll")) { + if (blindType.equals("1")) { + if (infrared.equalsIgnoreCase(openCode)) { + switch (blindState) { + case "1": + setBlindState("1"); + break; + case "2": + setBlindState("4"); + break; + case "3": + setBlindState("1"); + break; + case "4": + setBlindState("4"); + break; + } + } else if (infrared.equalsIgnoreCase(closeCode)) { + switch (blindState) { + case "1": + setBlindState("3"); + break; + case "2": + setBlindState("2"); + break; + case "3": + setBlindState("3"); + break; + case "4": + setBlindState("2"); + break; + } + } else if (infrared.equalsIgnoreCase(openCodeX)) { + switch (blindState) { + case "1": + setBlindState("1"); + break; + case "2": + setBlindState("3"); + break; + case "3": + setBlindState("3"); + break; + case "4": + setBlindState("1"); + break; + } + + } else if (infrared.equalsIgnoreCase(closeCodeX)) { + switch (blindState) { + case "1": + setBlindState("4"); + break; + case "2": + setBlindState("2"); + break; + case "3": + setBlindState("2"); + break; + case "4": + setBlindState("4"); + break; + } + } + } else if (blindType.equals("0")) { + if (infrared.equalsIgnoreCase(openCode)) { + switch (blindState) { + case "1": + setBlindState("1"); + break; + case "2": + setBlindState("3"); + break; + case "3": + setBlindState("3"); + break; + case "4": + setBlindState("1"); + break; + } + } else if (infrared.equalsIgnoreCase(closeCode)) { + switch (blindState) { + case "1": + setBlindState("4"); + break; + case "2": + setBlindState("2"); + break; + case "3": + setBlindState("2"); + break; + case "4": + setBlindState("4"); + break; + } + } else if (infrared.equalsIgnoreCase(openCodeX)) { + switch (blindState) { + case "1": + setBlindState("1"); + break; + case "2": + setBlindState("4"); + break; + case "3": + setBlindState("1"); + break; + case "4": + setBlindState("4"); + break; + } + } else if (infrared.equalsIgnoreCase(closeCodeX)) { + switch (blindState) { + case "1": + setBlindState("3"); + break; + case "2": + setBlindState("2"); + break; + case "3": + setBlindState("3"); + break; + case "4": + setBlindState("2"); + break; + } + } + } + } + } else { + if (result.contains(curtainId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + } else { + childPicture.setChecked(false); + } + } + } + } else { + + } + break; + case QUERY_DEVICE_LASTINFO_FAIL: + if (relatedStatus.equals("1")) { + setBlindState("3"); + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (relatedStatus.equals("1")) { + String openFlag = parseObject.getData().getOpenFlag(); + String openFlag1; + if (null != parseObject.getData().getRelatedLastInfo()) { + openFlag1 = parseObject.getData().getRelatedLastInfo().getOpenFlag(); + } else { + openFlag1 = "1"; + } + if (blindType.equals("0")) { + if (openFlag.equals("1")) { + if (openFlag1.equals("1")) { + setBlindState("1"); + } else { + setBlindState("3"); + } + } else { + if (openFlag1.equals("1")) { + setBlindState("4"); + } else { + setBlindState("2"); + } + } + } else { + if (openFlag.equals("1")) { + if (openFlag1.equals("1")) { + setBlindState("1"); + } else { + setBlindState("4"); + } + } else { + if (openFlag1.equals("1")) { + setBlindState("3"); + } else { + setBlindState("2"); + } + } + } + } else { + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + } else { + childPicture.setChecked(false); + } + } + break; + } + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setBlindState(String state) { + blindState = state; + switch (blindState) { + case "1": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtaingauzecurtain_open)); + break; + case "2": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtaingauzecurtain_close)); + break; + case "3": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtaingauzecurtain_curtains_open)); + break; + case "4": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtaingauzecurtain_gauze_open)); + break; + } + } + + private void setShake() { + Vibrator vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE); + vibrator.vibrate(new long[]{0, 100}, -1); + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } +} +*/ diff --git a/app/src/main/java/com/yonsz/z1/version4/childdevice/Light4Activity.java b/app/src/main/java/com/yonsz/z1/version4/childdevice/Light4Activity.java new file mode 100644 index 0000000..c429d73 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/childdevice/Light4Activity.java @@ -0,0 +1,767 @@ +package com.yonsz.z1.version4.childdevice; + +import android.app.Service; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Message; +import android.os.Vibrator; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.LightEntity; +import com.yonsz.z1.database.entity.LightListEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.VoiceControllEntity; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entitya2.BlindTestEntity; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.light.LightModifyActivity; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.ConnectNettyUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.view.LightTypePopupWindow; +import com.yonsz.z1.view.PositionPopupWindow; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.GET_SWITCHER_CHANGE_INFO; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_FAIL; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_SUCCESS; +import static com.yonsz.z1.net.Constans.isLocalControl; + +/** + * Created by Administrator on 2018/5/21. + */ + +public class Light4Activity extends BaseActivity { + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition; + private CheckBox childVoiceCb; + private CheckBox childPicture; + private TextView firstControl, thirdControl, timeControl; + private String ziId; + private String lightId; + private String addressName; + private String voiceFlag; + private String addressId; + private String deviceIp = ""; + private String lightType = ""; + private ImageView localControlIv; + private TextView tv_switcher_time; + private TextView tv_next_week; + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_light4); + initView(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView() { + ziId = getIntent().getExtras().get("ziId").toString(); + lightType = getIntent().getExtras().get("lightType").toString(); + lightId = getIntent().getExtras().get("id").toString(); + addressName = getIntent().getExtras().get("addressName").toString(); + addressId = getIntent().getExtras().get("addressId").toString(); + voiceFlag = getIntent().getExtras().get("voiceFlag").toString(); + childPosition = (TextView) findViewById(R.id.tv_child_position); + childVoiceCb = (CheckBox) findViewById(R.id.tv_child_voice); + childPicture = (CheckBox) findViewById(R.id.iv_child_picture); + firstControl = (TextView) findViewById(R.id.tv_first_control); + thirdControl = (TextView) findViewById(R.id.tv_third_control); + timeControl = (TextView) findViewById(R.id.tv_time_control); + tv_switcher_time = (TextView) findViewById(R.id.tv_switcher_time); + tv_next_week = (TextView) findViewById(R.id.tv_next_week); + localControlIv = (ImageView) findViewById(R.id.iv_local_control); + childVoiceCb.setOnClickListener(this); + timeControl.setOnClickListener(this); + firstControl.setOnClickListener(this); + thirdControl.setOnClickListener(this); + childPicture.setOnClickListener(this); + mTitleView = (TitleView) findViewById(R.id.title_light4); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + setLightTypePic(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(Light4Activity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除面板,现在是没法删除的 + ConfirmDialog dialog = new ConfirmDialog(Light4Activity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + delLightEntity(0, 0); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //修改窗帘位置信息 + showPositionBottom(lightId, addressId); + break; + case 3: + //语令说明 + Intent intent = new Intent(Light4Activity.this, VoiceDeclareActivity.class); + intent.putExtra("tag", LIGHT_TAG); + intent.putExtra("lightType", lightType); + startActivity(intent); + break; + case 4: + //修改灯光类型信息 + // showTypeBottom(lightId, lightType); + Intent intent1 = new Intent(Light4Activity.this, LightModifyActivity.class); + intent1.putExtra("lightType", lightType); + intent1.putExtra("lightId", lightId); + intent1.putExtra("deviceAddress", addressId); + intent1.putExtra("ziId", ziId); + startActivityForResult(intent1, GET_SWITCHER_CHANGE_INFO); + break; + } + } + }); + dialog2.setContent(); + dialog2.setLearnTxt(R.string.Edit_smart_switch_panel); + dialog2.setSureBtnTxt(R.string.Delete_light); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + + childPosition.setText(addressName); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConnectNettyUtil.connectNetty(ziId, deviceIp, this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setLightTypePic() { + switch (lightType) { + case "0"://灯光 + mTitleView.setHead(R.string.light); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_light_open_close)); + break; + case "1"://筒灯 + mTitleView.setHead(R.string.tong_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_tubelamp_open_close)); + break; + case "2"://灯带 + mTitleView.setHead(R.string.deng_dai); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_lightbelt_open_close)); + break; + case "3"://射灯 + mTitleView.setHead(R.string.she_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_lamp_open_close)); + break; + case "4"://壁灯 + mTitleView.setHead(R.string.bi_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_walllamp_open_close)); + break; + case "5"://吊灯 + mTitleView.setHead(R.string.diao_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_chandelier_open_close)); + break; + case "6"://廊灯 + mTitleView.setHead(R.string.lang_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_porchlamp_open_close)); + break; + case "7"://排气扇 + mTitleView.setHead(R.string.paiqi_shan); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_exhaust_open_close)); + break; + default: + mTitleView.setHead(R.string.light); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_light_open_close)); + break; + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(lightId, LIGHT_TAG); + queryNextTimer(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (isLocalControl) { + NettyManager.closeCtx(); + } + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + /* NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + netWorkUtil.requestPostByAsynew(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + + private void showTypeBottom(final String id, String position) { + View rootview = LayoutInflater.from(Light4Activity.this).inflate(R.layout.activity_light4, null); + LightTypePopupWindow popupWindow = new LightTypePopupWindow(this, position, new LightTypePopupWindow.OnCompleteListener() { + @Override + public void onComplete(String time) { + Log.i("showPositionBottom", "SwitcherActivity onComplete()" + time); + //去修改灯光的类型信息 + updateLightType(id, time); + } + }); + popupWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0); + } + + private void showPositionBottom(final String id, String position) { + View rootview = LayoutInflater.from(Light4Activity.this).inflate(R.layout.activity_light4, null); + PositionPopupWindow popupWindow = new PositionPopupWindow(this, position, new PositionPopupWindow.OnCompleteListener() { + @Override + public void onComplete(String time, List conditionList) { + Log.i("showPositionBottom", "SwitcherActivity onComplete()" + time + conditionList.toString()); + if (time.equals("13")) { + updateLightEntityName("0", id); + } else { + updateLightEntityName(String.valueOf(Integer.valueOf(time) + 1), id); + } + } + }); + popupWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0); + } + + private void updateLightType(String id, String lightType) { + /* initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", id); + map.put("lightType", lightType); + netWorkUtil.requestPostByAsynew(UPDATE_LIGHT_TYPE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateLightType", "ShareDeviceActivity onSuccess()" + respone); + LightEntity obj = JSON.parseObject(respone, LightEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_LIGHT_TYPE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_LIGHT_TYPE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Log.i("sureAddSendVoicMsg", "ShareDeviceActivity onSuccess()" + message); + Message msg = mHandler.obtainMessage(UPDATE_LIGHT_TYPE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + private void updateLightEntityName(String addressId, String id) { + /*initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("addressId", addressId); + map.put("id", id); + map.put("ziId", ziId); + util.requestPostByAsynew(NetWorkUrl.UPDATE_LIGHTENTITY_NAME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateBlindEntityName", "ShareDeviceActivity onSuccess()" + respone); + BlindTestEntity obj = JSON.parseObject(respone, BlindTestEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + + private void delLightEntity(int position, int number) { + /* initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("panelId", getIntent().getExtras().get("panelId").toString()); + map.put("ziId", ziId); + map.put("addressIds", ""); + netWorkUtil.requestPostByAsynew(NetWorkUrl.DEL_LIGHT_BYPANEL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("delLightEntity", "ShareDeviceActivity onSuccess()" + respone); + VoiceControllEntity obj = JSON.parseObject(respone, VoiceControllEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + setShake(); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConfirmDialog dialog = new ConfirmDialog(Light4Activity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (voiceFlag.equals("1")) { + allowVoiceControll(0, "id"); + } else { + allowVoiceControll(1, "id"); + } + break; + } + } + }); + if (!voiceFlag.equals("1")) { + dialog.setContent("开启语音控制?"); + } else { + dialog.setContent("关闭语音控制?"); + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_first_control: + setShake(); + //开灯 + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(getIntent().getExtras().get("onInfrared").toString(), "01")); + } else { + // initLoadDialog(); + studyAndControllLight(getIntent().getExtras().get("onInfrared").toString()); + } + // studyAndControllLight(getIntent().getExtras().get("onInfrared").toString()); + break; + case R.id.tv_third_control: + setShake(); + //关灯 + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(getIntent().getExtras().get("offInfrared").toString(), "01")); + } else { + // initLoadDialog(); + studyAndControllLight(getIntent().getExtras().get("offInfrared").toString()); + } + // studyAndControllLight(getIntent().getExtras().get("offInfrared").toString()); + break; + case R.id.tv_time_control: + Intent intent = new Intent(Light4Activity.this, SwitcherTimeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("id", getIntent().getExtras().get("id").toString()); + intent.putExtra("deviceType", LIGHT_TAG); + startActivity(intent); + break; + case R.id.iv_child_picture: + if (childPicture.isChecked()) { + //开灯 + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(getIntent().getExtras().get("onInfrared").toString(), "01")); + } else { + studyAndControllLight(getIntent().getExtras().get("onInfrared").toString()); + } + } else { + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(getIntent().getExtras().get("offInfrared").toString(), "01")); + } else { + studyAndControllLight(getIntent().getExtras().get("offInfrared").toString()); + } + } + break; + } + } + + private void studyAndControllLight(String infrared) { + /*if (DensityUtil.isNetworkConnected(this)) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("sendMsg", infrared); + map.put("userId", SharedpreferencesUtil.get(Constans.USERPHONE, "")); + util.requestPostByAsyn(ziId, NetWorkUrl.STUDY_ANDCONTROLL_LIGHT, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("studyAndControllLight", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(STUDY_ANDCONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + Message msg = mHandler.obtainMessage(STUDY_ANDCONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(STUDY_ANDCONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(STUDY_ANDCONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } else { + ToastUtil.show(this, R.string.net_error); + }*/ + } + + private void allowVoiceControll(final int controlFlag, String id) { + /* initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("idInfo", lightId); + map.put("controlFlag", controlFlag + ""); + map.put("ziId", ziId); + netWorkUtil.requestPostByAsynew(NetWorkUrl.ALLOW_VOICE_CONTROLL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("allowVoiceControll", "ShareDeviceActivity onSuccess()" + respone); + // VoiceControllEntity obj = JSON.parseObject(respone, VoiceControllEntity.class); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = controlFlag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECTBLIND_BYZI_SUCCESS: + LightListEntity obj = (LightListEntity) msg.obj; + break; + case SELECTBLIND_BYZI_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + finish(); + break; + case DELLIGHT_ENTITY_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, R.string.Delete_successful); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BlindTestEntity lightEntity = (BlindTestEntity) msg.obj; + addressId = lightEntity.getObj().getAddressId(); + childPosition.setText(lightEntity.getObj().getAddressName()); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + int obj1 = (int) msg.obj; + if (obj1 == 0) { + voiceFlag = "0"; + ToastUtil.show(Light4Activity.this, "关闭语音成功"); + childVoiceCb.setChecked(false); + } else { + voiceFlag = "1"; + ToastUtil.show(Light4Activity.this, "开启语音成功"); + childVoiceCb.setChecked(true); + } + break; + case SENDPID_STUDYBLIND_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case DELLIGHT_ENTITY_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_LIGHT_TYPE_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_LIGHT_TYPE_SUCCESS: + LightEntity lightEntity1 = (LightEntity) msg.obj; + lightType = lightEntity1.getObj().getLightType(); + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + setLightTypePic(); + ToastUtil.show(this, "修改成功"); + break; + /*case STUDY_ANDCONTROLL_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + break; + case STUDY_ANDCONTROLL_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + break;*/ + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case QUERY_NEXT_TIMER_SUCCESS: + + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity.getDeviceType().equals(LIGHT_TAG)) { + /*if (nettyEntity.getDetailType().equals(lightType) && nettyEntity.getAddressId().equals(addressId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + } else { + childPicture.setChecked(false); + } + }*/ + String deviceIds = nettyEntity.getDeviceIds(); + List result = Arrays.asList(deviceIds.split(",")); + if (result.contains(lightId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + } else { + childPicture.setChecked(false); + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + } else { + childPicture.setChecked(false); + } + break; + } + } + + private void queryNextTimer() { + + } + + private void setShake() { + Vibrator vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE); + vibrator.vibrate(new long[]{0, 100}, -1); + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case GET_SWITCHER_CHANGE_INFO: + if (data != null && data.getExtras().get("devicePosition") != null) { + childPosition.setText(data.getExtras().get("devicePosition").toString()); + lightType = data.getExtras().get("lightType").toString(); + addressId = data.getExtras().get("addressId").toString(); + setLightTypePic(); + } + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/childdevice/MusicActivity.java b/app/src/main/java/com/yonsz/z1/version4/childdevice/MusicActivity.java new file mode 100644 index 0000000..9753eec --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/childdevice/MusicActivity.java @@ -0,0 +1,579 @@ +package com.yonsz.z1.version4.childdevice; + +import android.app.Service; +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.os.Vibrator; +import android.util.Log; +import android.view.Gravity; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.database.entity.entitya2.KeyEntity; +import com.yonsz.z1.database.entity.entitya2.LoadEvent; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.device.tv.FanItem; +import com.yonsz.z1.device.tv.OnFanItemClickListener; +import com.yonsz.z1.device.tv.PieChartView; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.ConnectNettyUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_FAIL; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS; +import static com.yonsz.z1.net.Constans.FAN_LEARN_ING; +import static com.yonsz.z1.net.Constans.MUSIC_CHANGE; +import static com.yonsz.z1.net.Constans.MUSIC_MODEL; +import static com.yonsz.z1.net.Constans.MUSIC_NEXT; +import static com.yonsz.z1.net.Constans.MUSIC_NOVOICE; +import static com.yonsz.z1.net.Constans.MUSIC_OPEN; +import static com.yonsz.z1.net.Constans.MUSIC_STOP; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.MUSIC_UP; +import static com.yonsz.z1.net.Constans.MUSIC_VOICEADD; +import static com.yonsz.z1.net.Constans.MUSIC_VOICERED; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.isLocalControl; +import static com.yonsz.z1.net.NetWorkUrl.CANCEL_DOWNLOAD; +import static com.yonsz.z1.net.NetWorkUrl.YKY_DOWNLOAD; + +/** + * Created by Administrator on 2018/6/7. + */ + +public class MusicActivity extends BaseActivity { + private TitleView mTitleView; + private PieChartView chartView; + private TextView mDown, mLeft, mUp, mRight; + private int mId; + private TextView voiceTv, openTv, voiceChangeTv, voiceModelTv, voiceStop; + private String ziId; + private ImageView localControlIv; + + private HorizontalProgressBarWithNumber mProgressBar; + private RelativeLayout progressRl; + private TextView progressTv; + private boolean isLoading = false; + private TextView loadBackTv, tv_cancel_load; + private RelativeLayout mProgressTop; + private LoadingDialog mLoadingDialog; + private String cancelFlag; + private String deviceIp = ""; + private String musicStateTag; + + public void onEventMainThread(LoadEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = FAN_LEARN_ING; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_music); + initView(); + initListener(); + } + + private void initView() { + musicStateTag = getIntent().getExtras().get("musicStateTag").toString(); + ziId = getIntent().getExtras().get("ziId").toString(); + mProgressTop = (RelativeLayout) findViewById(R.id.rl_progress_top); + if (musicStateTag.equals("1")) { + isLoading = false; + } else { + NettyHandlerUtil.getInstance(); + isLoading = true; + } + loadBackTv = (TextView) findViewById(R.id.tv_load_back); + tv_cancel_load = (TextView) findViewById(R.id.tv_cancel_load); + progressRl = (RelativeLayout) findViewById(R.id.rl_progress_top); + progressTv = (TextView) findViewById(R.id.tv_progress_top); + mProgressBar = (HorizontalProgressBarWithNumber) findViewById(R.id.pg_horizontal_fan); + + localControlIv = (ImageView) findViewById(R.id.iv_local_control); + voiceTv = (TextView) findViewById(R.id.tv_voice); + openTv = (TextView) findViewById(R.id.tv_music_open); + voiceChangeTv = (TextView) findViewById(R.id.tv_music_change); + voiceModelTv = (TextView) findViewById(R.id.tv_music_model); + voiceStop = (TextView) findViewById(R.id.tv_music_stop); + mDown = (TextView) findViewById(R.id.iv_down); + mLeft = (TextView) findViewById(R.id.iv_left); + mUp = (TextView) findViewById(R.id.iv_up); + mRight = (TextView) findViewById(R.id.iv_right); + chartView = (PieChartView) findViewById(R.id.pieChartView); + chartView.setFanClickAbleData( + new double[]{90, 90, 90, 90}, + new int[]{Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT}, 0, mHandler); + + setPanClick(); + + mTitleView = (TitleView) findViewById(R.id.title_music); + mTitleView.setHead("背景音乐"); + mTitleView.clearBackGroud(); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isLoading) { + + } else { + finish(); + } + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(MusicActivity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + //删除 + deleteChildDevice(MUSIC_TAG, ziId); + break; + case 2: + + break; + case 3: + //语令说明 + Intent intent = new Intent(MusicActivity.this, VoiceDeclareActivity.class); + intent.putExtra("tag", MUSIC_TAG); + startActivity(intent); + break; + case 4: + break; + } + } + }); + dialog2.setContent(); + dialog2.setLearn(); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + + if (isLoading) { + progressRl.setVisibility(View.VISIBLE); + } else { + progressRl.setVisibility(View.GONE); + } + + if (null != getIntent().getExtras().get("cancelFlag")) { + cancelFlag = getIntent().getExtras().get("cancelFlag").toString(); + if (cancelFlag.equals("1")) { + ConfirmDialog dialog = new ConfirmDialog(MusicActivity.this, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + finish(); + break; + case 1: + reloadInfrared(MUSIC_TAG); + break; + } + } + }); + dialog.setContent(R.string.Data_not_downloaded_reloaded); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + + } + } else { + + } + ConnectNettyUtil.connectNetty(ziId, deviceIp, this); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (isLocalControl) { + NettyManager.closeCtx(); + } + } + + private void initListener() { + voiceTv.setOnClickListener(this); + openTv.setOnClickListener(this); + voiceChangeTv.setOnClickListener(this); + voiceModelTv.setOnClickListener(this); + voiceStop.setOnClickListener(this); + tv_cancel_load.setOnClickListener(this); + loadBackTv.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_voice: + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_NOVOICE)); + } else { + controllerDevice(MUSIC_NOVOICE); + } + break; + case R.id.tv_music_open: + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_OPEN)); + } else { + controllerDevice(MUSIC_OPEN); + } + break; + case R.id.tv_music_change: + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_CHANGE)); + } else { + controllerDevice(MUSIC_CHANGE); + } + break; + case R.id.tv_music_model: + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_MODEL)); + } else { + controllerDevice(MUSIC_MODEL); + } + break; + case R.id.tv_music_stop: + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_STOP)); + } else { + controllerDevice(MUSIC_STOP); + } + break; + case R.id.tv_load_back: + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + finish(); + break; + case R.id.tv_cancel_load: + cancelDownload(); + break; + } + } + + private void cancelDownload() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", MUSIC_TAG); + netWorkUtil.requestPostByAsynewApi(CANCEL_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancelDownload", "ShareDeviceActivity onSuccess()" + respone); + finish(); + } + + @Override + public void onFail(String message) { + } + }); + } + + + private void setPanClick() { + chartView.setOnFanClick(new OnFanItemClickListener() { + @Override + public void onFanClick(FanItem fanItem) { + mId = fanItem.getId(); + switch (mId) { + case 0: + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + break; + case 1: + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + break; + case 2: + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + break; + case 3: + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + break; + } + } + + @Override + public void onFanLongClick(FanItem fanItem) { + + } + + @Override + public void onUp(FanItem fanItem) { + mId = fanItem.getId(); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + switch (mId) { + case 0: + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_VOICERED)); + } else { + controllerDevice(MUSIC_VOICERED); + } + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_UP)); + } else { + controllerDevice(MUSIC_UP); + } + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_VOICEADD)); + } else { + controllerDevice(MUSIC_VOICEADD); + } + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_NEXT)); + } else { + controllerDevice(MUSIC_NEXT); + } + mRight.setVisibility(View.INVISIBLE); + break; + } + } + + }, 200); + } + }); + } + + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case FAN_LEARN_ING: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + float countNum = Integer.parseInt(nettyEntity.getCountNum()); + float loadNum = Integer.parseInt(nettyEntity.getLoadNum()); + mProgressBar.setProgress((int) (loadNum / countNum * 100)); + if (loadNum / countNum == 1) { + isLoading = false; + progressTv.setText(R.string.load_complete); + progressRl.setVisibility(View.GONE); + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + + } else { + initLoadDialog(); + } + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + selectConnDevicePushkey(); + } + }, 2000); + } + break; + case DELETE_CHILDDEVICE_SUCCESS: + + break; + case DELETE_CHILDDEVICE_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case SHOW_LOCAL_CONTROL: + String obj = (String) msg.obj; + if (obj.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS: + progressRl.setVisibility(View.VISIBLE); + break; + case SELECT_CONNDEVICE_PUSHKEY_SUCCESS: + if (mLoadingDialog != null) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + break; + case SELECT_CONNDEVICE_PUSHKEY_FAIL: + if (mLoadingDialog != null) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + break; + } + } + + private void controllerDevice(String sendMsg) { + /*setShake(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", SharedpreferencesUtil.get(Constans.USERPHONE, null)); + map.put("macId", ziId); + map.put("sendMsg", sendMsg); + netWorkUtil.requestPostByAsyn(ziId, CONTROLLER_DEVICE_A2, map, "a2/control/device", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("controllerDevice", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + } else { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SEARCH_ROUND_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + private void deleteChildDevice(String deviceType, String ziId) { + + } + + private void reloadInfrared(String deviceType) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("macId", ziId); + map.put("deviceType", deviceType); + map.put("rid", getIntent().getExtras().get("rid").toString()); + netWorkUtil.requestPostByAsynewApi(YKY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("reloadInfrared", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty message = JSON.parseObject(respone, SimpleEntty.class); + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_SUCCESS); + msg.obj = message; + mHandler.sendMessage(msg); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void selectConnDevicePushkey() { + /*NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceType", MUSIC_TAG); + map.put("ziId", ziId); + netWorkUtil.requestPostByAsynew(SELECT_CONNDEVICE_PUSHKEY, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("selectConnDevicePushkey", "ShareDeviceActivity onSuccess()" + respone); + KeyEntity obj = JSON.parseObject(respone, KeyEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + private void setShake() { + Vibrator vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE); + vibrator.vibrate(new long[]{0, 100}, -1); + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/childdevice/Switcher4Activity.java b/app/src/main/java/com/yonsz/z1/version4/childdevice/Switcher4Activity.java new file mode 100644 index 0000000..697539c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/childdevice/Switcher4Activity.java @@ -0,0 +1,592 @@ +package com.yonsz.z1.version4.childdevice; + +import android.app.Service; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Message; +import android.os.Vibrator; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.LightEntity; +import com.yonsz.z1.database.entity.LightListEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.VoiceControllEntity; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entitya2.BlindTestEntity; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.switcher.SwitcherModifyActivity; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.ConnectNettyUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.view.PlugTypePopupWindow; +import com.yonsz.z1.view.PositionPopupWindow; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.DELBLIND_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELBLIND_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.GET_SWITCHER_CHANGE_INFO; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_FAIL; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDVOICE_BLINDMSG_FAIL; +import static com.yonsz.z1.net.Constans.SENDVOICE_BLINDMSG_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_PLUG_TYPE_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_PLUG_TYPE_SUCCESS; +import static com.yonsz.z1.net.Constans.isLocalControl; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +/** + * Created by Administrator on 2018/5/21. + */ + +public class Switcher4Activity extends BaseActivity { + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition; + private CheckBox childVoiceCb; + private CheckBox childPicture; + private TextView firstControl, thirdControl, timeControl; + private String ziId; + private String switcherId; + private String addressName; + private String addressId; + private String voiceFlag; + private String deviceIp = ""; + private String plugType; + private String largeClass; + private TextView tv_switcher_time; + private TextView tv_next_week; + private ImageView localControlIv; + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_switcher4); + initView(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView() { + ziId = getIntent().getExtras().get("ziId").toString(); + switcherId = getIntent().getExtras().get("id").toString(); + addressName = getIntent().getExtras().get("addressName").toString(); + addressId = getIntent().getExtras().get("deviceAddress").toString(); + voiceFlag = getIntent().getExtras().get("voiceFlag").toString(); + plugType = getIntent().getExtras().get("plugType").toString(); + largeClass = getIntent().getExtras().get("largeClass").toString(); + tv_switcher_time = (TextView) findViewById(R.id.tv_switcher_time); + tv_next_week = (TextView) findViewById(R.id.tv_next_week); + childPosition = (TextView) findViewById(R.id.tv_child_position); + childVoiceCb = (CheckBox) findViewById(R.id.tv_child_voice); + childPicture = (CheckBox) findViewById(R.id.iv_child_picture); + firstControl = (TextView) findViewById(R.id.tv_first_control); + thirdControl = (TextView) findViewById(R.id.tv_second_control); + timeControl = (TextView) findViewById(R.id.tv_time_control); + localControlIv = (ImageView) findViewById(R.id.iv_local_control); + childVoiceCb.setOnClickListener(this); + firstControl.setOnClickListener(this); + thirdControl.setOnClickListener(this); + timeControl.setOnClickListener(this); + childPicture.setOnClickListener(this); + mTitleView = (TitleView) findViewById(R.id.title_light4); + mTitleView.setHead(R.string.chazuo); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + setSwitchTypePic(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(Switcher4Activity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除插座 + ConfirmDialog dialog = new ConfirmDialog(Switcher4Activity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + delBlindEntity(switcherId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //修改窗帘位置信息 + showPositionBottom(switcherId, "0", addressId); + break; + case 3: + //语令说明 + Intent intent = new Intent(Switcher4Activity.this, VoiceDeclareActivity.class); + intent.putExtra("tag", SWITCH_TAG); + intent.putExtra("plugType", plugType); + startActivity(intent); + break; + case 4: + //修改插座连入电器 + // showTypeBottom(switcherId, plugType); + Intent intent1 = new Intent(Switcher4Activity.this, SwitcherModifyActivity.class); + intent1.putExtra("plugType", plugType); + intent1.putExtra("switcherId", switcherId); + intent1.putExtra("deviceAddress", addressId); + intent1.putExtra("largeClass", largeClass); + startActivityForResult(intent1, GET_SWITCHER_CHANGE_INFO); + break; + } + } + }); + // dialog2.setContent(R.string.Add_socket); + dialog2.setContent(); + dialog2.setLearnTxt(R.string.Edit_information_socket); + dialog2.setSureBtnTxt(R.string.Delete_socket); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + childPosition.setText(addressName); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConnectNettyUtil.connectNetty(ziId, deviceIp, this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setSwitchTypePic() { + switch (plugType) { + case "0"://插座 + mTitleView.setHead(R.string.chazuo); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_switch_open_close)); + break; + case "1"://台灯 + mTitleView.setHead(R.string.tai_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_desklamp_open_close)); + break; + case "2"://热水器(厨电) + mTitleView.setHead(R.string.chu_dian); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_kitchenpower_open_close)); + break; + case "3"://墙壁插座 + mTitleView.setHead(R.string.bi_cha); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_wallsocket_open_close)); + break; + case "4"://热水壶 + mTitleView.setHead(R.string.reshui_hu); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_kettle_open_close)); + break; + case "5"://取暖器 + mTitleView.setHead(R.string.qunuan_qi); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_heater_open_close)); + break; + case "6"://电蚊香 + mTitleView.setHead(R.string.dianwen_xiang); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_dwx_open_close)); + break; + default: + mTitleView.setHead(R.string.chazuo); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_switch_open_close)); + break; + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(switcherId, SWITCH_TAG); + queryNextTimer(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (isLocalControl) { + NettyManager.closeCtx(); + } + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + /*NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + netWorkUtil.requestPostByAsynew(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + private void delBlindEntity(String id) { + } + + private void showPositionBottom(final String id, final String tag, String position) { + View rootview = LayoutInflater.from(Switcher4Activity.this).inflate(R.layout.activity_switcher4, null); + PositionPopupWindow popupWindow = new PositionPopupWindow(this, position, new PositionPopupWindow.OnCompleteListener() { + @Override + public void onComplete(String time, List conditionList) { + Log.i("showPositionBottom", "SwitcherActivity onComplete()" + time + conditionList.toString()); + switch (tag) { + case "0": + if (time.equals("13")) { + updateBlindEntityName("0", id); + } else { + updateBlindEntityName(String.valueOf(Integer.valueOf(time) + 1), id); + } + break; + case "1": + + break; + } + } + }); + popupWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0); + } + + private void updateBlindEntityName(String addressId, String id) { + + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECTBLIND_BYZI_SUCCESS: + LightListEntity obj = (LightListEntity) msg.obj; + break; + case SELECTBLIND_BYZI_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + finish(); + break; + case DELBLIND_ENTITY_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + finish(); + break; + case DELBLIND_ENTITY_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BlindTestEntity blindTestEntity = (BlindTestEntity) msg.obj; + addressId = blindTestEntity.getObj().getAddressId(); + childPosition.setText(blindTestEntity.getObj().getAddressName().toString()); + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case SENDVOICE_BLINDMSG_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + VoiceControllEntity voiceControllEntity = (VoiceControllEntity) msg.obj; + voiceFlag = voiceControllEntity.getObj().getVoiceFlag(); + if (voiceFlag.equals("1")) { + ToastUtil.show(Switcher4Activity.this, "开启语音成功"); + childVoiceCb.setChecked(true); + } else { + ToastUtil.show(Switcher4Activity.this, "关闭语音成功"); + childVoiceCb.setChecked(false); + } + break; + case STUDY_ANDCONTROLL_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_PLUG_TYPE_SUCCESS: + LightEntity lightEntity1 = (LightEntity) msg.obj; + plugType = lightEntity1.getObj().getPlugType(); + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + setSwitchTypePic(); + ToastUtil.show(this, "修改成功"); + break; + case UPDATE_PLUG_TYPE_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case QUERY_NEXT_TIMER_SUCCESS: + + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity.getAddressId().equals(addressId)) { + if (nettyEntity.getDeviceType().equals(SWITCH_TAG)) { + String deviceIds = nettyEntity.getDeviceIds(); + List result = Arrays.asList(deviceIds.split(",")); + if (result.contains(switcherId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + } else { + childPicture.setChecked(false); + } + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + } else { + childPicture.setChecked(false); + } + break; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + setShake(); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConfirmDialog dialog = new ConfirmDialog(Switcher4Activity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (voiceFlag.equals("1")) { + allowVoiceControll(0, "id"); + } else { + allowVoiceControll(1, "id"); + } + break; + } + } + }); + if (!voiceFlag.equals("1")) { + dialog.setContent("开启语音控制?"); + } else { + dialog.setContent("关闭语音控制?"); + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_first_control: + setShake(); + //打开插座 + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(getIntent().getExtras().get("onInfrared").toString(), "05")); + // Toast.makeText(Switcher4Activity.this, "局域网", Toast.LENGTH_SHORT).show(); + } else { + studyAndControllPlug(getIntent().getExtras().get("onInfrared").toString()); + } + // studyAndControllPlug(getIntent().getExtras().get("onInfrared").toString()); + break; + case R.id.tv_second_control: + setShake(); + //关闭插座 + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(getIntent().getExtras().get("offInfrared").toString(), "05")); + // Toast.makeText(Switcher4Activity.this, "局域网", Toast.LENGTH_SHORT).show(); + } else { + studyAndControllPlug(getIntent().getExtras().get("offInfrared").toString()); + } + // studyAndControllPlug(getIntent().getExtras().get("offInfrared").toString()); + break; + case R.id.tv_time_control: + Intent intent = new Intent(Switcher4Activity.this, SwitcherTimeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("id", getIntent().getExtras().get("id").toString()); + intent.putExtra("deviceType", SWITCH_TAG); + startActivity(intent); + break; + case R.id.iv_child_picture: + if (childPicture.isChecked()) { + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(getIntent().getExtras().get("onInfrared").toString(), "05")); + } else { + studyAndControllPlug(getIntent().getExtras().get("onInfrared").toString()); + } + } else { + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(getIntent().getExtras().get("offInfrared").toString(), "05")); + } else { + studyAndControllPlug(getIntent().getExtras().get("offInfrared").toString()); + } + } + break; + } + } + + private void studyAndControllPlug(String infrared) { + + } + + private void queryNextTimer() { + + } + + private void allowVoiceControll(int controlFlag, String id) { + + } + + private void setShake() { + Vibrator vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE); + vibrator.vibrate(new long[]{0, 100}, -1); + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case GET_SWITCHER_CHANGE_INFO: + if (data != null && data.getExtras().get("devicePosition") != null) { + childPosition.setText(data.getExtras().get("devicePosition").toString()); + plugType = data.getExtras().get("plugType").toString(); + addressId = data.getExtras().get("addressId").toString(); + setSwitchTypePic(); + } + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/childdevice/SwitcherTimeActivity.java b/app/src/main/java/com/yonsz/z1/version4/childdevice/SwitcherTimeActivity.java new file mode 100644 index 0000000..7ad5242 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/childdevice/SwitcherTimeActivity.java @@ -0,0 +1,878 @@ +package com.yonsz.z1.version4.childdevice; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.ListView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.bigkoo.pickerview.OptionsPickerView; +import com.bigkoo.pickerview.TimePickerView; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.TimeEntity; +import com.yonsz.z1.device.airconditioner.SetTimeActivity; +import com.yonsz.z1.device.airconditioner.TimeReserveAdapter; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.SwitchView; +import com.yonsz.z1.view.TitleView; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.GET_TIME_FAIL; +import static com.yonsz.z1.net.Constans.GET_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.TIME_RESULT; +import static com.yonsz.z1.net.Constans.UPDATE_ONCE_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_TIMER_SWITCH_FAIL; + +/** + * Created by Administrator on 2017/6/27. + */ + +public class SwitcherTimeActivity extends BaseActivity { + private static final List options1Items = new ArrayList<>(); + private ListView mRecycMsgList; + private TitleView mTitleView; + private List mDatas; + private TimeEntity mTimeEntity; + private TimeReserveAdapter mAdapter; + private String ziId; + private RelativeLayout delayedOpenRl, delayedCloseRl, thirdRl, fourRl, fiveRl; + private TextView delayedOpenTv, delayedCloseTv, thirdStartTv, thirdEndTv, fourStartTv, fourEndTv, fiveStartTv, fiveEndTv; + private SwitchView witchOne, witchTwo, witchThree, witchFour, witchFive, witchThreeClose, witchFourClose, witchFiveClose; + private String delayedOpenId = "", delayedCloseId = "", thirdId = "", fourId = "", fiveId = ""; + private TextView weekThreeTv, weekFourTv, weekFiveTv; + private String weekThree = "", weekFour = "", weekFive = ""; + private String deviceType; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_time_reserve); + initView(); + initData(); + initListener(); + } + + + private void initView() { + ziId = getIntent().getExtras().get("ziId").toString(); + deviceType = getIntent().getExtras().get("deviceType").toString(); + + delayedOpenRl = (RelativeLayout) findViewById(R.id.rl_delayed_open); + delayedCloseRl = (RelativeLayout) findViewById(R.id.rl_delayed_close); + thirdRl = (RelativeLayout) findViewById(R.id.rl_third); + fourRl = (RelativeLayout) findViewById(R.id.rl_fourth); + fiveRl = (RelativeLayout) findViewById(R.id.rl_five); + + delayedOpenTv = (TextView) findViewById(R.id.tv_delayed_open); + delayedCloseTv = (TextView) findViewById(R.id.tv_delayed_close); + thirdStartTv = (TextView) findViewById(R.id.tv_start_time_third); + thirdEndTv = (TextView) findViewById(R.id.tv_end_time_third); + fourStartTv = (TextView) findViewById(R.id.tv_start_time_four); + fourEndTv = (TextView) findViewById(R.id.tv_end_time_four); + fiveStartTv = (TextView) findViewById(R.id.tv_start_time_five); + fiveEndTv = (TextView) findViewById(R.id.tv_end_time_five); + weekThreeTv = (TextView) findViewById(R.id.tv_week_three); + weekFourTv = (TextView) findViewById(R.id.tv_week_four); + weekFiveTv = (TextView) findViewById(R.id.tv_week_five); + + witchOne = (SwitchView) findViewById(R.id.stv_one); + witchTwo = (SwitchView) findViewById(R.id.stv_two); + witchThree = (SwitchView) findViewById(R.id.stv_third); + witchFour = (SwitchView) findViewById(R.id.stv_four); + witchFive = (SwitchView) findViewById(R.id.stv_five); + witchThreeClose = (SwitchView) findViewById(R.id.stv_third_close); + witchFourClose = (SwitchView) findViewById(R.id.stv_four_close); + witchFiveClose = (SwitchView) findViewById(R.id.stv_five_close); + + mRecycMsgList = (ListView) findViewById(R.id.time_reserve_list); + mTitleView = (TitleView) findViewById(R.id.title_time_reserve); + mTitleView.setHead(R.string.time_reserve); + mTitleView.setHeadFuntionTxtAndSise16(""); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + if (AppIdUtil.isWork()) { + witchOne.setColor(0xFF24C1DA, 0xFF3AC652); + witchTwo.setColor(0xFF24C1DA, 0xFF3AC652); + witchThree.setColor(0xFF24C1DA, 0xFF3AC652); + witchFour.setColor(0xFF24C1DA, 0xFF3AC652); + witchFive.setColor(0xFF24C1DA, 0xFF3AC652); + witchThreeClose.setColor(0xFF24C1DA, 0xFF3AC652); + witchFourClose.setColor(0xFF24C1DA, 0xFF3AC652); + witchFiveClose.setColor(0xFF24C1DA, 0xFF3AC652); + } + } + + + private void initListener() { + delayedOpenRl.setOnClickListener(this); + delayedCloseRl.setOnClickListener(this); + thirdRl.setOnClickListener(this); + fourRl.setOnClickListener(this); + fiveRl.setOnClickListener(this); + witchOne.setOnClickListener(this); + witchTwo.setOnClickListener(this); + witchThree.setOnClickListener(this); + witchFour.setOnClickListener(this); + witchFive.setOnClickListener(this); + witchThreeClose.setOnClickListener(this); + witchFourClose.setOnClickListener(this); + witchFiveClose.setOnClickListener(this); + } + + private void initData() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", deviceType); + map.put("deviceId", getIntent().getExtras().get("id").toString()); + if (null != getIntent().getExtras().get("deviceModel")) { + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + } + netWorkUtil.requestGetByAsy(NetWorkUrl.SELECT_TIMER_SWITCH, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("selectTimerSwitch", respone); + // Log.i("selectTimerSwitch", "ShareDeviceActivity onSuccess()" + respone); + TimeEntity obj = JSON.parseObject(respone, TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(GET_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GET_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(GET_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + @Override + public void onClick(View v) { + Intent intent; + switch (v.getId()) { + case R.id.rl_delayed_open: + setTime1(witchOne, delayedOpenId, delayedOpenTv); + break; + case R.id.rl_delayed_close: + setTime1(witchTwo, delayedCloseId, delayedCloseTv); + break; + case R.id.rl_third: + if (DensityUtil.isNetworkConnected(SwitcherTimeActivity.this)) { + intent = new Intent(SwitcherTimeActivity.this, SetTimeActivity.class); + intent.putExtra("timePosition", 3); + intent.putExtra("ziId", ziId); + intent.putExtra("startTime", thirdStartTv.getText().toString()); + intent.putExtra("endTime", thirdEndTv.getText().toString()); + + intent.putExtra("week", weekThree); + intent.putExtra("id", thirdId); + intent.putExtra("deviceType", deviceType); + startActivityForResult(intent, TIME_RESULT); + } else { + ToastUtil.show(this, R.string.net_error); + } + break; + case R.id.rl_fourth: + if (DensityUtil.isNetworkConnected(SwitcherTimeActivity.this)) { + intent = new Intent(SwitcherTimeActivity.this, SetTimeActivity.class); + intent.putExtra("timePosition", 4); + intent.putExtra("ziId", ziId); + intent.putExtra("startTime", fourStartTv.getText().toString()); + intent.putExtra("endTime", fourEndTv.getText().toString()); + intent.putExtra("week", weekFour); + intent.putExtra("id", fourId); + intent.putExtra("deviceType", deviceType); + startActivityForResult(intent, TIME_RESULT); + } else { + ToastUtil.show(this, R.string.net_error); + } + break; + case R.id.rl_five: + if (DensityUtil.isNetworkConnected(SwitcherTimeActivity.this)) { + intent = new Intent(SwitcherTimeActivity.this, SetTimeActivity.class); + intent.putExtra("timePosition", 5); + intent.putExtra("ziId", ziId); + intent.putExtra("startTime", fiveStartTv.getText().toString()); + intent.putExtra("endTime", fiveEndTv.getText().toString()); + intent.putExtra("week", weekFive); + intent.putExtra("id", fiveId); + intent.putExtra("deviceType", deviceType); + startActivityForResult(intent, TIME_RESULT); + } else { + ToastUtil.show(this, R.string.net_error); + } + break; + case R.id.stv_one: + if (!witchOne.isOpened()) { + updateOnceTimer(delayedOpenId, "0", delayedOpenTv); + // delayedOpenTv.setVisibility(View.GONE); + delayedOpenTv.setText(getString(R.string.Countdown_closure)); + } else { + witchOne.setOpened(false); + setTime1(witchOne, delayedOpenId, delayedOpenTv); + // updateOnceTimer(delayedOpenId, "1", delayedOpenTv); + } + break; + case R.id.stv_two: + if (!witchTwo.isOpened()) { + updateOnceTimer(delayedCloseId, "0", delayedCloseTv); + // delayedCloseTv.setVisibility(View.GONE); + delayedCloseTv.setText(getString(R.string.Countdown_closure)); + } else { + witchTwo.setOpened(false); + setTime1(witchTwo, delayedCloseId, delayedCloseTv); + // updateOnceTimer(delayedCloseId, "1", delayedCloseTv); + } + break; + case R.id.stv_third: + case R.id.stv_third_close: + updateTimerSwitch(thirdId, witchThree.isOpened(), thirdStartTv, thirdEndTv, witchThreeClose.isOpened()); + break; + case R.id.stv_four: + case R.id.stv_four_close: + updateTimerSwitch(fourId, witchFour.isOpened(), fourStartTv, fourEndTv, witchFourClose.isOpened()); + break; + case R.id.stv_five: + case R.id.stv_five_close: + updateTimerSwitch(fourId, witchFive.isOpened(), fourStartTv, fourEndTv, witchFiveClose.isOpened()); + break; + } + } + + private void updateOnceTimer(String id, String flag, TextView textView) { + int min; + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("id", id); + map.put("openFlag", flag); + // map.put("time", textView.getText().toString()); + if (flag.equals("1")) { + String s = textView.getText().toString(); + if (s.substring(s.length() - 3, s.length()).equals(getString(R.string.minute_later))) { + min = Integer.parseInt(s.substring(0, s.length() - 3)); + } else if (s.substring(s.length() - 3, s.length()).equals(getString(R.string.hour_later))) { + min = Integer.parseInt(s.substring(0, s.length() - 3)) * 60; + } else { + if (s.substring(s.length() - 7, s.length()).equals("eslater")) { + min = Integer.parseInt(s.substring(0, s.length() - 12)); + } else { + min = Integer.parseInt(s.substring(0, s.length() - 10)) * 60; + } + } + map.put("min", min + ""); + } else { + map.put("min", -1 + ""); + } + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.TIMEMANAGER_UPDATEDEVICEONCETIME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateOnceTimer", "ShareDeviceActivity onSuccess()" + respone); + /*TimeEntity obj = JSON.parseObject(respone, TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_ONCE_TIMER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_ONCE_TIMER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + }*/ + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_ONCE_TIMER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void updateTimerSwitch(String id, boolean openflag, TextView textView, TextView textView2, boolean closeflag) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", deviceType); + map.put("id", id); + if (openflag) { + map.put("openEnable", "1"); + } else { + map.put("openEnable", "0"); + } + if (closeflag) { + map.put("closeEnable", "1"); + } else { + map.put("closeEnable", "0"); + } + map.put("timeOn", textView.getText().toString()); + map.put("timeOff", textView2.getText().toString()); + // map.put("week", "1100011"); + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.TIMEMANAGER_UPDATEDEVICETIME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("gaojieTAG", "ShareDeviceActivity onSuccess()" + respone); + /*TimeEntity obj = JSON.parseObject(respone, TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_TIMER_SWITCH_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_TIMER_SWITCH_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + }*/ + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_TIMER_SWITCH_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case GET_TIME_SUCCESS: + TimeEntity entity1 = (TimeEntity) msg.obj; + setTimeShow(entity1); + break; + case GET_TIME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void setTime(final SwitchView witch, final String id, final TextView textView) { + TimePickerView pvTime = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() { + @Override + public void onTimeSelect(Date date, View v) {//选中事件回调 + textView.setText(getTime(date)); + updateOnceTimer(id, "1", textView); + witch.setOpened(true); + } + })//年月日时分秒 的显示与否,不设置则默认全部显示 + .setType(new boolean[]{false, false, false, true, true, false}) + .setLabel("", "", "", "点", "分", "") + .isCenterLabel(false) + .setDividerColor(Color.DKGRAY) + .setContentSize(21) + .setBackgroundId(0x00FFFFFF) //设置外部遮罩颜色 + .setDecorView(null) + .build(); + pvTime.setDate(Calendar.getInstance());//注:根据需求来决定是否使用该方法(一般是精确到秒的情况),此项可以在弹出选择器的时候重新设置当前时间,避免在初始化之后由于时间已经设定,导致选中时间与当前时间不匹配的问题。 + pvTime.show(); + } + + + private void setTime1(final SwitchView witch, final String id, final TextView textView) { + options1Items.clear(); + options1Items.add(getString(R.string.time_1m)); + options1Items.add(getString(R.string.time_3m)); + options1Items.add(getString(R.string.time_5m)); + options1Items.add(getString(R.string.time_10m)); + options1Items.add(getString(R.string.time_15m)); + options1Items.add(getString(R.string.time_30m)); + options1Items.add(getString(R.string.time_1h)); + options1Items.add(getString(R.string.time_2h)); + options1Items.add(getString(R.string.time_3h)); + options1Items.add(getString(R.string.time_5h)); + options1Items.add(getString(R.string.time_8h)); + options1Items.add(getString(R.string.time_10h)); + OptionsPickerView pvOptions = new OptionsPickerView.Builder(SwitcherTimeActivity.this, new OptionsPickerView.OnOptionsSelectListener() { + @Override + public void onOptionsSelect(int options1, int option2, int options3, View v) { + //返回的分别是三个级别的选中位置 + String s = options1Items.get(options1); + textView.setVisibility(View.VISIBLE); + textView.setText(s + getString(R.string.later)); + updateOnceTimer(id, "1", textView); + witch.setOpened(true); + } + }) + + .setTextColorCenter(Color.BLACK)//设置选中项的颜色 + .build(); + pvOptions.setPicker(options1Items); + pvOptions.show(); + } + + private String getTime(Date date) {//可根据需要自行截取数据显示 + SimpleDateFormat format = new SimpleDateFormat("HH:mm"); + return format.format(date); + } + + private void setTimeShow(TimeEntity entity) { + if (entity.getData() != null) { + for (int i = 0; i < entity.getData().size(); i++) { + List objEntities2 = entity.getData().get(i); + if (objEntities2.size() == 2) { + for (int j = 0; j < 2; j++) { + switch (objEntities2.get(j).getSid()) { + case "B1": + delayedOpenId = objEntities2.get(j).getId(); + int restMin; + if (!objEntities2.get(j).getRestMin().isEmpty()) { + restMin = Integer.parseInt(objEntities2.get(j).getRestMin()); + } else { + restMin = -1; + } + if (restMin != -1) { + delayedOpenTv.setVisibility(View.VISIBLE); + if (restMin < 60) { + delayedOpenTv.setText(restMin + getString(R.string.minute_later)); + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + delayedOpenTv.setText(hour + getString(R.string.hour_later)); + } else { + delayedOpenTv.setText(hour + getString(R.string.hour) + minite + getString(R.string.minute_later)); + } + } + } else { + delayedOpenTv.setText(getString(R.string.Countdown_closure)); + } + + if (objEntities2.get(j).getFlag().equals("0")) { + witchOne.setOpened(false); + } else { + witchOne.setOpened(true); + } + break; + case "B2": + delayedCloseId = objEntities2.get(j).getId(); + int restMin1; + if (!objEntities2.get(j).getRestMin().isEmpty()) { + restMin1 = Integer.parseInt(objEntities2.get(j).getRestMin()); + } else { + restMin1 = -1; + } + if (restMin1 != -1) { + delayedCloseTv.setVisibility(View.VISIBLE); + if (restMin1 < 60) { + delayedCloseTv.setText(restMin1 + getString(R.string.minute_later)); + } else { + int minite = restMin1 % 60; + int hour = restMin1 / 60; + if (minite == 0) { + delayedCloseTv.setText(hour + getString(R.string.hour_later)); + } else { + delayedCloseTv.setText(hour + getString(R.string.hour) + minite + getString(R.string.minute_later)); + } + } + } else { + delayedCloseTv.setText(getString(R.string.Countdown_closure)); + } + if (objEntities2.get(j).getFlag().equals("0")) { + witchTwo.setOpened(false); + } else { + witchTwo.setOpened(true); + } + break; + } + } + } else { + for (int k = 0; k < 3; k++) { + switch (objEntities2.get(k).getSid()) { + case "A1": + thirdId = objEntities2.get(k).getId(); + thirdStartTv.setText(objEntities2.get(k).getTimeOn()); + thirdEndTv.setText(objEntities2.get(k).getTimeOff()); + if (objEntities2.get(k).getOpenEnable().equals("0")) { + witchThree.setOpened(false); + } else { + witchThree.setOpened(true); + } + if (objEntities2.get(k).getCloseEnable().equals("0")) { + witchThreeClose.setOpened(false); + } else { + witchThreeClose.setOpened(true); + } + if (objEntities2.get(k).getWeekNum1() != null) { + String str = ""; + if (objEntities2.get(k).getWeekNum1().equals("1")) { + str += "周一 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + if (objEntities2.get(k).getWeekNum2().equals("1")) { + str += "周二 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + if (objEntities2.get(k).getWeekNum3().equals("1")) { + str += "周三 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + if (objEntities2.get(k).getWeekNum4().equals("1")) { + str += "周四 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + if (objEntities2.get(k).getWeekNum5().equals("1")) { + str += "周五 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + if (objEntities2.get(k).getWeekNum6().equals("1")) { + str += "周六 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + if (objEntities2.get(k).getWeekNum7().equals("1")) { + str += "周天"; + weekThree += "1"; + } else { + weekThree += "0"; + } + weekThreeTv.setText(str); + } + break; + case "A2": + fourId = objEntities2.get(k).getId(); + fourStartTv.setText(objEntities2.get(k).getTimeOn()); + fourEndTv.setText(objEntities2.get(k).getTimeOff()); + if (objEntities2.get(k).getOpenEnable().equals("0")) { + witchFour.setOpened(false); + } else { + witchFour.setOpened(true); + } + if (objEntities2.get(k).getCloseEnable().equals("0")) { + witchFourClose.setOpened(false); + } else { + witchFourClose.setOpened(true); + } + if (objEntities2.get(k).getWeekNum1() != null) { + String str = ""; + if (objEntities2.get(k).getWeekNum1().equals("1")) { + str += "周一 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + if (objEntities2.get(k).getWeekNum2().equals("1")) { + str += "周二 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + if (objEntities2.get(k).getWeekNum3().equals("1")) { + str += "周三 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + if (objEntities2.get(k).getWeekNum4().equals("1")) { + str += "周四 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + if (objEntities2.get(k).getWeekNum5().equals("1")) { + str += "周五 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + if (objEntities2.get(k).getWeekNum6().equals("1")) { + str += "周六 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + if (objEntities2.get(k).getWeekNum7().equals("1")) { + str += "周天"; + weekFour += "1"; + } else { + weekFour += "0"; + } + weekFourTv.setText(str); + } + break; + case "A3": + fiveId = objEntities2.get(k).getId(); + fiveStartTv.setText(objEntities2.get(k).getTimeOn()); + fiveEndTv.setText(objEntities2.get(k).getTimeOff()); + if (objEntities2.get(k).getOpenEnable().equals("0")) { + witchFive.setOpened(false); + } else { + witchFive.setOpened(true); + } + if (objEntities2.get(k).getCloseEnable().equals("0")) { + witchFiveClose.setOpened(false); + } else { + witchFiveClose.setOpened(true); + } + if (objEntities2.get(k).getWeekNum1() != null) { + String str = ""; + if (objEntities2.get(k).getWeekNum1().equals("1")) { + str += "周一 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + if (objEntities2.get(k).getWeekNum2().equals("1")) { + str += "周二 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + if (objEntities2.get(k).getWeekNum3().equals("1")) { + str += "周三 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + if (objEntities2.get(k).getWeekNum4().equals("1")) { + str += "周四 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + if (objEntities2.get(k).getWeekNum5().equals("1")) { + str += "周五 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + if (objEntities2.get(k).getWeekNum6().equals("1")) { + str += "周六 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + if (objEntities2.get(k).getWeekNum7().equals("1")) { + str += "周天"; + weekFive += "1"; + } else { + weekFive += "0"; + } + weekFiveTv.setText(str); + } + break; + } + } + } + } + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case TIME_RESULT: + if (data != null && data.getExtras().get("timePosition") != null) { + int learnGuide = (int) data.getExtras().get("timePosition"); + String week = data.getExtras().get("week").toString(); + switch (learnGuide) { + case 3: + witchThree.setOpened(true); + witchThreeClose.setOpened(true); + thirdStartTv.setText(data.getExtras().get("startTime").toString()); + thirdEndTv.setText(data.getExtras().get("endTime").toString()); + String str = ""; + weekThree = ""; + if (week.substring(0, 1).equals("1")) { + str += "周一 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + if (week.substring(1, 2).equals("1")) { + str += "周二 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + if (week.substring(2, 3).equals("1")) { + str += "周三 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + if (week.substring(3, 4).equals("1")) { + str += "周四 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + if (week.substring(4, 5).equals("1")) { + str += "周五 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + if (week.substring(5, 6).equals("1")) { + str += "周六 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + if (week.substring(6, 7).equals("1")) { + str += "周日 "; + weekThree += "1"; + } else { + weekThree += "0"; + } + weekThreeTv.setText(str); + break; + case 4: + witchFour.setOpened(true); + witchFourClose.setOpened(true); + fourStartTv.setText(data.getExtras().get("startTime").toString()); + fourEndTv.setText(data.getExtras().get("endTime").toString()); + String str1 = ""; + weekFour = ""; + if (week.substring(0, 1).equals("1")) { + str1 += "周一 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + if (week.substring(1, 2).equals("1")) { + str1 += "周二 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + if (week.substring(2, 3).equals("1")) { + str1 += "周三 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + if (week.substring(3, 4).equals("1")) { + str1 += "周四 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + if (week.substring(4, 5).equals("1")) { + str1 += "周五 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + if (week.substring(5, 6).equals("1")) { + str1 += "周六 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + if (week.substring(6, 7).equals("1")) { + str1 += "周日 "; + weekFour += "1"; + } else { + weekFour += "0"; + } + weekFourTv.setText(str1); + break; + case 5: + witchFive.setOpened(true); + witchFiveClose.setOpened(true); + fiveStartTv.setText(data.getExtras().get("startTime").toString()); + fiveEndTv.setText(data.getExtras().get("endTime").toString()); + String str2 = ""; + weekFive = ""; + if (week.substring(0, 1).equals("1")) { + str2 += "周一 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + if (week.substring(1, 2).equals("1")) { + str2 += "周二 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + if (week.substring(2, 3).equals("1")) { + str2 += "周三 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + if (week.substring(3, 4).equals("1")) { + str2 += "周四 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + if (week.substring(4, 5).equals("1")) { + str2 += "周五 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + if (week.substring(5, 6).equals("1")) { + str2 += "周六 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + if (week.substring(6, 7).equals("1")) { + str2 += "周日 "; + weekFive += "1"; + } else { + weekFive += "0"; + } + weekFiveTv.setText(str2); + break; + } + } + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/devicelist/CharacterParser.java b/app/src/main/java/com/yonsz/z1/version4/devicelist/CharacterParser.java new file mode 100644 index 0000000..8bac11b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/devicelist/CharacterParser.java @@ -0,0 +1,176 @@ +package com.yonsz.z1.version4.devicelist; + +public class CharacterParser { + public static String[] pystr = new String[]{"a", "ai", "an", "ang", "ao", + "ba", "bai", "ban", "bang", "bao", "bei", "ben", "beng", "bi", + "bian", "biao", "bie", "bin", "bing", "bo", "bu", "ca", "cai", + "can", "cang", "cao", "ce", "ceng", "cha", "chai", "chan", "chang", + "chao", "che", "chen", "cheng", "chi", "chong", "chou", "chu", + "chuai", "chuan", "chuang", "chui", "chun", "chuo", "ci", "cong", + "cou", "cu", "cuan", "cui", "cun", "cuo", "da", "dai", "dan", + "dang", "dao", "de", "deng", "di", "dian", "diao", "die", "ding", + "diu", "dong", "dou", "du", "duan", "dui", "dun", "duo", "e", "en", + "er", "fa", "fan", "fang", "fei", "fen", "feng", "fo", "fou", "fu", + "ga", "gai", "gan", "gang", "gao", "ge", "gei", "gen", "geng", + "gong", "gou", "gu", "gua", "guai", "guan", "guang", "gui", "gun", + "guo", "ha", "hai", "han", "hang", "hao", "he", "hei", "hen", + "heng", "hong", "hou", "hu", "hua", "huai", "huan", "huang", "hui", + "hun", "huo", "ji", "jia", "jian", "jiang", "jiao", "jie", "jin", + "jing", "jiong", "jiu", "ju", "juan", "jue", "jun", "ka", "kai", + "kan", "kang", "kao", "ke", "ken", "keng", "kong", "kou", "ku", + "kua", "kuai", "kuan", "kuang", "kui", "kun", "kuo", "la", "lai", + "lan", "lang", "lao", "le", "lei", "leng", "li", "lia", "lian", + "liang", "liao", "lie", "lin", "ling", "liu", "long", "lou", "lu", + "lv", "luan", "lue", "lun", "luo", "ma", "mai", "man", "mang", + "mao", "me", "mei", "men", "meng", "mi", "mian", "miao", "mie", + "min", "ming", "miu", "mo", "mou", "mu", "na", "nai", "nan", + "nang", "nao", "ne", "nei", "nen", "neng", "ni", "nian", "niang", + "niao", "nie", "nin", "ning", "niu", "nong", "nu", "nv", "nuan", + "nue", "nuo", "o", "ou", "pa", "pai", "pan", "pang", "pao", "pei", + "pen", "peng", "pi", "pian", "piao", "pie", "pin", "ping", "po", + "pu", "qi", "qia", "qian", "qiang", "qiao", "qie", "qin", "qing", + "qiong", "qiu", "qu", "quan", "que", "qun", "ran", "rang", "rao", + "re", "ren", "reng", "ri", "rong", "rou", "ru", "ruan", "rui", + "run", "ruo", "sa", "sai", "san", "sang", "sao", "se", "sen", + "seng", "sha", "shai", "shan", "shang", "shao", "she", "shen", + "sheng", "shi", "shou", "shu", "shua", "shuai", "shuan", "shuang", + "shui", "shun", "shuo", "si", "song", "sou", "su", "suan", "sui", + "sun", "suo", "ta", "tai", "tan", "tang", "tao", "te", "teng", + "ti", "tian", "tiao", "tie", "ting", "tong", "tou", "tu", "tuan", + "tui", "tun", "tuo", "wa", "wai", "wan", "wang", "wei", "wen", + "weng", "wo", "wu", "xi", "xia", "xian", "xiang", "xiao", "xie", + "xin", "xing", "xiong", "xiu", "xu", "xuan", "xue", "xun", "ya", + "yan", "yang", "yao", "ye", "yi", "yin", "ying", "yo", "yong", + "you", "yu", "yuan", "yue", "yun", "za", "zai", "zan", "zang", + "zao", "ze", "zei", "zen", "zeng", "zha", "zhai", "zhan", "zhang", + "zhao", "zhe", "zhen", "zheng", "zhi", "zhong", "zhou", "zhu", + "zhua", "zhuai", "zhuan", "zhuang", "zhui", "zhun", "zhuo", "zi", + "zong", "zou", "zu", "zuan", "zui", "zun", "zuo"}; + private static int[] pyvalue = new int[]{-20319, -20317, -20304, -20295, + -20292, -20283, -20265, -20257, -20242, -20230, -20051, -20036, + -20032, -20026, -20002, -19990, -19986, -19982, -19976, -19805, + -19784, -19775, -19774, -19763, -19756, -19751, -19746, -19741, + -19739, -19728, -19725, -19715, -19540, -19531, -19525, -19515, + -19500, -19484, -19479, -19467, -19289, -19288, -19281, -19275, + -19270, -19263, -19261, -19249, -19243, -19242, -19238, -19235, + -19227, -19224, -19218, -19212, -19038, -19023, -19018, -19006, + -19003, -18996, -18977, -18961, -18952, -18783, -18774, -18773, + -18763, -18756, -18741, -18735, -18731, -18722, -18710, -18697, + -18696, -18526, -18518, -18501, -18490, -18478, -18463, -18448, + -18447, -18446, -18239, -18237, -18231, -18220, -18211, -18201, + -18184, -18183, -18181, -18012, -17997, -17988, -17970, -17964, + -17961, -17950, -17947, -17931, -17928, -17922, -17759, -17752, + -17733, -17730, -17721, -17703, -17701, -17697, -17692, -17683, + -17676, -17496, -17487, -17482, -17468, -17454, -17433, -17427, + -17417, -17202, -17185, -16983, -16970, -16942, -16915, -16733, + -16708, -16706, -16689, -16664, -16657, -16647, -16474, -16470, + -16465, -16459, -16452, -16448, -16433, -16429, -16427, -16423, + -16419, -16412, -16407, -16403, -16401, -16393, -16220, -16216, + -16212, -16205, -16202, -16187, -16180, -16171, -16169, -16158, + -16155, -15959, -15958, -15944, -15933, -15920, -15915, -15903, + -15889, -15878, -15707, -15701, -15681, -15667, -15661, -15659, + -15652, -15640, -15631, -15625, -15454, -15448, -15436, -15435, + -15419, -15416, -15408, -15394, -15385, -15377, -15375, -15369, + -15363, -15362, -15183, -15180, -15165, -15158, -15153, -15150, + -15149, -15144, -15143, -15141, -15140, -15139, -15128, -15121, + -15119, -15117, -15110, -15109, -14941, -14937, -14933, -14930, + -14929, -14928, -14926, -14922, -14921, -14914, -14908, -14902, + -14894, -14889, -14882, -14873, -14871, -14857, -14678, -14674, + -14670, -14668, -14663, -14654, -14645, -14630, -14594, -14429, + -14407, -14399, -14384, -14379, -14368, -14355, -14353, -14345, + -14170, -14159, -14151, -14149, -14145, -14140, -14137, -14135, + -14125, -14123, -14122, -14112, -14109, -14099, -14097, -14094, + -14092, -14090, -14087, -14083, -13917, -13914, -13910, -13907, + -13906, -13905, -13896, -13894, -13878, -13870, -13859, -13847, + -13831, -13658, -13611, -13601, -13406, -13404, -13400, -13398, + -13395, -13391, -13387, -13383, -13367, -13359, -13356, -13343, + -13340, -13329, -13326, -13318, -13147, -13138, -13120, -13107, + -13096, -13095, -13091, -13076, -13068, -13063, -13060, -12888, + -12875, -12871, -12860, -12858, -12852, -12849, -12838, -12831, + -12829, -12812, -12802, -12607, -12597, -12594, -12585, -12556, + -12359, -12346, -12320, -12300, -12120, -12099, -12089, -12074, + -12067, -12058, -12039, -11867, -11861, -11847, -11831, -11798, + -11781, -11604, -11589, -11536, -11358, -11340, -11339, -11324, + -11303, -11097, -11077, -11067, -11055, -11052, -11045, -11041, + -11038, -11024, -11020, -11019, -11018, -11014, -10838, -10832, + -10815, -10800, -10790, -10780, -10764, -10587, -10544, -10533, + -10519, -10331, -10329, -10328, -10322, -10315, -10309, -10307, + -10296, -10281, -10274, -10270, -10262, -10260, -10256, -10254}; + private static CharacterParser characterParser = new CharacterParser(); + private StringBuilder buffer; + private String resource; + + public static CharacterParser getInstance() { + return characterParser; + } + + public String getResource() { + return resource; + } + + public void setResource(String resource) { + this.resource = resource; + } + + private int getChsAscii(String chs) { + int asc = 0; + try { + byte[] bytes = chs.getBytes("gb2312"); + if (bytes == null || bytes.length > 2 || bytes.length <= 0) { + throw new RuntimeException("illegal resource string"); + } + if (bytes.length == 1) { + asc = bytes[0]; + } + if (bytes.length == 2) { + int hightByte = 256 + bytes[0]; + int lowByte = 256 + bytes[1]; + asc = (256 * hightByte + lowByte) - 256 * 256; + } + } catch (Exception e) { + System.out + .println("ERROR:ChineseSpelling.class-getChsAscii(String chs)" + + e); + } + return asc; + } + + public String convert(String str) { + String result = null; + int ascii = getChsAscii(str); + if (ascii > 0 && ascii < 160) { + result = String.valueOf((char) ascii); + } else { + for (int i = (pyvalue.length - 1); i >= 0; i--) { + if (pyvalue[i] <= ascii) { + result = pystr[i]; + break; + } + } + } + return result; + } + + public String getSelling(String chs) { + String key, value; + buffer = new StringBuilder(); + for (int i = 0; i < chs.length(); i++) { + key = chs.substring(i, i + 1); + if (key.getBytes().length >= 2) { + value = (String) convert(key); + if (value == null) { + value = "unknown"; + } + } else { + value = key; + } + buffer.append(value); + } + return buffer.toString(); + } + + public String getSpelling() { + return this.getSelling(this.getResource()); + } + +} diff --git a/app/src/main/java/com/yonsz/z1/version4/devicelist/ClearEditText.java b/app/src/main/java/com/yonsz/z1/version4/devicelist/ClearEditText.java new file mode 100644 index 0000000..20f934a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/devicelist/ClearEditText.java @@ -0,0 +1,130 @@ +package com.yonsz.z1.version4.devicelist; + +import android.content.Context; +import android.graphics.drawable.Drawable; +import android.text.Editable; +import android.text.TextWatcher; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnFocusChangeListener; +import android.view.animation.Animation; +import android.view.animation.CycleInterpolator; +import android.view.animation.TranslateAnimation; + +import com.yonsz.z1.R; + +public class ClearEditText extends android.support.v7.widget.AppCompatEditText implements OnFocusChangeListener, + TextWatcher { + + //删除按钮的引用 + private Drawable mClearDrawable; + + public ClearEditText(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + public ClearEditText(Context context, AttributeSet attrs) { + this(context, attrs, android.R.attr.editTextStyle); + } + + public ClearEditText(Context context) { + this(context, null); + } + + /** + * 晃动动画 + * + * @param counts 1秒钟晃动多少下 + * @return + */ + public static Animation shakeAnimation(int counts) { + Animation translateAnimation = new TranslateAnimation(0, 10, 0, 0); + translateAnimation.setInterpolator(new CycleInterpolator(counts)); + translateAnimation.setDuration(1000); + return translateAnimation; + } + + private void init() { + //获取EditText的DrawableRight,假如没有设置我们就使用默认的图片 + // 获取EditText的DrawableRight,假如没有设置我们就使用默认的图片,2是获得右边的图片 顺序是左上右下(0,1,2,3,) + mClearDrawable = getCompoundDrawables()[2]; + if (mClearDrawable == null) { + mClearDrawable = getResources().getDrawable(R.drawable.emotionstore_progresscancelbtn); + } + mClearDrawable.setBounds(0, 0, mClearDrawable.getIntrinsicWidth(), mClearDrawable.getIntrinsicHeight()); + // 默认设置隐藏图标 + setClearIconVisible(false); + // 设置焦点改变的监听 + setOnFocusChangeListener(this); + // 设置输入框里面内容发生改变的监听 + addTextChangedListener(this); + } + + /** + * 因为我们不能直接给EditText设置点击事件,所以我们用记住我们按下的位置来模拟点击事件 + * 当我们按下的位置 在 EditText的宽度 - 图标到控件右边的间距 - 图标的宽度 和 + * EditText的宽度 - 图标到控件右边的间距之间我们就算点击了图标,竖直方向没有考虑 + */ + @Override + public boolean onTouchEvent(MotionEvent event) { + if (getCompoundDrawables()[2] != null) { + if (event.getAction() == MotionEvent.ACTION_UP) { + boolean touchable = event.getX() > (getWidth() + - getPaddingRight() - mClearDrawable.getIntrinsicWidth()) + && (event.getX() < ((getWidth() - getPaddingRight()))); + if (touchable) { + this.setText(""); + } + } + } + return super.onTouchEvent(event); + } + + @Override + public void onTextChanged(CharSequence text, int start, + int lengthBefore, int lengthAfter) { + setClearIconVisible(text.length() > 0); + } + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, + int after) { + + } + + @Override + public void afterTextChanged(Editable s) { + + } + /** + * 当ClearEditText焦点发生变化的时候,判断里面字符串长度设置清除图标的显示与隐藏 + */ + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (hasFocus) { + setClearIconVisible(getText().length() > 0); + } else { + setClearIconVisible(false); + } + } + + /** + * 设置清除图标的显示与隐藏,调用setCompoundDrawables为EditText绘制上去 + * + * @param visible + */ + protected void setClearIconVisible(boolean visible) { + Drawable right = visible ? mClearDrawable : null; + setCompoundDrawables(getCompoundDrawables()[0], + getCompoundDrawables()[1], right, getCompoundDrawables()[3]); + } + + /** + * 设置晃动动画 + */ + public void setShakeAnimation() { + this.setAnimation(shakeAnimation(5)); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/devicelist/DeviceList4Activity.java b/app/src/main/java/com/yonsz/z1/version4/devicelist/DeviceList4Activity.java new file mode 100644 index 0000000..9063c8c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/devicelist/DeviceList4Activity.java @@ -0,0 +1,521 @@ +package com.yonsz.z1.version4.devicelist; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.Log; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ListView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.BrandListA2Entity; +import com.yonsz.z1.database.entity.entitya2.NormalEntity; +import com.yonsz.z1.devicea2.fana2.FanMatchA2Activity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.DeviceControlActivity; +import com.yonsz.z1.version5.ChooseA1AddDeviceActivity; +import com.yonsz.z1.version5.DeviceControlByRoomActivity; +import com.yonsz.z1.view.TitleView; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_FAIL; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWN_BACKMUSIC_INFR_FAIL; +import static com.yonsz.z1.net.Constans.DOWN_BACKMUSIC_INFR_SUCCESS; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_BRAND_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_BRAND_SUCCESS; +import static com.yonsz.z1.net.Constans.RGB_LIGHT; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.YBL_ADD_FAIL; +import static com.yonsz.z1.net.Constans.YBL_ADD_SUCCESS; +import static com.yonsz.z1.net.Constans.localAddAddressId; +import static com.yonsz.z1.net.NetWorkUrl.GETBRANDID_BY_DEVICEID; +import static com.yonsz.z1.net.NetWorkUrl.YKY_DOWNLOAD; + +/** + * Created by Administrator on 2018/5/30. + */ + +public class DeviceList4Activity extends BaseActivity { + private List stringList; + private TitleView mTitleView; + private String deviceType; + private ListView sortListView; + private SideBar sideBar; + private TextView dialog; + private SortAdapter adapter; + private ClearEditText mClearEditText; + private String rid; + /** + * 汉字转换成拼音的类 + */ + private CharacterParser characterParser; + private List SourceDateList; + + /** + * 根据拼音来排列ListView里面的数据类 + */ + private PinyinComparator pinyinComparator; + private String ziId; + private String id; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_brand_list4); + deviceType = getIntent().getExtras().get("deviceType").toString(); + initView(); + if (deviceType.equals(RGB_LIGHT)) { + BrandListA2Entity.ObjEntity.BrandListEntity brandListEntity = new BrandListA2Entity.ObjEntity.BrandListEntity(); + brandListEntity.setDeviceModel("0"); + brandListEntity.setBrandName("24键(低亮)"); + BrandListA2Entity.ObjEntity.BrandListEntity brandListEntity1 = new BrandListA2Entity.ObjEntity.BrandListEntity(); + brandListEntity1.setDeviceModel("1"); + brandListEntity1.setBrandName("44键(低亮)"); + stringList.add(brandListEntity1); + stringList.add(brandListEntity); + SourceDateList = filledData(stringList); + // 根据a-z进行排序源数据 + Collections.sort(SourceDateList, pinyinComparator); + adapter = new SortAdapter(this, SourceDateList); + sortListView.setAdapter(adapter); + } else { + queryDeviceBrand(deviceType); + } + } + + private void queryDeviceBrand(String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceType", deviceType); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + netWorkUtil.requestGetByAsy(GETBRANDID_BY_DEVICEID, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("queryDeviceBrand", respone); + // Log.i("queryDeviceBrand", "ShareDeviceActivity onSuccess()" + respone); + BrandListA2Entity obj = JSON.parseObject(respone, BrandListA2Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_BRAND_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_BRAND_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_BRAND_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("关闭")) { + Message message = new Message(); + message.what = CLOSE_THIS_ACTIVITY; + mHandler.sendMessage(message); + } + } + + private void initView() { + ziId = getIntent().getExtras().get("ziId").toString(); + stringList = new ArrayList<>(); + mTitleView = (TitleView) findViewById(R.id.title_brand_list); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + switch (deviceType) { + case FAN_TAG: + mTitleView.setHead(R.string.select_fan_brand); + break; + case TV_TAG: + mTitleView.setHead(R.string.select_tvone_brand); + break; + case TVONE_TAG: + mTitleView.setHead(R.string.select_tv_brand); + break; + case AIR_TAG: + mTitleView.setHead(R.string.select_air_brand); + break; + case SWEEP_TAG: + mTitleView.setHead(R.string.select_sweep_brand); + break; + case MUSIC_TAG: + mTitleView.setHead(R.string.select_music_brand); + break; + case MOVIE_CAMERA: + mTitleView.setHead("选择投影仪品牌"); + break; + case AIR_CLEANER: + mTitleView.setHead("选择净化器品牌"); + break; + case RGB_LIGHT: + mTitleView.setHead("选择规格型号"); + break; + default: + mTitleView.setHead("选择品牌"); + break; + } + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + } + + @Override + public void onFunctionText() { + + } + }); + + + //实例化汉字转拼音类 + characterParser = CharacterParser.getInstance(); + pinyinComparator = new PinyinComparator(); + sideBar = (SideBar) findViewById(R.id.sidrbar); + dialog = (TextView) findViewById(R.id.dialog); + sideBar.setTextView(dialog); + //设置右侧触摸监听 + sideBar.setOnTouchingLetterChangedListener(new SideBar.OnTouchingLetterChangedListener() { + + @Override + public void onTouchingLetterChanged(String s) { + //该字母首次出现的位置 + int position = adapter.getPositionForSection(s.charAt(0)); + if (position != -1) { + sortListView.setSelection(position); + } + } + }); + sortListView = (ListView) findViewById(R.id.country_lvcountry); + sortListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + //这里要利用adapter.getItem(position)来获取当前position所对应的对象 + // Toast.makeText(getApplication(), ((SortModel) adapter.getItem(position)).getName(), Toast.LENGTH_SHORT).show(); + if (deviceType.equals(RGB_LIGHT)) { + Intent intent = new Intent(DeviceList4Activity.this, ChooseA1AddDeviceActivity.class); + Bundle bundle = new Bundle(); + bundle.putSerializable("dataBeanList", (Serializable) getIntent().getSerializableExtra("dataBeanList")); + intent.putExtras(bundle); + intent.putExtra("deviceType", getIntent().getExtras().get("deviceType").toString()); + intent.putExtra("deviceModel", position + ""); + intent.putExtra("subType", getIntent().getExtras().get("subType").toString()); + intent.putExtra("standardCodes", getIntent().getExtras().get("standardCodes").toString()); + startActivity(intent); + } else if (deviceType.equals(MUSIC_TAG)) { + ConfirmDialog dialog = new ConfirmDialog(DeviceList4Activity.this, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + break; + case 1: +// addChildDevice(ziId, MUSIC_TAG, ((SortModel) adapter.getItem(0)).getName(), 3); + subsetAdd("", ((SortModel) adapter.getItem(0)).getName()); + break; + } + } + }); + dialog.setContent(R.string.download_background); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + // TODO: 2018/7/5 改成先跳转到轮询页面 + Intent intent = new Intent(DeviceList4Activity.this, FanMatchA2Activity.class); + intent.putExtra("brandId", ((SortModel) adapter.getItem(position)).getId()); + intent.putExtra("brandName", ((SortModel) adapter.getItem(position)).getName()); + intent.putExtra("fanStateTag", "0"); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", deviceType); + if (getIntent().getExtras().get("rid") != null) { + intent.putExtra("rid", getIntent().getExtras().get("rid").toString()); + } + startActivity(intent); + } + } + }); + + mClearEditText = (ClearEditText) findViewById(R.id.et_search); + + //根据输入框输入值的改变来过滤搜索 + mClearEditText.addTextChangedListener(new TextWatcher() { + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + //当输入框里面的值为空,更新为原来的列表,否则为过滤数据列表 + filterData(s.toString()); + } + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, + int after) { + + } + + @Override + public void afterTextChanged(Editable s) { + } + }); + + if (deviceType.equals(RGB_LIGHT)) { + mClearEditText.setVisibility(View.GONE); + } + + + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case CLOSE_THIS_ACTIVITY: + finish(); + break; + case QUERY_DEVICE_BRAND_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case QUERY_DEVICE_BRAND_SUCCESS: + BrandListA2Entity entity2 = (BrandListA2Entity) msg.obj; + stringList = entity2.getObj().getBrandList(); + SourceDateList = filledData(stringList); + // 根据a-z进行排序源数据 + Collections.sort(SourceDateList, pinyinComparator); + adapter = new SortAdapter(this, SourceDateList); + sortListView.setAdapter(adapter); + break; + case ADD_CHILDDEVICE_FAIL: + case YBL_ADD_FAIL: + ToastUtil.show(this, R.string.add_fail); + break; + case ADD_CHILDDEVICE_SUCCESS: + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + id = entity.getData().getId(); + downloadInfraredByRid(); + break; + case DOWN_BACKMUSIC_INFR_SUCCESS: + case YBL_ADD_SUCCESS: + EventBus.getDefault().post( + new EventBusEntity("关闭")); + Intent intent1; + if (AppIdUtil.isBaseZhiKong()) { + intent1 = new Intent(DeviceList4Activity.this, DeviceControlByRoomActivity.class); + } else { + intent1 = new Intent(DeviceList4Activity.this, DeviceControlActivity.class); + } + intent1.putExtra("ziId", ziId); + intent1.putExtra("musicStateTag", "0"); + intent1.putExtra("id", id); + startActivity(intent1); + finish(); + break; + } + } + + /** + * 为ListView填充数据 + * + * @param date + * @return + */ + private List filledData(List date) { + List mSortList = new ArrayList(); + if (date.size() != 0) { + for (int i = 0; i < date.size(); i++) { + SortModel sortModel = new SortModel(); + sortModel.setName(date.get(i).getBrandName()); + sortModel.setId(date.get(i).getBrandId()); + //汉字转换成拼音 + String pinyin = characterParser.getSelling(date.get(i).getBrandName()); + String sortString = pinyin.substring(0, 1).toUpperCase(); + // 正则表达式,判断首字母是否是英文字母 + if (sortString.matches("[A-Z]")) { + sortModel.setSortLetters(sortString.toUpperCase()); + } else { + sortModel.setSortLetters("#"); + } + mSortList.add(sortModel); + } + } else { + + } + return mSortList; + } + + /** + * 根据输入框中的值来过滤数据并更新ListView + * + * @param filterStr + */ + private void filterData(String filterStr) { + List filterDateList = new ArrayList(); + + if (TextUtils.isEmpty(filterStr)) { + filterDateList = SourceDateList; + } else { + filterDateList.clear(); + for (SortModel sortModel : SourceDateList) { + String name = sortModel.getName(); + if (name.indexOf(filterStr.toString()) != -1 || characterParser.getSelling(name).startsWith(filterStr.toString())) { + filterDateList.add(sortModel); + } + } + } + + // 根据a-z进行排序 + Collections.sort(filterDateList, pinyinComparator); + adapter.updateListView(filterDateList); + } + + private void subsetAdd(String rid, String name) { + BaseVersion5Entity.DataBean body = new BaseVersion5Entity.DataBean(); + body.setRid(rid); + body.setBrand(name); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", "0"); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("addressId", localAddAddressId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_ADD, map, JSONObject.toJSONString(body), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetAdd", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ADD_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ADD_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ADD_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void addChildDevice(String ziId, String deviceType, String deviceBrand, final int todo) { + + } + + private void downloadInfraredByRid() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("macId", ziId); + map.put("deviceType", deviceType); + map.put("rid", "aosidi_rid"); + netWorkUtil.requestPostByAsynewApi(YKY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("downloadInfraredByRid", "ShareDeviceActivity onSuccess()" + respone); + NormalEntity obj = JSON.parseObject(respone, NormalEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DOWN_BACKMUSIC_INFR_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DOWN_BACKMUSIC_INFR_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DOWN_BACKMUSIC_INFR_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + private void downBackMusicInfr(String brandName) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("macId", ziId); + map.put("brandName", brandName); + map.put("deviceId", "14"); + map.put("deviceType", deviceType); + map.put("rid", "aosidi_rid"); + netWorkUtil.requestPostByAsynewApi(YKY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("downBackMusicInfr", "ShareDeviceActivity onSuccess()" + respone); + NormalEntity obj = JSON.parseObject(respone, NormalEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DOWN_BACKMUSIC_INFR_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DOWN_BACKMUSIC_INFR_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/devicelist/PinyinComparator.java b/app/src/main/java/com/yonsz/z1/version4/devicelist/PinyinComparator.java new file mode 100644 index 0000000..fca77d4 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/devicelist/PinyinComparator.java @@ -0,0 +1,24 @@ +package com.yonsz.z1.version4.devicelist; + +import java.util.Comparator; + +public class PinyinComparator implements Comparator { + + public int compare(SortModel o1, SortModel o2) { + if (o1.getSortLetters().equals("@") || o2.getSortLetters().equals("#")) { + return -1; + } else if (o1.getSortLetters().equals("#") + || o2.getSortLetters().equals("@")) { + return 1; + } else if (o1.getSortLetters().equals("@") + || o2.getSortLetters().equals("常用")) { + return 1; + } else if (o1.getSortLetters().equals("常用") + || o2.getSortLetters().equals("@")) { + return -1; + } else { + return o1.getSortLetters().compareTo(o2.getSortLetters()); + } + } + +} diff --git a/app/src/main/java/com/yonsz/z1/version4/devicelist/SideBar.java b/app/src/main/java/com/yonsz/z1/version4/devicelist/SideBar.java new file mode 100644 index 0000000..709f93d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/devicelist/SideBar.java @@ -0,0 +1,149 @@ +package com.yonsz.z1.version4.devicelist; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Typeface; +import android.graphics.drawable.ColorDrawable; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; +import android.widget.TextView; + +import com.yonsz.z1.R; + + +/** + * 右侧的字母索引View + * + * @author + */ + +public class SideBar extends View { + + // 26个字母 + public static String[] b = {"A", "B", "C", "D", "E", "F", "G", "H", "I", + "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", + "W", "X", "Y", "Z", "#"}; + //触摸事件 + private OnTouchingLetterChangedListener onTouchingLetterChangedListener; + //选中 + private int choose = -1; + + private Paint paint = new Paint(); + + private TextView mTextDialog; + + public SideBar(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + + public SideBar(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public SideBar(Context context) { + super(context); + } + + /** + * 为SideBar显示字母的TextView + * + * @param mTextDialog + */ + public void setTextView(TextView mTextDialog) { + this.mTextDialog = mTextDialog; + } + + /** + * 重写的onDraw的方法 + */ + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + int height = getHeight();//获取对应的高度 + int width = getWidth();//获取对应的宽度 + int singleHeight = height / b.length;//获取每一个字母的高度 + for (int i = 0; i < b.length; i++) { + paint.setColor(Color.rgb(120, 120, 120)); + paint.setTypeface(Typeface.DEFAULT_BOLD); + paint.setAntiAlias(true); + paint.setTextSize(40); + //选中的状态 + if (i == choose) { + paint.setColor(Color.parseColor("#3399ff")); + paint.setFakeBoldText(true);//设置是否为粗体文字 + } + //x坐标等于=中间-字符串宽度的一般 + float xPos = width / 2 - paint.measureText(b[i]) / 2; + float yPos = singleHeight * i + singleHeight; + canvas.drawText(b[i], xPos, yPos, paint); + paint.reset();//重置画笔 + } + } + + @Override + public boolean dispatchTouchEvent(MotionEvent event) { + + final int action = event.getAction(); + final float y = event.getY();//点击y坐标 + final int oldChoose = choose; + + final OnTouchingLetterChangedListener listener = onTouchingLetterChangedListener; + + final int c = (int) (y / getHeight() * b.length);//点击y坐标所占高度的比例*b数组的长度就等于点击b中的个数 + + switch (action) { + case MotionEvent.ACTION_UP: + setBackgroundDrawable(new ColorDrawable(0x00000000));//设置背景颜色 + choose = -1; + invalidate(); + if (mTextDialog != null) { + mTextDialog.setVisibility(View.INVISIBLE); + } + break; + + default: + setBackgroundResource(R.drawable.sidebar_background); + if (oldChoose != c) { + if (c >= 0 && c < b.length) { + if (listener != null) { + listener.onTouchingLetterChanged(b[c]); + } + if (mTextDialog != null) { + mTextDialog.setText(b[c]); + mTextDialog.setVisibility(View.VISIBLE); + } + choose = c; + invalidate(); + } + } + break; + } + + + return true; + } + + /** + * 向外松开的方法 + * + * @param onTouchingLetterChangedListener + */ + public void setOnTouchingLetterChangedListener( + OnTouchingLetterChangedListener onTouchingLetterChangedListener) { + this.onTouchingLetterChangedListener = onTouchingLetterChangedListener; + } + + /** + * 接口 + * + * @author + */ + public interface OnTouchingLetterChangedListener { + public void onTouchingLetterChanged(String s); + } + +} diff --git a/app/src/main/java/com/yonsz/z1/version4/devicelist/SortAdapter.java b/app/src/main/java/com/yonsz/z1/version4/devicelist/SortAdapter.java new file mode 100644 index 0000000..baee637 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/devicelist/SortAdapter.java @@ -0,0 +1,123 @@ +package com.yonsz.z1.version4.devicelist; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.SectionIndexer; +import android.widget.TextView; + +import com.yonsz.z1.R; + +import java.util.List; + +public class SortAdapter extends BaseAdapter implements SectionIndexer { + + private List list = null; + + private Context mContext; + + public SortAdapter(Context mContext, List list){ + this.mContext = mContext; + this.list = list; + } + public void updateListView(List list){ + this.list = list; + notifyDataSetChanged(); + } + + + @Override + public int getCount() { + return this.list.size(); + } + + @Override + public Object getItem(int position) { + return list.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + + ViewHolder viewHolder = null; + final SortModel mContent = list.get(position); + if (convertView== null) { + viewHolder = new ViewHolder(); + convertView = LayoutInflater.from(mContext).inflate(R.layout.item_device_list, null); + viewHolder.tvTitle = (TextView) convertView.findViewById(R.id.title); + viewHolder.tvLetter = (TextView) convertView.findViewById(R.id.catalog); + convertView.setTag(viewHolder); + }else { + viewHolder = (ViewHolder) convertView.getTag(); + } + //根据position获取分类的首字母的Char ascii值 + int section = getSectionForPosition(position); + //如果当前位置等于该分类首字母的Char的位置 ,则认为是第一次出现 + if (position == getPositionForSection(section)) { + viewHolder.tvLetter.setVisibility(View.VISIBLE); + viewHolder.tvLetter.setText(mContent.getSortLetters()); + }else { + viewHolder.tvLetter.setVisibility(View.GONE); + } + viewHolder.tvTitle.setText(this.list.get(position).getName()); + return convertView; + } + + @Override + public Object[] getSections() { + return null; + } + /** + * 根据分类的首字母的Char ascii值获取其第一次出现该首字母的位置 + */ + @Override + public int getPositionForSection(int sectionIndex) { + for (int i = 0; i < getCount(); i++) { + String sortStr = list.get(i).getSortLetters(); + char firstChar = sortStr.toUpperCase().charAt(0); + if (firstChar == sectionIndex) { + return i; + } + } + + return -1; + } + + /** + * 根据ListView的当前位置获取分类的首字母的Char ascii值 + */ + @Override + public int getSectionForPosition(int position) { + return list.get(position).getSortLetters().charAt(0); + } + + + final static class ViewHolder{ + TextView tvLetter; + TextView tvTitle; + } + /** + * 提取英文的首字母,非英文字母用#代替。 + * + * @param str + * @return + */ + private String getAlpha(String str) { + String sortStr = str.trim().substring(0, 1).toUpperCase(); + // ������ʽ���ж�����ĸ�Ƿ���Ӣ����ĸ + if (sortStr.matches("[A-Z]")) { + return sortStr; + } else { + return "#"; + } + } + + +} diff --git a/app/src/main/java/com/yonsz/z1/version4/devicelist/SortModel.java b/app/src/main/java/com/yonsz/z1/version4/devicelist/SortModel.java new file mode 100644 index 0000000..adb171d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/devicelist/SortModel.java @@ -0,0 +1,33 @@ +package com.yonsz.z1.version4.devicelist; + +public class SortModel { + + private String name;//显示的数据 + private String id; + private String sortLetters;//显示数据拼音的首字母 + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSortLetters() { + return sortLetters; + } + + public void setSortLetters(String sortLetters) { + this.sortLetters = sortLetters; + } + +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/AirA1Fragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/AirA1Fragment.java new file mode 100644 index 0000000..879f986 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/AirA1Fragment.java @@ -0,0 +1,1191 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.AirControlEvent; +import com.yonsz.z1.database.entity.AirStateEntity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.view.TitleView; + +import java.lang.ref.WeakReference; +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.AIR_CLOSE; +import static com.yonsz.z1.net.Constans.AIR_COLD; +import static com.yonsz.z1.net.Constans.AIR_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.AIR_OPEN; +import static com.yonsz.z1.net.Constans.AIR_POWER; +import static com.yonsz.z1.net.Constans.AIR_RIGHT_LEFT; +import static com.yonsz.z1.net.Constans.AIR_SLEEP; +import static com.yonsz.z1.net.Constans.AIR_SURE_ORDER_SUCCESS; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.AIR_TEM_ADD; +import static com.yonsz.z1.net.Constans.AIR_TEM_REDUCE; +import static com.yonsz.z1.net.Constans.AIR_UP_DOWN; +import static com.yonsz.z1.net.Constans.AIR_WARM; +import static com.yonsz.z1.net.Constans.AIR_WIND_SPEED; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_AIR_LASTSTATUS_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_AIR_LASTSTATUS_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.localAddAddressId; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class AirA1Fragment extends BaseFragment implements View.OnClickListener { + static int groupNum = 1, groupNum1, groupNum2, groupNum3; + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + private TitleView mTitleView; + private TextView mTiming; + private boolean isAdd; + private boolean isTestControl; + private RelativeLayout mAirControl; + private FrameLayout mTimingFl; + private TextView mTestTv; + private RelativeLayout rl_main_screen; + private String userId; + private String ziId; + private String sendMsg; + private TextView mOpenClose, mLeftRight, mUpDown, mSavePower, mCold, mWarm, mSleep, mAdd, mReduce, mWindSpeed, mCloseAir; + private TextView airTempicon, airTempoC, airWindIcon, tv_next_time, tv_next_time_state, tv_next_week; + private String airName; + private boolean isOpen; + private String deviceIp = ""; + private RelativeLayout airTopBg; + private ImageView airIconStation; + private ImageView localControlIv; + private ImageView airSleepIcon; + private String airStateTag; + private String deviceId = ""; + + public static AirA1Fragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + AirA1Fragment fragment = new AirA1Fragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_air_condition, null); + initView(fragView); + initListener(); + return fragView; + } + + private void initView(View fragView) { + ziId = getActivity().getIntent().getExtras().get("ziId").toString(); + userId = SharedpreferencesUtil.get(Constans.USERPHONE, ""); + airStateTag = getArguments().get("airStateTag").toString(); + if (airStateTag.equals("0")) { + //自动识别会传0进来 + isAdd = true; + if (getActivity().getIntent().getExtras().get("GroupNum1") != null) { + groupNum1 = (int) getActivity().getIntent().getExtras().get("GroupNum1"); + } + String hexString = Integer.toHexString(groupNum1); + switch (hexString.length()) { + case 1: + sendMsg = "0" + hexString + "00"; + break; + case 2: + sendMsg = hexString + "00"; + break; + case 3: + sendMsg = hexString.substring(1, 3) + "0" + hexString.substring(0, 1); + break; + } + airAutoSureOrder(sendMsg); + } else if (airStateTag.equals("2")) { + //手动添加会传2进来 + isAdd = false; + isTestControl = true; + if (getActivity().getIntent().getExtras().get("mGroupList") != null) { + String mGroupList = (String) getActivity().getIntent().getExtras().get("mGroupList"); + int groupNum0 = -1; + try { + groupNum0 = Integer.parseInt(mGroupList); + } catch (NumberFormatException e) { + e.printStackTrace(); + } + if (groupNum0 != -1) { + String hexString = Integer.toHexString(groupNum0); + switch (hexString.length()) { + case 1: + sendMsg = "0" + hexString + "00"; + break; + case 2: + sendMsg = hexString + "00"; + break; + case 3: + sendMsg = hexString.substring(1, 3) + "0" + hexString.substring(0, 1); + break; + } + } + } + airAutoSureOrder(sendMsg); + } else { + ziId = devicesBean.getZiId(); + isAdd = false; + isTestControl = false; + } + airSleepIcon = (ImageView) fragView.findViewById(R.id.iv_icon_pinxian); + airTopBg = (RelativeLayout) fragView.findViewById(R.id.rl_air_top_bg); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + airIconStation = (ImageView) fragView.findViewById(R.id.iv_air_icon_station); + airTempicon = (TextView) fragView.findViewById(R.id.tv_air_temp_icon); + airTempoC = (TextView) fragView.findViewById(R.id.tv_air_temp_oc); + airWindIcon = (TextView) fragView.findViewById(R.id.tv_air_wind_icon); + + mTimingFl = (FrameLayout) fragView.findViewById(R.id.fl_timing); + mTestTv = (TextView) fragView.findViewById(R.id.tv_air_top_test); + rl_main_screen = (RelativeLayout) fragView.findViewById(R.id.rl_main_screen); + mAirControl = (RelativeLayout) fragView.findViewById(R.id.rl_activity_control); + mTiming = (TextView) fragView.findViewById(R.id.tv_timing); + tv_next_time = (TextView) fragView.findViewById(R.id.tv_next_time); + tv_next_time_state = (TextView) fragView.findViewById(R.id.tv_next_time_state); + tv_next_week = (TextView) fragView.findViewById(R.id.tv_next_week); + mTitleView = (TitleView) fragView.findViewById(R.id.title_aircondition); + + if (null != devicesBean) { + deviceId = devicesBean.getId(); + if (TextUtils.isEmpty(devicesBean.getDeviceBrand()) || !airStateTag.equals("1")) { + airName = "空调"; + } else { + airName = devicesBean.getDeviceBrand(); + } + } else { + airName = "空调"; + } + + mTitleView.setHead(airName); + mTitleView.clearBackGroud(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + if (isAdd) { + addChildDevice(AIR_TAG, "空调"); + } else { + if (isTestControl) { + addChildDevice(AIR_TAG, "空调"); + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(AIR_TAG, ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //重新命名 + + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", AIR_TAG); + startActivity(intent); + + break; + case 4: + //遥控学习 + + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent(); + dialog2.setLearn(); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + } + + @Override + public void onFunctionText() { + + } + }); + setAirStage(); + + mOpenClose = (TextView) fragView.findViewById(R.id.tv_fan_open); + mCloseAir = (TextView) fragView.findViewById(R.id.tv_close_air); + mLeftRight = (TextView) fragView.findViewById(R.id.tv_right_left); + mUpDown = (TextView) fragView.findViewById(R.id.tv_up_down); + mSavePower = (TextView) fragView.findViewById(R.id.tv_save_power); + mCold = (TextView) fragView.findViewById(R.id.tv_cold); + mWarm = (TextView) fragView.findViewById(R.id.tv_warm); + mSleep = (TextView) fragView.findViewById(R.id.tv_sleep); + mAdd = (TextView) fragView.findViewById(R.id.tv_temperature_add); + mReduce = (TextView) fragView.findViewById(R.id.tv_temperature_reduce); + mWindSpeed = (TextView) fragView.findViewById(R.id.tv_air_wind_speed); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mCloseAir.setOnClickListener(this); + mLeftRight.setOnClickListener(this); + mUpDown.setOnClickListener(this); + mSavePower.setOnClickListener(this); + mCold.setOnClickListener(this); + mWarm.setOnClickListener(this); + mSleep.setOnClickListener(this); + mAdd.setOnClickListener(this); + mReduce.setOnClickListener(this); + mWindSpeed.setOnClickListener(this); + + mTimingFl.setOnClickListener(this); + mTiming.setOnClickListener(this); + } + + //手动和自动添加的确认 + private void airAutoSureOrder(String sendMsg) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); +// map.put("userId", userId); + map.put("macId", ziId); + map.put("code", this.sendMsg); + Log.i("airAutoSureOrder", "AirConditionActivity airAutoSureOrder()" + this.sendMsg); + util.requestPostByAsynewApi(NetWorkUrl.AIR_AUTO_SURE_ORDER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("airAutoSureOrder", "onSuccess: " + respone); + /*AddChildDeviceEntity entity = JSON.parseObject(respone, AddChildDeviceEntity.class); + Message msg = mHandler.obtainMessage(AIR_SURE_ORDER_SUCCESS); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg);*/ + } + + @Override + public void onFail(String message) { + + } + }); + } + + private void addChildDevice(String deviceType, String deviceBrand) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", "0"); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("addressId", localAddAddressId); + if (isAdd) { + //如果是自动识别添加的 + map.put("deviceBrand", deviceBrand); + } else { + map.put("deviceBrand", getActivity().getIntent().getExtras().get("deviceBrand").toString()); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_ADD, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetAdd", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ADD_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ADD_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ADD_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void setAirStage() { + if (isAdd) { + mAirControl.setVisibility(View.VISIBLE); + mTitleView.setHeadFuntionTxt(R.string.sure); + rl_main_screen.setVisibility(View.GONE); + mTestTv.setVisibility(View.VISIBLE); + //进入首先发一下码组 + airAutoSendOrder(); + } else { + if (isTestControl) { + mAirControl.setVisibility(View.VISIBLE); + mTitleView.setHeadFuntionTxt(R.string.sure); + rl_main_screen.setVisibility(View.GONE); + mTestTv.setVisibility(View.VISIBLE); + //进入首先发一下码组 + // airAutoSendOrder(); + } else { + mAirControl.setVisibility(View.VISIBLE); + mTitleView.setHeadFuntionTxtGone(); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + rl_main_screen.setVisibility(View.VISIBLE); + mTestTv.setVisibility(View.GONE); + queryNextTimer(); + queryAirLastStatus(); + } + } + } + + private void airAutoSendOrder() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); +// map.put("userId", userId); + map.put("macId", ziId); + map.put("code", sendMsg); + util.requestPostByAsynewApi(NetWorkUrl.SEARCH_ROUND, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("airAutoSendOrder", "onSuccess: " + respone); + + } + + @Override + public void onFail(String message) { + + } + }); + } + + private void queryNextTimer() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceId", deviceId); + map.put("deviceType", AIR_TAG); + map.put("deviceModel", devicesBean.getDeviceModel()); + netWorkUtil.requestGetByAsy(NetWorkUrl.QUERY_NEXT_TIMER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryNextTimer", "ShareDeviceActivity onSuccess()" + respone); + Z1TimeEntity obj = JSON.parseObject(respone, Z1TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void queryAirLastStatus() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", AIR_TAG); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryAirLastStatus", "ShareDeviceActivity onSuccess()" + respone); + AirStateEntity obj = JSON.parseObject(respone, AirStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case ADD_CHILDDEVICE_SUCCESS: + AddChildDeviceEntity entity1 = (AddChildDeviceEntity) msg.obj; + deviceId = entity1.getObj().getId(); + ToastUtil.show(getContext(), entity1.getMsg()); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + EventBus.getDefault().post( + new EventBusEntity("关闭")); + } + }, 0); + isAdd = false; + isTestControl = false; + setAirStage(); + break; + case ADD_CHILDDEVICE_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case AIR_SURE_ORDER_SUCCESS: + // addChildDevice(AIR_TAG, "空调"); + break; + case QUERY_NEXT_TIMER_SUCCESS: + Z1TimeEntity entity12 = (Z1TimeEntity) msg.obj; + if (entity12.getData() != null && !TextUtils.isEmpty(entity12.getData().getMin())) { + String cmdType = entity12.getData().getCmdType(); + int restMin = Integer.parseInt(entity12.getData().getMin()); + if (restMin < 60) { + if (cmdType.equals("1")) { + tv_next_time.setText(restMin + "分钟后开启"); + } else { + tv_next_time.setText(restMin + "分钟后关闭"); + } + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + if (cmdType.equals("1")) { + tv_next_time.setText(hour + "小时后开启"); + } else { + tv_next_time.setText(hour + "小时后关闭"); + } + } else { + if (cmdType.equals("1")) { + tv_next_time.setText(hour + "小时" + minite + "分钟后开启"); + } else { + tv_next_time.setText(hour + "小时" + minite + "分钟后关闭"); + } + } + } + tv_next_week.setText(""); + } else if (entity12.getData() != null) { + switch (entity12.getData().getWeek().toString()) { + case "1": + tv_next_week.setText("周日"); + break; + case "2": + tv_next_week.setText("周一"); + break; + case "3": + tv_next_week.setText("周二"); + break; + case "4": + tv_next_week.setText("周三"); + break; + case "5": + tv_next_week.setText("周四"); + break; + case "6": + tv_next_week.setText("周五"); + break; + case "7": + tv_next_week.setText("周六"); + break; + } + tv_next_time.setText(entity12.getData().getTime().toString()); + if (entity12.getData().getCmdType().toString().equals("1")) { + tv_next_time_state.setText(R.string.open); + } else { + tv_next_time_state.setText(getString(R.string.close)); + + } + } else { + tv_next_week.setText(""); + tv_next_time.setText(""); + tv_next_time_state.setText(""); + } + break; + case AIR_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (airStateTag.equals("1") || (!isTestControl && !isAdd)) { + if (nettyEntity.getSwitch().toString().equals("1")) { + isOpen = true; + if (nettyEntity.getTemp() != null) { + airTempoC.setVisibility(View.VISIBLE); + airTempicon.setText(" " + nettyEntity.getTemp().toString() + "℃"); + } + if (nettyEntity.getModel() != null) { + switch (nettyEntity.getModel().toString()) { + case "1": + //制冷 + airTopBg.setBackground(getResources().getDrawable(R.drawable.pic_refrigeration_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getResources().getDrawable(R.drawable.icon_cold)); + break; + case "4": + //制热 + airTopBg.setBackground(getResources().getDrawable(R.drawable.pic_heating_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getResources().getDrawable(R.drawable.icon_hot)); + break; + case "0": + break; + case "2": + //除湿 + airTopBg.setBackground(getResources().getDrawable(R.drawable.pic_dehumidify_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getResources().getDrawable(R.drawable.icon_chushi)); + break; + case "3": + airIconStation.setVisibility(View.GONE); + break; + } + } + + if (nettyEntity.getSpeed() != null) { + switch (nettyEntity.getSpeed().toString()) { + case "0": + airWindIcon.setText("自动风"); + break; + case "1": + airWindIcon.setText("低速风"); + break; + case "2": + airWindIcon.setText("中速风"); + break; + case "3": + airWindIcon.setText("高速风"); + break; + } + } + + if (nettyEntity.getScreen() != null) { + switch (nettyEntity.getSleep().toString()) { + case "0": + airSleepIcon.setVisibility(View.GONE); + break; + case "1": + airSleepIcon.setVisibility(View.VISIBLE); + break; + } + } + } else { + airTopBg.setBackground(getResources().getDrawable(R.drawable.pic_close_back)); + isOpen = false; + airTempicon.setText("已关闭"); + airTempoC.setVisibility(View.GONE); + airIconStation.setVisibility(View.GONE); + airWindIcon.setText(""); + } + } + break; + case SEND_CONTROL_ORDER_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case QUERY_AIR_LASTSTATUS_SUCCESS: + AirStateEntity airStateEntity = (AirStateEntity) msg.obj; + if (airStateTag.equals("1") || (!isTestControl && !isAdd)) { + if (airStateEntity.getData() != null && airStateEntity.getData().getAirSwitch() != null && airStateEntity.getData().getAirSwitch().toString().equals("1")) { + isOpen = true; + if (airStateEntity.getData().getTemp() != null) { + airTempoC.setVisibility(View.VISIBLE); + airTempicon.setText(" " + airStateEntity.getData().getTemp().toString() + "℃"); + } + if (airStateEntity.getData().getModel() != null) { + switch (airStateEntity.getData().getModel().toString()) { + case "1": + //制冷 + airTopBg.setBackground(getResources().getDrawable(R.drawable.pic_refrigeration_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getResources().getDrawable(R.drawable.icon_cold)); + break; + case "4": + //制热 + airTopBg.setBackground(getResources().getDrawable(R.drawable.pic_heating_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getResources().getDrawable(R.drawable.icon_hot)); + break; + case "0": + break; + case "2": + //除湿 + airTopBg.setBackground(getResources().getDrawable(R.drawable.pic_dehumidify_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getResources().getDrawable(R.drawable.icon_chushi)); + break; + case "3": + airIconStation.setVisibility(View.GONE); + break; + } + } + + if (airStateEntity.getData().getSpeed() != null) { + switch (airStateEntity.getData().getSpeed().toString()) { + case "0": + airWindIcon.setText("自动风"); + break; + case "1": + airWindIcon.setText("低速风"); + break; + case "2": + airWindIcon.setText("中速风"); + break; + case "3": + airWindIcon.setText("高速风"); + break; + } + } + + if (airStateEntity.getData().getAirScreen() != null) { + switch (airStateEntity.getData().getAirScreen().toString()) { + case "0": + airSleepIcon.setVisibility(View.GONE); + break; + case "1": + airSleepIcon.setVisibility(View.VISIBLE); + break; + } + } + } else { + airTopBg.setBackground(getResources().getDrawable(R.drawable.pic_close_back)); + isOpen = false; + airTempicon.setText("已关闭"); + airTempoC.setVisibility(View.GONE); + airIconStation.setVisibility(View.GONE); + airWindIcon.setText(""); + } + } + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_timing: + Intent intent = new Intent(getContext(), SwitcherTimeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("id", devicesBean.getId()); + intent.putExtra("deviceType", AIR_TAG); + startActivity(intent); + break; + case R.id.tv_fan_open: + if (isAdd || isTestControl) { + airAutoTest(AIR_OPEN); + } else { + subsetControl("power"); + } + /*//发送开关指令 + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_OPEN)); + } else + sendAirControlOrder(AIR_OPEN);*/ + break; + case R.id.tv_close_air: + if (isAdd || isTestControl) { + airAutoTest(AIR_CLOSE); + } else { + subsetControl("poweroff"); + } + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_CLOSE)); + } else + sendAirControlOrder(AIR_CLOSE);*/ + break; + case R.id.tv_temperature_add: + if (isAdd || isTestControl) { + airAutoTest(AIR_TEM_ADD); + } else { + subsetControl("tempUp"); + } + /* if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_TEM_ADD)); + } else + sendAirControlOrder(AIR_TEM_ADD);*/ + break; + case R.id.tv_temperature_reduce: + if (isAdd || isTestControl) { + airAutoTest(AIR_TEM_REDUCE); + } else { + subsetControl("tempDown"); + } + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_TEM_REDUCE)); + } else + sendAirControlOrder(AIR_TEM_REDUCE);*/ + break; + case R.id.tv_air_wind_speed: + if (isAdd || isTestControl) { + airAutoTest(AIR_WIND_SPEED); + } else { + subsetControl("windSpeed"); + } + /* if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_WIND_SPEED)); + } else + sendAirControlOrder(AIR_WIND_SPEED);*/ + break; + case R.id.tv_right_left: + if (isAdd || isTestControl) { + airAutoTest(AIR_RIGHT_LEFT); + } else { + subsetControl("windHorizontal"); + } + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_RIGHT_LEFT)); + } else + sendAirControlOrder(AIR_RIGHT_LEFT)*/ + ; + break; + case R.id.tv_up_down: + if (isAdd || isTestControl) { + airAutoTest(AIR_UP_DOWN); + } else { + subsetControl("windVertical"); + } + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_UP_DOWN)); + } else + sendAirControlOrder(AIR_UP_DOWN);*/ + break; + case R.id.tv_cold: + if (isAdd || isTestControl) { + airAutoTest(AIR_COLD); + } else { + subsetControl("cold"); + } + /* if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_COLD)); + } else + sendAirControlOrder(AIR_COLD);*/ + break; + case R.id.tv_warm: + if (isAdd || isTestControl) { + airAutoTest(AIR_WARM); + } else { + subsetControl("heat"); + } + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_WARM)); + } else + sendAirControlOrder(AIR_WARM);*/ + break; + case R.id.tv_sleep: + if (isAdd || isTestControl) { + airAutoTest(AIR_SLEEP); + } else { + subsetControl("sleep"); + } + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_SLEEP)); + } else + sendAirControlOrder(AIR_SLEEP);*/ + break; + case R.id.tv_save_power: + if (isAdd || isTestControl) { + airAutoTest(AIR_POWER); + } else { + subsetControl(AIR_POWER); + } + /* if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_POWER)); + } else + sendAirControlOrder(AIR_POWER);*/ + break; + } + + } + + private void airAutoTest(String code) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); +// map.put("userId", userId); + map.put("macId", ziId); + map.put("code", code); + util.requestPostByAsynewApi(NetWorkUrl.SEND_CONTROL_AIR_ORDER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("airAutoSendOrder", "onSuccess: " + respone); + + } + + @Override + public void onFail(String message) { + + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", "0"); + map.put("deviceType", AIR_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + /*//发送开关指令 + private void sendAirControlOrder(String order) { + ShakeUtil.setShake(getContext()); + if (DensityUtil.isNetworkConnected(getContext())) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", userId); + map.put("macId", ziId); + map.put("sendMsg", order); + util.requestPostByAsyn(ziId, NetWorkUrl.SEND_CONTROL_AIR_ORDER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("sendAirControlOrder", "onSuccess: " + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + NettyHandlerUtil.getInstance(); + } else { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } else { + ToastUtil.show(getContext(), R.string.net_error); + } + }*/ + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onResume() { + super.onResume(); + queryNextTimer(); + queryAirLastStatus(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + //eventbus接收来自netty的信息 + public void onEventMainThread(AirControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + // Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); + NettyEntity nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (nettyEntity.getZiId().equals(ziId)) { + Message message = new Message(); + message.what = AIR_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(AirA1Fragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + AirA1Fragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/AirA2Fragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/AirA2Fragment.java new file mode 100644 index 0000000..12a1e73 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/AirA2Fragment.java @@ -0,0 +1,1318 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Context; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.AirControlEvent; +import com.yonsz.z1.database.entity.AirStateEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.NewModelSetEntity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.database.entity.entitya2.LoadEvent; +import com.yonsz.z1.database.entity.entitya2.SafeVoiceEntity; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmValueDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.mine.aboutversion.feature.Callback3; +import com.yonsz.z1.mine.aboutversion.feature.Callback4; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.version5.SwoitSyncActivity; +import com.yonsz.z1.version5.scene.ModelNewDetailActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.AIR_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.AIR_POWER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_FAIL; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS_AIR; +import static com.yonsz.z1.net.Constans.FAN_LEARN_ING; +import static com.yonsz.z1.net.Constans.INDEPENDENT_CODE_AC; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.QUERY_AIR_LASTSTATUS_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_AIR_LASTSTATUS_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_SAFETY_DETAIL_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_SAFETY_DETAIL_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_VOICECONTROLL_INFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.SKYWORTH_TV; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.CANCEL_DOWNLOAD; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETDETAIL; +import static com.yonsz.z1.net.NetWorkUrl.YKY_DOWNLOAD; + +/** + * Created by Administrator on 2018/8/8. + */ +public class AirA2Fragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private String ziId; + private TextView mOpenClose, mLeftRight, mUpDown, mSavePower, mCold, mWarm, mSleep, mAdd, mReduce, mWindSpeed, mCloseAir; + private TextView airTempicon, airTempoC, airWindIcon, tv_next_time, tv_next_time_state, tv_next_week; + private boolean mOpenCloseTag = false, mLeftRightTag = false, mUpDownTag = false, mSavePowerTag = false, mColdTag = false, mWarmTag = false, mSleepTag = false, mAddTag = false, mReduceTag = false, mWindSpeedTag = false; + private String airName; + private String cancelFlag; + private TextView mTiming; + private boolean isOpen = false; + private HorizontalProgressBarWithNumber mProgressBar; + private RelativeLayout progressRl; + private TextView progressTv; + private boolean isLoading = false; + private String airStateTag; + private TextView loadBackTv, tv_cancel_load; + private RelativeLayout mProgressTop; + private NettyEntity nettyEntity; + private LoadingDialog mLoadingDialog; + private String deviceIp = ""; + private RelativeLayout airTopBg; + private ImageView airIconStation; + private ImageView localControlIv; + private boolean isInit = false; + private Context context; + private List settings = new ArrayList<>(); + private boolean openInit = false; + + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LoadEvent event) { + String msg = event.getMsg(); + nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (nettyEntity.getDeviceType().equals(AIR_TAG)) { + Log.e("nettyUtilAir", msg); + Message message = new Message(); + message.what = FAN_LEARN_ING; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + // Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); + nettyEntity = JSON.parseObject(msg, NettyEntity.class); +// if (nettyEntity.getZiId().equals(ziId)) { + /*Message message = new Message(); + message.what = AIR_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message);*/ +// } + if (null != nettyEntity.getContext() && nettyEntity.getContext().getMacId().equals(ziId) && nettyEntity.getContext().getDeviceType().equals(AIR_TAG)) { + Message message = new Message(); + message.what = AIR_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + public static AirA2Fragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + AirA2Fragment fragment = new AirA2Fragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_air_a2, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + showLoadDiaolog(isVisibleToUser); + } + + private void showLoadDiaolog(boolean isVisibleToUser) { + if (isVisibleToUser && isInit) { + cancelFlag = devicesBean.getCancelFlag() + ""; + if (cancelFlag.equals("1")) { + EventBus.getDefault().post( + new CanloopEvent(true)); + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + getActivity().finish(); + break; + case 1: + reloadInfrared(AIR_TAG); + break; + } + } + }); + dialog.setContent(R.string.Data_not_downloaded_reloaded); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + + } + } + } + + private void initView(View fragView) { +// devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); +// devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + isInit = true; + airName = devicesBean.getDeviceBrand(); + ziId = devicesBean.getZiId(); + cancelFlag = devicesBean.getCancelFlag() + ""; + if (getArguments().get("loadStatus").toString().equals("1") && getUserVisibleHint() && getArguments().get("loadErrorType").toString().equals(AIR_TAG)) { + isLoading = true; + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + } else { + isLoading = false; + } + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + mProgressTop = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + airTopBg = (RelativeLayout) fragView.findViewById(R.id.rl_air_top_bg); + loadBackTv = (TextView) fragView.findViewById(R.id.tv_load_back); + tv_cancel_load = (TextView) fragView.findViewById(R.id.tv_cancel_load); + + airTempicon = (TextView) fragView.findViewById(R.id.tv_air_temp_icon); + airTempoC = (TextView) fragView.findViewById(R.id.tv_air_temp_oc); + airWindIcon = (TextView) fragView.findViewById(R.id.tv_air_wind_icon); + airIconStation = (ImageView) fragView.findViewById(R.id.iv_air_icon_station); + + mOpenClose = (TextView) fragView.findViewById(R.id.tv_fan_open); + mCloseAir = (TextView) fragView.findViewById(R.id.tv_close_air); + mLeftRight = (TextView) fragView.findViewById(R.id.tv_right_left); + mUpDown = (TextView) fragView.findViewById(R.id.tv_up_down); + // mSavePower = (TextView) fragView.findViewById(R.id.tv_save_power); + mCold = (TextView) fragView.findViewById(R.id.tv_cold); + mWarm = (TextView) fragView.findViewById(R.id.tv_warm); + mSleep = (TextView) fragView.findViewById(R.id.tv_sleep); + mAdd = (TextView) fragView.findViewById(R.id.tv_temperature_add); + mReduce = (TextView) fragView.findViewById(R.id.tv_temperature_reduce); + mWindSpeed = (TextView) fragView.findViewById(R.id.tv_air_wind_speed); + mTiming = (TextView) fragView.findViewById(R.id.tv_timing); + tv_next_time = (TextView) fragView.findViewById(R.id.tv_next_time); + tv_next_time_state = (TextView) fragView.findViewById(R.id.tv_next_time_state); + tv_next_week = (TextView) fragView.findViewById(R.id.tv_next_week); + + progressRl = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + progressTv = (TextView) fragView.findViewById(R.id.tv_progress_top); + mProgressBar = (HorizontalProgressBarWithNumber) fragView.findViewById(R.id.pg_horizontal_fan); + // mHandler.sendEmptyMessage(MSG_PROGRESS_UPDATE); + mTitleView = (TitleView) fragView.findViewById(R.id.title_aircondition); + mTitleView.clearBackGroud(); + if (airName != null && !airName.isEmpty()) { + mTitleView.setHead(airName); + } else { + mTitleView.setHead("空调"); + } + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isLoading) { + + } else { + getActivity().finish(); + } + } + + @Override + public void onFunction() { + if (isLoading) { + + } else { + if (devicesBean.getDeviceType().equals(SKYWORTH_TV)) { + showSkyworthBottom(); + } else { + showAirBootom(); + } + } + } + + @Override + public void onFunctionText() { + + } + }); + if (getArguments().get("loadErrorType").toString().equals("0")) { + showLoadDiaolog(getUserVisibleHint()); + } + if (isLoading) { + progressRl.setVisibility(View.VISIBLE); + } else { + progressRl.setVisibility(View.GONE); + } + } + + private void showAirBootom() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(devicesBean.getDeviceType(), ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //重新命名 + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", AIR_TAG); + startActivity(intent); + break; + case 4: + if (settings.size() == 0) { + NewModelSetEntity.DataBean.ModeAiDevicesBean.ControlsBean.SettingsBean settingsBean1 = new NewModelSetEntity.DataBean.ModeAiDevicesBean.ControlsBean.SettingsBean(); + settingsBean1.setName("mode"); + settingsBean1.setValue("cold"); + NewModelSetEntity.DataBean.ModeAiDevicesBean.ControlsBean.SettingsBean settingsBean2 = new NewModelSetEntity.DataBean.ModeAiDevicesBean.ControlsBean.SettingsBean(); + settingsBean2.setName("temperature"); + settingsBean2.setValue("26"); + settings.add(settingsBean1); + settings.add(settingsBean2); + } + ConfirmValueDialog dialog3 = new ConfirmValueDialog(getActivity(), settings, AIR_TAG, devicesBean.getDeviceModel(), new Callback4() { + @Override + public void callback(int position, String progress, String mode, List functions) { + switch (position) { + case 0: + break; + case 1: + // setControlOperation(settings, modeControlId, progress, mode); + for (NewModelSetEntity.DataBean.ModeAiDevicesBean.ControlsBean.SettingsBean settingsBean : settings) { + if (settingsBean.getName().equals("mode") || settingsBean.getName().equals("function")) { + settingsBean.setValue(mode); + } else { + settingsBean.setValue(progress); + } + } + subsetOpeninitSet(); + break; + } + } + }); + dialog3.setTopTxt("设置默认状态"); + dialog3.setContent("温度"); + dialog3.setCancleBtn(R.string.cancel); + dialog3.setSureBtn(R.string.save); + dialog3.setCancelable(false); + dialog3.show(); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent(); + if (openInit) { + dialog2.setLearnTxt("设置默认状态"); + } else { + dialog2.setLearn(); + } + dialog2.setContent(airName); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + private void showSkyworthBottom() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + + break; + case 1: + //查看同步设备信息 + Intent intent1 = new Intent(getContext(), SwoitSyncActivity.class); + intent1.putExtra("ziId", devicesBean.getZiId()); + startActivity(intent1); + break; + case 2: + + break; + case 3: + //修改设备位置 + Intent intent = new Intent(getActivity(), ModifyRoomActivity.class); + intent.putExtra("ziId", devicesBean.getZiId()); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivityForResult(intent, MODIFY_DEVICE_NAME); + break; + case 4: + break; + case 5: + + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setTop("修改设备位置"); + dialog2.setContent(); + dialog2.setLearn(); + dialog2.setModifyName(); + dialog2.setBottom("查看同步设备信息"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mCloseAir.setOnClickListener(this); + mLeftRight.setOnClickListener(this); + mUpDown.setOnClickListener(this); + // mSavePower.setOnClickListener(this); + mCold.setOnClickListener(this); + mWarm.setOnClickListener(this); + mSleep.setOnClickListener(this); + mAdd.setOnClickListener(this); + mReduce.setOnClickListener(this); + mWindSpeed.setOnClickListener(this); + + mTiming.setOnClickListener(this); + mProgressTop.setOnClickListener(this); + loadBackTv.setOnClickListener(this); + tv_cancel_load.setOnClickListener(this); + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void reloadInfrared(String deviceType) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("macId", ziId); + map.put("deviceType", deviceType); + map.put("rid", devicesBean.getRid()); + netWorkUtil.requestPostByAsynewApi(YKY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("reloadInfrared", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty message = JSON.parseObject(respone, SimpleEntty.class); + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_SUCCESS_AIR); + msg.obj = message; + mHandler.sendMessage(msg); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetOpeninitSet() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_OPENINIT_SET, map, JSONObject.toJSONString(settings), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("sceneModeTriggerSet", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SEND_VOICECONTROLL_INFO_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case FAN_LEARN_ING: + if (nettyEntity.getMacId().equals(ziId)) { + int countNum = Integer.parseInt(nettyEntity.getCountNum()); + int loadNum = Integer.parseInt(nettyEntity.getLoadNum()); + progressRl.setVisibility(View.VISIBLE); + mProgressBar.setProgress(100000 / countNum * loadNum / 1000); + if (loadNum / countNum == 1 && loadNum != 1) { + isLoading = false; + progressTv.setText(R.string.load_complete); + progressRl.setVisibility(View.GONE); + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + + } else { + initLoadDialog(); + } + devicesBean.setCancelFlag(0); + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + } + } + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case DELETE_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case QUERY_NEXT_TIMER_SUCCESS: + Z1TimeEntity entity12 = (Z1TimeEntity) msg.obj; + if (entity12.getData() != null && !TextUtils.isEmpty(entity12.getData().getMin())) { + String cmdType = entity12.getData().getCmdType(); + int restMin = Integer.parseInt(entity12.getData().getMin()); + if (restMin < 60) { + if (cmdType.equals("1")) { + tv_next_time.setText(restMin + "分钟后开启"); + } else { + tv_next_time.setText(restMin + "分钟后关闭"); + } + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + if (cmdType.equals("1")) { + tv_next_time.setText(hour + "小时后开启"); + } else { + tv_next_time.setText(hour + "小时后关闭"); + } + } else { + if (cmdType.equals("1")) { + tv_next_time.setText(hour + "小时" + minite + "分钟后开启"); + } else { + tv_next_time.setText(hour + "小时" + minite + "分钟后关闭"); + } + } + } + tv_next_week.setText(""); + } else if (entity12.getData() != null) { + switch (entity12.getData().getWeek().toString()) { + case "1": + tv_next_week.setText("周日"); + break; + case "2": + tv_next_week.setText("周一"); + break; + case "3": + tv_next_week.setText("周二"); + break; + case "4": + tv_next_week.setText("周三"); + break; + case "5": + tv_next_week.setText("周四"); + break; + case "6": + tv_next_week.setText("周五"); + break; + case "7": + tv_next_week.setText("周六"); + break; + } + tv_next_time.setText(entity12.getData().getTime().toString()); + if (entity12.getData().getCmdType().toString().equals("1")) { + tv_next_time_state.setText(R.string.open); + } else { + tv_next_time_state.setText(getString(R.string.close)); + + } + } else { + tv_next_week.setText(""); + tv_next_time.setText(""); + tv_next_time_state.setText(""); + } + break; + case QUERY_AIR_LASTSTATUS_SUCCESS: + AirStateEntity airStateEntity = (AirStateEntity) msg.obj; + if (airStateEntity.getData() != null && airStateEntity.getData().getOpenFlag() != null && airStateEntity.getData().getOpenFlag().equals("1")) { + isOpen = true; + if (airStateEntity.getData().getTemp() != null) { + airTempoC.setVisibility(View.VISIBLE); + airTempicon.setText(" " + airStateEntity.getData().getTemp().toString()); + } + if (airStateEntity.getData().getModel() != null) { + switch (airStateEntity.getData().getModel().toString()) { + case "1": + //制冷 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_refrigeration_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_cold)); + break; + case "4": + //制热 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_heating_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_hot)); + break; + case "0": + break; + case "2": + //除湿 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_dehumidify_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_chushi)); + break; + case "3": + airIconStation.setVisibility(View.GONE); + break; + } + } + + if (airStateEntity.getData().getSpeed() != null) { + switch (airStateEntity.getData().getSpeed().toString()) { + case "0": + airWindIcon.setText("自动风"); + break; + case "1": + airWindIcon.setText("低速风"); + break; + case "2": + airWindIcon.setText("中速风"); + break; + case "3": + airWindIcon.setText("高速风"); + break; + } + } + } else { + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_close_back)); + isOpen = false; + airTempicon.setText("已关闭"); + airTempoC.setVisibility(View.GONE); + airIconStation.setVisibility(View.GONE); + airWindIcon.setText(""); + } + break; + case AIR_CONTROL_SUCCESS: + /*nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (!nettyEntity.getDeviceIds().contains(devicesBean.getId())) { + return; + } + if (nettyEntity.getOpenFlag().toString().equals("1")) { + isOpen = true; + if (nettyEntity.getTemp() != null) { + airTempoC.setVisibility(View.VISIBLE); + airTempicon.setText(" " + nettyEntity.getTemp().toString()); + } + if (nettyEntity.getModel() != null) { + switch (nettyEntity.getModel().toString()) { + case "1": + //制冷 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_refrigeration_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_cold)); + break; + case "4": + //制热 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_heating_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_hot)); + break; + case "0": + break; + case "2": + //除湿 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_dehumidify_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_chushi)); + break; + case "3": + airIconStation.setVisibility(View.GONE); + break; + } + } + + if (nettyEntity.getSpeed() != null) { + switch (nettyEntity.getSpeed().toString()) { + case "0": + airWindIcon.setText("自动风"); + break; + case "1": + airWindIcon.setText("低速风"); + break; + case "2": + airWindIcon.setText("中速风"); + break; + case "3": + airWindIcon.setText("高速风"); + break; + } + } + } else { + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_close_back)); + isOpen = false; + airTempicon.setText("已关闭"); + airTempoC.setVisibility(View.GONE); + airIconStation.setVisibility(View.GONE); + airWindIcon.setText(""); + } + break;*/ + nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + String speed; + String model; + String aSwitch; + if (null != nettyEntity.getContext() && !devicesBean.getDeviceModel().equals("2")) { + aSwitch = nettyEntity.getContext().getLastInfo().getOpenFlag(); + speed = nettyEntity.getContext().getLastInfo().getSpeed(); + model = nettyEntity.getContext().getLastInfo().getModel(); + } else { + aSwitch = nettyEntity.getSwitch(); + speed = nettyEntity.getSpeed(); + model = nettyEntity.getModel(); + } + if (aSwitch.toString().equals("1")) { + isOpen = true; + if (null != nettyEntity.getContext() && nettyEntity.getContext().getLastInfo().getTemp() != null) { + airTempoC.setVisibility(View.VISIBLE); + airTempicon.setText(" " + nettyEntity.getContext().getLastInfo().getTemp().toString()); + } + if (model != null) { + switch (model.toString()) { + case "1": + //制冷 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_refrigeration_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_cold)); + break; + case "4": + //制热 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_heating_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_hot)); + break; + case "0": + break; + case "2": + //除湿 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_dehumidify_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_chushi)); + break; + case "3": + airIconStation.setVisibility(View.GONE); + break; + } + } + + if (speed != null) { + switch (speed.toString()) { + case "0": + airWindIcon.setText("自动风"); + break; + case "1": + airWindIcon.setText("低速风"); + break; + case "2": + airWindIcon.setText("中速风"); + break; + case "3": + airWindIcon.setText("高速风"); + break; + } + } + } else { + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_close_back)); + isOpen = false; + airTempicon.setText("已关闭"); + airTempoC.setVisibility(View.GONE); + airIconStation.setVisibility(View.GONE); + airWindIcon.setText(""); + } + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS_AIR: + progressRl.setVisibility(View.VISIBLE); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case SEND_VOICECONTROLL_INFO_SUCCESS: + ToastUtil.show(getContext(), "保存成功"); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + case SELECT_SAFETY_DETAIL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SELECT_SAFETY_DETAIL_SUCCESS: + SafeVoiceEntity safeVoiceEntity = (SafeVoiceEntity) msg.obj; + if (null != safeVoiceEntity.getData().getAbilities()) { + openInit = safeVoiceEntity.getData().getAbilities().isOpenInit(); + } + if (null != safeVoiceEntity.getData().getOpenInit() && safeVoiceEntity.getData().getOpenInit().size() != 0) { + settings.clear(); + for (SafeVoiceEntity.DataBean.KeysBean keysBean : safeVoiceEntity.getData().getOpenInit()) { + NewModelSetEntity.DataBean.ModeAiDevicesBean.ControlsBean.SettingsBean settingsBean = new NewModelSetEntity.DataBean.ModeAiDevicesBean.ControlsBean.SettingsBean(); + settingsBean.setName(keysBean.getName()); + settingsBean.setValue(keysBean.getValue()); + settings.add(settingsBean); + } + } + break; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_timing: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + Intent intent = new Intent(getContext(), SwitcherTimeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("id", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + startActivity(intent); + break; + case R.id.tv_fan_open: + subsetControl("power"); + //发送开关指令 + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_OPEN)); + } else + controllerDevice(AIR_OPEN);*/ + break; + case R.id.tv_close_air: + subsetControl("poweroff"); + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_CLOSE)); + } else + controllerDevice(AIR_CLOSE);*/ + break; + case R.id.tv_temperature_add: + subsetControl("tempUp"); + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_TEM_ADD)); + } else + controllerDevice(AIR_TEM_ADD);*/ + break; + case R.id.tv_temperature_reduce: + subsetControl("tempDown"); + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_TEM_REDUCE)); + } else + controllerDevice(AIR_TEM_REDUCE);*/ + break; + case R.id.tv_air_wind_speed: + subsetControl("windSpeed"); + /* if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_WIND_SPEED)); + } else + controllerDevice(AIR_WIND_SPEED);*/ + break; + case R.id.tv_right_left: + subsetControl("windHorizontal"); + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_RIGHT_LEFT)); + } else + controllerDevice(AIR_RIGHT_LEFT);*/ + break; + case R.id.tv_up_down: + subsetControl("windVertical"); + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_UP_DOWN)); + } else + controllerDevice(AIR_UP_DOWN);*/ + break; + case R.id.tv_cold: + subsetControl("cold"); + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_COLD)); + } else + controllerDevice(AIR_COLD);*/ + break; + case R.id.tv_warm: + subsetControl("heat"); + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_WARM)); + } else + controllerDevice(AIR_WARM);*/ + break; + case R.id.tv_sleep: + subsetControl("dehumidification"); + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_SLEEP)); + } else + controllerDevice(AIR_SLEEP);*/ + break; + case R.id.tv_save_power: + subsetControl(AIR_POWER); + /* if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(AIR_POWER)); + } else + controllerDevice(AIR_POWER);*/ + break; + case R.id.rl_progress_top: + break; + case R.id.tv_load_back: + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + case R.id.tv_cancel_load: + cancelDownload(); + break; + } + } + + private void cancelDownload() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", AIR_TAG); + netWorkUtil.requestPostByAsynewApi(CANCEL_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancelDownload", "ShareDeviceActivity onSuccess()" + respone); + getActivity().finish(); + } + + @Override + public void onFail(String message) { + } + }); + } + + @Override + public void onResume() { + super.onResume(); + if (devicesBean.getDeviceType().equals(AIR_TAG)) { + queryNextTimer(); + subsetGetDetail(); + } + queryAirLastStatus(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + + } + + private void subsetGetDetail() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETDETAIL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetDetail", "onSuccess()" + respone); + SafeVoiceEntity obj = JSON.parseObject(respone, SafeVoiceEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_SAFETY_DETAIL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_SAFETY_DETAIL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_SAFETY_DETAIL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void queryNextTimer() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceId", devicesBean.getId()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("deviceModel", devicesBean.getDeviceModel()); + netWorkUtil.requestGetByAsy(NetWorkUrl.QUERY_NEXT_TIMER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryNextTimer", "ShareDeviceActivity onSuccess()" + respone); + Z1TimeEntity obj = JSON.parseObject(respone, Z1TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void queryAirLastStatus() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryAirLastStatus", "ShareDeviceActivity onSuccess()" + respone); + AirStateEntity obj = JSON.parseObject(respone, AirStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initLoadDialog() { + if (null != mLoadingDialog && !mLoadingDialog.isShowing()) { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(AirA2Fragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + AirA2Fragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/AirCleanerFragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/AirCleanerFragment.java new file mode 100644 index 0000000..0b0a27a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/AirCleanerFragment.java @@ -0,0 +1,1276 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.AlphaAnimation; +import android.view.animation.AnimationUtils; +import android.view.animation.RotateAnimation; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.Key5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.database.entity.entitya2.KeyEntity; +import com.yonsz.z1.database.entity.entitya2.LearnWhatEvent; +import com.yonsz.z1.database.entity.entitya2.LoadEvent; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.devicea2.LearnGuideA2Activity; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.customview.SaveCodeDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.mine.aboutversion.feature.Callback3; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_FAIL; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS_FAN; +import static com.yonsz.z1.net.Constans.FAN_LEARN_ING; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_BRAND_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.CANCEL_DOWNLOAD; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETCONTROLKEYS; +import static com.yonsz.z1.net.NetWorkUrl.YKY_DOWNLOAD; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class AirCleanerFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private TextView openFan, closeFan, timing, childlock, auto, atomize, sleep, anion, sterilize, windAdd, windReduce; + private TextView openFanBg, closeFanBg, timingBg, childlockBg, autoBg, atomizeBg, sleepBg, anionBg, sterilizeBg, windAddBg, windReduceBg; + private boolean openTag = false, closeTag = false, timeTag = false, childlockTag = false, autoTag = false, atomizeTag = false, sleepTag = false, anionTag = false, sterilizeTag, windAddTag, windReduceTag; + private LinearLayout learningLl, fanTopLl; + private AlphaAnimation mAlphaAnimation; + private boolean isLearn = false; + private String ziId; + private String fanName; + private HorizontalProgressBarWithNumber mProgressBar; + private RelativeLayout progressRl; + private TextView progressTv; + private boolean isLoading = false, isShow = false; + private TextView loadBackTv, tv_cancel_load, learnInstruction; + private LoadingDialog mLoadingDialog; + private String cancelFlag; + private ImageView localControlIv; + private ImageView fanBladeIv; + private RotateAnimation rotateAnimation; + private RelativeLayout rl_learn_guide; + private boolean isShowLearnGuide = false; + private boolean isInit = false; + private ImageView windAddIv, windReduceIv; + + public static AirCleanerFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + AirCleanerFragment fragment = new AirCleanerFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LoadEvent event) { + String msg = event.getMsg(); + NettyEntity nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (nettyEntity.getDeviceType().equals(AIR_CLEANER)) { + Log.e("nettyUtilFan", msg); + Message message = new Message(); + message.what = FAN_LEARN_ING; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + public void onEventMainThread(LearnWhatEvent event) { + /*String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = FAN_LEARN_WHAT; + message.obj = msg; + mHandler.sendMessage(message);*/ + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_air_cleaner, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + showLoadDiaolog(getUserVisibleHint()); + } + + private void showLoadDiaolog(boolean isVisibleToUser) { + if (isVisibleToUser && isInit) { + cancelFlag = devicesBean.getCancelFlag() + ""; + if (cancelFlag.equals("1")) { + EventBus.getDefault().post( + new CanloopEvent(true)); + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + getActivity().finish(); + break; + case 1: + reloadInfrared(AIR_CLEANER); + break; + } + } + }); + dialog.setContent(R.string.Data_not_downloaded_reloaded); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(devicesBean.getId(), AIR_CLEANER); + if (isLearn) { +// selectConnDevicePushkey(); + subsetGetControlKeys(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initView(View fragView) { + isInit = true; + fanName = devicesBean.getDeviceBrand(); + ziId = devicesBean.getZiId(); + if (getArguments().get("loadStatus").toString().equals("1") && getUserVisibleHint() && getArguments().get("loadErrorType").toString().equals(AIR_CLEANER)) { + isLoading = true; + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + } else { + isLoading = false; + } + if (null != getArguments().get("acStateTag")) { + isShow = true; + } else { + isShow = false; + } + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + windAddIv = (ImageView) fragView.findViewById(R.id.iv_wind_add); + windReduceIv = (ImageView) fragView.findViewById(R.id.iv_wind_reduce); + + progressRl = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + rl_learn_guide = (RelativeLayout) fragView.findViewById(R.id.rl_learn_guide); + loadBackTv = (TextView) fragView.findViewById(R.id.tv_load_back); + tv_cancel_load = (TextView) fragView.findViewById(R.id.tv_cancel_load); + + openFan = (TextView) fragView.findViewById(R.id.tv_fan_open); + closeFan = (TextView) fragView.findViewById(R.id.tv_fan_close); + timing = (TextView) fragView.findViewById(R.id.tv_timing); + childlock = (TextView) fragView.findViewById(R.id.tv_childlock); + auto = (TextView) fragView.findViewById(R.id.tv_auto); + atomize = (TextView) fragView.findViewById(R.id.tv_atomize); + sleep = (TextView) fragView.findViewById(R.id.tv_sleep); + anion = (TextView) fragView.findViewById(R.id.tv_anion); + sterilize = (TextView) fragView.findViewById(R.id.tv_sterilize); + windAdd = (TextView) fragView.findViewById(R.id.tv_wind_add); + windReduce = (TextView) fragView.findViewById(R.id.tv_wind_reduce); + + openFanBg = (TextView) fragView.findViewById(R.id.tv_fan_open_bg); + closeFanBg = (TextView) fragView.findViewById(R.id.tv_fan_close_bg); + timingBg = (TextView) fragView.findViewById(R.id.tv_timing_bg); + childlockBg = (TextView) fragView.findViewById(R.id.tv_childlock_bg); + autoBg = (TextView) fragView.findViewById(R.id.tv_auto_bg); + atomizeBg = (TextView) fragView.findViewById(R.id.tv_atomize_bg); + sleepBg = (TextView) fragView.findViewById(R.id.tv_sleep_bg); + anionBg = (TextView) fragView.findViewById(R.id.tv_anion_bg); + sterilizeBg = (TextView) fragView.findViewById(R.id.tv_sterilize_bg); + windAddBg = (TextView) fragView.findViewById(R.id.tv_wind_add_bg); + windReduceBg = (TextView) fragView.findViewById(R.id.tv_wind_reduce_bg); + + + fanTopLl = (LinearLayout) fragView.findViewById(R.id.ll_fan_top); + learnInstruction = (TextView) fragView.findViewById(R.id.tv_learn_instruction); + learningLl = (LinearLayout) fragView.findViewById(R.id.ll_learning); + fanBladeIv = (ImageView) fragView.findViewById(R.id.iv_fan_blade); + + progressTv = (TextView) fragView.findViewById(R.id.tv_progress_top); + mProgressBar = (HorizontalProgressBarWithNumber) fragView.findViewById(R.id.pg_horizontal_fan); + // mHandler.sendEmptyMessage(MSG_PROGRESS_UPDATE); + mTitleView = (TitleView) fragView.findViewById(R.id.title_fan); + mTitleView.clearBackGroud(); + if (!fanName.isEmpty()) { + mTitleView.setHead(fanName); + } else { + mTitleView.setHead("净化器"); + } + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + rotateAnimation = (RotateAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.rotate360_fan_anim); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isLoading) { + + } else { + getActivity().finish(); + } + } + + @Override + public void onFunction() { + if (isLoading) { + + } else { + if (isLearn) { + isLearn = false; + //查询学习按键 + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(AIR_CLEANER, ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //重新命名 + showSavecode(); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", AIR_CLEANER); + startActivity(intent); + break; + case 4: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //遥控学习 + isLearn = true; + //查询学习按键 + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent("保存到码库"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + } + + @Override + public void onFunctionText() { + + } + }); + + if (isLoading) { + progressRl.setVisibility(View.VISIBLE); + } else { + progressRl.setVisibility(View.GONE); + subsetGetControlKeys(); + } + if (isShow) { + showSavecode(); + } + showLoadDiaolog(getUserVisibleHint()); + } + + private void showSavecode() { + SaveCodeDialog dialog2 = new SaveCodeDialog(getContext(), new Callback3() { + @Override + public void callback(int position, String positionName, String model) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positionName.trim())) { + ToastUtil.show(getContext(), "请输入码库名称"); + return; + } + infraredHistoryAdd(positionName, model); + break; + } + } + }); + dialog2.setOldName(devicesBean.getDeviceBrand()); + dialog2.setCancleBtn("不用了"); + dialog2.setSureBtn(R.string.sure); + dialog2.setCancelable(false); + dialog2.show(); + } + + private void reloadInfrared(String deviceType) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("macId", ziId); + map.put("deviceType", deviceType); + map.put("rid", devicesBean.getRid()); + netWorkUtil.requestPostByAsynewApi(YKY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("reloadInfrared", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty message = JSON.parseObject(respone, SimpleEntty.class); + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_SUCCESS_FAN); + msg.obj = message; + mHandler.sendMessage(msg); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initListener() { + openFan.setOnClickListener(this); + closeFan.setOnClickListener(this); + timing.setOnClickListener(this); + atomize.setOnClickListener(this); + anion.setOnClickListener(this); + sterilize.setOnClickListener(this); + windAdd.setOnClickListener(this); + windReduce.setOnClickListener(this); + sleep.setOnClickListener(this); + auto.setOnClickListener(this); + childlock.setOnClickListener(this); + loadBackTv.setOnClickListener(this); + tv_cancel_load.setOnClickListener(this); + progressRl.setOnClickListener(this); + rl_learn_guide.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + if (isLearn) { + switch (v.getId()) { + case R.id.tv_fan_open: + toLearnByNmber("power"); + break; + case R.id.tv_fan_close: + toLearnByNmber("poweroff"); + break; + case R.id.tv_timing: + toLearnByNmber("timer"); + break; + case R.id.tv_childlock: + toLearnByNmber("childlock"); + break; + case R.id.tv_auto: + toLearnByNmber("auto"); + break; + case R.id.tv_atomize: + toLearnByNmber("atomize"); + break; + case R.id.tv_sleep: + toLearnByNmber("sleep"); + break; + case R.id.tv_anion: + toLearnByNmber("anion"); + break; + case R.id.tv_sterilize: + toLearnByNmber("sterilize"); + break; + case R.id.tv_wind_add: + toLearnByNmber("speed"); + break; + case R.id.tv_wind_reduce: + toLearnByNmber("windspeedreduction"); + break; + case R.id.tv_load_back: + SharedpreferencesUtil.save(ziId + AIR_CLEANER, true); + if (isLoading) { + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + } else { + getActivity().finish(); + } + break; + case R.id.rl_progress_top: + break; + } + } else { + switch (v.getId()) { + case R.id.tv_fan_open: + subsetControl("power"); + break; + case R.id.tv_fan_close: + subsetControl("poweroff"); + break; + case R.id.tv_timing: + subsetControl("timer"); + break; + case R.id.tv_childlock: + subsetControl("childlock"); + break; + case R.id.tv_auto: + subsetControl("auto"); + break; + case R.id.tv_atomize: + subsetControl("atomize"); + break; + case R.id.tv_sleep: + subsetControl("sleep"); + break; + case R.id.tv_anion: + subsetControl("anion"); + break; + case R.id.tv_sterilize: + subsetControl("sterilize"); + break; + case R.id.tv_wind_add: + subsetControl("speed"); + break; + case R.id.tv_wind_reduce: + subsetControl("windspeedreduction"); + break; + case R.id.tv_load_back: + SharedpreferencesUtil.save(ziId + AIR_CLEANER, true); + if (isLoading) { + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + } else { + getActivity().finish(); + } + break; + case R.id.rl_progress_top: + break; + case R.id.tv_cancel_load: + cancelDownload(); + break; + case R.id.rl_learn_guide: + rl_learn_guide.setVisibility(View.GONE); + isShowLearnGuide = false; + SharedpreferencesUtil.save(ziId + AIR_CLEANER, false); + break; + } + } + } + + private void toLearnByNmber(String number) { + Intent intent; + intent = new Intent(getContext(), LearnGuideA2Activity.class); + intent.putExtra("learnGuide", number); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", AIR_CLEANER); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivityForResult(intent, LEARN_RESULT); + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", AIR_CLEANER); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void cancelDownload() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", AIR_CLEANER); + netWorkUtil.requestPostByAsynewApi(CANCEL_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancelDownload", "ShareDeviceActivity onSuccess()" + respone); + getActivity().finish(); + } + + @Override + public void onFail(String message) { + } + }); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case FAN_LEARN_ING: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + float countNum = Integer.parseInt(nettyEntity.getCountNum()); + float loadNum = Integer.parseInt(nettyEntity.getLoadNum()); + progressRl.setVisibility(View.VISIBLE); + mProgressBar.setProgress((int) (loadNum / countNum * 100)); + if (loadNum / countNum == 1) { + isLoading = false; + progressTv.setText(R.string.load_complete); + isShowLearnGuide = true; + progressRl.setVisibility(View.GONE); + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + + } else { + initLoadDialog(); + } + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + subsetGetControlKeys(); + } + }, 2000); + devicesBean.setCancelFlag(0); + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + /*if (isShow) { + isShow = false; + showSavecode(); + }*/ + } + break; + case SELECT_CONNDEVICE_PUSHKEY_SUCCESS: + Key5Entity entity1 = (Key5Entity) msg.obj; + setIsLearned(entity1); + /*KeyEntity entity1 = (KeyEntity) msg.obj; + List entity1Obj = entity1.getObj(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + Log.i("getPushKey", "FanA2Activity callBackUiThread()" + entity1Obj.get(i).getPushKey()); + switch (entity1Obj.get(i).getPushKey()) { + case "01": + openTag = true; + break; + case "02": + + break; + case "03": + break; + case "04": + timeTag = true; + break; + case "05": + closeTag = true; + break; + case "06": + break; + case "07": + break; + } + } + }*/ + if (isLearn) { + showLearn(); + } else { + showControl(); + } + if (mLoadingDialog != null) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + if (isShowLearnGuide || SharedpreferencesUtil.get(ziId + AIR_CLEANER)) { + rl_learn_guide.setVisibility(View.VISIBLE); + } else { + rl_learn_guide.setVisibility(View.GONE); + } + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case DELETE_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS_FAN: + progressRl.setVisibility(View.VISIBLE); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (null != nettyEntity1.getContext() && !nettyEntity1.getContext().getDeviceType().isEmpty()) { + if (!nettyEntity1.getContext().getDeviceId().equals(devicesBean.getId())) { + return; + } + if (null != nettyEntity1.getContext().getDeviceType() && nettyEntity1.getContext().getDeviceType().equals(AIR_CLEANER) && !TextUtils.isEmpty(nettyEntity1.getContext().getLastInfo().getOpenFlag())) { + if (nettyEntity1.getContext().getLastInfo().getOpenFlag().equals("1")) { + fanBladeIv.startAnimation(rotateAnimation); + ToastUtil.show(getContext(), "净化器已打开"); + } else { + fanBladeIv.clearAnimation(); + ToastUtil.show(getContext(), "净化器已关闭"); + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + fanBladeIv.startAnimation(rotateAnimation); + } else { + fanBladeIv.clearAnimation(); + } + break; + case UPDATEBLIND_ENTITYNAME_SUCCESS: + ToastUtil.show(getContext(), "保存成功"); + break; + case UPDATEBLIND_ENTITYNAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + private void subsetGetControlKeys() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", AIR_CLEANER); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETCONTROLKEYS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetControlKeys", "onSuccess()" + respone); + Key5Entity obj = JSON.parseObject(respone, Key5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_BRAND_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void setIsLearned(Key5Entity entity1) { + List entity1Obj = entity1.getData(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + switch (entity1Obj.get(i).getName()) { + case "power": + openTag = true; + break; + case "poweroff": + closeTag = true; + break; + case "timer": + timeTag = true; + break; + case "speed": + windAddTag = true; + break; + case "sleep": + sleepTag = true; + break; + case "auto": + autoTag = true; + break; + case "childlock": + childlockTag = true; + break; + case "windspeedreduction": + windReduceTag = true; + break; + case "atomize": + atomizeTag = true; + break; + case "anion": + anionTag = true; + break; + case "sterilize": + sterilizeTag = true; + break; + } + } + } + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void showLearn() { + mAlphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.alpha_anim_device); + mTitleView.setHeadFuntionTxt(R.string.save); + mTitleView.setHeadFuntionGone(); + fanTopLl.setVisibility(View.VISIBLE); + learningLl.setVisibility(View.VISIBLE); + setLearnAlph(); + // learnShowMark(); + showLearnInstruction(); + } + + private void showLearnInstruction() { + if (!openTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.open); + openFanBg.startAnimation(mAlphaAnimation); + } else if (!closeTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(getString(R.string.close)); + closeFanBg.startAnimation(mAlphaAnimation); + } else if (!windAddTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("风速+"); + windAddBg.startAnimation(mAlphaAnimation); + } else if (!windReduceTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("风速-"); + windReduceBg.startAnimation(mAlphaAnimation); + } else if (!childlockTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("童锁"); + childlockBg.startAnimation(mAlphaAnimation); + } else if (!autoTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("自动"); + autoBg.startAnimation(mAlphaAnimation); + } else if (!timeTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.time); + timingBg.startAnimation(mAlphaAnimation); + } else if (!atomizeTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("雾化"); + atomizeBg.startAnimation(mAlphaAnimation); + } else if (!sleepTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("睡眠"); + sleepBg.startAnimation(mAlphaAnimation); + } else if (!anionTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("负离子"); + anionBg.startAnimation(mAlphaAnimation); + } else if (!sterilizeTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("杀菌"); + sterilizeBg.startAnimation(mAlphaAnimation); + } else { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.open); + openFanBg.startAnimation(mAlphaAnimation); + } + } + + private void clearAlph() { + timingBg.clearAnimation(); + atomizeBg.clearAnimation(); + anionBg.clearAnimation(); + sterilizeBg.clearAnimation(); + windAddBg.clearAnimation(); + windReduceBg.clearAnimation(); + sleepBg.clearAnimation(); + autoBg.clearAnimation(); + childlockBg.clearAnimation(); + openFanBg.clearAnimation(); + closeFanBg.clearAnimation(); + } + + private void setLearnAlph() { + windAddIv.setAlpha(1.0f); + windReduceIv.setAlpha(1.0f); + openFan.setAlpha(1.0f); + openFan.setEnabled(true); + timing.setAlpha(1.0f); + timing.setEnabled(true); + atomize.setAlpha(1.0f); + atomize.setEnabled(true); + anion.setAlpha(1.0f); + anion.setEnabled(true); + sterilize.setAlpha(1.0f); + sterilize.setEnabled(true); + windAdd.setAlpha(1.0f); + windAdd.setEnabled(true); + windReduce.setAlpha(1.0f); + windReduce.setEnabled(true); + sleep.setAlpha(1.0f); + sleep.setEnabled(true); + auto.setAlpha(1.0f); + auto.setEnabled(true); + childlock.setAlpha(1.0f); + childlock.setEnabled(true); + closeFan.setAlpha(1.0f); + closeFan.setEnabled(true); + } + + private void showControl() { + clearAlph(); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + fanTopLl.setVisibility(View.GONE); + learningLl.setVisibility(View.GONE); + if (!openTag) { + openFan.setAlpha(0.5f); + openFan.setEnabled(false); + } else { + openFan.setAlpha(1.0f); + openFan.setEnabled(true); + } + if (!closeTag) { + closeFan.setAlpha(0.5f); + closeFan.setEnabled(false); + } else { + closeFan.setAlpha(1.0f); + closeFan.setEnabled(true); + } + if (!timeTag) { + timing.setAlpha(0.5f); + timing.setEnabled(false); + } else { + timing.setAlpha(1.0f); + timing.setEnabled(true); + } + if (!atomizeTag) { + atomize.setAlpha(0.5f); + atomize.setEnabled(false); + } else { + atomize.setAlpha(1.0f); + atomize.setEnabled(true); + } + if (!anionTag) { + anion.setAlpha(0.5f); + anion.setEnabled(false); + } else { + anion.setAlpha(1.0f); + anion.setEnabled(true); + } + if (!sterilizeTag) { + sterilize.setAlpha(0.5f); + sterilize.setEnabled(false); + } else { + sterilize.setAlpha(1.0f); + sterilize.setEnabled(true); + } + if (!windAddTag) { + windAdd.setAlpha(0.5f); + windAddIv.setAlpha(0.5f); + windAdd.setEnabled(false); + } else { + windAdd.setAlpha(1.0f); + windAddIv.setAlpha(1.0f); + windAdd.setEnabled(true); + } + if (!windReduceTag) { + windReduce.setAlpha(0.5f); + windReduceIv.setAlpha(0.5f); + windReduce.setEnabled(false); + } else { + windReduce.setAlpha(1.0f); + windReduceIv.setAlpha(1.0f); + windReduce.setEnabled(true); + } + if (!sleepTag) { + sleep.setAlpha(0.5f); + sleep.setEnabled(false); + } else { + sleep.setAlpha(1.0f); + sleep.setEnabled(true); + } + if (!autoTag) { + auto.setAlpha(0.5f); + auto.setEnabled(false); + } else { + auto.setAlpha(1.0f); + auto.setEnabled(true); + } + if (!childlockTag) { + childlock.setAlpha(0.5f); + childlock.setEnabled(false); + } else { + childlock.setAlpha(1.0f); + childlock.setEnabled(true); + } + } + + private void infraredHistoryAdd(String name, String model) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + /*map.put("brand", devicesBean.getDeviceBrand()); + map.put("model", model);*/ + map.put("name", name); + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.INFRARED_HISTORY_ADD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("infraredHistoryModify", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_SUCCESS); + msg.obj = name; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(AirCleanerFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + AirCleanerFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/CurtainFragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/CurtainFragment.java new file mode 100644 index 0000000..07fe744 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/CurtainFragment.java @@ -0,0 +1,1091 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.LightListEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.VoiceControllEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entitya2.BlindTestEntity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNextDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.curtain.CurtainModifyActivity; +import com.yonsz.z1.new433.curtain.CurtainsReAddOneActivity; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.version5.ExecSendUtil; +import com.yonsz.z1.view.PositionPopupWindow; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DELBLIND_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELBLIND_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.GET_SWITCHER_CHANGE_INFO; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_FAIL; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_FAIL; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDVOICE_BLINDMSG_FAIL; +import static com.yonsz.z1.net.Constans.SENDVOICE_BLINDMSG_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.isLocalControl; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class CurtainFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition; + private CheckBox childVoiceCb; + private CheckBox childPicture; + private TextView firstControl, secondControl, thirdControl; + private ImageView firstControlIv, thirdControlIv; + private FrameLayout secondControlFl; + private String ziId; + private String curtainId; + private String relatedId; + private String addressName; + private String addressId; + private String voiceFlag; + private String deviceIp = ""; + private ImageView localControlIv; + private String blindType; + private String relatedStatus; + private LinearLayout ll_show_one; + private RelativeLayout rl_show_all; + private TextView chuangControlOne, chuangControlTwo, chuangControlThree; + private TextView shaControlOne, shaControlTwo, shaControlThree; + private TextView allControlOne, allControlTwo, allControlThree; + private String openCode, stopCode, closeCode; + private String openCodeX, stopCodeX, closeCodeX; + private String blindState; + private String openFlag = "1"; + private String openFlag1 = "1"; + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("Curtai4Activity")) { + getActivity().finish(); + } + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public static CurtainFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + CurtainFragment fragment = new CurtainFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_curtain4, null); + initView(fragView); + return fragView; + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView(View fragView) { +// devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); +// devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + ziId = devicesBean.getZiId(); + curtainId = devicesBean.getId(); + openCode = devicesBean.getOpenCode(); + stopCode = devicesBean.getStopCode(); + closeCode = devicesBean.getCloseCode(); + addressId = devicesBean.getAddressId(); + addressName = AddressNameUtil.getAddressName(addressId); + voiceFlag = devicesBean.getVoiceFlag(); + blindType = devicesBean.getBlindType(); + if (null != getArguments().get("relatedStatus")) { + relatedStatus = getArguments().get("relatedStatus").toString(); + } else { + relatedStatus = devicesBean.getRelatedStatus(); + } + childPosition = (TextView) fragView.findViewById(R.id.tv_child_position); + childVoiceCb = (CheckBox) fragView.findViewById(R.id.tv_child_voice); + childPicture = (CheckBox) fragView.findViewById(R.id.iv_child_picture); + firstControl = (TextView) fragView.findViewById(R.id.tv_first_control); + secondControl = (TextView) fragView.findViewById(R.id.tv_second_control); + thirdControl = (TextView) fragView.findViewById(R.id.tv_third_control); + chuangControlOne = (TextView) fragView.findViewById(R.id.tv_first_control_chuanglian); + chuangControlTwo = (TextView) fragView.findViewById(R.id.tv_second_control_chuanglian); + chuangControlThree = (TextView) fragView.findViewById(R.id.tv_third_control_chuanglian); + shaControlOne = (TextView) fragView.findViewById(R.id.tv_first_control_shalian); + shaControlTwo = (TextView) fragView.findViewById(R.id.tv_second_control_shalian); + shaControlThree = (TextView) fragView.findViewById(R.id.tv_third_control_shalian); + allControlOne = (TextView) fragView.findViewById(R.id.tv_first_control_all); + allControlTwo = (TextView) fragView.findViewById(R.id.tv_second_control_all); + allControlThree = (TextView) fragView.findViewById(R.id.tv_third_control_all); + firstControlIv = (ImageView) fragView.findViewById(R.id.iv_first_control); + thirdControlIv = (ImageView) fragView.findViewById(R.id.iv_third_control); + secondControlFl = (FrameLayout) fragView.findViewById(R.id.fl_second_control); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + ll_show_one = (LinearLayout) fragView.findViewById(R.id.ll_show_one); + rl_show_all = (RelativeLayout) fragView.findViewById(R.id.rl_show_all); + childVoiceCb.setOnClickListener(this); + firstControl.setOnClickListener(this); + secondControl.setOnClickListener(this); + thirdControl.setOnClickListener(this); + chuangControlOne.setOnClickListener(this); + chuangControlTwo.setOnClickListener(this); + chuangControlThree.setOnClickListener(this); + shaControlOne.setOnClickListener(this); + shaControlTwo.setOnClickListener(this); + shaControlThree.setOnClickListener(this); + allControlOne.setOnClickListener(this); + allControlTwo.setOnClickListener(this); + allControlThree.setOnClickListener(this); + + + mTitleView = (TitleView) fragView.findViewById(R.id.title_light4); + mTitleView.setHead(R.string.curtains); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除窗帘 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + delBlindEntity(curtainId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //修改窗帘位置信息 + // showPositionBottom(curtainId.toString(), "0", addressId); + Intent intent1 = new Intent(getContext(), CurtainModifyActivity.class); + intent1.putExtra("blindType", blindType); + intent1.putExtra("curtainId", curtainId); + intent1.putExtra("deviceAddress", addressId); + startActivityForResult(intent1, GET_SWITCHER_CHANGE_INFO); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", CURTAINS_TAG); + intent.putExtra("blindType", blindType); + intent.putExtra("relatedStatus", relatedStatus); + startActivity(intent); + break; + case 4: + gotoReAddCurtain(); + break; + } + } + }); + + if (relatedStatus.equals("1")) { + dialog2.setContent(R.string.modify_curtains); + dialog2.setLearn(); + dialog2.setSureBtnTxt(R.string.delete_curtains); + } else { + if (blindType.equals("1")) { + dialog2.setContent(R.string.modify_shalian); + dialog2.setLearnTxt(R.string.add_chuanglian); + dialog2.setSureBtnTxt(R.string.delete_shalian); + } else { + dialog2.setContent(R.string.modify_chuanglian); + dialog2.setLearnTxt(R.string.add_shalian); + dialog2.setSureBtnTxt(R.string.delete_chuanglian); + } + } + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + childPosition.setText(addressName); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + setPicState(); + } + + private void gotoReAddCurtain() { + Intent intent = new Intent(getContext(), CurtainsReAddOneActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", CURTAINS_TAG); + if (blindType.equals("1")) { + intent.putExtra("largeClass", "0"); + } else { + intent.putExtra("largeClass", "1"); + } + intent.putExtra("isFirst", "0"); + intent.putExtra("addressId", "0"); + intent.putExtra("deviceAddress", addressId); + intent.putExtra("addressId", addressId); + intent.putExtra("relatedId", curtainId); + intent.putExtra("openCode", openCode); + intent.putExtra("closeCode", closeCode); + intent.putExtra("stopCode", stopCode); + startActivity(intent); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setPicState() { + if (relatedStatus.equals("-1")) { + if (blindType.equals("1")) { + mTitleView.setHead(R.string.curtain_sha); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_shalian_open_close)); + } else { + mTitleView.setHead(R.string.curtains); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain_open_close)); + } + ConfirmNextDialog dialog = new ConfirmNextDialog(getContext(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + relatedStatus = "0"; + break; + case 1: + relatedStatus = "0"; + gotoReAddCurtain(); + break; + } + } + }); + if (mTitleView.getHead().equals("纱帘")) { + dialog.setContent(R.string.is_add_chuanglian); + } else { + dialog.setContent(R.string.is_add_shalian); + } + /* if (blindType.equals("1")) { + dialog.setContent(R.string.is_add_chuanglian); + } else if (blindType.equals("0")) { + dialog.setContent(R.string.is_add_shalian); + } else { + dialog.setContent(R.string.is_add_chuanglian); + }*/ + dialog.setTopTxt(R.string.same_window); + dialog.setCancleBtn(R.string.no_add); + dialog.setSureBtn(R.string.rec_add); + dialog.setCancelable(false); + dialog.show(); + } else if (relatedStatus.equals("1")) { + mTitleView.setHead(R.string.curtains); + openCodeX = devicesBean.getRelatedBlind().getOpenCode(); + stopCodeX = devicesBean.getRelatedBlind().getStopCode(); + closeCodeX = devicesBean.getRelatedBlind().getCloseCode(); + ll_show_one.setVisibility(View.GONE); + rl_show_all.setVisibility(View.VISIBLE); + } else { + ll_show_one.setVisibility(View.VISIBLE); + rl_show_all.setVisibility(View.GONE); + if (blindType.equals("1")) { + mTitleView.setHead(R.string.curtain_sha); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_shalian_open_close)); + } else { + mTitleView.setHead(R.string.curtains); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain_open_close)); + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(curtainId, CURTAINS_TAG); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + + } + + private void showPositionBottom(final String id, final String tag, String position) { + View rootview = LayoutInflater.from(getContext()).inflate(R.layout.activity_curtains, null); + PositionPopupWindow popupWindow = new PositionPopupWindow(getContext(), position, new PositionPopupWindow.OnCompleteListener() { + @Override + public void onComplete(String time, List conditionList) { + Log.i("showPositionBottom", "SwitcherActivity onComplete()" + time + conditionList.toString()); + switch (tag) { + case "0": + if (time.equals("13")) { + updateBlindEntityName("0", id); + } else { + updateBlindEntityName(String.valueOf(Integer.valueOf(time) + 1), id); + } + break; + case "1": + + break; + } + } + }); + popupWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0); + } + + private void updateBlindEntityName(String addressId, String id) { + /*initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("addressId", addressId); + map.put("id", id); + util.requestPostByAsynew(NetWorkUrl.UPDATE_BLINDENTITY_NAME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateBlindEntityName", "ShareDeviceActivity onSuccess()" + respone); + BlindTestEntity obj = JSON.parseObject(respone, BlindTestEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + private void delBlindEntity(String id) { + /*initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", id); + map.put("deviceType", CURTAINS_TAG); + netWorkUtil.requestPostByAsynew(NetWorkUrl.DELBLIND_ENTITY, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("delBlindEntity", "ShareDeviceActivity onSuccess()" + respone); + VoiceControllEntity obj = JSON.parseObject(respone, VoiceControllEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELBLIND_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELBLIND_ENTITY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELBLIND_ENTITY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + ShakeUtil.setShake(getContext()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (voiceFlag.equals("1")) { + allowVoiceControll(0, "id"); + } else { + allowVoiceControll(1, "id"); + } + break; + } + } + }); + if (!voiceFlag.equals("1")) { + dialog.setContent(R.string.open_voice); + } else { + dialog.setContent(R.string.close_voice); + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_first_control: + ShakeUtil.setShake(getContext()); + //打开窗帘 + if (devicesBean.getControlKeys().size() != 0) { + ExecSendUtil.getInstance().execSend(getContext(),devicesBean.getControlKeys().get(0).getCmds().get(0), ziId); + } else { + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(openCode, "02")); + } else { + studyAndControllBlind(openCode); + } + } + break; + case R.id.tv_second_control: + ShakeUtil.setShake(getContext()); + //暂停 + if (devicesBean.getControlKeys().size() != 0) { + ExecSendUtil.getInstance().execSend(getContext(),devicesBean.getControlKeys().get(1).getCmds().get(0), ziId); + } else { + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(stopCode, "02")); + } else { + studyAndControllBlind(stopCode); + } + } + break; + case R.id.tv_third_control: + ShakeUtil.setShake(getContext()); + //关闭窗帘 + if (devicesBean.getControlKeys().size() != 0) { + ExecSendUtil.getInstance().execSend(getContext(),devicesBean.getControlKeys().get(2).getCmds().get(0), ziId); + } else { + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(closeCode, "02")); + } else { + studyAndControllBlind(closeCode); + } + } + break; + case R.id.tv_first_control_chuanglian: + setControlType("1", ToolsUtil.completeAiInfo(openCodeX, "02"), openCodeX, ToolsUtil.completeAiInfo(openCode, "02"), openCode); + break; + case R.id.tv_second_control_chuanglian: + setControlType("1", ToolsUtil.completeAiInfo(stopCodeX, "02"), stopCodeX, ToolsUtil.completeAiInfo(stopCode, "02"), stopCode); + break; + case R.id.tv_third_control_chuanglian: + setControlType("1", ToolsUtil.completeAiInfo(closeCodeX, "02"), closeCodeX, ToolsUtil.completeAiInfo(closeCode, "02"), closeCode); + break; + case R.id.tv_first_control_shalian: + setControlType("0", ToolsUtil.completeAiInfo(openCodeX, "02"), openCodeX, ToolsUtil.completeAiInfo(openCode, "02"), openCode); + break; + case R.id.tv_second_control_shalian: + setControlType("0", ToolsUtil.completeAiInfo(stopCodeX, "02"), stopCodeX, ToolsUtil.completeAiInfo(stopCode, "02"), stopCode); + break; + case R.id.tv_third_control_shalian: + setControlType("0", ToolsUtil.completeAiInfo(closeCodeX, "02"), closeCodeX, ToolsUtil.completeAiInfo(closeCode, "02"), closeCode); + break; + case R.id.tv_first_control_all: + setControlType("1", ToolsUtil.completeAiInfo(openCodeX, "02"), openCodeX, ToolsUtil.completeAiInfo(openCode, "02"), openCode); + setControlType("0", ToolsUtil.completeAiInfo(openCodeX, "02"), openCodeX, ToolsUtil.completeAiInfo(openCode, "02"), openCode); + break; + case R.id.tv_second_control_all: + setControlType("1", ToolsUtil.completeAiInfo(stopCodeX, "02"), stopCodeX, ToolsUtil.completeAiInfo(stopCode, "02"), stopCode); + setControlType("0", ToolsUtil.completeAiInfo(stopCodeX, "02"), stopCodeX, ToolsUtil.completeAiInfo(stopCode, "02"), stopCode); + break; + case R.id.tv_third_control_all: + setControlType("1", ToolsUtil.completeAiInfo(closeCodeX, "02"), closeCodeX, ToolsUtil.completeAiInfo(closeCode, "02"), closeCode); + setControlType("0", ToolsUtil.completeAiInfo(closeCodeX, "02"), closeCodeX, ToolsUtil.completeAiInfo(closeCode, "02"), closeCode); + break; + /*default: + super.registerOnClick(v.getId());*/ + + } + } + + private void setControlType(String type, String order, String openCodeX, String order2, String openCode) { + if (AppIdUtil.isBaseZhiKong()) { + if (blindType.equals(type)) { + ExecSendUtil.getInstance().execSend(getContext(),openCodeX, ziId); + } else { + ExecSendUtil.getInstance().execSend(getContext(),openCode, ziId); + } + } else { + if (blindType.equals(type)) { + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(order); + } else + studyAndControllBlind(openCodeX); + } else { + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(order2); + } else + studyAndControllBlind(openCode); + } + } + } + + private void studyAndControllBlind(String order) { + + } + + private void allowVoiceControll(int controlFlag, String id) { + /*initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", curtainId); + map.put("controlFlag", controlFlag + ""); + map.put("ziId", ziId); + netWorkUtil.requestPostByAsynew(NetWorkUrl.SENDVOICE_BLINDMSG, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("allowVoiceControll", "ShareDeviceActivity onSuccess()" + respone); + VoiceControllEntity obj = JSON.parseObject(respone, VoiceControllEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SENDVOICE_BLINDMSG_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + } else { + Message msg = mHandler.obtainMessage(SENDVOICE_BLINDMSG_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SENDVOICE_BLINDMSG_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECTBLIND_BYZI_SUCCESS: + LightListEntity obj = (LightListEntity) msg.obj; + break; + case SELECTBLIND_BYZI_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + getActivity().finish(); + break; + case DELBLIND_ENTITY_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + getActivity().finish(); + break; + case DELBLIND_ENTITY_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BlindTestEntity blindTestEntity = (BlindTestEntity) msg.obj; + addressId = blindTestEntity.getObj().getAddressId(); + childPosition.setText(blindTestEntity.getObj().getAddressName()); + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SENDVOICE_BLINDMSG_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + VoiceControllEntity voiceControllEntity = (VoiceControllEntity) msg.obj; + voiceFlag = voiceControllEntity.getObj().getVoiceFlag(); + if (voiceFlag.equals("1")) { + ToastUtil.show(getContext(), R.string.open_voice_success); + childVoiceCb.setChecked(true); + } else { + ToastUtil.show(getContext(), R.string.close_voice_success); + childVoiceCb.setChecked(false); + } + break; + case SENDPID_STUDYBLIND_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + String infrared = nettyEntity.getInfrared(); + String cmdType = nettyEntity.getCmdType(); + String deviceIds = nettyEntity.getDeviceIds(); + List result = Arrays.asList(deviceIds.split(",")); + if (null != nettyEntity.getDeviceType() && nettyEntity.getDeviceType().equals(CURTAINS_TAG) && nettyEntity.getAddressId().equals(addressId)) { + if (relatedStatus.equals("1")) { + if (cmdType.equals("voiceControll")) { + String detailType = nettyEntity.getDetailType(); + if (detailType.equals("0")) { + if (nettyEntity.getOpenFlag().equals("1")) { + openFlag = "1"; + /*switch (blindState) { + case "1": + setBlindState("1"); + break; + case "2": + setBlindState("3"); + break; + case "3": + setBlindState("3"); + break; + case "4": + setBlindState("1"); + break; + }*/ + } else if (nettyEntity.getOpenFlag().equals("0")) { + openFlag = "0"; + /*switch (blindState) { + case "1": + setBlindState("4"); + break; + case "2": + setBlindState("2"); + break; + case "3": + setBlindState("2"); + break; + case "4": + setBlindState("4"); + break; + }*/ + } + } else { + if (nettyEntity.getOpenFlag().equals("1")) { + openFlag1 = "1"; + /*switch (blindState) { + case "1": + setBlindState("1"); + break; + case "2": + setBlindState("4"); + break; + case "3": + setBlindState("1"); + break; + case "4": + setBlindState("4"); + break; + }*/ + } else if (nettyEntity.getOpenFlag().equals("0")) { + openFlag1 = "0"; + /*switch (blindState) { + case "1": + setBlindState("3"); + break; + case "2": + setBlindState("2"); + break; + case "3": + setBlindState("3"); + break; + case "4": + setBlindState("2"); + break; + }*/ + } + } + setBlindDateChanged(); + } else if (cmdType.equals("appControll")) { + if (blindType.equals("1")) { + if (infrared.equalsIgnoreCase(openCode) || openCode.toLowerCase().contains(infrared.toLowerCase())) { + openFlag = "1"; + /*switch (blindState) { + case "1": + setBlindState("1"); + break; + case "2": + setBlindState("4"); + break; + case "3": + setBlindState("1"); + break; + case "4": + setBlindState("4"); + break; + }*/ + } else if (infrared.equalsIgnoreCase(closeCode) || closeCode.toLowerCase().contains(infrared.toLowerCase())) { + openFlag = "0"; + /*switch (blindState) { + case "1": + setBlindState("3"); + break; + case "2": + setBlindState("2"); + break; + case "3": + setBlindState("3"); + break; + case "4": + setBlindState("2"); + break; + }*/ + } else if (infrared.equalsIgnoreCase(openCodeX) || openCodeX.toLowerCase().contains(infrared.toLowerCase())) { + openFlag1 = "1"; + /*switch (blindState) { + case "1": + setBlindState("1"); + break; + case "2": + setBlindState("3"); + break; + case "3": + setBlindState("3"); + break; + case "4": + setBlindState("1"); + break; + }*/ + + } else if (infrared.equalsIgnoreCase(closeCodeX) || closeCodeX.toLowerCase().contains(infrared.toLowerCase())) { + openFlag1 = "0"; + /*switch (blindState) { + case "1": + setBlindState("4"); + break; + case "2": + setBlindState("2"); + break; + case "3": + setBlindState("2"); + break; + case "4": + setBlindState("4"); + break; + }*/ + } + } else if (blindType.equals("0")) { + if (infrared.equalsIgnoreCase(openCode) || openCode.toLowerCase().contains(infrared.toLowerCase())) { + openFlag = "1"; + /*switch (blindState) { + case "1": + setBlindState("1"); + break; + case "2": + setBlindState("3"); + break; + case "3": + setBlindState("3"); + break; + case "4": + setBlindState("1"); + break; + }*/ + } else if (infrared.equalsIgnoreCase(closeCode) || closeCode.toLowerCase().contains(infrared.toLowerCase())) { + openFlag = "0"; + /*switch (blindState) { + case "1": + setBlindState("4"); + break; + case "2": + setBlindState("2"); + break; + case "3": + setBlindState("2"); + break; + case "4": + setBlindState("4"); + break; + }*/ + } else if (infrared.equalsIgnoreCase(openCodeX) || openCodeX.toLowerCase().contains(infrared.toLowerCase())) { + openFlag1 = "1"; + /*switch (blindState) { + case "1": + setBlindState("1"); + break; + case "2": + setBlindState("4"); + break; + case "3": + setBlindState("1"); + break; + case "4": + setBlindState("4"); + break; + }*/ + } else if (infrared.equalsIgnoreCase(closeCodeX) || closeCodeX.toLowerCase().contains(infrared.toLowerCase())) { + openFlag1 = "0"; + /*switch (blindState) { + case "1": + setBlindState("3"); + break; + case "2": + setBlindState("2"); + break; + case "3": + setBlindState("3"); + break; + case "4": + setBlindState("2"); + break; + }*/ + } + } + setBlindDateChanged(); + } + } else { + if (result.contains(curtainId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + } else if (nettyEntity.getOpenFlag().equals("0")) { + childPicture.setChecked(false); + } + } + } + } else { + + } + break; + case QUERY_DEVICE_LASTINFO_FAIL: + if (relatedStatus.equals("1")) { + setBlindState("3"); + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (relatedStatus.equals("1")) { + openFlag = parseObject.getData().getOpenFlag(); + if (null != parseObject.getData().getRelatedLastInfo()) { + openFlag1 = parseObject.getData().getRelatedLastInfo().getOpenFlag(); + } else { + openFlag1 = "1"; + } + setBlindDateChanged(); + } else { + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + } else { + childPicture.setChecked(false); + } + } + break; + } + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setBlindDateChanged() { + if (blindType.equals("0")) { + if (openFlag.equals("1")) { + if (openFlag1.equals("1")) { + setBlindState("1"); + } else { + setBlindState("3"); + } + } else { + if (openFlag1.equals("1")) { + setBlindState("4"); + } else { + setBlindState("2"); + } + } + } else { + if (openFlag.equals("1")) { + if (openFlag1.equals("1")) { + setBlindState("1"); + } else { + setBlindState("4"); + } + } else { + if (openFlag1.equals("1")) { + setBlindState("3"); + } else { + setBlindState("2"); + } + } + } + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setBlindState(String state) { + blindState = state; + switch (blindState) { + case "1": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtaingauzecurtain_open)); + break; + case "2": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtaingauzecurtain_close)); + break; + case "3": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtaingauzecurtain_curtains_open)); + break; + case "4": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtaingauzecurtain_gauze_open)); + break; + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case GET_SWITCHER_CHANGE_INFO: + if (data != null && data.getExtras().get("devicePosition") != null) { + childPosition.setText(data.getExtras().get("devicePosition").toString()); + addressId = data.getExtras().get("addressId").toString(); + } + break; + } + } + + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(CurtainFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + CurtainFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/DependentACFragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/DependentACFragment.java new file mode 100644 index 0000000..3fcd876 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/DependentACFragment.java @@ -0,0 +1,1161 @@ +package com.yonsz.z1.version4.fragment; + +import static com.yonsz.z1.R.string.fan; +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.AIR_POWER; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_FAIL; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS_AIR; +import static com.yonsz.z1.net.Constans.FAN_LEARN_ING; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.INDEPENDENT_CODE_AC; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.QUERY_AIR_LASTSTATUS_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_AIR_LASTSTATUS_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_BRAND_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_SAFETY_DETAIL_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_SAFETY_DETAIL_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_VOICECONTROLL_INFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.SKYWORTH_TV; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.CANCEL_DOWNLOAD; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; +import static com.yonsz.z1.net.NetWorkUrl.SELECT_CONNDEVICE_PUSHKEY; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETCONTROLKEYS; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETDETAIL; +import static com.yonsz.z1.net.NetWorkUrl.YKY_DOWNLOAD; + +import android.content.Context; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.AlphaAnimation; +import android.view.animation.AnimationUtils; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AirStateEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.Key5Entity; +import com.yonsz.z1.database.entity.entity5.NewModelSetEntity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.database.entity.entitya2.KeyEntity; +import com.yonsz.z1.database.entity.entitya2.LoadEvent; +import com.yonsz.z1.database.entity.entitya2.SafeVoiceEntity; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.devicea2.LearnGuideA2Activity; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmValueDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.customview.SaveCodeDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.mine.aboutversion.feature.Callback3; +import com.yonsz.z1.mine.aboutversion.feature.Callback4; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.version5.SwoitSyncActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +/** + * Created by Administrator on 2018/8/8. + */ +public class DependentACFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private String ziId; + private LinearLayout fanTopLl; + private AlphaAnimation mAlphaAnimation; + private boolean isLearn = false; + private TextView mOpenClose, mAdd, mReduce, mWindSpeed, learnInstruction; + private TextView mOpenCloseBg, mAddBg, mReduceBg, mWindSpeedBg; + private TextView airTempicon, airTempoC, airWindIcon, tv_next_time, tv_next_time_state, tv_next_week; + private boolean mOpenCloseTag = false, mAddTag = false, mReduceTag = false, mWindSpeedTag = false; + private String airName; + private String cancelFlag; + private boolean isOpen = false; + private HorizontalProgressBarWithNumber mProgressBar; + private RelativeLayout progressRl; + private TextView progressTv; + private boolean isLoading = false; + private String airStateTag; + private TextView loadBackTv, tv_cancel_load; + private RelativeLayout mProgressTop; + private NettyEntity nettyEntity; + private LoadingDialog mLoadingDialog; + private String deviceIp = ""; + private RelativeLayout airTopBg; + private ImageView airIconStation; + private ImageView localControlIv; + private boolean isInit = false; + private Context context; + private List settings = new ArrayList<>(); + private boolean openInit = false; + private boolean showInfraredStudy = false; + + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LoadEvent event) { + String msg = event.getMsg(); + nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (nettyEntity.getDeviceType().equals(INDEPENDENT_CODE_AC)) { + Log.e("nettyUtilAir", msg); + Message message = new Message(); + message.what = FAN_LEARN_ING; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (null != nettyEntity.getContext() && nettyEntity.getContext().getMacId().equals(ziId)&& nettyEntity.getContext().getDeviceType().equals(INDEPENDENT_CODE_AC)) { + Message message = new Message(); + message.what = AIR_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + public static DependentACFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + DependentACFragment fragment = new DependentACFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_ac, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + showLoadDiaolog(isVisibleToUser); + } + + private void showLoadDiaolog(boolean isVisibleToUser) { + if (isVisibleToUser && isInit) { + cancelFlag = devicesBean.getCancelFlag() + ""; + if (cancelFlag.equals("1")) { + EventBus.getDefault().post( + new CanloopEvent(true)); + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + getActivity().finish(); + break; + case 1: + reloadInfrared(INDEPENDENT_CODE_AC); + break; + } + } + }); + dialog.setContent(R.string.Data_not_downloaded_reloaded); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + + } + } + } + + private void initView(View fragView) { +// devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); +// devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + isInit = true; + airName = devicesBean.getDeviceBrand(); + ziId = devicesBean.getZiId(); + cancelFlag = devicesBean.getCancelFlag() + ""; + if (getArguments().get("loadStatus").toString().equals("1") && getUserVisibleHint() && getArguments().get("loadErrorType").toString().equals(INDEPENDENT_CODE_AC)) { + isLoading = true; + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + } else { + isLoading = false; + } + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + mProgressTop = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + airTopBg = (RelativeLayout) fragView.findViewById(R.id.rl_air_top_bg); + loadBackTv = (TextView) fragView.findViewById(R.id.tv_load_back); + tv_cancel_load = (TextView) fragView.findViewById(R.id.tv_cancel_load); + + airTempicon = (TextView) fragView.findViewById(R.id.tv_air_temp_icon); + airTempoC = (TextView) fragView.findViewById(R.id.tv_air_temp_oc); + airWindIcon = (TextView) fragView.findViewById(R.id.tv_air_wind_icon); + airIconStation = (ImageView) fragView.findViewById(R.id.iv_air_icon_station); + + mOpenClose = (TextView) fragView.findViewById(R.id.tv_fan_open); + mAdd = (TextView) fragView.findViewById(R.id.tv_temperature_add); + mReduce = (TextView) fragView.findViewById(R.id.tv_temperature_reduce); + mWindSpeed = (TextView) fragView.findViewById(R.id.tv_air_wind_speed); + + mOpenCloseBg = (TextView) fragView.findViewById(R.id.tv_fan_open_bg); + mAddBg = (TextView) fragView.findViewById(R.id.tv_temperature_add_bg); + mReduceBg = (TextView) fragView.findViewById(R.id.tv_temperature_reduce_bg); + mWindSpeedBg = (TextView) fragView.findViewById(R.id.tv_air_wind_speed_bg); + + fanTopLl = (LinearLayout) fragView.findViewById(R.id.ll_fan_top); + learnInstruction = (TextView) fragView.findViewById(R.id.tv_learn_instruction); + + tv_next_time = (TextView) fragView.findViewById(R.id.tv_next_time); + tv_next_time_state = (TextView) fragView.findViewById(R.id.tv_next_time_state); + tv_next_week = (TextView) fragView.findViewById(R.id.tv_next_week); + + progressRl = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + progressTv = (TextView) fragView.findViewById(R.id.tv_progress_top); + mProgressBar = (HorizontalProgressBarWithNumber) fragView.findViewById(R.id.pg_horizontal_fan); + // mHandler.sendEmptyMessage(MSG_PROGRESS_UPDATE); + mTitleView = (TitleView) fragView.findViewById(R.id.title_aircondition); + mTitleView.clearBackGroud(); + if (airName != null && !airName.isEmpty()) { + mTitleView.setHead(airName); + } else { + mTitleView.setHead("空调"); + } + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isLoading) { + + } else { + getActivity().finish(); + } + } + + @Override + public void onFunction() { + if (isLoading) { + + } else { + if (isLearn) { + isLearn = false; + //查询学习按键 + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + } else { + showAirBootom(); + } + } + } + + @Override + public void onFunctionText() { + + } + }); + if (getArguments().get("loadErrorType").toString().equals("0")) { + showLoadDiaolog(getUserVisibleHint()); + } + if (isLoading) { + progressRl.setVisibility(View.VISIBLE); + } else { + progressRl.setVisibility(View.GONE); + } + } + + private void showAirBootom() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(devicesBean.getDeviceType(), ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + showSavecode(); + break; + case 3: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 4: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //遥控学习 + isLearn = true; + //查询学习按键 + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + case 5: + break; + case 7: + Intent intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setTop("修改设备名称"); + if (!showInfraredStudy) { + dialog2.setLearn(); + } + dialog2.setContent("保存到码库"); + dialog2.setModifyName(); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mAdd.setOnClickListener(this); + mReduce.setOnClickListener(this); + mWindSpeed.setOnClickListener(this); + + mProgressTop.setOnClickListener(this); + loadBackTv.setOnClickListener(this); + tv_cancel_load.setOnClickListener(this); + } + + private void showSavecode() { + SaveCodeDialog dialog2 = new SaveCodeDialog(getContext(), new Callback3() { + + @Override + public void callback(int position, String positionName, String model) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positionName.trim())) { + ToastUtil.show(getContext(), "请输入码库名称"); + return; + } + infraredHistoryAdd(positionName, model); + break; + } + } + }); + dialog2.setOldName(devicesBean.getDeviceBrand()); + dialog2.setCancleBtn("不用了"); + dialog2.setSureBtn(R.string.sure); + dialog2.setCancelable(false); + dialog2.show(); + } + + private void infraredHistoryAdd(String name, String model) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("name", name); + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.INFRARED_HISTORY_ADD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("infraredHistoryModify", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_SUCCESS); + msg.obj = name; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void reloadInfrared(String deviceType) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("macId", ziId); + map.put("deviceType", deviceType); + map.put("rid", devicesBean.getRid()); + netWorkUtil.requestPostByAsynewApi(YKY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("reloadInfrared", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty message = JSON.parseObject(respone, SimpleEntty.class); + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_SUCCESS_AIR); + msg.obj = message; + mHandler.sendMessage(msg); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void setIsLearned(Key5Entity entity1) { + List entity1Obj = entity1.getData(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + switch (entity1Obj.get(i).getName()) { + case "power": + case "poweroff": + mOpenCloseTag = true; + break; + case "tempUp": + mAddTag = true; + break; + case "tempDown": + mReduceTag = true; + break; + case "fanspeed": + mWindSpeedTag = true; + break; + } + } + } + } + + private void showLearn() { + mAlphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.alpha_anim_device); + mTitleView.setHeadFuntionTxt(R.string.save); + mTitleView.setHeadFuntionGone(); + fanTopLl.setVisibility(View.VISIBLE); + setLearnAlph(); + showLearnInstruction(); + } + + private void setLearnAlph() { + } + + private void showLearnInstruction() { + if (!mOpenCloseTag) { + clearAlph(); + learnInstruction.setText("开关"); + mOpenCloseBg.startAnimation(mAlphaAnimation); + } else if (!mAddTag) { + clearAlph(); + learnInstruction.setText("温度+"); + mAddBg.startAnimation(mAlphaAnimation); + } else if (!mReduceTag) { + clearAlph(); + learnInstruction.setText("温度-"); + mReduceBg.startAnimation(mAlphaAnimation); + } else if (!mWindSpeedTag) { + clearAlph(); + learnInstruction.setText("风速"); + mWindSpeedBg.startAnimation(mAlphaAnimation); + } else { + learnInstruction.setText("开关"); + mOpenCloseBg.startAnimation(mAlphaAnimation); + } + } + + private void clearAlph() { + mOpenCloseBg.clearAnimation(); + mAddBg.clearAnimation(); + mReduceBg.clearAnimation(); + mWindSpeedBg.clearAnimation(); + } + + private void showControl() { + clearAlph(); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + fanTopLl.setVisibility(View.GONE); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_CONNDEVICE_PUSHKEY_SUCCESS: + Key5Entity entity1 = (Key5Entity) msg.obj; + setIsLearned(entity1); + if (isLearn) { + showLearn(); + } else { + showControl(); + } + if (mLoadingDialog != null) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + break; + case FAN_LEARN_ING: + if (nettyEntity.getMacId().equals(ziId)) { + int countNum = Integer.parseInt(nettyEntity.getCountNum()); + int loadNum = Integer.parseInt(nettyEntity.getLoadNum()); + progressRl.setVisibility(View.VISIBLE); + mProgressBar.setProgress(100000 / countNum * loadNum / 1000); + if (loadNum / countNum == 1 && loadNum != 1) { + isLoading = false; + progressTv.setText(R.string.load_complete); + progressRl.setVisibility(View.GONE); + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + + } else { + initLoadDialog(); + } + devicesBean.setCancelFlag(0); + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + } + } + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case DELETE_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case QUERY_NEXT_TIMER_SUCCESS: + Z1TimeEntity entity12 = (Z1TimeEntity) msg.obj; + if (entity12.getData() != null && !TextUtils.isEmpty(entity12.getData().getMin())) { + String cmdType = entity12.getData().getCmdType(); + int restMin = Integer.parseInt(entity12.getData().getMin()); + if (restMin < 60) { + if (cmdType.equals("1")) { + tv_next_time.setText(restMin + "分钟后开启"); + } else { + tv_next_time.setText(restMin + "分钟后关闭"); + } + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + if (cmdType.equals("1")) { + tv_next_time.setText(hour + "小时后开启"); + } else { + tv_next_time.setText(hour + "小时后关闭"); + } + } else { + if (cmdType.equals("1")) { + tv_next_time.setText(hour + "小时" + minite + "分钟后开启"); + } else { + tv_next_time.setText(hour + "小时" + minite + "分钟后关闭"); + } + } + } + tv_next_week.setText(""); + } else if (entity12.getData() != null) { + switch (entity12.getData().getWeek().toString()) { + case "1": + tv_next_week.setText("周日"); + break; + case "2": + tv_next_week.setText("周一"); + break; + case "3": + tv_next_week.setText("周二"); + break; + case "4": + tv_next_week.setText("周三"); + break; + case "5": + tv_next_week.setText("周四"); + break; + case "6": + tv_next_week.setText("周五"); + break; + case "7": + tv_next_week.setText("周六"); + break; + } + tv_next_time.setText(entity12.getData().getTime().toString()); + if (entity12.getData().getCmdType().toString().equals("1")) { + tv_next_time_state.setText(R.string.open); + } else { + tv_next_time_state.setText(getString(R.string.close)); + + } + } else { + tv_next_week.setText(""); + tv_next_time.setText(""); + tv_next_time_state.setText(""); + } + break; + case QUERY_AIR_LASTSTATUS_SUCCESS: + AirStateEntity airStateEntity = (AirStateEntity) msg.obj; + if (airStateEntity.getData() != null && airStateEntity.getData().getOpenFlag() != null && airStateEntity.getData().getOpenFlag().equals("1")) { + isOpen = true; + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_close_back)); + airTempicon.setText("已开启"); + airTempoC.setVisibility(View.GONE); + airIconStation.setVisibility(View.GONE); + airWindIcon.setText(""); + } else { + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_close_back)); + isOpen = false; + airTempicon.setText("已关闭"); + airTempoC.setVisibility(View.GONE); + airIconStation.setVisibility(View.GONE); + airWindIcon.setText(""); + } + break; + case AIR_CONTROL_SUCCESS: + nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (null != nettyEntity.getContext() && nettyEntity.getContext().getLastInfo().getOpenFlag().equals("1")) { + isOpen = true; + airTempicon.setText("已开启"); + airTempoC.setVisibility(View.GONE); + airIconStation.setVisibility(View.GONE); + airWindIcon.setText(""); + } else { + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_close_back)); + isOpen = false; + airTempicon.setText("已关闭"); + airTempoC.setVisibility(View.GONE); + airIconStation.setVisibility(View.GONE); + airWindIcon.setText(""); + } + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS_AIR: + progressRl.setVisibility(View.VISIBLE); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case SEND_VOICECONTROLL_INFO_SUCCESS: + case UPDATEBLIND_ENTITYNAME_SUCCESS: + ToastUtil.show(getContext(), "保存成功"); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + case SELECT_SAFETY_DETAIL_FAIL: + case UPDATEBLIND_ENTITYNAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SELECT_SAFETY_DETAIL_SUCCESS: + SafeVoiceEntity safeVoiceEntity = (SafeVoiceEntity) msg.obj; + if (null != safeVoiceEntity.getData()) { + if (safeVoiceEntity.getData().isShowInfraredStudy()) { + showInfraredStudy = true; + } else { + showInfraredStudy = false; + } + } + break; + } + } + + @Override + public void onClick(View v) { + if (isLearn) { + switch (v.getId()) { + case R.id.tv_fan_open: + toLearnByNmber("power"); + break; + case R.id.tv_temperature_add: + toLearnByNmber("tempUp"); + break; + case R.id.tv_temperature_reduce: + toLearnByNmber("tempDown"); + break; + case R.id.tv_air_wind_speed: + toLearnByNmber("fanspeed"); + break; + case R.id.rl_progress_top: + break; + case R.id.tv_load_back: + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + case R.id.tv_cancel_load: + cancelDownload(); + break; + } + } else { + switch (v.getId()) { + case R.id.tv_fan_open: + subsetControl("power"); + break; + case R.id.tv_temperature_add: + subsetControl("tempUp"); + break; + case R.id.tv_temperature_reduce: + subsetControl("tempDown"); + break; + case R.id.tv_air_wind_speed: + subsetControl("fanspeed"); + break; + case R.id.rl_progress_top: + break; + case R.id.tv_load_back: + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + case R.id.tv_cancel_load: + cancelDownload(); + break; + } + } + } + + private void toLearnByNmber(String number) { + Intent intent; + intent = new Intent(getContext(), LearnGuideA2Activity.class); + intent.putExtra("learnGuide", number); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", INDEPENDENT_CODE_AC); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivityForResult(intent, LEARN_RESULT); + } + + private void cancelDownload() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", INDEPENDENT_CODE_AC); + netWorkUtil.requestPostByAsynewApi(CANCEL_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancelDownload", "ShareDeviceActivity onSuccess()" + respone); + getActivity().finish(); + } + + @Override + public void onFail(String message) { + } + }); + } + + @Override + public void onResume() { + super.onResume(); + if (devicesBean.getDeviceType().equals(INDEPENDENT_CODE_AC)) { +// queryNextTimer(); + subsetGetDetail(); + } + queryAirLastStatus(); + if (isLearn) { + subsetGetControlKeys(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + + } + + private void subsetGetControlKeys() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETCONTROLKEYS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetControlKeys", "onSuccess()" + respone); + Key5Entity obj = JSON.parseObject(respone, Key5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_BRAND_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetGetDetail() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETDETAIL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetDetail", "onSuccess()" + respone); + SafeVoiceEntity obj = JSON.parseObject(respone, SafeVoiceEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_SAFETY_DETAIL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_SAFETY_DETAIL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_SAFETY_DETAIL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void queryNextTimer() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceId", devicesBean.getId()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("deviceModel", devicesBean.getDeviceModel()); + netWorkUtil.requestGetByAsy(NetWorkUrl.QUERY_NEXT_TIMER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryNextTimer", "ShareDeviceActivity onSuccess()" + respone); + Z1TimeEntity obj = JSON.parseObject(respone, Z1TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void queryAirLastStatus() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryAirLastStatus", "ShareDeviceActivity onSuccess()" + respone); + AirStateEntity obj = JSON.parseObject(respone, AirStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initLoadDialog() { + if (null != mLoadingDialog && !mLoadingDialog.isShowing()) { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(DependentACFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + DependentACFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/FanA1Fragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/FanA1Fragment.java new file mode 100644 index 0000000..9be288d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/FanA1Fragment.java @@ -0,0 +1,1021 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Context; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.AlphaAnimation; +import android.view.animation.AnimationUtils; +import android.view.animation.RotateAnimation; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.StudyEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.Key5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.LearnGuideActivity; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.device.tv.FanList1Activity; +import com.yonsz.z1.devicea2.LearnGuideA2Activity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.view.TitleView; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.tv_tv_windreduce; +import static com.yonsz.z1.R.id.tv_wind_speed; +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.FAN_CLOSE; +import static com.yonsz.z1.net.Constans.FAN_OPEN; +import static com.yonsz.z1.net.Constans.FAN_SHAKE; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.FAN_TIME; +import static com.yonsz.z1.net.Constans.FAN_TYPE; +import static com.yonsz.z1.net.Constans.FAN_WIND; +import static com.yonsz.z1.net.Constans.FAN_WIND_REDUCE; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_STUDY_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_STUDY_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETCONTROLKEYS; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class FanA1Fragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private TextView windType, windTypeBg, openFan, openFanBg, closeFan, closeFanBg, timing, timingBg, windSpeed, windSpeedBg, windReduce, windReduceBg, shakeHead, shakeheadbg, learnInstruction, learnComplete; + private ImageView openFanMark, closeFanMark, timingMark, windSpeedMark, windReduceMark, shakeHeadMark, windTypeMark; + private LinearLayout learningLl, fanContinueLearnLl, fanTopLl; + private AlphaAnimation mAlphaAnimation; + private boolean isLearn; + private String userId; + private String ziId; + private boolean openTag = false, shakeTag = false, windTag = false, windReduceTag = false, timeTag = false, windTypeTag = false, closeTag = false; + private String fanName; + private ImageView fanBladeIv; + private RotateAnimation rotateAnimation; + private ImageView localControlIv; + private Context context; + private ImageView windAddIv, winReduceIv; + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public static FanA1Fragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + FanA1Fragment fragment = new FanA1Fragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_fan_learn, null); + initView(fragView); + initListener(); + return fragView; + } + + private void initView(View fragView) { +// devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); +// devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + userId = SharedpreferencesUtil.get(Constans.USERPHONE, ""); + ziId = devicesBean.getZiId(); + if (getArguments().get("fanStateTag").toString().equals("0")) { + isLearn = true; + } else { + isLearn = false; + } + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + windAddIv = (ImageView) fragView.findViewById(R.id.iv_wind_add); + winReduceIv = (ImageView) fragView.findViewById(R.id.iv_wind_reduce); + + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + fanBladeIv = (ImageView) fragView.findViewById(R.id.iv_fan_blade); + openFanMark = (ImageView) fragView.findViewById(R.id.tv_fan_open_mark); + closeFanMark = (ImageView) fragView.findViewById(R.id.tv_fan_close_mark); + timingMark = (ImageView) fragView.findViewById(R.id.tv_timing_mark); + windSpeedMark = (ImageView) fragView.findViewById(R.id.tv_wind_speed_mark); + windReduceMark = (ImageView) fragView.findViewById(R.id.tv_tv_windreduce_mark); + shakeHeadMark = (ImageView) fragView.findViewById(R.id.tv_shake_head_mark); + windTypeMark = (ImageView) fragView.findViewById(R.id.tv_wind_type_mark); + + openFan = (TextView) fragView.findViewById(R.id.tv_fan_open); + closeFan = (TextView) fragView.findViewById(R.id.tv_fan_close); + openFanBg = (TextView) fragView.findViewById(R.id.tv_fan_open_bg); + closeFanBg = (TextView) fragView.findViewById(R.id.tv_fan_close_bg); + timing = (TextView) fragView.findViewById(R.id.tv_timing); + timingBg = (TextView) fragView.findViewById(R.id.tv_timing_bg); + windSpeed = (TextView) fragView.findViewById(tv_wind_speed); + windSpeedBg = (TextView) fragView.findViewById(R.id.tv_wind_speed_bg); + windReduce = (TextView) fragView.findViewById(tv_tv_windreduce); + windReduceBg = (TextView) fragView.findViewById(R.id.tv_tv_windreduce_bg); + shakeHead = (TextView) fragView.findViewById(R.id.tv_shake_head); + shakeheadbg = (TextView) fragView.findViewById(R.id.tv_shake_head_bg); + windType = (TextView) fragView.findViewById(R.id.tv_wind_type); + windTypeBg = (TextView) fragView.findViewById(R.id.tv_wind_type_bg); + + fanTopLl = (LinearLayout) fragView.findViewById(R.id.ll_fan_top); + learnInstruction = (TextView) fragView.findViewById(R.id.tv_learn_instruction); + learnComplete = (TextView) fragView.findViewById(R.id.tv_learn_complete); + learningLl = (LinearLayout) fragView.findViewById(R.id.ll_learning); + fanContinueLearnLl = (LinearLayout) fragView.findViewById(R.id.ll_fan_continue_learn); + + mTitleView = (TitleView) fragView.findViewById(R.id.title_fan); + if (TextUtils.isEmpty(devicesBean.getDeviceBrand())) { + fanName = getString(R.string.fan); + } else { + fanName = devicesBean.getDeviceBrand(); + } + mTitleView.setHead(fanName); + mTitleView.clearBackGroud(); + rotateAnimation = (RotateAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.rotate360_fan_anim); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + clearAlph(); + if (isLearn) { + isLearn = false; + //查询学习按键 + queryStudyValue(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(FAN_TAG, ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //重新命名 + Intent intent1 = new Intent(getContext(), FanList1Activity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("nameTag", "name"); + intent1.putExtra("id", devicesBean.getId()); + intent1.putExtra("deviceType", FAN_TAG); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", FAN_TAG); + startActivity(intent); + break; + case 4: + //遥控学习 + isLearn = true; + //查询学习按键 + queryStudyValue(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent(); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + + @Override + public void onFunctionText() { + + } + }); + + if (isLearn) { + showLearn(); + } else { + showControl(); + } + + //查询学习按键 + queryStudyValue(); + + if (AppIdUtil.isBaseZhiKong()) { + fanBladeIv.setVisibility(View.GONE); + } + } + + private void clearAlph() { + shakeheadbg.clearAnimation(); + windSpeedBg.clearAnimation(); + windReduceBg.clearAnimation(); + timingBg.clearAnimation(); + openFanBg.clearAnimation(); + closeFanBg.clearAnimation(); + windTypeBg.clearAnimation(); + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void showControl() { + // mTitleView.setHeadFuntionTxt(R.string.voice_said); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + fanTopLl.setVisibility(View.GONE); + learningLl.setVisibility(View.GONE); + clearMark(); + fanContinueLearnLl.setVisibility(View.GONE); + + if (!windTag) { + windSpeed.setAlpha(0.5f); + windAddIv.setAlpha(0.5f); + windSpeed.setEnabled(false); + } else { + windSpeed.setAlpha(1.0f); + windAddIv.setAlpha(1.0f); + windSpeed.setEnabled(true); + } + + if (!windReduceTag) { + windReduce.setAlpha(0.5f); + winReduceIv.setAlpha(0.5f); + windReduce.setEnabled(false); + } else { + windReduce.setAlpha(1.0f); + winReduceIv.setAlpha(1.0f); + windReduce.setEnabled(true); + } + if (!shakeTag) { + shakeHead.setAlpha(0.5f); + shakeHead.setEnabled(false); + } else { + shakeHead.setAlpha(1.0f); + shakeHead.setEnabled(true); + } + if (!openTag) { + openFan.setAlpha(0.5f); + openFan.setEnabled(false); + } else { + openFan.setAlpha(1.0f); + openFan.setEnabled(true); + } + if (!closeTag) { + closeFan.setAlpha(0.5f); + closeFan.setEnabled(false); + } else { + closeFan.setAlpha(1.0f); + closeFan.setEnabled(true); + } + if (!timeTag) { + timing.setAlpha(0.5f); + timing.setEnabled(false); + } else { + timing.setAlpha(1.0f); + timing.setEnabled(true); + } + if (!windTypeTag) { + windType.setAlpha(0.5f); + windType.setEnabled(false); + } else { + windType.setAlpha(1.0f); + windType.setEnabled(true); + } + } + + private void clearMark() { + openFanMark.setVisibility(View.GONE); + closeFanMark.setVisibility(View.GONE); + windSpeedMark.setVisibility(View.GONE); + windReduceMark.setVisibility(View.GONE); + timingMark.setVisibility(View.GONE); + windTypeMark.setVisibility(View.GONE); + shakeHeadMark.setVisibility(View.GONE); + } + + private void showLearn() { + mAlphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.alpha_anim_device); + mTitleView.setHeadFuntionTxt(R.string.save); + mTitleView.setHeadFuntionGone(); + fanTopLl.setVisibility(View.VISIBLE); + learnComplete.setVisibility(View.GONE); + learningLl.setVisibility(View.VISIBLE); + fanContinueLearnLl.setVisibility(View.GONE); + setLearnAlph(); + learnShowMark(); + showLearnInstruction(); + } + + private void showLearnInstruction() { + if (!openTag) { + learningLl.setVisibility(View.VISIBLE); + learnComplete.setVisibility(View.GONE); + learnInstruction.setText(R.string.open); + clearAlph(); + openFanBg.startAnimation(mAlphaAnimation); + } else if (!windTag) { + learningLl.setVisibility(View.VISIBLE); + learnComplete.setVisibility(View.GONE); + clearAlph(); + learnInstruction.setText(R.string.wind_speed_add); + windSpeedBg.startAnimation(mAlphaAnimation); + } else if (!windReduceTag) { + learningLl.setVisibility(View.VISIBLE); + learnComplete.setVisibility(View.GONE); + clearAlph(); + learnInstruction.setText(R.string.wind_speed_reduce); + windReduceBg.startAnimation(mAlphaAnimation); + } else if (!shakeTag) { + learningLl.setVisibility(View.VISIBLE); + learnComplete.setVisibility(View.GONE); + clearAlph(); + learnInstruction.setText(R.string.shake_head); + shakeheadbg.startAnimation(mAlphaAnimation); + } else if (!windTypeTag) { + learningLl.setVisibility(View.VISIBLE); + learnComplete.setVisibility(View.GONE); + clearAlph(); + learnInstruction.setText(R.string.wind_type); + windTypeBg.startAnimation(mAlphaAnimation); + } else if (!timeTag) { + learningLl.setVisibility(View.VISIBLE); + learnComplete.setVisibility(View.GONE); + clearAlph(); + learnInstruction.setText(R.string.time); + timingBg.startAnimation(mAlphaAnimation); + } else if (!closeTag) { + learningLl.setVisibility(View.VISIBLE); + learnComplete.setVisibility(View.GONE); + clearAlph(); + learnInstruction.setText(getString(R.string.close)); + closeFanBg.startAnimation(mAlphaAnimation); + } else { + clearAlph(); + learningLl.setVisibility(View.GONE); + learnComplete.setVisibility(View.VISIBLE); + } + } + + private void setLearnAlph() { + windSpeed.setAlpha(1.0f); + windAddIv.setAlpha(1.0f); + windSpeed.setEnabled(true); + windReduce.setAlpha(1.0f); + winReduceIv.setAlpha(1.0f); + windReduce.setEnabled(true); + shakeHead.setAlpha(1.0f); + shakeHead.setEnabled(true); + openFan.setAlpha(1.0f); + openFan.setEnabled(true); + closeFan.setAlpha(1.0f); + closeFan.setEnabled(true); + windType.setAlpha(1.0f); + windType.setEnabled(true); + timing.setAlpha(1.0f); + timing.setEnabled(true); + } + + private void learnShowMark() { + if (windTag) { + windSpeedMark.setVisibility(View.VISIBLE); + } + if (windReduceTag) { + windReduceMark.setVisibility(View.VISIBLE); + } + if (shakeTag) { + shakeHeadMark.setVisibility(View.VISIBLE); + } + if (openTag) { + openFanMark.setVisibility(View.VISIBLE); + } + if (timeTag) { + timingMark.setVisibility(View.VISIBLE); + } + if (windTypeTag) { + windTypeMark.setVisibility(View.VISIBLE); + } + if (closeTag) { + closeFanMark.setVisibility(View.VISIBLE); + } + } + + private void queryStudyValue() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", FAN_TAG); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETCONTROLKEYS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetControlKeys", "onSuccess()" + respone); + Key5Entity obj = JSON.parseObject(respone, Key5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_STUDY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_STUDY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_STUDY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initListener() { + openFan.setOnClickListener(this); + closeFan.setOnClickListener(this); + timing.setOnClickListener(this); + windSpeed.setOnClickListener(this); + windReduce.setOnClickListener(this); + shakeHead.setOnClickListener(this); + windType.setOnClickListener(this); + fanContinueLearnLl.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + Intent intent; + if (isLearn) { + switch (v.getId()) { + case R.id.tv_fan_open: + toLearnByNmber(1); + break; + case R.id.tv_fan_close: + toLearnByNmber(6); + break; + case R.id.tv_timing: + toLearnByNmber(4); + break; + case R.id.tv_wind_speed: + toLearnByNmber(3); + break; + case R.id.tv_tv_windreduce: + toLearnByNmber(7); + break; + case R.id.tv_shake_head: + toLearnByNmber(2); + break; + case R.id.tv_wind_type: + toLearnByNmber(5); + break; + } + } else { + switch (v.getId()) { + case R.id.tv_fan_open: + subsetControl("power"); + /*// ToastUtil.show(getContext(), "控制开关"); + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_OPEN)); + } else { + sendAirControlOrder(1); + }*/ + break; + case R.id.tv_fan_close: + subsetControl("poweroff"); + /*// ToastUtil.show(getContext(), "控制开关"); + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_CLOSE)); + } else { + sendAirControlOrder(6); + }*/ + break; + case R.id.tv_timing: + subsetControl("timer"); + /*// ToastUtil.show(getContext(), "控制定时"); + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_TIME)); + } else { + sendAirControlOrder(2); + }*/ + break; + case tv_wind_speed: + subsetControl("speedplus"); + /*// ToastUtil.show(getContext(), "控制风速"); + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_WIND)); + } else { + sendAirControlOrder(3); + }*/ + break; + case R.id.tv_shake_head: + subsetControl("oscillation"); + /*// ToastUtil.show(getContext(), "控制摇头"); + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_SHAKE)); + } else { + sendAirControlOrder(4); + }*/ + break; + case R.id.tv_wind_type: + subsetControl("mode"); + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_TYPE)); + } else { + sendAirControlOrder(5); + }*/ + break; + case R.id.tv_tv_windreduce: + subsetControl("speedreduce"); + /*if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_WIND_REDUCE)); + } else { + sendAirControlOrder(7); + }*/ + break; + case R.id.ll_fan_continue_learn: + isLearn = true; + //查询学习按键 + queryStudyValue(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + } + } + } + + private void toLearnByNmber(int i) { + Intent intent = new Intent(getContext(), LearnGuideActivity.class); + intent.putExtra("learnGuide", i); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", FAN_TAG); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivityForResult(intent, LEARN_RESULT); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", FAN_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case ADD_CHILDDEVICE_SUCCESS: + AddChildDeviceEntity entity1 = (AddChildDeviceEntity) msg.obj; + ToastUtil.show(getContext(), entity1.getMsg()); + break; + case ADD_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case QUERY_STUDY_SUCCESS: + Key5Entity entity = (Key5Entity) msg.obj; + setIsLearned(entity); + if (isLearn) { + showLearn(); + } else { + showControl(); + } + break; + case QUERY_STUDY_FAIL: + + break; + case SEND_CONTROL_ORDER_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case DELETE_CHILDDEVICE_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity1.getDeviceType().equals(FAN_TAG) && !TextUtils.isEmpty(nettyEntity1.getOpenFlag())) { + if (nettyEntity1.getOpenFlag().equals("1")) { + fanBladeIv.startAnimation(rotateAnimation); + ToastUtil.show(getContext(), "风扇已打开"); + } else { + fanBladeIv.clearAnimation(); + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + fanBladeIv.startAnimation(rotateAnimation); + } else { + fanBladeIv.clearAnimation(); + } + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void setIsLearned(Key5Entity entity) { + List entity1Obj = entity.getData(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + switch (entity1Obj.get(i).getName()) { + case "power": + openTag = true; + break; + case "oscillation": + shakeTag = true; + break; + case "speedplus": + windTag = true; + break; + case "timer": + timeTag = true; + break; + case "mode": + windTypeTag = true; + break; + case "poweroff": + closeTag = true; + break; + case "speedreduce": + windReduceTag = true; + break; + } + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(devicesBean.getId(), FAN_TAG); + if (isLearn) { + queryStudyValue(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case LEARN_RESULT: + if (data != null && data.getExtras().get("learnGuide") != null) { + int learnGuide = (int) data.getExtras().get("learnGuide"); + switch (learnGuide) { + case 1: + openFanMark.setVisibility(View.VISIBLE); + break; + case 2: + shakeHeadMark.setVisibility(View.VISIBLE); + break; + case 3: + windSpeedMark.setVisibility(View.VISIBLE); + break; + case 4: + timingMark.setVisibility(View.VISIBLE); + break; + case 5: + windTypeMark.setVisibility(View.VISIBLE); + break; + case 6: + closeFanMark.setVisibility(View.VISIBLE); + break; + case 7: + windReduceMark.setVisibility(View.VISIBLE); + break; + } + } + break; + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("deviceName") != null) { + fanName = data.getExtras().get("deviceName").toString().trim(); + mTitleView.setHead(fanName); + } + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(FanA1Fragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + FanA1Fragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/FanA2Fragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/FanA2Fragment.java new file mode 100644 index 0000000..25be99a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/FanA2Fragment.java @@ -0,0 +1,1253 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.AlphaAnimation; +import android.view.animation.AnimationUtils; +import android.view.animation.RotateAnimation; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.database.entity.entitya2.KeyEntity; +import com.yonsz.z1.database.entity.entitya2.LearnWhatEvent; +import com.yonsz.z1.database.entity.entitya2.LoadEvent; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.devicea2.LearnGuideA2Activity; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.customview.SaveCodeDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.mine.aboutversion.feature.Callback3; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.tv_tv_windreduce; +import static com.yonsz.z1.R.id.tv_wind_speed; +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_FAIL; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS_FAN; +import static com.yonsz.z1.net.Constans.FAN_CLOSE; +import static com.yonsz.z1.net.Constans.FAN_LEARN_ING; +import static com.yonsz.z1.net.Constans.FAN_OPEN; +import static com.yonsz.z1.net.Constans.FAN_SHAKE; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.FAN_TIME; +import static com.yonsz.z1.net.Constans.FAN_TYPE; +import static com.yonsz.z1.net.Constans.FAN_WIND; +import static com.yonsz.z1.net.Constans.FAN_WIND_REDUCE; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.isLocalControl; +import static com.yonsz.z1.net.NetWorkUrl.CANCEL_DOWNLOAD; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; +import static com.yonsz.z1.net.NetWorkUrl.SELECT_CONNDEVICE_PUSHKEY; +import static com.yonsz.z1.net.NetWorkUrl.YKY_DOWNLOAD; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class FanA2Fragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private TextView windType, windTypeBg, openFan, openFanBg, closeFan, closeFanBg, timing, timingBg, windSpeed, windSpeedBg, windReduce, windReduceBg, shakeHead, shakeheadbg, learnInstruction, learnComplete; + private ImageView openFanMark, closeFanMark, timingMark, windSpeedMark, shakeHeadMark, windTypeMark; + private LinearLayout learningLl, fanContinueLearnLl, fanTopLl; + private AlphaAnimation mAlphaAnimation; + private boolean isLearn = false; + private String ziId; + private boolean openTag = false, closeTag = false, shakeTag = false, windTag = false, windReduceTag = false, timeTag = false, windTypeTag = false; + private String fanName; + private HorizontalProgressBarWithNumber mProgressBar; + private RelativeLayout progressRl; + private TextView progressTv; + private boolean isLoading = false, isShow = true; + private TextView loadBackTv, tv_cancel_load; + private LoadingDialog mLoadingDialog; + private String cancelFlag; + private boolean isOpenLearn = false, isCloselearn = false, isShakeLearn = false, isSpeedLearn = false, isTypeLearn = false, isTimelearn = false; + private ImageView localControlIv; + private ImageView fanBladeIv, fanIv, fan1006Iv; + private RotateAnimation rotateAnimation; + private RelativeLayout rl_learn_guide; + private boolean isShowLearnGuide = false; + private boolean isInit = false; + private ImageView windAddIv, winReduceIv; + + public static FanA2Fragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + FanA2Fragment fragment = new FanA2Fragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LoadEvent event) { + String msg = event.getMsg(); + NettyEntity nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (nettyEntity.getDeviceType().equals(FAN_TAG)) { + Log.e("nettyUtilFan", msg); + Message message = new Message(); + message.what = FAN_LEARN_ING; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + public void onEventMainThread(LearnWhatEvent event) { + /*String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = FAN_LEARN_WHAT; + message.obj = msg; + mHandler.sendMessage(message);*/ + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_fan_a2, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + showLoadDiaolog(getUserVisibleHint()); + } + + private void showLoadDiaolog(boolean isVisibleToUser) { + if (isVisibleToUser && isInit) { + cancelFlag = devicesBean.getCancelFlag() + ""; + if (cancelFlag.equals("1")) { + EventBus.getDefault().post( + new CanloopEvent(true)); + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + getActivity().finish(); + break; + case 1: + reloadInfrared(FAN_TAG); + break; + } + } + }); + dialog.setContent(R.string.Data_not_downloaded_reloaded); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(devicesBean.getId(), FAN_TAG); + if (isLearn) { + selectConnDevicePushkey(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + + isInit = true; + fanName = devicesBean.getDeviceBrand(); + ziId = devicesBean.getZiId(); + if (getArguments().get("loadStatus").toString().equals("1") && getUserVisibleHint() && getArguments().get("loadErrorType").toString().equals(FAN_TAG)) { + isLoading = true; + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + } else { + isLoading = false; + } + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + /*openFanMark = (ImageView) fragView.findViewById(R.id.tv_fan_open_mark); + closeFanMark = (ImageView) fragView.findViewById(R.id.tv_fan_close_mark); + timingMark = (ImageView) fragView.findViewById(R.id.tv_timing_mark); + windSpeedMark = (ImageView) fragView.findViewById(R.id.tv_wind_speed_mark); + shakeHeadMark = (ImageView) fragView.findViewById(R.id.tv_shake_head_mark); + windTypeMark = (ImageView) fragView.findViewById(R.id.tv_wind_type_mark);*/ + windAddIv = (ImageView) fragView.findViewById(R.id.iv_wind_add); + winReduceIv = (ImageView) fragView.findViewById(R.id.iv_wind_reduce); + + progressRl = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + rl_learn_guide = (RelativeLayout) fragView.findViewById(R.id.rl_learn_guide); + loadBackTv = (TextView) fragView.findViewById(R.id.tv_load_back); + tv_cancel_load = (TextView) fragView.findViewById(R.id.tv_cancel_load); + openFan = (TextView) fragView.findViewById(R.id.tv_fan_open); + + openFanBg = (TextView) fragView.findViewById(R.id.tv_fan_open_bg); + closeFan = (TextView) fragView.findViewById(R.id.tv_fan_close); + closeFanBg = (TextView) fragView.findViewById(R.id.tv_fan_close_bg); + timing = (TextView) fragView.findViewById(R.id.tv_timing); + timingBg = (TextView) fragView.findViewById(R.id.tv_timing_bg); + windSpeed = (TextView) fragView.findViewById(tv_wind_speed); + windSpeedBg = (TextView) fragView.findViewById(R.id.tv_wind_speed_bg); + windReduce = (TextView) fragView.findViewById(tv_tv_windreduce); + windReduceBg = (TextView) fragView.findViewById(R.id.tv_tv_windreduce_bg); + shakeHead = (TextView) fragView.findViewById(R.id.tv_shake_head); + shakeheadbg = (TextView) fragView.findViewById(R.id.tv_shake_head_bg); + windType = (TextView) fragView.findViewById(R.id.tv_wind_type); + windTypeBg = (TextView) fragView.findViewById(R.id.tv_wind_type_bg); + + fanTopLl = (LinearLayout) fragView.findViewById(R.id.ll_fan_top); + learnInstruction = (TextView) fragView.findViewById(R.id.tv_learn_instruction); + learningLl = (LinearLayout) fragView.findViewById(R.id.ll_learning); + fanBladeIv = (ImageView) fragView.findViewById(R.id.iv_fan_blade); + fanIv = (ImageView) fragView.findViewById(R.id.iv_fan); + fan1006Iv = (ImageView) fragView.findViewById(R.id.iv_fan1006); + + progressTv = (TextView) fragView.findViewById(R.id.tv_progress_top); + mProgressBar = (HorizontalProgressBarWithNumber) fragView.findViewById(R.id.pg_horizontal_fan); + // mHandler.sendEmptyMessage(MSG_PROGRESS_UPDATE); + mTitleView = (TitleView) fragView.findViewById(R.id.title_fan); + mTitleView.clearBackGroud(); + if (!fanName.isEmpty()) { + mTitleView.setHead(fanName); + } else { + mTitleView.setHead(R.string.fan); + } + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + rotateAnimation = (RotateAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.rotate360_fan_anim); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isLoading) { + + } else { + getActivity().finish(); + } + } + + @Override + public void onFunction() { + if (isLoading) { + + } else { + if (isLearn) { + isLearn = false; + //查询学习按键 + selectConnDevicePushkey(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(FAN_TAG, ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //重新命名 + showSavecode(); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", FAN_TAG); + startActivity(intent); + break; + case 4: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //遥控学习 + isLearn = true; + //查询学习按键 + selectConnDevicePushkey(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent("保存到码库"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + } + + @Override + public void onFunctionText() { + + } + }); + + if (isLoading) { + progressRl.setVisibility(View.VISIBLE); + } else { + progressRl.setVisibility(View.GONE); + selectConnDevicePushkey(); + } + + showLoadDiaolog(getUserVisibleHint()); + + if (AppIdUtil.isBaseZhiKong()) { + fan1006Iv.setVisibility(View.VISIBLE); + fanIv.setVisibility(View.GONE); + fanBladeIv.setVisibility(View.GONE); + } + } + + private void showSavecode() { + SaveCodeDialog dialog2 = new SaveCodeDialog(getContext(), new Callback3() { + + @Override + public void callback(int position, String positionName, String model) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positionName.trim())) { + ToastUtil.show(getContext(), "请输入码库名称"); + return; + } + infraredHistoryAdd(positionName, model); + break; + } + } + }); + dialog2.setOldName(fanName); + dialog2.setCancleBtn("不用了"); + dialog2.setSureBtn(R.string.sure); + dialog2.setCancelable(false); + dialog2.show(); + } + + private void reloadInfrared(String deviceType) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("macId", ziId); + map.put("deviceType", deviceType); + map.put("rid", devicesBean.getRid()); + netWorkUtil.requestPostByAsynewApi(YKY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("reloadInfrared", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty message = JSON.parseObject(respone, SimpleEntty.class); + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_SUCCESS_FAN); + msg.obj = message; + mHandler.sendMessage(msg); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initListener() { + openFan.setOnClickListener(this); + closeFan.setOnClickListener(this); + timing.setOnClickListener(this); + windSpeed.setOnClickListener(this); + windReduce.setOnClickListener(this); + shakeHead.setOnClickListener(this); + windType.setOnClickListener(this); + loadBackTv.setOnClickListener(this); + tv_cancel_load.setOnClickListener(this); + progressRl.setOnClickListener(this); + rl_learn_guide.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + Intent intent; + if (isLearn) { + switch (v.getId()) { + case R.id.tv_fan_open: + toLearnByNmber(1); + break; + case R.id.tv_fan_close: + toLearnByNmber(6); + break; + case R.id.tv_timing: + toLearnByNmber(4); + break; + case R.id.tv_wind_speed: + toLearnByNmber(3); + break; + case R.id.tv_tv_windreduce: + toLearnByNmber(7); + break; + case R.id.tv_shake_head: + toLearnByNmber(2); + break; + case R.id.tv_wind_type: + toLearnByNmber(5); + break; + case R.id.tv_load_back: + SharedpreferencesUtil.save(ziId + FAN_TAG, true); + if (isLoading) { + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + } else { + getActivity().finish(); + } + break; + case R.id.rl_progress_top: + break; + } + } else { + switch (v.getId()) { + case R.id.tv_fan_open: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_OPEN)); + } else { + // controllerDevice(FAN_OPEN); + subsetControl("power"); + } + break; + case R.id.tv_fan_close: + fanBladeIv.clearAnimation(); + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_CLOSE)); + } else { + // controllerDevice(FAN_CLOSE); + subsetControl("poweroff"); + } + break; + case R.id.tv_timing: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_TIME)); + } else { + // controllerDevice(FAN_TIME); + subsetControl("timer"); + } + break; + case tv_wind_speed: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_WIND)); + } else { + // controllerDevice(FAN_WIND); + subsetControl("speedplus"); + } + break; + case R.id.tv_tv_windreduce: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_WIND_REDUCE)); + } else { + // controllerDevice(FAN_WIND_REDUCE); + subsetControl("speedreduce"); + } + break; + case R.id.tv_shake_head: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_SHAKE)); + } else { + // controllerDevice(FAN_SHAKE); + subsetControl("oscillation"); + } + break; + case R.id.tv_wind_type: + + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(FAN_TYPE)); + } else { + // controllerDevice(FAN_TYPE); + subsetControl("mode"); + } + break; + case R.id.tv_load_back: + SharedpreferencesUtil.save(ziId + FAN_TAG, true); + if (isLoading) { + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + } else { + getActivity().finish(); + } + break; + case R.id.rl_progress_top: + break; + case R.id.tv_cancel_load: + cancelDownload(); + break; + case R.id.rl_learn_guide: + rl_learn_guide.setVisibility(View.GONE); + isShowLearnGuide = false; + SharedpreferencesUtil.save(ziId + FAN_TAG, false); + break; + } + } + } + + private void toLearnByNmber(int i) { + Intent intent = new Intent(getContext(), LearnGuideA2Activity.class); + intent.putExtra("learnGuide", i); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", FAN_TAG); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivityForResult(intent, LEARN_RESULT); + } + + private void cancelDownload() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", FAN_TAG); + netWorkUtil.requestPostByAsynewApi(CANCEL_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancelDownload", "ShareDeviceActivity onSuccess()" + respone); + getActivity().finish(); + } + + @Override + public void onFail(String message) { + } + }); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case FAN_LEARN_ING: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + float countNum = Integer.parseInt(nettyEntity.getCountNum()); + float loadNum = Integer.parseInt(nettyEntity.getLoadNum()); + progressRl.setVisibility(View.VISIBLE); + mProgressBar.setProgress((int) (loadNum / countNum * 100)); + if (loadNum / countNum == 1) { + isLoading = false; + progressTv.setText(R.string.load_complete); + isShowLearnGuide = true; + progressRl.setVisibility(View.GONE); + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + + } else { + initLoadDialog(); + } + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + selectConnDevicePushkey(); + } + }, 2000); + devicesBean.setCancelFlag(0); + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + if (isShow) { + isShow = false; + showSavecode(); + } + } + break; + case SELECT_CONNDEVICE_PUSHKEY_SUCCESS: + KeyEntity entity1 = (KeyEntity) msg.obj; + List entity1Obj = entity1.getObj(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + Log.i("getPushKey", "FanA2Activity callBackUiThread()" + entity1Obj.get(i).getPushKey()); + switch (entity1Obj.get(i).getPushKey()) { + case "01": + openTag = true; + break; + case "02": + shakeTag = true; + break; + case "03": + windTag = true; + break; + case "04": + timeTag = true; + break; + case "05": + closeTag = true; + break; + case "06": + windTypeTag = true; + break; + case "07": + windReduceTag = true; + break; + } + } + } + if (isLearn) { + showLearn(); + } else { + showControl(); + } + if (mLoadingDialog != null) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + if (isShowLearnGuide || SharedpreferencesUtil.get(ziId + FAN_TAG)) { + rl_learn_guide.setVisibility(View.VISIBLE); + } else { + rl_learn_guide.setVisibility(View.GONE); + } + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case DELETE_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS_FAN: + progressRl.setVisibility(View.VISIBLE); + break; + /*case FAN_LEARN_WHAT: + String obj = (String) msg.obj; + switch (obj) { + case "1": + isOpenLearn = true; + break; + case "2": + isShakeLearn = true; + break; + case "3": + isSpeedLearn = true; + break; + case "4": + isTimelearn = true; + break; + case "5": + isTypeLearn = true; + break; + case "6": + isCloselearn = true; + break; + } + break;*/ + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity1.getDeviceType().equals(FAN_TAG) && !TextUtils.isEmpty(nettyEntity1.getOpenFlag())) { + if (nettyEntity1.getOpenFlag().equals("1")) { + fanBladeIv.startAnimation(rotateAnimation); + ToastUtil.show(getContext(), "风扇已打开"); + } else { + fanBladeIv.clearAnimation(); + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + fanBladeIv.startAnimation(rotateAnimation); + } else { + fanBladeIv.clearAnimation(); + } + break; + case UPDATEBLIND_ENTITYNAME_SUCCESS: + ToastUtil.show(getContext(), "保存成功"); + break; + case UPDATEBLIND_ENTITYNAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void showLearn() { + mAlphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.alpha_anim_device); + mTitleView.setHeadFuntionTxt(R.string.save); + mTitleView.setHeadFuntionGone(); + fanTopLl.setVisibility(View.VISIBLE); + learningLl.setVisibility(View.VISIBLE); + setLearnAlph(); + // learnShowMark(); + showLearnInstruction(); + } + + private void showLearnInstruction() { + if (!openTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.open); + openFanBg.startAnimation(mAlphaAnimation); + } else if (!closeTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(getString(R.string.close)); + closeFanBg.startAnimation(mAlphaAnimation); + } else if (!shakeTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.shake_head); + shakeheadbg.startAnimation(mAlphaAnimation); + } else if (!windTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.wind_speed_add); + windSpeedBg.startAnimation(mAlphaAnimation); + } else if (!windReduceTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.wind_speed_reduce); + windReduceBg.startAnimation(mAlphaAnimation); + } else if (!windTypeTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.wind_type); + windTypeBg.startAnimation(mAlphaAnimation); + } else if (!timeTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.time); + timingBg.startAnimation(mAlphaAnimation); + } else { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.open); + openFanBg.startAnimation(mAlphaAnimation); + } + } + + private void clearAlph() { + shakeheadbg.clearAnimation(); + windSpeedBg.clearAnimation(); + windReduceBg.clearAnimation(); + timingBg.clearAnimation(); + openFanBg.clearAnimation(); + closeFanBg.clearAnimation(); + windTypeBg.clearAnimation(); + } + + private void learnShowMark() { + if (isCloselearn) { + closeFanMark.setVisibility(View.VISIBLE); + } + if (isOpenLearn) { + openFanMark.setVisibility(View.VISIBLE); + } + if (isShakeLearn) { + shakeHeadMark.setVisibility(View.VISIBLE); + } + if (isTypeLearn) { + windTypeMark.setVisibility(View.VISIBLE); + } + if (isTimelearn) { + timingMark.setVisibility(View.VISIBLE); + } + if (isSpeedLearn) { + windSpeedMark.setVisibility(View.VISIBLE); + } + } + + private void setLearnAlph() { + windSpeed.setAlpha(1.0f); + windAddIv.setAlpha(1.0f); + windSpeed.setEnabled(true); + windReduce.setAlpha(1.0f); + winReduceIv.setAlpha(1.0f); + windReduce.setEnabled(true); + shakeHead.setAlpha(1.0f); + shakeHead.setEnabled(true); + openFan.setAlpha(1.0f); + openFan.setEnabled(true); + windType.setAlpha(1.0f); + windType.setEnabled(true); + timing.setAlpha(1.0f); + timing.setEnabled(true); + closeFan.setAlpha(1.0f); + closeFan.setEnabled(true); + } + + private void showControl() { + clearAlph(); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + fanTopLl.setVisibility(View.GONE); + learningLl.setVisibility(View.GONE); + // clearMark(); + + if (!windTag) { + windSpeed.setAlpha(0.5f); + windAddIv.setAlpha(0.5f); + windSpeed.setEnabled(false); + } else { + windSpeed.setAlpha(1.0f); + windAddIv.setAlpha(1.0f); + windSpeed.setEnabled(true); + } + if (!windReduceTag) { + windReduce.setAlpha(0.5f); + winReduceIv.setAlpha(0.5f); + windReduce.setEnabled(false); + } else { + windReduce.setAlpha(1.0f); + winReduceIv.setAlpha(1.0f); + windReduce.setEnabled(true); + } + if (!shakeTag) { + shakeHead.setAlpha(0.5f); + shakeHead.setEnabled(false); + } else { + shakeHead.setAlpha(1.0f); + shakeHead.setEnabled(true); + } + if (!openTag) { + openFan.setAlpha(0.5f); + openFan.setEnabled(false); + } else { + openFan.setAlpha(1.0f); + openFan.setEnabled(true); + } + if (!closeTag) { + closeFan.setAlpha(0.5f); + closeFan.setEnabled(false); + } else { + closeFan.setAlpha(1.0f); + closeFan.setEnabled(true); + } + if (!timeTag) { + timing.setAlpha(0.5f); + timing.setEnabled(false); + } else { + timing.setAlpha(1.0f); + timing.setEnabled(true); + } + if (!windTypeTag) { + windType.setAlpha(0.5f); + windType.setEnabled(false); + } else { + windType.setAlpha(1.0f); + windType.setEnabled(true); + } + } + + private void clearMark() { + openFanMark.setVisibility(View.GONE); + closeFanMark.setVisibility(View.GONE); + windSpeedMark.setVisibility(View.GONE); + timingMark.setVisibility(View.GONE); + windTypeMark.setVisibility(View.GONE); + shakeHeadMark.setVisibility(View.GONE); + } + + private void selectConnDevicePushkey() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceType", FAN_TAG); + map.put("ziId", ziId); + netWorkUtil.requestPostByAsynew(SELECT_CONNDEVICE_PUSHKEY, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("selectConnDevicePushkey", "ShareDeviceActivity onSuccess()" + respone); + KeyEntity obj = JSON.parseObject(respone, KeyEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", FAN_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void infraredHistoryAdd(String name, String model) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + /*map.put("brand", devicesBean.getDeviceBrand()); + map.put("model", model);*/ + map.put("name", name); + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.INFRARED_HISTORY_ADD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("infraredHistoryModify", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_SUCCESS); + msg.obj = name; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(FanA2Fragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + FanA2Fragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/LightA1Fragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/LightA1Fragment.java new file mode 100644 index 0000000..1a8e26c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/LightA1Fragment.java @@ -0,0 +1,1092 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.SeekBar; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AdditionEntity; +import com.yonsz.z1.database.entity.LightEntity; +import com.yonsz.z1.database.entity.LightListEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.VoiceControllEntity; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.BlindTestEntity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.light.ColorTemperatureActivity; +import com.yonsz.z1.new433.light.ResponseActivity; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.version5.ModifyTypeActivity; +import com.yonsz.z1.version5.light.ModifyLightTypeActivity; +import com.yonsz.z1.view.PositionPopupWindow; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_FAIL; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class LightA1Fragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition, aiNameAndState, aiModelName; + private CheckBox childVoiceCb; + private CheckBox childPicture; + private TextView firstControl, thirdControl, timeControl; + private String ziId; + private String lightId; + private String addressName; + private String voiceFlag; + private String addressId; + private String lightType = "", yblType = ""; + private String deviceModel = ""; + private ImageView localControlIv; + private TextView tv_switcher_time; + private TextView tv_next_week, tv_state, tv_brightness; + private LinearLayout ll_light_control; + private SeekBar brightNessSb; + + public static LightA1Fragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + LightA1Fragment fragment = new LightA1Fragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_light4, null); + initView(fragView); + return fragView; + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + deviceModel = devicesBean.getDeviceModel(); + ziId = devicesBean.getZiId(); + lightType = devicesBean.getSubType(); + lightId = devicesBean.getId(); + addressId = devicesBean.getAddressId(); + addressName = devicesBean.getAddressName(); + voiceFlag = devicesBean.getVoiceFlag(); + yblType = devicesBean.getYblType(); + childPosition = (TextView) fragView.findViewById(R.id.tv_child_position); + brightNessSb = (SeekBar) fragView.findViewById(R.id.sb_lightness); + tv_brightness = (TextView) fragView.findViewById(R.id.tv_brightness); + ll_light_control = (LinearLayout) fragView.findViewById(R.id.ll_light_control); + aiNameAndState = (TextView) fragView.findViewById(R.id.tv_ai_state); + aiModelName = (TextView) fragView.findViewById(R.id.tv_ai_modelname); + childVoiceCb = (CheckBox) fragView.findViewById(R.id.tv_child_voice); + childPicture = (CheckBox) fragView.findViewById(R.id.iv_child_picture); + firstControl = (TextView) fragView.findViewById(R.id.tv_first_control); + thirdControl = (TextView) fragView.findViewById(R.id.tv_third_control); + timeControl = (TextView) fragView.findViewById(R.id.tv_time_control); + tv_switcher_time = (TextView) fragView.findViewById(R.id.tv_switcher_time); + tv_next_week = (TextView) fragView.findViewById(R.id.tv_next_week); + tv_state = (TextView) fragView.findViewById(R.id.tv_state); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + childVoiceCb.setOnClickListener(this); + timeControl.setOnClickListener(this); + firstControl.setOnClickListener(this); + thirdControl.setOnClickListener(this); + childPicture.setOnClickListener(this); + mTitleView = (TitleView) fragView.findViewById(R.id.title_light4); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + setLightTypePic(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + Intent intent; + switch (position1) { + case 0: + //取消 + break; + case 1: + if (deviceModel.equals("11")) { + modifyType(); + } else { + showDeleteLight(); + } + break; + case 2: + //修改窗帘位置信息 + // showPositionBottom(lightId, addressId); + intent = new Intent(getActivity(), ModifyRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", LIGHT_TAG); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", addressId); + intent.putExtra("deviceId", lightId); + startActivityForResult(intent, MODIFY_DEVICE_NAME); + break; + case 3: + //语令说明 + intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", LIGHT_TAG); + intent.putExtra("lightType", lightType); + startActivity(intent); + break; + case 4: + modifyType(); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 6: + if (deviceModel.equals("9")) { + intent = new Intent(getContext(), ResponseActivity.class); + intent.putExtra("lightType", lightType); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", LIGHT_TAG); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", addressId); + intent.putExtra("deviceId", lightId); + startActivity(intent); + } else { + intent = new Intent(getContext(), ColorTemperatureActivity.class); + intent.putExtra("lightType", lightType); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", LIGHT_TAG); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", addressId); + intent.putExtra("deviceId", lightId); + startActivity(intent); + } + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("lightType", lightType); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", LIGHT_TAG); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", addressId); + intent.putExtra("deviceId", lightId); + startActivity(intent); + break; + } + } + }); + dialog2.setContent("修改设备位置"); + dialog2.setLearnTxt("修改设备类型"); + if (deviceModel.equals("7")) { + dialog2.setSureBtnTxt(); + } else { + dialog2.setSureBtnTxt(R.string.Delete_light); + } + if (deviceModel.equals("9")) { + dialog2.setAddTxt("设备感应设置"); + } +// dialog2.setAddTxt("配置设备色温"); + + if (deviceModel.equals("11")) { + dialog2.setLearn(); + dialog2.setBottom("修改设备类型"); + } + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + + childPosition.setText(AddressNameUtil.getAddressName(addressId)); + aiNameAndState.setText(AddressNameUtil.getAiNameAndState(ziId)); + aiModelName.setText(devicesBean.getModelName()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + + if (!yblType.isEmpty() && yblType.equals("02") || deviceModel.equals("6") || deviceModel.equals("9")) { + ll_light_control.setVisibility(View.VISIBLE); + tv_brightness.setVisibility(View.VISIBLE); + } else { + ll_light_control.setVisibility(View.GONE); + tv_brightness.setVisibility(View.GONE); + } + + + brightNessSb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, final int progress, boolean fromUser) { + Log.i("LightA1Fragment", "onProgressChanged()" + progress); + tv_brightness.setText("亮度" + progress + "%"); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + Log.i("LightA1Fragment", "onStopTrackingTouch()" + seekBar.getProgress()); + subsetControl("dimming", seekBar.getProgress()); + } + }); + } + + private void modifyType() { + Intent intent; + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改灯光类型信息 + if (AppIdUtil.isWork()) { + intent = new Intent(getContext(), ModifyTypeActivity.class); + } else { + intent = new Intent(getContext(), ModifyLightTypeActivity.class); + } + intent.putExtra("lightType", lightType); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", LIGHT_TAG); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", addressId); + intent.putExtra("deviceId", lightId); + if (devicesBean.getDeviceName().isEmpty()) { + intent.putExtra("deviceName", "灯光"); + } else { + intent.putExtra("deviceName", devicesBean.getDeviceName()); + } + startActivityForResult(intent, MODIFY_DEVICE_NAME); + } + + private void showDeleteLight() { + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除面板,现在是没法删除的 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setLightTypePic() { + tv_state.setVisibility(View.VISIBLE); + if (TextUtils.isEmpty(devicesBean.getDeviceName())) { + mTitleView.setHead(R.string.light); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + } + if (AppIdUtil.isWork()) { + /*if (TextUtils.isEmpty(devicesBean.getDeviceName())) { + mTitleView.setHead(R.string.light); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + }*/ + } else if (deviceModel.equals("7")) { + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_b4_mosquito_control)); + } else if (AppIdUtil.isZhiKong()) { + switch (lightType) { + case "0"://灯光 + // mTitleView.setHead(R.string.light); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_light_open_close)); + break; + case "1"://筒灯 + // mTitleView.setHead(R.string.tong_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_tubelamp)); + break; + case "2"://灯带 + // mTitleView.setHead(R.string.deng_dai); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_lightbelt)); + break; + case "3"://射灯 + // mTitleView.setHead(R.string.she_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_lamp)); + break; + case "4"://壁灯 + // mTitleView.setHead(R.string.bi_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_walllamp)); + break; + case "5"://吊灯 + // mTitleView.setHead(R.string.diao_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_chandelier)); + break; + case "6"://廊灯 + // mTitleView.setHead(R.string.lang_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_porchlamp)); + break; + case "7"://排气扇 + // mTitleView.setHead(R.string.paiqi_shan); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_exhaust)); + break; + default: + if (TextUtils.isEmpty(devicesBean.getDeviceName())) { + mTitleView.setHead(R.string.light); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + } + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_light_open_close)); + break; + } + } else { + switch (lightType) { + case "0"://灯光 + // mTitleView.setHead(R.string.light); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_light_open_close)); + break; + case "1"://筒灯 + // mTitleView.setHead(R.string.tong_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_tubelamp_open_close)); + break; + case "2"://灯带 + // mTitleView.setHead(R.string.deng_dai); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_lightbelt_open_close)); + break; + case "3"://射灯 + // mTitleView.setHead(R.string.she_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_lamp_open_close)); + break; + case "4"://壁灯 + // mTitleView.setHead(R.string.bi_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_walllamp_open_close)); + break; + case "5"://吊灯 + // mTitleView.setHead(R.string.diao_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_chandelier_open_close)); + break; + case "6"://廊灯 + // mTitleView.setHead(R.string.lang_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_porchlamp_open_close)); + break; + case "7"://排气扇 + // mTitleView.setHead(R.string.paiqi_shan); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_exhaust_open_close)); + break; + default: + if (TextUtils.isEmpty(devicesBean.getDeviceName())) { + mTitleView.setHead(R.string.light); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + } + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_light_open_close)); + break; + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(lightId, LIGHT_TAG); + queryNextTimer(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(MODIFY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetDelete() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", lightId); + map.put("deviceModel", deviceModel); + map.put("deviceType", LIGHT_TAG); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + ShakeUtil.setShake(getContext()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (voiceFlag.equals("1")) { + // allowVoiceControll(0, "id"); + subseSetVoice("0"); + } else { + // allowVoiceControll(1, "id"); + subseSetVoice("1"); + } + break; + } + } + }); + if (!voiceFlag.equals("1")) { + dialog.setContent("开启语音控制?"); + } else { + dialog.setContent("关闭语音控制?"); + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_first_control: + ShakeUtil.setShake(getContext()); + //开灯 + // getControlCmdAndIsSend("1"); + subsetControl("power", 100); + /*if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(devicesBean.getOnInfrared(), "01")); + } else { + // studyAndControllLight(devicesBean.getOnInfrared()); + getControlCmdAndIsSend("1"); + }*/ + break; + case R.id.tv_third_control: + ShakeUtil.setShake(getContext()); + // getControlCmdAndIsSend("0"); + subsetControl("poweroff", 0); + /*//关灯 + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(devicesBean.getOffInfrared(), "01")); + } else { + // studyAndControllLight(devicesBean.getOffInfrared()); + getControlCmdAndIsSend("0"); + }*/ + break; + case R.id.tv_time_control: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + Intent intent = new Intent(getContext(), SwitcherTimeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("id", lightId); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", LIGHT_TAG); + startActivity(intent); + break; + case R.id.iv_child_picture: + break; + } + } + + private void subseSetVoice(final String flag) { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", lightId); + map.put("deviceModel", deviceModel); + map.put("deviceType", LIGHT_TAG); + map.put("ziId", ziId); + map.put("voiceFlag", flag); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SETVOICE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subseSetVoice", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = flag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key, int brightness) { + String body = "{}"; + if (key.equals("dimming")) { + key = "brightness"; + AdditionEntity addition = new AdditionEntity(); + addition.setValue(String.valueOf(brightness)); + body = JSONObject.toJSONString(addition); + } + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", lightId); + map.put("deviceModel", deviceModel); + map.put("deviceType", LIGHT_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case STUDY_ANDCONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SELECTBLIND_BYZI_SUCCESS: + LightListEntity obj = (LightListEntity) msg.obj; + break; + case SELECTBLIND_BYZI_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + getActivity().finish(); + break; + case DELLIGHT_ENTITY_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), R.string.Delete_successful); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 1000); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BlindTestEntity lightEntity = (BlindTestEntity) msg.obj; + addressId = lightEntity.getObj().getAddressId(); + childPosition.setText(lightEntity.getObj().getAddressName()); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + int obj1 = Integer.parseInt((String) msg.obj); + if (obj1 == 0) { + voiceFlag = "0"; + ToastUtil.show(getContext(), "关闭语音成功"); + childVoiceCb.setChecked(false); + } else { + voiceFlag = "1"; + ToastUtil.show(getContext(), "开启语音成功"); + childVoiceCb.setChecked(true); + } + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SENDPID_STUDYBLIND_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELLIGHT_ENTITY_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_LIGHT_TYPE_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_LIGHT_TYPE_SUCCESS: + LightEntity lightEntity1 = (LightEntity) msg.obj; + lightType = lightEntity1.getObj().getLightType(); + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + setLightTypePic(); + ToastUtil.show(getContext(), "修改成功"); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case QUERY_NEXT_TIMER_SUCCESS: + Z1TimeEntity entity12 = (Z1TimeEntity) msg.obj; + if (entity12.getData() != null && !TextUtils.isEmpty(entity12.getData().getMin())) { + String cmdType = entity12.getData().getCmdType(); + int restMin = Integer.parseInt(entity12.getData().getMin()); + if (restMin < 60) { + if (cmdType.equals("1")) { + tv_switcher_time.setText(restMin + "分钟后开启"); + } else { + tv_switcher_time.setText(restMin + "分钟后关闭"); + } + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + if (cmdType.equals("1")) { + tv_switcher_time.setText(hour + "小时后开启"); + } else { + tv_switcher_time.setText(hour + "小时后关闭"); + } + } else { + if (cmdType.equals("1")) { + tv_switcher_time.setText(hour + "小时" + minite + "分钟后开启"); + } else { + tv_switcher_time.setText(hour + "小时" + minite + "分钟后关闭"); + } + } + } + tv_next_week.setText(""); + } else if (entity12.getData() != null) { + switch (entity12.getData().getWeek().toString()) { + case "1": + tv_next_week.setText("周日"); + break; + case "2": + tv_next_week.setText("周一"); + break; + case "3": + tv_next_week.setText("周二"); + break; + case "4": + tv_next_week.setText("周三"); + break; + case "5": + tv_next_week.setText("周四"); + break; + case "6": + tv_next_week.setText("周五"); + break; + case "7": + tv_next_week.setText("周六"); + break; + } + if (entity12.getData().getCmdType().toString().equals("1")) { + tv_switcher_time.setText(" " + entity12.getData().getTime().toString() + getString(R.string.open)); + } else { + tv_switcher_time.setText(" " + entity12.getData().getTime().toString() + getString(R.string.close)); + } + } else { + tv_switcher_time.setText(""); + tv_next_week.setText(""); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity.getDeviceType().equals(LIGHT_TAG)) { + String deviceIds = nettyEntity.getDeviceIds(); + List result = Arrays.asList(deviceIds.split(",")); + if (result.contains(lightId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_state.setText(devicesBean.getDeviceName() + "已打开"); + } else { + childPicture.setChecked(false); + tv_state.setText(devicesBean.getDeviceName() + "已关闭"); + } + if (nettyEntity.getBrightness().isEmpty()) { + brightNessSb.setProgress(100); + tv_brightness.setText("亮度" + 100 + "%"); + } else { + brightNessSb.setProgress(Integer.parseInt(nettyEntity.getBrightness())); + tv_brightness.setText("亮度" + nettyEntity.getBrightness() + "%"); + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_state.setText(devicesBean.getDeviceName() + "已打开"); + } else { + childPicture.setChecked(false); + tv_state.setText(devicesBean.getDeviceName() + "已关闭"); + } + if (parseObject.getData().getBrightness().isEmpty()) { + brightNessSb.setProgress(100); + tv_brightness.setText("亮度" + 100 + "%"); + } else { + brightNessSb.setProgress(Integer.parseInt(parseObject.getData().getBrightness())); + tv_brightness.setText("亮度" + parseObject.getData().getBrightness() + "%"); + } + break; + case MODIFY_NAME_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case MODIFY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void queryNextTimer() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceId", lightId); + map.put("deviceModel", deviceModel); + map.put("deviceType", LIGHT_TAG); + netWorkUtil.requestGetByAsy(NetWorkUrl.QUERY_NEXT_TIMER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryNextTimer", "ShareDeviceActivity onSuccess()" + respone); + Z1TimeEntity obj = JSON.parseObject(respone, Z1TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("devicePosition") != null) { + childPosition.setText(data.getExtras().get("devicePosition").toString()); + // lightType = data.getExtras().get("lightType").toString(); + addressId = data.getExtras().get("addressId").toString(); + setLightTypePic(); + } + if (data != null && data.getExtras().get("lightType") != null) { + lightType = data.getExtras().get("lightType").toString(); + devicesBean.setDeviceName(data.getExtras().get("lightName").toString()); + setLightTypePic(); + } + if (data != null && data.getExtras().get("deviceName") != null) { + String deviceName = data.getExtras().get("deviceName").toString(); + // int deviceNamePosition = (int) data.getExtras().get("deviceNamePosition"); + devicesBean.setDeviceName(deviceName); + mTitleView.setHead(deviceName); + // setLightTypePic(); + } + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(LightA1Fragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + LightA1Fragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/LightFragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/LightFragment.java new file mode 100644 index 0000000..f73d132 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/LightFragment.java @@ -0,0 +1,777 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.LightEntity; +import com.yonsz.z1.database.entity.LightListEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.VoiceControllEntity; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entitya2.BlindTestEntity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.light.LightModifyActivity; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.view.PositionPopupWindow; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.GET_SWITCHER_CHANGE_INFO; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_FAIL; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_SUCCESS; +import static com.yonsz.z1.net.Constans.isLocalControl; +/** + * Created by Administrator on 2018/8/8. + */ + +public class LightFragment extends android.support.v4.app.Fragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition; + private CheckBox childVoiceCb; + private CheckBox childPicture; + private TextView firstControl, thirdControl, timeControl; + private String ziId; + private String lightId; + private String addressName; + private String voiceFlag; + private String addressId; + private String lightType = ""; + private ImageView localControlIv; + private TextView tv_switcher_time; + private TextView tv_next_week; + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_light4, null); + initView(fragView); + return fragView; + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView(View fragView) { + devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + ziId = devicesBean.getZiId(); + lightType = devicesBean.getLightType(); + lightId = devicesBean.getId(); + addressId = devicesBean.getAddressId(); + addressName = devicesBean.getAddressName(); + voiceFlag = devicesBean.getVoiceFlag(); + childPosition = (TextView) fragView.findViewById(R.id.tv_child_position); + childVoiceCb = (CheckBox) fragView.findViewById(R.id.tv_child_voice); + childPicture = (CheckBox) fragView.findViewById(R.id.iv_child_picture); + firstControl = (TextView) fragView.findViewById(R.id.tv_first_control); + thirdControl = (TextView) fragView.findViewById(R.id.tv_third_control); + timeControl = (TextView) fragView.findViewById(R.id.tv_time_control); + tv_switcher_time = (TextView) fragView.findViewById(R.id.tv_switcher_time); + tv_next_week = (TextView) fragView.findViewById(R.id.tv_next_week); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + childVoiceCb.setOnClickListener(this); + timeControl.setOnClickListener(this); + firstControl.setOnClickListener(this); + thirdControl.setOnClickListener(this); + childPicture.setOnClickListener(this); + mTitleView = (TitleView) fragView.findViewById(R.id.title_light4); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + setLightTypePic(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + delLightEntity(0, 0); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //修改窗帘位置信息 + showPositionBottom(lightId, addressId); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", LIGHT_TAG); + intent.putExtra("lightType", lightType); + startActivity(intent); + break; + case 4: + //修改灯光类型信息 + // showTypeBottom(lightId, lightType); + Intent intent1 = new Intent(getContext(), LightModifyActivity.class); + intent1.putExtra("lightType", lightType); + intent1.putExtra("lightId", lightId); + intent1.putExtra("deviceAddress", addressId); + intent1.putExtra("ziId", ziId); + startActivityForResult(intent1, GET_SWITCHER_CHANGE_INFO); + break; + } + } + }); + dialog2.setContent(); + dialog2.setLearnTxt(R.string.Edit_smart_switch_panel); + dialog2.setSureBtnTxt(R.string.Delete_light); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + + childPosition.setText(addressName); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setLightTypePic() { + switch (lightType) { + case "0"://灯光 + mTitleView.setHead(R.string.light); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_light_open_close)); + break; + case "1"://筒灯 + mTitleView.setHead(R.string.tong_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_tubelamp_open_close)); + break; + case "2"://灯带 + mTitleView.setHead(R.string.deng_dai); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_lightbelt_open_close)); + break; + case "3"://射灯 + mTitleView.setHead(R.string.she_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_lamp_open_close)); + break; + case "4"://壁灯 + mTitleView.setHead(R.string.bi_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_walllamp_open_close)); + break; + case "5"://吊灯 + mTitleView.setHead(R.string.diao_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_chandelier_open_close)); + break; + case "6"://廊灯 + mTitleView.setHead(R.string.lang_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_porchlamp_open_close)); + break; + case "7"://排气扇 + mTitleView.setHead(R.string.paiqi_shan); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_exhaust_open_close)); + break; + default: + mTitleView.setHead(R.string.light); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_light_open_close)); + break; + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(lightId, LIGHT_TAG); + queryNextTimer(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + + } + + private void showPositionBottom(final String id, String position) { + View rootview = LayoutInflater.from(getContext()).inflate(R.layout.activity_light4, null); + PositionPopupWindow popupWindow = new PositionPopupWindow(getContext(), position, new PositionPopupWindow.OnCompleteListener() { + @Override + public void onComplete(String time, List conditionList) { + Log.i("showPositionBottom", "SwitcherActivity onComplete()" + time + conditionList.toString()); + if (time.equals("13")) { + updateLightEntityName("0", id); + } else { + updateLightEntityName(String.valueOf(Integer.valueOf(time) + 1), id); + } + } + }); + popupWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0); + } + + private void updateLightType(String id, String lightType) { + /*initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", id); + map.put("lightType", lightType); + netWorkUtil.requestPostByAsynew(UPDATE_LIGHT_TYPE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateLightType", "ShareDeviceActivity onSuccess()" + respone); + LightEntity obj = JSON.parseObject(respone, LightEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_LIGHT_TYPE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_LIGHT_TYPE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Log.i("sureAddSendVoicMsg", "ShareDeviceActivity onSuccess()" + message); + Message msg = mHandler.obtainMessage(UPDATE_LIGHT_TYPE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + private void updateLightEntityName(String addressId, String id) { + /*initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("addressId", addressId); + map.put("id", id); + map.put("ziId", ziId); + util.requestPostByAsynew(NetWorkUrl.UPDATE_LIGHTENTITY_NAME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateBlindEntityName", "ShareDeviceActivity onSuccess()" + respone); + BlindTestEntity obj = JSON.parseObject(respone, BlindTestEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + + private void delLightEntity(int position, int number) { + /* initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("panelId", devicesBean.getPanelId()); + map.put("ziId", ziId); + map.put("addressIds", ""); + netWorkUtil.requestPostByAsynew(NetWorkUrl.DEL_LIGHT_BYPANEL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("delLightEntity", "ShareDeviceActivity onSuccess()" + respone); + VoiceControllEntity obj = JSON.parseObject(respone, VoiceControllEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + ShakeUtil.setShake(getContext()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (voiceFlag.equals("1")) { + allowVoiceControll(0, "id"); + } else { + allowVoiceControll(1, "id"); + } + break; + } + } + }); + if (!voiceFlag.equals("1")) { + dialog.setContent("开启语音控制?"); + } else { + dialog.setContent("关闭语音控制?"); + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_first_control: + ShakeUtil.setShake(getContext()); + //开灯 + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(devicesBean.getOnInfrared(), "01")); + } else { + studyAndControllLight(devicesBean.getOnInfrared()); + } + break; + case R.id.tv_third_control: + ShakeUtil.setShake(getContext()); + //关灯 + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(devicesBean.getOffInfrared(), "01")); + } else { + studyAndControllLight(devicesBean.getOffInfrared()); + } + break; + case R.id.tv_time_control: + Intent intent = new Intent(getContext(), SwitcherTimeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("id", lightId); + intent.putExtra("deviceType", LIGHT_TAG); + startActivity(intent); + break; + case R.id.iv_child_picture: + break; + } + } + + private void studyAndControllLight(String infrared) { + /* if (DensityUtil.isNetworkConnected(getContext())) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("sendMsg", infrared); + map.put("userId", SharedpreferencesUtil.get(Constans.USERPHONE, "")); + util.requestPostByAsyn(ziId, NetWorkUrl.STUDY_ANDCONTROLL_LIGHT, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("studyAndControllLight", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(STUDY_ANDCONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + Message msg = mHandler.obtainMessage(STUDY_ANDCONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(STUDY_ANDCONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(STUDY_ANDCONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } else { + ToastUtil.show(getContext(), R.string.net_error); + }*/ + } + + private void allowVoiceControll(final int controlFlag, String id) { + /* initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("idInfo", lightId); + map.put("controlFlag", controlFlag + ""); + map.put("ziId", ziId); + netWorkUtil.requestPostByAsynew(NetWorkUrl.ALLOW_VOICE_CONTROLL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("allowVoiceControll", "ShareDeviceActivity onSuccess()" + respone); + // VoiceControllEntity obj = JSON.parseObject(respone, VoiceControllEntity.class); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = controlFlag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case STUDY_ANDCONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SELECTBLIND_BYZI_SUCCESS: + LightListEntity obj = (LightListEntity) msg.obj; + break; + case SELECTBLIND_BYZI_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + getActivity().finish(); + break; + case DELLIGHT_ENTITY_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), R.string.Delete_successful); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 1000); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BlindTestEntity lightEntity = (BlindTestEntity) msg.obj; + addressId = lightEntity.getObj().getAddressId(); + childPosition.setText(lightEntity.getObj().getAddressName()); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + int obj1 = (int) msg.obj; + if (obj1 == 0) { + voiceFlag = "0"; + ToastUtil.show(getContext(), "关闭语音成功"); + childVoiceCb.setChecked(false); + } else { + voiceFlag = "1"; + ToastUtil.show(getContext(), "开启语音成功"); + childVoiceCb.setChecked(true); + } + break; + case SENDPID_STUDYBLIND_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELLIGHT_ENTITY_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_LIGHT_TYPE_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_LIGHT_TYPE_SUCCESS: + LightEntity lightEntity1 = (LightEntity) msg.obj; + lightType = lightEntity1.getObj().getLightType(); + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + setLightTypePic(); + ToastUtil.show(getContext(), "修改成功"); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case QUERY_NEXT_TIMER_SUCCESS: + Z1TimeEntity entity12 = (Z1TimeEntity) msg.obj; + if (entity12.getData() != null && !TextUtils.isEmpty(entity12.getData().getMin())) { + String cmdType = entity12.getData().getCmdType(); + int restMin = Integer.parseInt(entity12.getData().getMin()); + if (restMin < 60) { + if (cmdType.equals("1")) { + tv_switcher_time.setText(restMin + "分钟后开启"); + } else { + tv_switcher_time.setText(restMin + "分钟后关闭"); + } + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + if (cmdType.equals("1")) { + tv_switcher_time.setText(hour + "小时后开启"); + } else { + tv_switcher_time.setText(hour + "小时后关闭"); + } + } else { + if (cmdType.equals("1")) { + tv_switcher_time.setText(hour + "小时" + minite + "分钟后开启"); + } else { + tv_switcher_time.setText(hour + "小时" + minite + "分钟后关闭"); + } + } + } + tv_next_week.setText(""); + } else if (entity12.getData() != null) { + switch (entity12.getData().getWeek().toString()) { + case "1": + tv_next_week.setText("周日"); + break; + case "2": + tv_next_week.setText("周一"); + break; + case "3": + tv_next_week.setText("周二"); + break; + case "4": + tv_next_week.setText("周三"); + break; + case "5": + tv_next_week.setText("周四"); + break; + case "6": + tv_next_week.setText("周五"); + break; + case "7": + tv_next_week.setText("周六"); + break; + } + if (entity12.getData().getCmdType().toString().equals("1")) { + tv_switcher_time.setText(" " + entity12.getData().getTime().toString() + getString(R.string.open)); + } else { + tv_switcher_time.setText(" " + entity12.getData().getTime().toString() + getString(R.string.open)); + } + } else { + tv_switcher_time.setText(""); + tv_next_week.setText(""); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity.getDeviceType().equals(LIGHT_TAG)) { + String deviceIds = nettyEntity.getDeviceIds(); + List result = Arrays.asList(deviceIds.split(",")); + if (result.contains(lightId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + } else { + childPicture.setChecked(false); + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + } else { + childPicture.setChecked(false); + } + break; + } + } + + private void queryNextTimer() { + + } + + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case GET_SWITCHER_CHANGE_INFO: + if (data != null && data.getExtras().get("devicePosition") != null) { + childPosition.setText(data.getExtras().get("devicePosition").toString()); + lightType = data.getExtras().get("lightType").toString(); + addressId = data.getExtras().get("addressId").toString(); + setLightTypePic(); + } + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(LightFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + LightFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/LightMultiFragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/LightMultiFragment.java new file mode 100644 index 0000000..f0193da --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/LightMultiFragment.java @@ -0,0 +1,1191 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.SeekBar; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AdditionEntity; +import com.yonsz.z1.database.entity.LightEntity; +import com.yonsz.z1.database.entity.LightListEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.VoiceControllEntity; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.BlindTestEntity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNextDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.curtain.CurtainsStepOneActivity; +import com.yonsz.z1.new433.light.ColorTemperatureActivity; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.version5.ModifyTypeActivity; +import com.yonsz.z1.version5.curtainandWindow.CurtainAndWindowClickActivity; +import com.yonsz.z1.version5.light.ModifyLightTypeActivity; +import com.yonsz.z1.view.PositionPopupWindow; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; +import com.yonsz.z1.ybl.light.YblHandSearchActivity; + +import java.lang.ref.WeakReference; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_FAIL; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class LightMultiFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition, aiNameAndState, aiModelName; + private CheckBox childVoiceCb; + private CheckBox childPicture; + private TextView firstControl, thirdControl, timeControl; + private String ziId; + private String lightId, relatedId; + private String addressName; + private String voiceFlag; + private String addressId; + private String lightType = "", yblType = ""; + private String deviceModel = ""; + private ImageView localControlIv; + private TextView tv_switcher_time; + private TextView tv_next_week, tv_state, tv_brightness, tv_color; + private LinearLayout ll_light_control, ll_light_color; + private SeekBar brightNessSb, colorSb; + private String relatedStatus = "0"; + + public static LightMultiFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + LightMultiFragment fragment = new LightMultiFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_lightmulti, null); + initView(fragView); + return fragView; + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + deviceModel = devicesBean.getDeviceModel(); + ziId = devicesBean.getZiId(); + lightType = devicesBean.getLightType(); + lightId = devicesBean.getId(); + relatedId = devicesBean.getRelatedId(); + addressId = devicesBean.getAddressId(); + addressName = devicesBean.getAddressName(); + voiceFlag = devicesBean.getVoiceFlag(); + yblType = devicesBean.getYblType(); + childPosition = (TextView) fragView.findViewById(R.id.tv_child_position); + brightNessSb = (SeekBar) fragView.findViewById(R.id.sb_lightness); + colorSb = (SeekBar) fragView.findViewById(R.id.sb_color); + tv_brightness = (TextView) fragView.findViewById(R.id.tv_brightness); + tv_color = (TextView) fragView.findViewById(R.id.tv_color); + ll_light_control = (LinearLayout) fragView.findViewById(R.id.ll_light_control); + ll_light_color = (LinearLayout) fragView.findViewById(R.id.ll_light_color); + aiNameAndState = (TextView) fragView.findViewById(R.id.tv_ai_state); + aiModelName = (TextView) fragView.findViewById(R.id.tv_ai_modelname); + childVoiceCb = (CheckBox) fragView.findViewById(R.id.tv_child_voice); + childPicture = (CheckBox) fragView.findViewById(R.id.iv_child_picture); + firstControl = (TextView) fragView.findViewById(R.id.tv_first_control); + thirdControl = (TextView) fragView.findViewById(R.id.tv_third_control); + timeControl = (TextView) fragView.findViewById(R.id.tv_time_control); + tv_switcher_time = (TextView) fragView.findViewById(R.id.tv_switcher_time); + tv_next_week = (TextView) fragView.findViewById(R.id.tv_next_week); + tv_state = (TextView) fragView.findViewById(R.id.tv_state); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + childVoiceCb.setOnClickListener(this); + timeControl.setOnClickListener(this); + firstControl.setOnClickListener(this); + thirdControl.setOnClickListener(this); + childPicture.setOnClickListener(this); + mTitleView = (TitleView) fragView.findViewById(R.id.title_light4); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + setLightTypePic(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除面板,现在是没法删除的 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //修改窗帘位置信息 + // showPositionBottom(lightId, addressId); + Intent intent1 = new Intent(getActivity(), ModifyRoomActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("deviceType", LIGHT_TAG); + intent1.putExtra("deviceModel", deviceModel); + intent1.putExtra("addressId", addressId); + intent1.putExtra("deviceId", lightId); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", LIGHT_TAG); + intent.putExtra("lightType", lightType); + startActivity(intent); + break; + case 4: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改灯光类型信息 + // showTypeBottom(lightId, lightType); + /*Intent intent2 = new Intent(getContext(), LightModifyActivity.class); + intent2.putExtra("lightType", lightType); + intent2.putExtra("lightId", lightId); + intent2.putExtra("deviceAddress", addressId); + intent2.putExtra("ziId", ziId); + startActivityForResult(intent2, GET_SWITCHER_CHANGE_INFO);*/ + Intent intent2; + if (AppIdUtil.isWork()) { + intent2 = new Intent(getContext(), ModifyTypeActivity.class); + } else { + intent2 = new Intent(getContext(), ModifyLightTypeActivity.class); + } + intent2.putExtra("lightType", lightType); + intent2.putExtra("ziId", ziId); + intent2.putExtra("deviceType", LIGHT_TAG); + intent2.putExtra("deviceModel", deviceModel); + intent2.putExtra("addressId", addressId); + intent2.putExtra("deviceId", lightId); + if (devicesBean.getDeviceName().isEmpty()) { + intent2.putExtra("deviceName", "灯光"); + } else { + intent2.putExtra("deviceName", devicesBean.getDeviceName()); + } + startActivityForResult(intent2, MODIFY_DEVICE_NAME); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 6: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + if (deviceModel.equals("8") && !relatedId.isEmpty()) { + intent = new Intent(getContext(), ColorTemperatureActivity.class); + intent.putExtra("lightType", lightType); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", LIGHT_TAG); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", addressId); + intent.putExtra("deviceId", lightId); + startActivity(intent); + } else { + gotoReAddCurtain(); + } + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent("修改设备位置"); + dialog2.setLearnTxt("修改设备类型"); + dialog2.setSureBtnTxt(R.string.Delete_light); + if (relatedId.isEmpty()) { + dialog2.setAddTxt("添加调色控制器"); + } else { + dialog2.setAdd(); + if (deviceModel.equals("8")) { + dialog2.setAddTxt("配置设备色温"); + } + } + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + + childPosition.setText(AddressNameUtil.getAddressName(addressId)); + aiNameAndState.setText(AddressNameUtil.getAiNameAndState(ziId)); + aiModelName.setText(devicesBean.getModelName()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + + if (!yblType.isEmpty() && yblType.equals("02") || deviceModel.equals("8")) { + ll_light_control.setVisibility(View.VISIBLE); + tv_brightness.setVisibility(View.VISIBLE); + } else { + ll_light_control.setVisibility(View.GONE); + tv_brightness.setVisibility(View.GONE); + } + + if (relatedId.isEmpty()) { + ll_light_color.setVisibility(View.GONE); + } else { + ll_light_color.setVisibility(View.VISIBLE); + } + + + brightNessSb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, final int progress, boolean fromUser) { + Log.i("LightA1Fragment", "onProgressChanged()" + progress); + tv_brightness.setText("亮度" + progress + "%"); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + Log.i("LightA1Fragment", "onStopTrackingTouch()" + seekBar.getProgress()); + subsetControl("dimming", seekBar.getProgress()); + } + }); + colorSb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, final int progress, boolean fromUser) { + Log.i("LightA1Fragment", "onProgressChanged()" + progress); + tv_color.setText("色温" + progress + "%"); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + Log.i("LightA1Fragment", "onStopTrackingTouch()" + seekBar.getProgress()); + subsetControl("color", seekBar.getProgress()); + } + }); + + setPicState(); + } + + private void setPicState() { + relatedStatus = devicesBean.getRelatedStatus(); + if (relatedStatus.equals("-1")) { + ConfirmNextDialog dialog = new ConfirmNextDialog(getContext(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + relatedStatus = "0"; + break; + case 1: + relatedStatus = "0"; + gotoReAddCurtain(); + break; + } + } + }); + dialog.setContent("添加调色控制器"); + dialog.setTopTxt("是否继续添加调色控制器?"); + dialog.setCancleBtn(R.string.no_add); + dialog.setSureBtn(R.string.rec_add); + dialog.setCancelable(false); + dialog.show(); + } + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setLightTypePic() { + tv_state.setVisibility(View.VISIBLE); + if (TextUtils.isEmpty(devicesBean.getDeviceName())) { + mTitleView.setHead(R.string.light); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + } + if (AppIdUtil.isWork()) { + /*if (TextUtils.isEmpty(devicesBean.getDeviceName())) { + mTitleView.setHead(R.string.light); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + }*/ + } else if (deviceModel.equals("7")) { + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_b4_mosquito_control)); + } else if (AppIdUtil.isZhiKong()) { + switch (lightType) { + case "0"://灯光 + // mTitleView.setHead(R.string.light); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_light_open_close)); + break; + case "1"://筒灯 + // mTitleView.setHead(R.string.tong_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_tubelamp)); + break; + case "2"://灯带 + // mTitleView.setHead(R.string.deng_dai); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_lightbelt)); + break; + case "3"://射灯 + // mTitleView.setHead(R.string.she_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_lamp)); + break; + case "4"://壁灯 + // mTitleView.setHead(R.string.bi_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_walllamp)); + break; + case "5"://吊灯 + // mTitleView.setHead(R.string.diao_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_chandelier)); + break; + case "6"://廊灯 + // mTitleView.setHead(R.string.lang_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_porchlamp)); + break; + case "7"://排气扇 + // mTitleView.setHead(R.string.paiqi_shan); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_exhaust)); + break; + default: + if (TextUtils.isEmpty(devicesBean.getDeviceName())) { + mTitleView.setHead(R.string.light); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + } + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_light_open_close)); + break; + } + } else { + switch (lightType) { + case "0"://灯光 + // mTitleView.setHead(R.string.light); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_light_open_close)); + break; + case "1"://筒灯 + // mTitleView.setHead(R.string.tong_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_tubelamp_open_close)); + break; + case "2"://灯带 + // mTitleView.setHead(R.string.deng_dai); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_lightbelt_open_close)); + break; + case "3"://射灯 + // mTitleView.setHead(R.string.she_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_lamp_open_close)); + break; + case "4"://壁灯 + // mTitleView.setHead(R.string.bi_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_walllamp_open_close)); + break; + case "5"://吊灯 + // mTitleView.setHead(R.string.diao_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_chandelier_open_close)); + break; + case "6"://廊灯 + // mTitleView.setHead(R.string.lang_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_porchlamp_open_close)); + break; + case "7"://排气扇 + // mTitleView.setHead(R.string.paiqi_shan); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_exhaust_open_close)); + break; + default: + if (TextUtils.isEmpty(devicesBean.getDeviceName())) { + mTitleView.setHead(R.string.light); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + } + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_light_open_close)); + break; + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(lightId, LIGHT_TAG); + queryNextTimer(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", deviceModel); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(MODIFY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetDelete() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", lightId); + map.put("deviceModel", deviceModel); + map.put("deviceType", LIGHT_TAG); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + ShakeUtil.setShake(getContext()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (voiceFlag.equals("1")) { + // allowVoiceControll(0, "id"); + subseSetVoice("0"); + } else { + // allowVoiceControll(1, "id"); + subseSetVoice("1"); + } + break; + } + } + }); + if (!voiceFlag.equals("1")) { + dialog.setContent("开启语音控制?"); + } else { + dialog.setContent("关闭语音控制?"); + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_first_control: + ShakeUtil.setShake(getContext()); + //开灯 + // getControlCmdAndIsSend("1"); + if (relatedId.isEmpty()) { + subsetControl("power", 100); + } else { + subsetControl("allOpen", 100); + } + /*if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(devicesBean.getOnInfrared(), "01")); + } else { + // studyAndControllLight(devicesBean.getOnInfrared()); + getControlCmdAndIsSend("1"); + }*/ + break; + case R.id.tv_third_control: + ShakeUtil.setShake(getContext()); + // getControlCmdAndIsSend("0"); + if (relatedId.isEmpty()) { + subsetControl("poweroff", 0); + } else { + subsetControl("allClose", 100); + } + /*//关灯 + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(devicesBean.getOffInfrared(), "01")); + } else { + // studyAndControllLight(devicesBean.getOffInfrared()); + getControlCmdAndIsSend("0"); + }*/ + break; + case R.id.tv_time_control: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + Intent intent = new Intent(getContext(), SwitcherTimeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("id", lightId); + intent.putExtra("deviceType", LIGHT_TAG); + startActivity(intent); + break; + case R.id.iv_child_picture: + break; + } + } + + private void subseSetVoice(final String flag) { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", lightId); + map.put("deviceModel", deviceModel); + map.put("deviceType", LIGHT_TAG); + map.put("ziId", ziId); + map.put("voiceFlag", flag); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SETVOICE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subseSetVoice", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = flag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key, int brightness) { + String body = "{}"; + if (key.equals("dimming") || key.equals("color")) { + AdditionEntity addition = new AdditionEntity(); + addition.setValue(String.valueOf(brightness)); + body = JSONObject.toJSONString(addition); + } + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + if (key.equals("color")) { + key = "brightness"; + map.put("deviceId", relatedId); + } else { + if (key.equals("dimming")) { + key = "brightness"; + } + map.put("deviceId", lightId); + } + map.put("deviceModel", deviceModel); + map.put("deviceType", LIGHT_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void gotoReAddCurtain() { + Intent intent = new Intent(getContext(), YblHandSearchActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", LIGHT_TAG); + intent.putExtra("addressId", addressId); + intent.putExtra("lightType", lightType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("isReAddLight", true); + intent.putExtra("relatedId", lightId); + intent.putExtra("deviceAddress", addressId); + intent.putExtra("icon", ""); + startActivity(intent); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case STUDY_ANDCONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SELECTBLIND_BYZI_SUCCESS: + LightListEntity obj = (LightListEntity) msg.obj; + break; + case SELECTBLIND_BYZI_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + getActivity().finish(); + break; + case DELLIGHT_ENTITY_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), R.string.Delete_successful); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 1000); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BlindTestEntity lightEntity = (BlindTestEntity) msg.obj; + addressId = lightEntity.getObj().getAddressId(); + childPosition.setText(lightEntity.getObj().getAddressName()); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + int obj1 = Integer.parseInt((String) msg.obj); + if (obj1 == 0) { + voiceFlag = "0"; + ToastUtil.show(getContext(), "关闭语音成功"); + childVoiceCb.setChecked(false); + } else { + voiceFlag = "1"; + ToastUtil.show(getContext(), "开启语音成功"); + childVoiceCb.setChecked(true); + } + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SENDPID_STUDYBLIND_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELLIGHT_ENTITY_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_LIGHT_TYPE_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_LIGHT_TYPE_SUCCESS: + LightEntity lightEntity1 = (LightEntity) msg.obj; + lightType = lightEntity1.getObj().getLightType(); + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + setLightTypePic(); + ToastUtil.show(getContext(), "修改成功"); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case QUERY_NEXT_TIMER_SUCCESS: + Z1TimeEntity entity12 = (Z1TimeEntity) msg.obj; + if (entity12.getData() != null && !TextUtils.isEmpty(entity12.getData().getMin())) { + String cmdType = entity12.getData().getCmdType(); + int restMin = Integer.parseInt(entity12.getData().getMin()); + if (restMin < 60) { + if (cmdType.equals("1")) { + tv_switcher_time.setText(restMin + "分钟后开启"); + } else { + tv_switcher_time.setText(restMin + "分钟后关闭"); + } + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + if (cmdType.equals("1")) { + tv_switcher_time.setText(hour + "小时后开启"); + } else { + tv_switcher_time.setText(hour + "小时后关闭"); + } + } else { + if (cmdType.equals("1")) { + tv_switcher_time.setText(hour + "小时" + minite + "分钟后开启"); + } else { + tv_switcher_time.setText(hour + "小时" + minite + "分钟后关闭"); + } + } + } + tv_next_week.setText(""); + } else if (entity12.getData() != null) { + switch (entity12.getData().getWeek().toString()) { + case "1": + tv_next_week.setText("周日"); + break; + case "2": + tv_next_week.setText("周一"); + break; + case "3": + tv_next_week.setText("周二"); + break; + case "4": + tv_next_week.setText("周三"); + break; + case "5": + tv_next_week.setText("周四"); + break; + case "6": + tv_next_week.setText("周五"); + break; + case "7": + tv_next_week.setText("周六"); + break; + } + if (entity12.getData().getCmdType().toString().equals("1")) { + tv_switcher_time.setText(" " + entity12.getData().getTime().toString() + getString(R.string.open)); + } else { + tv_switcher_time.setText(" " + entity12.getData().getTime().toString() + getString(R.string.close)); + } + } else { + tv_switcher_time.setText(""); + tv_next_week.setText(""); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity.getDeviceType().equals(LIGHT_TAG)) { + String deviceIds = nettyEntity.getDeviceIds(); + List result = Arrays.asList(deviceIds.split(",")); + if (result.contains(lightId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_state.setText(devicesBean.getDeviceName() + "已打开"); + } else { + childPicture.setChecked(false); + tv_state.setText(devicesBean.getDeviceName() + "已关闭"); + } + if (nettyEntity.getBrightness().isEmpty()) { + brightNessSb.setProgress(100); + tv_brightness.setText("亮度" + 100 + "%"); + } else { + brightNessSb.setProgress(Integer.parseInt(nettyEntity.getBrightness())); + tv_brightness.setText("亮度" + nettyEntity.getBrightness() + "%"); + } + } + if (result.contains(relatedId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_state.setText(devicesBean.getDeviceName() + "已打开"); + } else { + childPicture.setChecked(false); + tv_state.setText(devicesBean.getDeviceName() + "已关闭"); + } + if (nettyEntity.getBrightness().isEmpty()) { + colorSb.setProgress(100); + tv_color.setText("色温" + 100 + "%"); + } else { + colorSb.setProgress(Integer.parseInt(nettyEntity.getBrightness())); + tv_color.setText("色温" + nettyEntity.getBrightness() + "%"); + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_state.setText(devicesBean.getDeviceName() + "已打开"); + } else { + childPicture.setChecked(false); + tv_state.setText(devicesBean.getDeviceName() + "已关闭"); + } + if (parseObject.getData().getBrightness().isEmpty()) { + brightNessSb.setProgress(100); + tv_brightness.setText("亮度" + 100 + "%"); + } else { + brightNessSb.setProgress(Integer.parseInt(parseObject.getData().getBrightness())); + tv_brightness.setText("亮度" + parseObject.getData().getBrightness() + "%"); + } + if (!relatedId.isEmpty()) { + if (null != parseObject.getData().getRelatedLastInfo() && !parseObject.getData().getRelatedLastInfo().getBrightness().isEmpty()) { + colorSb.setProgress(Integer.parseInt(parseObject.getData().getRelatedLastInfo().getBrightness())); + tv_color.setText("色温" + parseObject.getData().getRelatedLastInfo().getBrightness() + "%"); + } else { + colorSb.setProgress(100); + tv_color.setText("色温" + 100 + "%"); + } + } + break; + case MODIFY_NAME_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case MODIFY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void queryNextTimer() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceId", lightId); + netWorkUtil.requestGetByAsy(NetWorkUrl.QUERY_NEXT_TIMER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryNextTimer", "ShareDeviceActivity onSuccess()" + respone); + Z1TimeEntity obj = JSON.parseObject(respone, Z1TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("devicePosition") != null) { + childPosition.setText(data.getExtras().get("devicePosition").toString()); + // lightType = data.getExtras().get("lightType").toString(); + addressId = data.getExtras().get("addressId").toString(); + setLightTypePic(); + } + if (data != null && data.getExtras().get("lightType") != null) { + lightType = data.getExtras().get("lightType").toString(); + devicesBean.setDeviceName(data.getExtras().get("lightName").toString()); + setLightTypePic(); + } + if (data != null && data.getExtras().get("deviceName") != null) { + String deviceName = data.getExtras().get("deviceName").toString(); + // int deviceNamePosition = (int) data.getExtras().get("deviceNamePosition"); + devicesBean.setDeviceName(deviceName); + mTitleView.setHead(deviceName); + // setLightTypePic(); + } + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(LightMultiFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + LightMultiFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/MovieCameraFragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/MovieCameraFragment.java new file mode 100644 index 0000000..121103a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/MovieCameraFragment.java @@ -0,0 +1,1484 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.AlphaAnimation; +import android.view.animation.AnimationUtils; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.Key5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.database.entity.entitya2.LoadEvent; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.device.tv.FanItem; +import com.yonsz.z1.device.tv.OnFanItemClickListener; +import com.yonsz.z1.device.tv.PieChartView; +import com.yonsz.z1.devicea2.LearnGuideA2Activity; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.customview.SaveCodeDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.mine.aboutversion.feature.Callback3; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.tv_no_voice; +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.device.tv.PieChartView.isLongClickModule1; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_FAIL; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS_TV; +import static com.yonsz.z1.net.Constans.FAN_LEARN_ING; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_BRAND_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.CANCEL_DOWNLOAD; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETCONTROLKEYS; +import static com.yonsz.z1.net.NetWorkUrl.YKY_DOWNLOAD; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class MovieCameraFragment extends BaseFragment implements View.OnClickListener { + public int mId; + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + private TitleView mTitleView; + private PieChartView chartView; + private String userId; + private String ziId; + private TextView mOpenClose, mNoVoice, mOk, mBack, mMenu, mVolAdd, mVolReduce, mChAdd, mChReduce, mDown, mLeft, mUp, mRight, mSignal, mReset, mAuto; + private TextView mOpenCloseBg, mNoVoiceBg, mOkBg, mBackBg, mMenuBg, mVolAddBg, mVolReduceBg, mChAddBg, mChReduceBg, mSignalBg, mResetBg, mAutoBg; + private boolean mOpenCloseTag, mNoVoiceTag, mOkTag, mBackTag, mMenuTag, mVolAddTag, mVolReduceTag, mChAddTag, mChReduceTag, mDownTag, mLeftTag, mUpTag, mRightTag, mSignalTag, mResetTag, mAutoTag; + private ImageView mVolAddPic, mVolRedPic, mChAddPic, mChRedPic; + private HorizontalProgressBarWithNumber mProgressBar; + private TextView learnInstruction; + private RelativeLayout progressRl; + private TextView progressTv; + private boolean isLoading = false, isShow = false; + private String tvStateTag; + private TextView loadBackTv, tv_cancel_load; + private String tvName; + private LoadingDialog mLoadingDialog; + private String cancelFlag; + private boolean isLearn = false; + private LinearLayout learningLl; + private boolean isTv = true; + private ImageView localControlIv, greenCircle; + private AlphaAnimation mAlphaAnimation; + private RelativeLayout rl_learn_guide; + private boolean isShowLearnGuide = false; + private boolean isInit = false; + + public static MovieCameraFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + MovieCameraFragment fragment = new MovieCameraFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LoadEvent event) { + String msg = event.getMsg(); + NettyEntity nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (nettyEntity.getDeviceType().equals(MOVIE_CAMERA)) { + Log.e("nettyUtilTv", msg); + Message message = new Message(); + message.what = FAN_LEARN_ING; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_movie_camera, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + showLoadDiaolog(getUserVisibleHint()); + } + + private void showLoadDiaolog(boolean isVisibleToUser) { + if (isVisibleToUser && isInit) { + cancelFlag = devicesBean.getCancelFlag() + ""; + if (cancelFlag.equals("1")) { + EventBus.getDefault().post( + new CanloopEvent(true)); + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + getActivity().finish(); + break; + case 1: + reloadInfrared(MOVIE_CAMERA); + break; + } + } + }); + dialog.setContent(R.string.Data_not_downloaded_reloaded); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(devicesBean.getId(), MOVIE_CAMERA); + if (isLearn) { + subsetGetControlKeys(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initView(View fragView) { + isInit = true; + tvName = devicesBean.getDeviceBrand(); + ziId = devicesBean.getZiId(); + if (getArguments().get("loadStatus").toString().equals("1") && getUserVisibleHint() && getArguments().get("loadErrorType").toString().equals(MOVIE_CAMERA)) { + isLoading = true; + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + } else { + isLoading = false; + } + if (null != getArguments().get("mcStateTag")) { + isShow = true; + } else { + isShow = false; + } + rl_learn_guide = (RelativeLayout) fragView.findViewById(R.id.rl_learn_guide); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + greenCircle = (ImageView) fragView.findViewById(R.id.iv_online_green_circle); + learnInstruction = (TextView) fragView.findViewById(R.id.tv_learn_instruction); + learningLl = (LinearLayout) fragView.findViewById(R.id.ll_learning); + loadBackTv = (TextView) fragView.findViewById(R.id.tv_load_back); + tv_cancel_load = (TextView) fragView.findViewById(R.id.tv_cancel_load); + mDown = (TextView) fragView.findViewById(R.id.iv_down); + mLeft = (TextView) fragView.findViewById(R.id.iv_left); + mUp = (TextView) fragView.findViewById(R.id.iv_up); + mRight = (TextView) fragView.findViewById(R.id.iv_right); + mOpenClose = (TextView) fragView.findViewById(R.id.tv_tv_open); + mNoVoice = (TextView) fragView.findViewById(tv_no_voice); + mOk = (TextView) fragView.findViewById(R.id.tv_tv_ok); + mMenu = (TextView) fragView.findViewById(R.id.tv_tv_menu); + mBack = (TextView) fragView.findViewById(R.id.tv_tv_back); + mSignal = (TextView) fragView.findViewById(R.id.tv_tv_signal); + mAuto = (TextView) fragView.findViewById(R.id.tv_auto); + mReset = (TextView) fragView.findViewById(R.id.tv_reset); + mVolAdd = (TextView) fragView.findViewById(R.id.tv_tv_voladd); + mVolReduce = (TextView) fragView.findViewById(R.id.tv_tv_volreduce); + mChAdd = (TextView) fragView.findViewById(R.id.tv_tv_chadd); + mChReduce = (TextView) fragView.findViewById(R.id.tv_tv_chreduce); + + mOpenCloseBg = (TextView) fragView.findViewById(R.id.tv_tv_open_bg); + mNoVoiceBg = (TextView) fragView.findViewById(R.id.tv_no_voice_bg); + mOkBg = (TextView) fragView.findViewById(R.id.tv_tv_ok_bg); + mMenuBg = (TextView) fragView.findViewById(R.id.tv_tv_menu_bg); + mBackBg = (TextView) fragView.findViewById(R.id.tv_tv_back_bg); + mSignalBg = (TextView) fragView.findViewById(R.id.tv_tv_signal_bg); + mAutoBg = (TextView) fragView.findViewById(R.id.tv_auto_bg); + mResetBg = (TextView) fragView.findViewById(R.id.tv_reset_bg); + mVolAddBg = (TextView) fragView.findViewById(R.id.tv_tv_voladd_bg); + mVolReduceBg = (TextView) fragView.findViewById(R.id.tv_tv_volreduce_bg); + mChAddBg = (TextView) fragView.findViewById(R.id.tv_tv_chadd_bg); + mChReduceBg = (TextView) fragView.findViewById(R.id.tv_tv_chreduce_bg); + + mVolAddPic = (ImageView) fragView.findViewById(R.id.iv_tv_add); + mVolRedPic = (ImageView) fragView.findViewById(R.id.iv_tv_reduce); + mChAddPic = (ImageView) fragView.findViewById(R.id.iv_tv_ch_add); + mChRedPic = (ImageView) fragView.findViewById(R.id.iv_tv_ch_reduce); + + progressRl = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + progressTv = (TextView) fragView.findViewById(R.id.tv_progress_top); + mProgressBar = (HorizontalProgressBarWithNumber) fragView.findViewById(R.id.pg_horizontal_fan); + // mHandler.sendEmptyMessage(MSG_PROGRESS_UPDATE); + mTitleView = (TitleView) fragView.findViewById(R.id.title_tv); + mTitleView.clearBackGroud(); + if (!tvName.isEmpty()) { + mTitleView.setHead(tvName); + } else { + mTitleView.setHead("投影仪"); + } + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mAlphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.alpha_anim_device); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isLoading) { + + } else { + getActivity().finish(); + } + } + + @Override + public void onFunction() { + // clearMark(); + if (isLoading) { + + } else { + if (isLearn) { + isLearn = false; + //查询学习按键 + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(MOVIE_CAMERA, ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //重新命名 + showSavecode(); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", MOVIE_CAMERA); + startActivity(intent); + break; + case 4: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //遥控学习 + isLearn = true; + //查询学习按键 + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent("保存到码库"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + } + + @Override + public void onFunctionText() { + + } + }); + + chartView = (PieChartView) fragView.findViewById(R.id.pieChartView); + chartView.setFanClickAbleData( + new double[]{90, 90, 90, 90}, + new int[]{Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT}, 0, mHandler); + setPanClick(); + + if (isLoading) { + progressRl.setVisibility(View.VISIBLE); + } else { + progressRl.setVisibility(View.GONE); + subsetGetControlKeys(); + } + if (isShow) { + showSavecode(); + } + + showLoadDiaolog(getUserVisibleHint()); + } + + private void showSavecode() { + SaveCodeDialog dialog2 = new SaveCodeDialog(getContext(), new Callback3() { + + @Override + public void callback(int position, String positionName, String model) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positionName.trim())) { + ToastUtil.show(getContext(), "请输入码库名称"); + return; + } + infraredHistoryAdd(positionName, model); + break; + } + } + }); + dialog2.setOldName(devicesBean.getDeviceBrand()); + dialog2.setCancleBtn("不用了"); + dialog2.setSureBtn(R.string.sure); + dialog2.setCancelable(false); + dialog2.show(); + } + + private void reloadInfrared(String deviceType) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("macId", ziId); + map.put("deviceType", deviceType); + map.put("rid", devicesBean.getRid()); + netWorkUtil.requestPostByAsynewApi(YKY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("reloadInfrared", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty message = JSON.parseObject(respone, SimpleEntty.class); + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_SUCCESS_TV); + msg.obj = message; + mHandler.sendMessage(msg); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void setPanClick() { + chartView.setOnFanClick(new OnFanItemClickListener() { + @Override + public void onFanClick(FanItem fanItem) { + mId = fanItem.getId(); + Intent intent; + if (isLearn) { + switch (mId) { + case 0: + mDown.setVisibility(View.VISIBLE); + toLearnByNmber("down"); + break; + case 1: + mLeft.setVisibility(View.VISIBLE); + toLearnByNmber("left"); + break; + case 2: + mUp.setVisibility(View.VISIBLE); + toLearnByNmber("up"); + break; + case 3: + mRight.setVisibility(View.VISIBLE); + toLearnByNmber("right"); + break; + } + } else { + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + } + break; + } + } + } + + @Override + public void onFanLongClick(FanItem fanItem) { + mId = fanItem.getId(); + if (isLearn) { + + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理" + mId); + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + // longPressTv(TV_DOWN); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + // longPressTv(TV_LEFT); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + // longPressTv(TV_UP); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + // longPressTv(TV_RIGHT); + } + break; + } + + } + } + } + + @Override + public void onUp(FanItem fanItem) { + if (fanItem != null) { + mId = fanItem.getId(); + } + if (isLearn) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理抬起" + mId); + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + // cancleLongPress(TV_DOWN); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + // cancleLongPress(TV_LEFT); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + // cancleLongPress(TV_UP); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + // cancleLongPress(TV_RIGHT); + break; + } + } else { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Log.i("OnTouchListener", "点击---处理抬起" + mId); + switch (mId) { + case 0: + if (mDownTag) { + subsetControl("down"); + } + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + if (mLeftTag) { + subsetControl("left"); + } + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + if (mUpTag) { + subsetControl("up"); + } + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + if (mRightTag) { + subsetControl("right"); + } + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } + } + } + }); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mNoVoice.setOnClickListener(this); + mOk.setOnClickListener(this); + mMenu.setOnClickListener(this); + mBack.setOnClickListener(this); + mSignal.setOnClickListener(this); + mAuto.setOnClickListener(this); + mReset.setOnClickListener(this); + mVolAdd.setOnClickListener(this); + mVolReduce.setOnClickListener(this); + mChAdd.setOnClickListener(this); + mChReduce.setOnClickListener(this); + loadBackTv.setOnClickListener(this); + tv_cancel_load.setOnClickListener(this); + progressRl.setOnClickListener(this); + rl_learn_guide.setOnClickListener(this); + } + + + @Override + public void onClick(View v) { + if (isLearn) { + switch (v.getId()) { + case R.id.tv_tv_open: + toLearnByNmber("power"); + break; + case tv_no_voice: + toLearnByNmber("mute"); + break; + case R.id.tv_tv_ok: + toLearnByNmber("ok"); + break; + case R.id.tv_tv_menu: + toLearnByNmber("menu"); + break; + case R.id.tv_tv_back: + toLearnByNmber("exit"); + break; + case R.id.tv_tv_voladd: + toLearnByNmber("volplus"); + break; + case R.id.tv_tv_volreduce: + toLearnByNmber("volminus"); + break; + case R.id.tv_tv_chadd: + toLearnByNmber("zoomplus"); + break; + case R.id.tv_tv_chreduce: + toLearnByNmber("zoomminus"); + break; + case R.id.tv_tv_signal: + toLearnByNmber("signal"); + break; + case R.id.tv_auto: + toLearnByNmber("auto"); + break; + case R.id.tv_reset: + toLearnByNmber("reset"); + break; + case R.id.tv_load_back: + SharedpreferencesUtil.save(ziId + MOVIE_CAMERA, true); + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + case R.id.rl_progress_top: + break; + } + } else { + switch (v.getId()) { + case R.id.tv_tv_open: + if (greenCircle.getVisibility() == View.VISIBLE) { + subsetControl("poweroff"); + } else { + subsetControl("power"); + } + break; + case R.id.tv_no_voice: + subsetControl("mute"); + break; + case R.id.tv_tv_ok: + subsetControl("ok"); + break; + case R.id.tv_tv_menu: + subsetControl("menu"); + break; + case R.id.tv_tv_back: + subsetControl("exit"); + break; + case R.id.tv_tv_voladd: + subsetControl("volplus"); + break; + case R.id.tv_tv_volreduce: + subsetControl("volminus"); + break; + case R.id.tv_tv_chadd: + subsetControl("zoomplus"); + break; + case R.id.tv_tv_chreduce: + subsetControl("zoomminus"); + break; + case R.id.tv_tv_signal: + subsetControl("signal"); + break; + case R.id.tv_auto: + subsetControl("auto"); + break; + case R.id.tv_reset: + subsetControl("reset"); + break; + case R.id.tv_load_back: + SharedpreferencesUtil.save(ziId + MOVIE_CAMERA, true); + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + case R.id.rl_progress_top: + break; + case R.id.tv_cancel_load: + cancelDownload(); + break; + case R.id.rl_learn_guide: + rl_learn_guide.setVisibility(View.GONE); + isShowLearnGuide = false; + SharedpreferencesUtil.save(ziId + MOVIE_CAMERA, false); + break; + } + } + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", MOVIE_CAMERA); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void toLearnByNmber(String number) { + Intent intent = new Intent(getContext(), LearnGuideA2Activity.class); + intent.putExtra("learnGuide", number); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("deviceType", MOVIE_CAMERA); + startActivityForResult(intent, LEARN_RESULT); + } + + private void cancelDownload() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", MOVIE_CAMERA); + netWorkUtil.requestPostByAsynewApi(CANCEL_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancelDownload", "ShareDeviceActivity onSuccess()" + respone); + getActivity().finish(); + } + + @Override + public void onFail(String message) { + } + }); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case FAN_LEARN_ING: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + float countNum = Integer.parseInt(nettyEntity.getCountNum()); + float loadNum = Integer.parseInt(nettyEntity.getLoadNum()); + progressRl.setVisibility(View.VISIBLE); + mProgressBar.setProgress((int) (loadNum / countNum * 100)); + if (loadNum / countNum == 1) { + isLoading = false; + progressTv.setText(R.string.load_complete); + isShowLearnGuide = true; + progressRl.setVisibility(View.GONE); + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + + } else { + initLoadDialog(); + } + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + subsetGetControlKeys(); + } + }, 2000); + devicesBean.setCancelFlag(0); + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + /*if (isShow) { + isShow = false; + showSavecode(); + }*/ + } + break; + case SELECT_CONNDEVICE_PUSHKEY_SUCCESS: + Key5Entity entity1 = (Key5Entity) msg.obj; + setIsLearned(entity1); + if (isLearn) { + showLearn(); + } else { + showControl(); + } + if (mLoadingDialog != null) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + if (isShowLearnGuide || SharedpreferencesUtil.get(ziId + MOVIE_CAMERA)) { + rl_learn_guide.setVisibility(View.VISIBLE); + } else { + rl_learn_guide.setVisibility(View.GONE); + } + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case DELETE_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS_TV: + progressRl.setVisibility(View.VISIBLE); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (null != nettyEntity1.getContext() && !nettyEntity1.getContext().getDeviceType().isEmpty()) { + if (!nettyEntity1.getContext().getDeviceId().equals(devicesBean.getId())) { + return; + } + if (null != nettyEntity1.getContext().getDeviceType() && nettyEntity1.getContext().getDeviceType().equals(MOVIE_CAMERA) && !TextUtils.isEmpty(nettyEntity1.getContext().getLastInfo().getOpenFlag())) { + if (nettyEntity1.getContext().getLastInfo().getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + ToastUtil.show(getContext(), "投影仪已打开"); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + ToastUtil.show(getContext(), "投影仪已关闭"); + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + break; + case UPDATEBLIND_ENTITYNAME_SUCCESS: + ToastUtil.show(getContext(), "保存成功"); + break; + case UPDATEBLIND_ENTITYNAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void setIsLearned(Key5Entity entity1) { + List entity1Obj = entity1.getData(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + switch (entity1Obj.get(i).getName()) { + case "power": + case "poweroff": + mOpenCloseTag = true; + break; + case "up": + mUpTag = true; + break; + case "down": + mDownTag = true; + break; + case "left": + mLeftTag = true; + break; + case "right": + mRightTag = true; + break; + case "ok": + mOkTag = true; + break; + case "menu": + mMenuTag = true; + break; + case "volplus": + mVolAddTag = true; + break; + case "volminus": + mVolReduceTag = true; + break; + case "mute": + mNoVoiceTag = true; + break; + case "zoomplus": + mChAddTag = true; + break; + case "zoomminus": + mChReduceTag = true; + break; + case "signal": + mSignalTag = true; + break; + case "exit": + mBackTag = true; + break; + case "reset": + mResetTag = true; + break; + case "auto": + mAutoTag = true; + break; + + } + } + } + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void showLearn() { + mTitleView.setHeadFuntionTxt(R.string.save); + mTitleView.setHeadFuntionGone(); + learningLl.setVisibility(View.VISIBLE); + setLearnAlph(); + // learnShowMark(); + + if (!mOpenCloseTag) { + showTopTxtAndAlpha(getString(R.string.Switch), mOpenCloseBg); + } else if (!mUpTag) { + showTopTxtAndAlpha("向上", mUp); + } else if (!mDownTag) { + showTopTxtAndAlpha("向下", mDown); + } else if (!mLeftTag) { + showTopTxtAndAlpha("向左", mLeft); + } else if (!mRightTag) { + showTopTxtAndAlpha("向右", mRight); + } else if (!mOkTag) { + showTopTxtAndAlpha("OK", mOkBg); + } else if (!mMenuTag) { + showTopTxtAndAlpha("菜单", mMenuBg); + } else if (!mBackTag) { + showTopTxtAndAlpha("返回", mBackBg); + } else if (!mVolAddTag) { + showTopTxtAndAlpha("音量+", mVolAddBg); + } else if (!mVolReduceTag) { + showTopTxtAndAlpha("音量-", mVolReduceBg); + } else if (!mChAddTag) { + showTopTxtAndAlpha("大小+", mChAddBg); + } else if (!mChReduceTag) { + showTopTxtAndAlpha("大小-", mChReduceBg); + } else if (!mSignalTag) { + showTopTxtAndAlpha("输入选择", mSignalBg); + } else if (!mResetTag) { + showTopTxtAndAlpha("重置", mResetBg); + } else if (!mAutoTag) { + showTopTxtAndAlpha("自动调整", mAutoBg); + } else if (!mNoVoiceTag) { + showTopTxtAndAlpha("静音", mNoVoiceBg); + } else { + showTopTxtAndAlpha(getString(R.string.Switch), mOpenCloseBg); + } + } + + private void showTopTxtAndAlpha(String text, TextView textView) { + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(text); + clearAlph(); + textView.startAnimation(mAlphaAnimation); + } + + private void clearAlph() { + mVolReduceBg.clearAnimation(); + mVolAddBg.clearAnimation(); + mChReduceBg.clearAnimation(); + mChAddBg.clearAnimation(); + mBackBg.clearAnimation(); + mSignalBg.clearAnimation(); + mAutoBg.clearAnimation(); + mResetBg.clearAnimation(); + mMenuBg.clearAnimation(); + mOkBg.clearAnimation(); + mRight.clearAnimation(); + mLeft.clearAnimation(); + mDown.clearAnimation(); + mUp.clearAnimation(); + mOpenCloseBg.clearAnimation(); + mNoVoiceBg.clearAnimation(); + } + + private void setLearnAlph() { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + mNoVoice.setAlpha(1.0f); + mNoVoice.setEnabled(true); + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + mBack.setAlpha(1.0f); + mBack.setEnabled(true); + mSignal.setAlpha(1.0f); + mSignal.setEnabled(true); + mAuto.setAlpha(1.0f); + mAuto.setEnabled(true); + mReset.setAlpha(1.0f); + mReset.setEnabled(true); + mMenu.setAlpha(1.0f); + mMenu.setEnabled(true); + mVolAdd.setAlpha(1.0f); + mVolAdd.setEnabled(true); + mVolReduce.setAlpha(1.0f); + mVolReduce.setEnabled(true); + mChAdd.setAlpha(1.0f); + mChAdd.setEnabled(true); + mChReduce.setAlpha(1.0f); + mChReduce.setEnabled(true); + mVolAddPic.setAlpha(1.0f); + mVolRedPic.setAlpha(1.0f); + mChAddPic.setAlpha(1.0f); + mChRedPic.setAlpha(1.0f); + } + + + private void showControl() { + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + learningLl.setVisibility(View.GONE); + // clearMark(); + clearAlph(); + controlShowAlph(); + } + + private void controlShowAlph() { + if (!mOpenCloseTag) { + mOpenClose.setAlpha(0.5f); + mOpenClose.setEnabled(false); + } else { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + } + if (!mNoVoiceTag) { + mNoVoice.setAlpha(0.5f); + mNoVoice.setEnabled(false); + } else { + mNoVoice.setAlpha(1.0f); + mNoVoice.setEnabled(true); + } + if (!mOkTag) { + mOk.setAlpha(0.5f); + mOk.setEnabled(false); + } else { + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + } + if (!mBackTag) { + mBack.setAlpha(0.5f); + mBack.setEnabled(false); + } else { + mBack.setAlpha(1.0f); + mBack.setEnabled(true); + } + if (!mMenuTag) { + mMenu.setAlpha(0.5f); + mMenu.setEnabled(false); + } else { + mMenu.setAlpha(1.0f); + mMenu.setEnabled(true); + } + if (!mVolAddTag) { + mVolAdd.setAlpha(0.5f); + mVolAddPic.setAlpha(0.5f); + mVolAdd.setEnabled(false); + } else { + mVolAdd.setAlpha(1.0f); + mVolAddPic.setAlpha(1.0f); + mVolAdd.setEnabled(true); + } + if (!mVolReduceTag) { + mVolReduce.setAlpha(0.5f); + mVolRedPic.setAlpha(0.5f); + mVolReduce.setEnabled(false); + } else { + mVolReduce.setAlpha(1.0f); + mVolRedPic.setAlpha(1.0f); + mVolReduce.setEnabled(true); + } + if (!mChAddTag) { + mChAdd.setAlpha(0.5f); + mChAddPic.setAlpha(0.5f); + mChAdd.setEnabled(false); + } else { + mChAdd.setAlpha(1.0f); + mChAddPic.setAlpha(1.0f); + mChAdd.setEnabled(true); + } + if (!mChReduceTag) { + mChReduce.setAlpha(0.5f); + mChRedPic.setAlpha(0.5f); + mChReduce.setEnabled(false); + } else { + mChReduce.setAlpha(1.0f); + mChRedPic.setAlpha(1.0f); + mChReduce.setEnabled(true); + } + if (!mSignalTag) { + mSignal.setAlpha(0.5f); + mSignal.setEnabled(false); + } else { + mSignal.setAlpha(1.0f); + mSignal.setEnabled(true); + } + if (!mResetTag) { + mReset.setAlpha(0.5f); + mReset.setEnabled(false); + } else { + mReset.setAlpha(1.0f); + mReset.setEnabled(true); + } + if (!mAutoTag) { + mAuto.setAlpha(0.5f); + mAuto.setEnabled(false); + } else { + mAuto.setAlpha(1.0f); + mAuto.setEnabled(true); + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + private void subsetGetControlKeys() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", MOVIE_CAMERA); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETCONTROLKEYS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetControlKeys", "onSuccess()" + respone); + Key5Entity obj = JSON.parseObject(respone, Key5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_BRAND_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void infraredHistoryAdd(String name, String model) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + /*map.put("brand", devicesBean.getDeviceBrand()); + map.put("model", model);*/ + map.put("name", name); + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.INFRARED_HISTORY_ADD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("infraredHistoryModify", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_SUCCESS); + msg.obj = name; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(MovieCameraFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + MovieCameraFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/MusicFragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/MusicFragment.java new file mode 100644 index 0000000..b7b4352 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/MusicFragment.java @@ -0,0 +1,774 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.database.entity.entitya2.KeyEntity; +import com.yonsz.z1.database.entity.entitya2.LoadEvent; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.device.tv.FanItem; +import com.yonsz.z1.device.tv.OnFanItemClickListener; +import com.yonsz.z1.device.tv.PieChartView; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_FAIL; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS_MUSIC; +import static com.yonsz.z1.net.Constans.FAN_LEARN_ING; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.MUSIC_CHANGE; +import static com.yonsz.z1.net.Constans.MUSIC_MODEL; +import static com.yonsz.z1.net.Constans.MUSIC_NEXT; +import static com.yonsz.z1.net.Constans.MUSIC_NOVOICE; +import static com.yonsz.z1.net.Constans.MUSIC_OPEN; +import static com.yonsz.z1.net.Constans.MUSIC_STOP; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.MUSIC_UP; +import static com.yonsz.z1.net.Constans.MUSIC_VOICEADD; +import static com.yonsz.z1.net.Constans.MUSIC_VOICERED; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.isLocalControl; +import static com.yonsz.z1.net.NetWorkUrl.CANCEL_DOWNLOAD; +import static com.yonsz.z1.net.NetWorkUrl.YKY_DOWNLOAD; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class MusicFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private PieChartView chartView; + private TextView mDown, mLeft, mUp, mRight; + private int mId; + private TextView voiceTv, openTv, voiceChangeTv, voiceModelTv, voiceStop; + private String ziId; + private ImageView localControlIv; + + private HorizontalProgressBarWithNumber mProgressBar; + private RelativeLayout progressRl; + private TextView progressTv; + private boolean isLoading = false; + private TextView loadBackTv, tv_cancel_load; + private RelativeLayout mProgressTop; + private LoadingDialog mLoadingDialog; + private String cancelFlag; + private String deviceIp = ""; + private String musicStateTag; + private boolean isInit = false; + + public static MusicFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + MusicFragment fragment = new MusicFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(LoadEvent event) { + String msg = event.getMsg(); + NettyEntity nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (nettyEntity.getDeviceType().equals(MUSIC_TAG)) { + Log.e("nettyUtilMusic", msg); + Message message = new Message(); + message.what = FAN_LEARN_ING; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_music, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + showLoadDiaolog(getUserVisibleHint()); + } + + private void showLoadDiaolog(boolean isVisibleToUser) { + if (isVisibleToUser && isInit) { + cancelFlag = devicesBean.getCancelFlag() + ""; + if (cancelFlag.equals("1")) { + EventBus.getDefault().post( + new CanloopEvent(true)); + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + getActivity().finish(); + break; + case 1: + reloadInfrared(MUSIC_TAG); + break; + } + } + }); + dialog.setContent(R.string.Data_not_downloaded_reloaded); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + + } + } + } + + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + isInit = true; + ziId = devicesBean.getZiId(); + mProgressTop = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + if (getArguments().get("loadStatus").toString().equals("1") && getArguments().get("loadErrorType").toString().equals(MUSIC_TAG)) { + isLoading = true; + } else { + isLoading = false; + } + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + loadBackTv = (TextView) fragView.findViewById(R.id.tv_load_back); + tv_cancel_load = (TextView) fragView.findViewById(R.id.tv_cancel_load); + progressRl = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + progressTv = (TextView) fragView.findViewById(R.id.tv_progress_top); + mProgressBar = (HorizontalProgressBarWithNumber) fragView.findViewById(R.id.pg_horizontal_fan); + + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + voiceTv = (TextView) fragView.findViewById(R.id.tv_voice); + openTv = (TextView) fragView.findViewById(R.id.tv_music_open); + voiceChangeTv = (TextView) fragView.findViewById(R.id.tv_music_change); + voiceModelTv = (TextView) fragView.findViewById(R.id.tv_music_model); + voiceStop = (TextView) fragView.findViewById(R.id.tv_music_stop); + mDown = (TextView) fragView.findViewById(R.id.iv_down); + mLeft = (TextView) fragView.findViewById(R.id.iv_left); + mUp = (TextView) fragView.findViewById(R.id.iv_up); + mRight = (TextView) fragView.findViewById(R.id.iv_right); + chartView = (PieChartView) fragView.findViewById(R.id.pieChartView); + chartView.setFanClickAbleData( + new double[]{90, 90, 90, 90}, + new int[]{Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT}, 0, mHandler); + + setPanClick(); + + mTitleView = (TitleView) fragView.findViewById(R.id.title_music); + if (!devicesBean.getName().isEmpty()) { + mTitleView.setHead(devicesBean.getName()); + } else { + mTitleView.setHead("背景音乐"); + } + mTitleView.clearBackGroud(); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isLoading) { + + } else { + getActivity().finish(); + } + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(MUSIC_TAG, ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", MUSIC_TAG); + startActivity(intent); + break; + case 4: + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent(); + dialog2.setLearn(); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + + if (isLoading) { + progressRl.setVisibility(View.VISIBLE); + } else { + progressRl.setVisibility(View.GONE); + } + + showLoadDiaolog(getUserVisibleHint()); + } + + private void initListener() { + voiceTv.setOnClickListener(this); + openTv.setOnClickListener(this); + voiceChangeTv.setOnClickListener(this); + voiceModelTv.setOnClickListener(this); + voiceStop.setOnClickListener(this); + tv_cancel_load.setOnClickListener(this); + loadBackTv.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_voice: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_NOVOICE)); + } else { + // controllerDevice(MUSIC_NOVOICE); + subsetControl("mute"); + } + break; + case R.id.tv_music_open: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_OPEN)); + } else { + // controllerDevice(MUSIC_OPEN); + subsetControl("power"); + } + break; + case R.id.tv_music_change: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_CHANGE)); + } else { + // controllerDevice(MUSIC_CHANGE); + subsetControl("source"); + } + break; + case R.id.tv_music_model: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_MODEL)); + } else { + // controllerDevice(MUSIC_MODEL); + subsetControl("loop"); + } + break; + case R.id.tv_music_stop: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_STOP)); + } else { + // controllerDevice(MUSIC_STOP); + subsetControl("stop"); + } + break; + case R.id.tv_load_back: + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + case R.id.tv_cancel_load: + cancelDownload(); + break; + } + } + + private void cancelDownload() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", MUSIC_TAG); + netWorkUtil.requestPostByAsynewApi(CANCEL_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancelDownload", "ShareDeviceActivity onSuccess()" + respone); + getActivity().finish(); + } + + @Override + public void onFail(String message) { + } + }); + } + + + private void setPanClick() { + chartView.setOnFanClick(new OnFanItemClickListener() { + @Override + public void onFanClick(FanItem fanItem) { + mId = fanItem.getId(); + switch (mId) { + case 0: + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + break; + case 1: + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + break; + case 2: + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + break; + case 3: + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + break; + } + } + + @Override + public void onFanLongClick(FanItem fanItem) { + + } + + @Override + public void onUp(FanItem fanItem) { + mId = fanItem.getId(); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + switch (mId) { + case 0: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_VOICERED)); + } else { + // controllerDevice(MUSIC_VOICERED); + subsetControl("volminus"); + } + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_UP)); + } else { + // controllerDevice(MUSIC_UP); + subsetControl("last"); + } + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_VOICEADD)); + } else { + // controllerDevice(MUSIC_VOICEADD); + subsetControl("volplus"); + } + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(MUSIC_NEXT)); + } else { + // controllerDevice(MUSIC_NEXT); + subsetControl("next"); + } + mRight.setVisibility(View.INVISIBLE); + break; + } + } + + }, 200); + } + }); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case FAN_LEARN_ING: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + float countNum = Integer.parseInt(nettyEntity.getCountNum()); + float loadNum = Integer.parseInt(nettyEntity.getLoadNum()); + progressRl.setVisibility(View.VISIBLE); + mProgressBar.setProgress((int) (loadNum / countNum * 100)); + if (loadNum / countNum == 1) { + isLoading = false; + progressTv.setText(R.string.load_complete); + progressRl.setVisibility(View.GONE); + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } else { +// initLoadDialog(); + } + devicesBean.setCancelFlag(0); + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + } + break; + case DELETE_CHILDDEVICE_SUCCESS: + SimpleEntty entity2 = (SimpleEntty) msg.obj; + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 1000); + break; + case DELETE_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SHOW_LOCAL_CONTROL: + String obj = (String) msg.obj; + if (obj.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity1.getDeviceType().equals(MUSIC_TAG) && !TextUtils.isEmpty(nettyEntity1.getOpenFlag())) { + if (nettyEntity1.getOpenFlag().equals("1")) { + ToastUtil.show(getContext(), "背景音乐已打开"); + } else { + ToastUtil.show(getContext(), "背景音乐已关闭"); + } + } + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS_MUSIC: + progressRl.setVisibility(View.VISIBLE); + break; + case SELECT_CONNDEVICE_PUSHKEY_FAIL: + if (mLoadingDialog != null) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + break; + case MODIFY_NAME_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case MODIFY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(MODIFY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", MUSIC_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void reloadInfrared(String deviceType) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("macId", ziId); + map.put("deviceType", deviceType); + map.put("rid", devicesBean.getRid()); + netWorkUtil.requestPostByAsynewApi(YKY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("reloadInfrared", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty message = JSON.parseObject(respone, SimpleEntty.class); + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_SUCCESS_MUSIC); + msg.obj = message; + mHandler.sendMessage(msg); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(MusicFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + MusicFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/MyFragmentPagerAdapter.java b/app/src/main/java/com/yonsz/z1/version4/fragment/MyFragmentPagerAdapter.java new file mode 100644 index 0000000..fadeb49 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/MyFragmentPagerAdapter.java @@ -0,0 +1,119 @@ +package com.yonsz.z1.version4.fragment; + +import android.os.Parcelable; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; +import android.support.v4.view.PagerAdapter; +import android.view.View; +import android.view.ViewGroup; + +/** + * Created by Administrator on 2018/8/17. + */ + +public abstract class MyFragmentPagerAdapter extends PagerAdapter { + private final FragmentManager mFragmentManager; + private FragmentTransaction mCurTransaction = null; + private Fragment mCurrentPrimaryItem = null; + + public MyFragmentPagerAdapter(FragmentManager mFragmentManager) { + this.mFragmentManager = mFragmentManager; + } + + private static String makeFragmentName(int viewId, long id) { + return "android:switcher:" + viewId + ":" + id; + } + + public abstract Fragment getItem(int position); + + /** + * 作为fragment的标识,每个fragment都有单独的标识,不能直接用position,否则在排序和删除会出现fragment错乱 + */ + public abstract long getItemId(int position); + + @Override + public void startUpdate(ViewGroup container) { + } + + @Override + public Object instantiateItem(ViewGroup container, int position) { + if (mCurTransaction == null) { + mCurTransaction = mFragmentManager.beginTransaction(); + } + final long itemId = getItemId(position); + + String name = makeFragmentName(container.getId(), itemId); + Fragment fragment = mFragmentManager.findFragmentByTag(name); + if (fragment != null) { + /** mCurTransaction.attach(fragment); + * 用show、hide代替attach、detach,这样fragment不会reCreateView + */ + mCurTransaction.show(fragment); + } else { + fragment = getItem(position); + mCurTransaction.add(container.getId(), fragment, + makeFragmentName(container.getId(), itemId)); + } + if (fragment != mCurrentPrimaryItem) { + fragment.setMenuVisibility(false); + fragment.setUserVisibleHint(false); + } + + return fragment; + } + + @Override + public void destroyItem(ViewGroup container, int position, Object object) { + if (mCurTransaction == null) { + mCurTransaction = mFragmentManager.beginTransaction(); + } + /** mCurTransaction.detach((Fragment)object);*/ + mCurTransaction.hide((Fragment) object); + } + + @Override + public void setPrimaryItem(ViewGroup container, int position, Object object) { + Fragment fragment = (Fragment) object; + if (fragment != mCurrentPrimaryItem) { + if (mCurrentPrimaryItem != null) { + mCurrentPrimaryItem.setMenuVisibility(false); + mCurrentPrimaryItem.setUserVisibleHint(false); + } + if (fragment != null) { + fragment.setMenuVisibility(true); + fragment.setUserVisibleHint(true); + } + mCurrentPrimaryItem = fragment; + } + } + + @Override + public int getItemPosition(Object object) { + //每次都刷新都调用instantiateItem 和destroyItem方法 + return POSITION_NONE; + } + + @Override + public void finishUpdate(ViewGroup container) { + if (mCurTransaction != null) { + mCurTransaction.commitAllowingStateLoss(); + mCurTransaction = null; + mFragmentManager.executePendingTransactions(); + } + } + + @Override + public boolean isViewFromObject(View view, Object object) { + return ((Fragment) object).getView() == view; + } + + @Override + public Parcelable saveState() { + return null; + } + + @Override + public void restoreState(Parcelable state, ClassLoader loader) { + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/SafeDeviceFragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/SafeDeviceFragment.java new file mode 100644 index 0000000..e6ddb37 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/SafeDeviceFragment.java @@ -0,0 +1,1095 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.SafeVoiceEntity; +import com.yonsz.z1.database.entity.entitya2.SafeVoiceEvent; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.fragment.person.WebViewActivity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.DateTimeUitl; +import com.yonsz.z1.utils.DateUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.DeviceControlActivity; +import com.yonsz.z1.version4.NoticeDelayActivity; +import com.yonsz.z1.version4.NoticeTypeActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.version5.light.ModifyTriggerTypeActivity; +import com.yonsz.z1.version5.model.ModelBindActivity; +import com.yonsz.z1.version5.model.SafeFunctionSelectActivity; +import com.yonsz.z1.version5.model.TriggerBindActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_SAFETY_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.ADD_SAFETY_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.DEL_SAFETY_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DEL_SAFETY_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.MODIFY_ADDRESS_RESULT; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SAFE_BIG_IMG; +import static com.yonsz.z1.net.Constans.SAFE_VOICE_SUCCESS; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SELECT_SAFETY_DETAIL_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_SAFETY_DETAIL_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_DELVOICE_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.SEND_DELVOICE_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_UPDATEVOICE_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.SEND_UPDATEVOICE_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETDETAIL; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class SafeDeviceFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private String deviceType; + private ImageView safeImage, iv_heartbeat_help; + private TextView safeTypeName, safeTypeNameM; + private TextView deleteTv; + private String id; + private String ziId; + private String deviceInfrared; + private String addressName; + private String addressId; + private TextView safePositionTv; + private RelativeLayout safePositionRL, panelNameRl; + private CheckBox mCheckBox, manipulatorOpenCb, manipulatorReverseCb; + private TextView devicePosition, deviceName, noticeDelayTv, deviceMessageTv, + triggerOnTv, triggerOffTv, deviceSubtypeTv, safeFunctionTv, openStateTv; + private RelativeLayout devicePowerRl, deviceDefenceRl, safeModelRl, noticeDelayRl, noticeTypeRl, + triggerOnRl, triggerOffRl, deviceSubtypeRl, seeTimeRl, heartbeatRl, safeFunctionRl; + private TextView localStageTv, defenceTv; + private LoadingDialog mLoadingDialog; + private boolean isDelete = false; + private TextView tv_device_power, tv_safe_model, tv_heartbeat_time; + private String modelId = "", modelName = ""; + private int modelDelay = -1; + private boolean isSeteModel = false; + private LinearLayout securityTriggerLl, heartbeatLl, securityManipulatorLl; + private String autoCloseAfterTrigger = "true"; + + public static SafeDeviceFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + SafeDeviceFragment fragment = new SafeDeviceFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_safe_detail, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void onResume() { + super.onResume(); + // selectSafetyDetail(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + public void onEventMainThread(SafeVoiceEvent event) { + final String msg = event.getMsg(); + Log.e("nettyUtil", msg); + /*Message message = mHandler.obtainMessage(SAFE_VOICE_SUCCESS); + mHandler.sendMessage(message);*/ + } + + public void onEventMainThread(EventBusEntity event) { + subsetGetDetail(); + } + + private void initView(View fragView) { + deviceType = devicesBean.getDeviceType(); + id = devicesBean.getId(); + ziId = devicesBean.getZiId(); + deviceInfrared = devicesBean.getDeviceInfrared(); + addressId = devicesBean.getAddressId(); + addressName = AddressNameUtil.getAddressName(addressId); + tv_device_power = (TextView) fragView.findViewById(R.id.tv_device_power); + localStageTv = (TextView) fragView.findViewById(R.id.tv_local_stage); + defenceTv = (TextView) fragView.findViewById(R.id.tv_defence); + devicePosition = (TextView) fragView.findViewById(R.id.tv_device_position); + deviceName = (TextView) fragView.findViewById(R.id.tv_device_name); + noticeDelayTv = (TextView) fragView.findViewById(R.id.tv_notice_delay); + deviceMessageTv = (TextView) fragView.findViewById(R.id.tv_device_message); + mCheckBox = (CheckBox) fragView.findViewById(R.id.cb_device_defence); + manipulatorOpenCb = (CheckBox) fragView.findViewById(R.id.cb_manipulator_open); + manipulatorReverseCb = (CheckBox) fragView.findViewById(R.id.cb_manipulator_reverse); + safePositionTv = (TextView) fragView.findViewById(R.id.tv_safe_position); + deviceSubtypeTv = (TextView) fragView.findViewById(R.id.tv_device_subtype); + safeFunctionTv = (TextView) fragView.findViewById(R.id.tv_safe_function); + openStateTv = (TextView) fragView.findViewById(R.id.tv_manipulator_open_state); + triggerOnTv = (TextView) fragView.findViewById(R.id.tv_trigger_on); + triggerOffTv = (TextView) fragView.findViewById(R.id.tv_trigger_off); + safePositionRL = (RelativeLayout) fragView.findViewById(R.id.rl_safe_position); + panelNameRl = (RelativeLayout) fragView.findViewById(R.id.rl_panel_name); + devicePowerRl = (RelativeLayout) fragView.findViewById(R.id.rl_device_power); + safeFunctionRl = (RelativeLayout) fragView.findViewById(R.id.rl_safe_function); + heartbeatRl = (RelativeLayout) fragView.findViewById(R.id.rl_heartbeat); + noticeDelayRl = (RelativeLayout) fragView.findViewById(R.id.rl_notice_delay); + noticeTypeRl = (RelativeLayout) fragView.findViewById(R.id.rl_notice_type); + deviceDefenceRl = (RelativeLayout) fragView.findViewById(R.id.rl_device_defence); + seeTimeRl = (RelativeLayout) fragView.findViewById(R.id.rl_see_time); + triggerOnRl = (RelativeLayout) fragView.findViewById(R.id.rl_trigger_on); + triggerOffRl = (RelativeLayout) fragView.findViewById(R.id.rl_trigger_off); + deviceSubtypeRl = (RelativeLayout) fragView.findViewById(R.id.rl_device_subtype); + securityTriggerLl = (LinearLayout) fragView.findViewById(R.id.ll_security_trigger); + securityManipulatorLl = (LinearLayout) fragView.findViewById(R.id.ll_security_manipulator); + heartbeatLl = (LinearLayout) fragView.findViewById(R.id.ll_no_heartbeat); + safeModelRl = (RelativeLayout) fragView.findViewById(R.id.rl_safe_model); + tv_safe_model = (TextView) fragView.findViewById(R.id.tv_safe_model); + tv_heartbeat_time = (TextView) fragView.findViewById(R.id.tv_heartbeat_time); + deleteTv = (TextView) fragView.findViewById(R.id.btn_exit); + safeImage = (ImageView) fragView.findViewById(R.id.iv_safe_image); + iv_heartbeat_help = (ImageView) fragView.findViewById(R.id.iv_heartbeat_help); + safeTypeName = (TextView) fragView.findViewById(R.id.iv_safe_name); + safeTypeNameM = (TextView) fragView.findViewById(R.id.tv_panel_name); + mTitleView = (TitleView) fragView.findViewById(R.id.title_safe_detail); + mTitleView.setHead(R.string.device_info); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + securityTriggerLl.setVisibility(View.GONE); + securityManipulatorLl.setVisibility(View.GONE); + safeFunctionRl.setVisibility(View.GONE); + switch (deviceType) { + case DOOR_LOCK_TAG: + switch (devicesBean.getDeviceModel()) { + case "2": + safeTypeName.setText("门磁探测器"); + safeImage.setImageResource(R.drawable.pic_magnetism_jd); + heartbeatRl.setVisibility(View.VISIBLE); + break; + default: + safeTypeName.setText(R.string.door_warn); + safeImage.setImageResource(SAFE_BIG_IMG[3]); + break; + } + safeModelRl.setVisibility(View.VISIBLE); + break; + case INFRARED_TAG: + switch (devicesBean.getDeviceModel()) { + case "2": + safeTypeName.setText("红外探测器"); + safeImage.setImageResource(R.drawable.pic_infrared_jd); + heartbeatRl.setVisibility(View.VISIBLE); + break; + default: + safeTypeName.setText(R.string.red_warn); + safeImage.setImageResource(SAFE_BIG_IMG[4]); + break; + } + safeModelRl.setVisibility(View.VISIBLE); + break; + case SMOKE_TAG: + switch (devicesBean.getDeviceModel()) { + case "2": + safeTypeName.setText("烟雾探测器"); + safeImage.setImageResource(R.drawable.pic_smoke_jd); + devicePowerRl.setVisibility(View.VISIBLE); + heartbeatRl.setVisibility(View.VISIBLE); + break; + default: + safeTypeName.setText(R.string.smoke_warn); + safeImage.setImageResource(SAFE_BIG_IMG[2]); + devicePowerRl.setVisibility(View.GONE); + break; + } + deviceDefenceRl.setVisibility(View.VISIBLE); + safeModelRl.setVisibility(View.VISIBLE); + break; + case GAS_TAG: + switch (devicesBean.getDeviceModel()) { + case "1": + safeTypeName.setText("可燃气探测器"); + safeImage.setImageResource(R.drawable.pic_gas_jd); + devicePowerRl.setVisibility(View.GONE); + heartbeatRl.setVisibility(View.VISIBLE); + break; + case "2": + safeTypeName.setText("壁挂燃气探测器"); + safeImage.setImageResource(R.drawable.pic_wall_hanging_gas_jd); + devicePowerRl.setVisibility(View.GONE); + heartbeatRl.setVisibility(View.VISIBLE); + break; + default: + safeTypeName.setText(R.string.gas_warn); + safeImage.setImageResource(SAFE_BIG_IMG[1]); + devicePowerRl.setVisibility(View.GONE); + break; + } + deviceDefenceRl.setVisibility(View.VISIBLE); + safeModelRl.setVisibility(View.VISIBLE); + break; + case WATER_TAG: + switch (devicesBean.getDeviceModel()) { + case "2": + safeTypeName.setText("水浸探测器"); + safeImage.setImageResource(R.drawable.pic_water_jd); + devicePowerRl.setVisibility(View.VISIBLE); + heartbeatRl.setVisibility(View.VISIBLE); + break; + default: + safeTypeName.setText(R.string.water_warn); + safeImage.setImageResource(SAFE_BIG_IMG[0]); + break; + } + deviceDefenceRl.setVisibility(View.VISIBLE); + safeModelRl.setVisibility(View.VISIBLE); + break; + case SECURITY_TRIGGER: + mTitleView.setHead("安防触发器"); + devicePowerRl.setVisibility(View.GONE); + seeTimeRl.setVisibility(View.GONE); + securityTriggerLl.setVisibility(View.VISIBLE); + setSecurityTriggerName(); + break; + case WIRELESS_EMERGENCY_BUTTON: + mTitleView.setHead("紧急按钮"); + safeTypeName.setText("紧急求助按钮"); + safeImage.setImageResource(R.drawable.pic_sos); + heartbeatRl.setVisibility(View.GONE); + devicePowerRl.setVisibility(View.GONE); + break; + case SECURITY_MANIPULATOR: + mTitleView.setHead("安防机械手"); + safeTypeName.setText("安防机械手"); + safeImage.setImageResource(R.drawable.pic_security_manipulator); + safeModelRl.setVisibility(View.VISIBLE); + heartbeatRl.setVisibility(View.GONE); + devicePowerRl.setVisibility(View.GONE); + securityManipulatorLl.setVisibility(View.VISIBLE); + safeFunctionRl.setVisibility(View.VISIBLE); + break; + } + safePositionTv.setText(addressName); + if (null != devicesBean.getDeviceName()) { + mTitleView.setHead(devicesBean.getDeviceName()); + safeTypeName.setText(devicesBean.getDeviceName()); + safeTypeNameM.setText(devicesBean.getDeviceName()); + } + subsetGetDetail(); + } + + private void setSecurityTriggerName() { + switch (devicesBean.getSubType()) { + case "0": + deviceSubtypeTv.setText("燃气触发器"); + safeTypeName.setText("燃气触发器"); + safeImage.setImageResource(R.drawable.pic_trigger_gas); + break; + case "1": + deviceSubtypeTv.setText("烟雾触发器"); + safeTypeName.setText("烟雾触发器"); + safeImage.setImageResource(R.drawable.pic_trigger_smoke); + break; + case "2": + deviceSubtypeTv.setText("红外触发器"); + safeTypeName.setText("红外触发器"); + safeImage.setImageResource(R.drawable.pic_trigger_infrared); + break; + case "3": + deviceSubtypeTv.setText("门磁触发器"); + safeTypeName.setText("门磁触发器"); + safeImage.setImageResource(R.drawable.pic_trigger_magnetism); + break; + case "4": + deviceSubtypeTv.setText("紧急按钮触发器"); + safeTypeName.setText("紧急按钮触发器"); + safeImage.setImageResource(R.drawable.pic_trigger_sos); + break; + } + } + + private void setInitDate(SafeVoiceEntity voiceEntity) { + deviceInfrared = voiceEntity.getData().getTarget().getDeviceInfrared(); + addressId = voiceEntity.getData().getTarget().getAddressId(); + safePositionTv.setText(AddressNameUtil.getAddressName(voiceEntity.getData().getTarget().getAddressId())); + noticeDelayTv.setText(voiceEntity.getData().getInterval() + "分钟"); + + if (deviceType.equals(SECURITY_TRIGGER)) { + devicesBean.setSubType(voiceEntity.getData().getTarget().getSubType()); + setSecurityTriggerName(); + + List keys = voiceEntity.getData().getKeys(); + for (int i = 0; i < keys.size(); i++) { + if (keys.get(i).getName().equals("key1")) { + triggerOnTv.setText(keys.get(i).getLabel()); + } + if (keys.get(i).getName().equals("key2")) { + triggerOffTv.setText(keys.get(i).getLabel()); + } + } + } + if (deviceType.equals(SECURITY_MANIPULATOR)) { + manipulatorOpenCb.setChecked(voiceEntity.getData().isPower()); + if (voiceEntity.getData().isPower()) { + openStateTv.setText("当前为开启状态"); + } else { + openStateTv.setText("当前为关闭状态"); + } + manipulatorReverseCb.setChecked(voiceEntity.getData().isReverse()); + } + if (!voiceEntity.getData().getLastHeartbeat().isEmpty()) { + String lastHeartbeat = voiceEntity.getData().getLastHeartbeat(); + String currentWithFormate = DateTimeUitl.getCurrentWithFormate(lastHeartbeat); +// tv_heartbeat_time.setText(DateUtil.getDateStr(getContext(), currentWithFormate) + DateUtil.getHourMinute(getContext(), currentWithFormate)); + tv_heartbeat_time.setText(DateTimeUitl.getDistanceTime(System.currentTimeMillis(), Long.parseLong(lastHeartbeat))); + if (voiceEntity.getData().isLongHeartbeat()) { + heartbeatLl.setVisibility(View.VISIBLE); + } else { + heartbeatLl.setVisibility(View.GONE); + } + } + if (voiceEntity.getData().getReminds().size() == 0) { + deviceMessageTv.setText("已关闭所有提醒"); + } else { + List reminds = voiceEntity.getData().getReminds(); + String message = ""; + for (int i = 0; i < reminds.size(); i++) { + switch (reminds.get(i)) { + case "app": + message += " APP"; + break; + case "sms": + message += " 短信提醒"; + break; + } + } + deviceMessageTv.setText(message); + } + if (null != voiceEntity.getData().getAiDevice()) { + deviceName.setText(voiceEntity.getData().getAiDevice().getName()); + devicePosition.setText(AddressNameUtil.getAddressName(voiceEntity.getData().getAiDevice().getAddressId())); + } + if (null != voiceEntity.getData().getTarget().getPowerFlag() && voiceEntity.getData().getTarget().getPowerFlag().equals("1")) { + tv_device_power.setText(R.string.Electric_quantity_low); + tv_device_power.setTextColor(0xffF79D28); + } else { + tv_device_power.setText(R.string.zheng_chang); + tv_device_power.setTextColor(0xff666666); + } + if (deviceType.equals(SECURITY_MANIPULATOR)) { + if (voiceEntity.getData().getTarget().isModeTriggerBound()) { + safeFunctionTv.setText("场景联动"); + safeModelRl.setVisibility(View.VISIBLE); + if (null != voiceEntity.getData().getModeTrigger()) { + if (!voiceEntity.getData().getModeTrigger().getAutoCloseAfterTrigger().isEmpty()) { + autoCloseAfterTrigger = voiceEntity.getData().getModeTrigger().getAutoCloseAfterTrigger(); + } + modelId = voiceEntity.getData().getModeTrigger().getModeId(); + modelDelay = voiceEntity.getData().getModeTrigger().getValidTimeAfter(); + modelName = voiceEntity.getData().getModeTrigger().getModeName(); + tv_safe_model.setText(modelName); + } else { + modelName = ""; + modelDelay = 0; + tv_safe_model.setText("设置您需要联动的场景模式"); + } + isSeteModel = true; + defenceTv.setText("场景联动:"); + if (voiceEntity.getData().getTarget().getVoiceFlag().equals("1")) { + mCheckBox.setChecked(true); + mCheckBox.setVisibility(View.VISIBLE); + localStageTv.setText("场景联动开"); + } else { + mCheckBox.setChecked(false); + mCheckBox.setVisibility(View.VISIBLE); + localStageTv.setText("场景联动关"); + } + } else { + safeFunctionTv.setText("安防报警"); + safeModelRl.setVisibility(View.GONE); + modelName = ""; + modelDelay = 0; + tv_safe_model.setText("设置您需要联动的场景模式"); + isSeteModel = false; + defenceTv.setText("布防:"); + if (voiceEntity.getData().getTarget().getVoiceFlag().equals("1")) { + mCheckBox.setChecked(true); + mCheckBox.setVisibility(View.VISIBLE); + localStageTv.setText(R.string.defence_stage); + } else { + mCheckBox.setChecked(false); + mCheckBox.setVisibility(View.VISIBLE); + localStageTv.setText(R.string.defence_back_stage); + } + } + } else { + if (null != voiceEntity.getData().getModeTrigger()) { + if (!voiceEntity.getData().getModeTrigger().getAutoCloseAfterTrigger().isEmpty()) { + autoCloseAfterTrigger = voiceEntity.getData().getModeTrigger().getAutoCloseAfterTrigger(); + } + modelId = voiceEntity.getData().getModeTrigger().getModeId(); + modelDelay = voiceEntity.getData().getModeTrigger().getValidTimeAfter(); + modelName = voiceEntity.getData().getModeTrigger().getModeName(); + tv_safe_model.setText(modelName); + isSeteModel = true; + defenceTv.setText("场景联动:"); + if (voiceEntity.getData().getTarget().getVoiceFlag().equals("1")) { + mCheckBox.setChecked(true); + mCheckBox.setVisibility(View.VISIBLE); + localStageTv.setText("场景联动开"); + } else { + mCheckBox.setChecked(false); + mCheckBox.setVisibility(View.VISIBLE); + localStageTv.setText("场景联动关"); + } + } else { + modelName = ""; + modelDelay = 0; + tv_safe_model.setText("设置您需要联动的场景模式"); + isSeteModel = false; + defenceTv.setText("布防:"); + if (voiceEntity.getData().getTarget().getVoiceFlag().equals("1")) { + mCheckBox.setChecked(true); + mCheckBox.setVisibility(View.VISIBLE); + localStageTv.setText(R.string.defence_stage); + } else { + mCheckBox.setChecked(false); + mCheckBox.setVisibility(View.VISIBLE); + localStageTv.setText(R.string.defence_back_stage); + } + } + } + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + } + + private void initListener() { + deleteTv.setOnClickListener(this); + safePositionRL.setOnClickListener(this); + panelNameRl.setOnClickListener(this); + mCheckBox.setOnClickListener(this); + manipulatorOpenCb.setOnClickListener(this); + manipulatorReverseCb.setOnClickListener(this); + safeModelRl.setOnClickListener(this); + noticeDelayRl.setOnClickListener(this); + noticeTypeRl.setOnClickListener(this); + triggerOnRl.setOnClickListener(this); + triggerOffRl.setOnClickListener(this); + deviceSubtypeRl.setOnClickListener(this); + safeFunctionRl.setOnClickListener(this); + iv_heartbeat_help.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + Intent intent; + switch (v.getId()) { + case R.id.btn_exit: + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + /*isDelete = true; + sendDelVoiceControl();*/ + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.rl_safe_position: + intent = new Intent(getContext(), ModifyRoomActivity.class); + intent.putExtra("ziId", ""); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", addressId); + intent.putExtra("deviceId", id); + startActivityForResult(intent, MODIFY_DEVICE_NAME); + break; + case R.id.cb_device_defence: + DeviceControlActivity.safeDefenceType = deviceType; + isDelete = false; + if (mCheckBox.isChecked()) { + mCheckBox.setChecked(false); + subseSetVoice("1"); + } else { + mCheckBox.setChecked(true); + subseSetVoice("0"); + } + break; + case R.id.cb_manipulator_open: + if (manipulatorOpenCb.isChecked()) { + manipulatorOpenCb.setChecked(false); + subsetControl(manipulatorOpenCb, true, "power"); + } else { + manipulatorOpenCb.setChecked(true); + subsetControl(manipulatorOpenCb, false, "poweroff"); + } + break; + case R.id.cb_manipulator_reverse: + if (manipulatorReverseCb.isChecked()) { + manipulatorReverseCb.setChecked(false); + subsetControl(manipulatorReverseCb, true, "reverse_open"); + } else { + manipulatorReverseCb.setChecked(true); + subsetControl(manipulatorReverseCb, false, "reverse_close"); + } + break; + case R.id.rl_safe_model: + intent = new Intent(getContext(), ModelBindActivity.class); + intent.putExtra("modelId", modelId); + intent.putExtra("modelDelay", modelDelay); + intent.putExtra("modelName", modelName); + intent.putExtra("deviceId", id); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("autoCloseAfterTrigger", autoCloseAfterTrigger); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.rl_notice_delay: + intent = new Intent(getContext(), NoticeDelayActivity.class); + intent.putExtra("deviceId", id); + intent.putExtra("deviceType", deviceType); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("interval", noticeDelayTv.getText().toString()); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.rl_notice_type: + intent = new Intent(getContext(), NoticeTypeActivity.class); + intent.putExtra("deviceId", id); + intent.putExtra("deviceType", deviceType); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("deviceMessage", deviceMessageTv.getText().toString()); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.rl_trigger_on: + intent = new Intent(getContext(), TriggerBindActivity.class); + intent.putExtra("deviceId", id); + intent.putExtra("deviceType", deviceType); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("configKey", "1"); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.rl_trigger_off: + intent = new Intent(getContext(), TriggerBindActivity.class); + intent.putExtra("deviceId", id); + intent.putExtra("deviceType", deviceType); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("configKey", "2"); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.rl_device_subtype: + intent = new Intent(getContext(), ModifyTriggerTypeActivity.class); + intent.putExtra("deviceId", id); + intent.putExtra("deviceType", deviceType); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("deviceMessage", deviceMessageTv.getText().toString()); + intent.putExtra("lightType", devicesBean.getSubType()); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.rl_safe_function: + intent = new Intent(getContext(), SafeFunctionSelectActivity.class); + intent.putExtra("deviceId", id); + intent.putExtra("deviceType", deviceType); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("safeFunction", safeFunctionTv.getText().toString()); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.iv_heartbeat_help: + intent = new Intent(getActivity(), WebViewActivity.class); + intent.putExtra("platform", "heartbeat"); + startActivity(intent); + break; + case R.id.rl_panel_name: + subsetModifyName(); + break; + } + } + + private void subsetModifyName() { + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(MODIFY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case SEND_DELVOICE_CONTROL_SUCCESS: + //删除设备 + // delSafetyEntity(); + break; + case DEL_SAFETY_ENTITY_SUCCESS: + case DELLIGHT_ENTITY_SUCCESS: + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + ToastUtil.show(getContext(), R.string.Delete_successful); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 1000); + break; + case SEND_UPDATEVOICE_CONTROL_SUCCESS: + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + String obj1 = (String) msg.obj; + if (obj1.equals("1")) { + mCheckBox.setChecked(true); + mCheckBox.setVisibility(View.VISIBLE); + if (isSeteModel) { + localStageTv.setText("场景联动开"); + } else { + localStageTv.setText(R.string.defence_stage); + } + } else { + mCheckBox.setChecked(false); + mCheckBox.setVisibility(View.VISIBLE); + if (isSeteModel) { + localStageTv.setText("场景联动关"); + } else { + localStageTv.setText(R.string.defence_back_stage); + } + } + break; + case ADD_SAFETY_ENTITY_SUCCESS: + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + if (!mCheckBox.isChecked()) { + mCheckBox.setChecked(true); + if (isSeteModel) { + localStageTv.setText("场景联动开"); + } else { + localStageTv.setText(R.string.defence_stage); + } + ToastUtil.show(getContext(), R.string.Open_up_success); + } else { + mCheckBox.setChecked(false); + if (isSeteModel) { + localStageTv.setText("场景联动关"); + } else { + localStageTv.setText(R.string.defence_back_stage); + } + ToastUtil.show(getContext(), R.string.Close_off_success); + } + break; + case SELECT_SAFETY_DETAIL_SUCCESS: + SafeVoiceEntity voiceEntity = (SafeVoiceEntity) msg.obj; + setInitDate(voiceEntity); + break; + case SAFE_VOICE_SUCCESS: + if (isDelete) { + } else { + if (!DeviceControlActivity.safeDefenceType.equals(deviceType)) { + return; + } + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + if (!mCheckBox.isChecked()) { + mCheckBox.setChecked(true); + if (isSeteModel) { + localStageTv.setText("场景联动开"); + } else { + localStageTv.setText(R.string.defence_stage); + } + ToastUtil.show(getContext(), R.string.Open_up_success); + } else { + mCheckBox.setChecked(false); + if (isSeteModel) { + localStageTv.setText("场景联动关"); + } else { + localStageTv.setText(R.string.defence_back_stage); + } + ToastUtil.show(getContext(), R.string.Close_off_success); + } + } + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + case SEND_UPDATEVOICE_CONTROL_FAIL: + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case MODIFY_NAME_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + safeTypeName.setText(devicesBean.getDeviceName()); + safeTypeNameM.setText(devicesBean.getDeviceName()); + break; + case MODIFY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_ADDRESS_RESULT: + if (data != null && data.getExtras().get("data") != null) { + safePositionTv.setText((String) data.getExtras().get("data")); + } + break; + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("addressId") != null) { + String addressId = data.getExtras().get("addressId").toString(); + safePositionTv.setText(AddressNameUtil.getAddressName(addressId)); + // addressId = data.getExtras().get("addressId").toString(); + } + break; + } + } + + private void subsetGetDetail() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", id); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETDETAIL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetDetail", "onSuccess()" + respone); + SafeVoiceEntity obj = JSON.parseObject(respone, SafeVoiceEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_SAFETY_DETAIL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_SAFETY_DETAIL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_SAFETY_DETAIL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subseSetVoice(final String flag) { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", id); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", deviceType); + map.put("voiceFlag", flag); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SETVOICE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subseSetVoice", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SEND_UPDATEVOICE_CONTROL_SUCCESS); + msg.obj = flag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SEND_UPDATEVOICE_CONTROL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SEND_UPDATEVOICE_CONTROL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(CheckBox checkBox, boolean isCheck, String key) { + initLoadDialog(); + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", id); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + if (null != mLoadingDialog) { + mLoadingDialog.dismiss(); + } + checkBox.setChecked(isCheck); + if (key.equals("power")) { + openStateTv.setText("当前为开启状态"); + } else if (key.equals("poweroff")) { + openStateTv.setText("当前为关闭状态"); + } else if (key.equals("reverse_open")) { + ToastUtil.show(getContext(), "设置反向成功"); + if (manipulatorOpenCb.isChecked()) { + manipulatorOpenCb.setChecked(false); + openStateTv.setText("当前为关闭状态"); + } else { + manipulatorOpenCb.setChecked(true); + openStateTv.setText("当前为开启状态"); + } + } else if (key.equals("reverse_close")) { + ToastUtil.show(getContext(), "设置反向成功"); + if (manipulatorOpenCb.isChecked()) { + manipulatorOpenCb.setChecked(false); + openStateTv.setText("当前为关闭状态"); + } else { + manipulatorOpenCb.setChecked(true); + openStateTv.setText("当前为开启状态"); + } + } + } + }); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetDelete() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", id); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(SafeDeviceFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + SafeDeviceFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/ScrollViewPager.java b/app/src/main/java/com/yonsz/z1/version4/fragment/ScrollViewPager.java new file mode 100644 index 0000000..1f519ba --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/ScrollViewPager.java @@ -0,0 +1,53 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Context; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; +import android.view.MotionEvent; + +public class ScrollViewPager extends ViewPager { + + private boolean isCanScroll = false; + + + public ScrollViewPager(Context context) { + super(context); + } + + public ScrollViewPager(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + if (isCanScroll) { + return super.onInterceptTouchEvent(ev); + } else { + return false; + } + + } + + @Override + public boolean onTouchEvent(MotionEvent ev) { + if (isCanScroll) { + return super.onTouchEvent(ev); + } else { + return false; + } + } + + public void setScanScroll(boolean isCanScroll) { + this.isCanScroll = isCanScroll; + } + + @Override + public void setCurrentItem(int item) { + super.setCurrentItem(item); + } + + @Override + public void setCurrentItem(int item, boolean smoothScroll) { + super.setCurrentItem(item, smoothScroll); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/SweepA1Fragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/SweepA1Fragment.java new file mode 100644 index 0000000..453fea9 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/SweepA1Fragment.java @@ -0,0 +1,1221 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.AlphaAnimation; +import android.view.animation.AnimationUtils; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.StudyEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.Key5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.device.sweep.SweepLearnGuideActivity; +import com.yonsz.z1.device.tv.FanItem; +import com.yonsz.z1.device.tv.OnFanItemClickListener; +import com.yonsz.z1.device.tv.PieChartView; +import com.yonsz.z1.device.tv.SweepListActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.view.TitleView; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.ll_sweep_continue_learn; +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.device.tv.PieChartView.isLongClickModule1; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CANCLE_LONGPRESS_FAIL; +import static com.yonsz.z1.net.Constans.CANCLE_LONGPRESS_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.LONGPRESS_SAO_FAIL; +import static com.yonsz.z1.net.Constans.LONGPRESS_SAO_SUCCESS; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_STUDY_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_STUDY_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_FAIL; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.SWEEP_ALONG; +import static com.yonsz.z1.net.Constans.SWEEP_DOWN; +import static com.yonsz.z1.net.Constans.SWEEP_LEFT; +import static com.yonsz.z1.net.Constans.SWEEP_OK; +import static com.yonsz.z1.net.Constans.SWEEP_OPEN; +import static com.yonsz.z1.net.Constans.SWEEP_RIGHT; +import static com.yonsz.z1.net.Constans.SWEEP_STRONG; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWEEP_UP; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.isLocalControl; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETCONTROLKEYS; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class SweepA1Fragment extends BaseFragment implements View.OnClickListener { + public int mId; + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + private TitleView mTitleView; + private PieChartView chartView; + private TextView mDown, mLeft, mUp, mRight; + private String userId; + private String ziId; + private AlphaAnimation mAlphaAnimation; + private boolean isLearn; + private TextView learnInstruction, learnComplete; + private LinearLayout learningLl, sweepContinueLearnLl; + private TextView mOpenClose, mAlong, mOk, mStrong; + private TextView mOpenCloseBg, mAlongBg, mOkBg, mStrongBg; + private ImageView mOpenCloseMark, mAlongMark, mOkMark, mStrongMark, mDownMark, mLeftMark, mUpMark, mRightMark; + private boolean mOpenCloseTag, mOkTag, mDownTag, mLeftTag, mUpTag, mRightTag, mStrongTag, mAlongTag; + private String sweepName; + private String deviceIp = ""; + private ImageView localControlIv, greenCircle; + + public static SweepA1Fragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + SweepA1Fragment fragment = new SweepA1Fragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_sweep_control, null); + initView(fragView); + initListener(); + return fragView; + } + + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + userId = SharedpreferencesUtil.get(Constans.USERPHONE, ""); + ziId = devicesBean.getZiId(); + if (getArguments().get("sweepStateTag").toString().equals("0")) { + isLearn = true; + } else { + isLearn = false; + } + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + greenCircle = (ImageView) fragView.findViewById(R.id.iv_online_green_circle); + learnInstruction = (TextView) fragView.findViewById(R.id.tv_learn_instruction); + learnComplete = (TextView) fragView.findViewById(R.id.tv_learn_complete); + learningLl = (LinearLayout) fragView.findViewById(R.id.ll_learning); + sweepContinueLearnLl = (LinearLayout) fragView.findViewById(ll_sweep_continue_learn); + + mDown = (TextView) fragView.findViewById(R.id.iv_down); + mLeft = (TextView) fragView.findViewById(R.id.iv_left); + mUp = (TextView) fragView.findViewById(R.id.iv_up); + mRight = (TextView) fragView.findViewById(R.id.iv_right); + mOpenClose = (TextView) fragView.findViewById(R.id.tv_sweep_open); + mOk = (TextView) fragView.findViewById(R.id.tv_sweep_ok); + mAlong = (TextView) fragView.findViewById(R.id.tv_along); + mStrong = (TextView) fragView.findViewById(R.id.tv_strong); + + mOpenCloseBg = (TextView) fragView.findViewById(R.id.tv_sweep_open_bg); + mOkBg = (TextView) fragView.findViewById(R.id.tv_sweep_ok_bg); + mAlongBg = (TextView) fragView.findViewById(R.id.tv_along_bg); + mStrongBg = (TextView) fragView.findViewById(R.id.tv_strong_bg); + + mDownMark = (ImageView) fragView.findViewById(R.id.iv_down_bg); + mLeftMark = (ImageView) fragView.findViewById(R.id.iv_left_bg); + mUpMark = (ImageView) fragView.findViewById(R.id.iv_up_bg); + mRightMark = (ImageView) fragView.findViewById(R.id.iv_right_bg); + mOpenCloseMark = (ImageView) fragView.findViewById(R.id.tv_sweep_open_mark); + mOkMark = (ImageView) fragView.findViewById(R.id.tv_sweep_ok_mark); + mAlongMark = (ImageView) fragView.findViewById(R.id.tv_along_mark); + mStrongMark = (ImageView) fragView.findViewById(R.id.tv_strong_mark); + + chartView = (PieChartView) fragView.findViewById(R.id.pieChartView); + chartView.setFanClickAbleData( + new double[]{90, 90, 90, 90}, + new int[]{Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT}, 0, mHandler); + + setPanClick(); + + mTitleView = (TitleView) fragView.findViewById(R.id.title_sweep); + if (TextUtils.isEmpty(devicesBean.getDeviceBrand())) { + sweepName = "扫地机"; + } else { + sweepName = devicesBean.getDeviceBrand(); + } + mTitleView.setHead(sweepName); + mTitleView.clearBackGroud(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + clearAlph(); + clearMark(); + if (isLearn) { + isLearn = false; + //查询学习按键 + queryStudyValue(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除扫地机 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(SWEEP_TAG, ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //重新命名 + Intent intent1 = new Intent(getContext(), SweepListActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("nameTag", "name"); + intent1.putExtra("id", devicesBean.getId()); + intent1.putExtra("deviceType", SWEEP_TAG); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", SWEEP_TAG); + startActivity(intent); + break; + case 4: + //遥控学习 + isLearn = true; + //查询学习按键 + queryStudyValue(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent(); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + + @Override + public void onFunctionText() { + + } + }); + mAlphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.alpha_anim_device); + if (isLearn) { + showLearn(); + } else { + showControl(); + } + //查询学习按键 + queryStudyValue(); + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void clearMark() { + learnComplete.setVisibility(View.GONE); + mOpenCloseMark.setVisibility(View.GONE); + mUpMark.setVisibility(View.GONE); + mDownMark.setVisibility(View.GONE); + mLeftMark.setVisibility(View.GONE); + mRightMark.setVisibility(View.GONE); + mOkMark.setVisibility(View.GONE); + mStrongMark.setVisibility(View.GONE); + mAlongMark.setVisibility(View.GONE); + } + + private void clearAlph() { + mAlongBg.clearAnimation(); + mStrongBg.clearAnimation(); + mOkBg.clearAnimation(); + mRight.clearAnimation(); + mLeft.clearAnimation(); + mDown.clearAnimation(); + mUp.clearAnimation(); + mOpenCloseBg.clearAnimation(); + } + + private void showControl() { + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + // mTitleView.setHeadFuntionTxt(R.string.voice_said); + learningLl.setVisibility(View.GONE); + sweepContinueLearnLl.setVisibility(View.GONE); + controlShowAlph(); + } + + private void controlShowAlph() { + if (!mOpenCloseTag) { + mOpenClose.setAlpha(0.5f); + mOpenClose.setEnabled(false); + } else { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + } + if (!mAlongTag) { + mAlong.setAlpha(0.5f); + mAlong.setEnabled(false); + } else { + mAlong.setAlpha(1.0f); + mAlong.setEnabled(true); + } + if (!mOkTag) { + mOk.setAlpha(0.5f); + mOk.setEnabled(false); + } else { + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + } + if (!mStrongTag) { + mStrong.setAlpha(0.5f); + mStrong.setEnabled(false); + } else { + mStrong.setAlpha(1.0f); + mStrong.setEnabled(true); + } + } + + private void showLearn() { + mTitleView.setHeadFuntionTxt(R.string.save); + mTitleView.setHeadFuntionGone(); + learnComplete.setVisibility(View.GONE); + learningLl.setVisibility(View.VISIBLE); + sweepContinueLearnLl.setVisibility(View.GONE); + setLearnAlph(); + learnShowMark(); + + showLearnInstruction(); + } + + private void showLearnInstruction() { + if (!mOpenCloseTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.Switch); + mOpenCloseBg.startAnimation(mAlphaAnimation); + } else if (!mUpTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("向上"); + mUp.startAnimation(mAlphaAnimation); + } else if (!mDownTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("向下"); + mDown.startAnimation(mAlphaAnimation); + } else if (!mLeftTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("向左"); + mLeft.startAnimation(mAlphaAnimation); + } else if (!mRightTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("向右"); + mRight.startAnimation(mAlphaAnimation); + } else if (!mOkTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("回充"); + mOkBg.startAnimation(mAlphaAnimation); + } else if (!mAlongTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.Edgeways_mode); + mAlongBg.startAnimation(mAlphaAnimation); + } else if (!mStrongTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.Strong_mode); + mStrongBg.startAnimation(mAlphaAnimation); + } else { + learningLl.setVisibility(View.GONE); + learnComplete.setVisibility(View.VISIBLE); + clearAlph(); + } + } + + private void setLearnAlph() { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + mAlong.setAlpha(1.0f); + mAlong.setEnabled(true); + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + mStrong.setAlpha(1.0f); + mStrong.setEnabled(true); + } + + private void learnShowMark() { + if (mOpenCloseTag) { + mOpenCloseMark.setVisibility(View.VISIBLE); + } + if (mAlongTag) { + mAlongMark.setVisibility(View.VISIBLE); + } + if (mOkTag) { + mOkMark.setVisibility(View.VISIBLE); + } + if (mStrongTag) { + mStrongMark.setVisibility(View.VISIBLE); + } + if (mDownTag) { + mDownMark.setVisibility(View.VISIBLE); + } + if (mLeftTag) { + mLeftMark.setVisibility(View.VISIBLE); + } + if (mUpTag) { + mUpMark.setVisibility(View.VISIBLE); + } + if (mRightTag) { + mRightMark.setVisibility(View.VISIBLE); + } + } + + private void queryStudyValue() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", SWEEP_TAG); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETCONTROLKEYS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetControlKeys", "onSuccess()" + respone); + Key5Entity obj = JSON.parseObject(respone, Key5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_STUDY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_STUDY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_STUDY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mOk.setOnClickListener(this); + mStrong.setOnClickListener(this); + mAlong.setOnClickListener(this); + sweepContinueLearnLl.setOnClickListener(this); + } + + private void setPanClick() { + chartView.setOnFanClick(new OnFanItemClickListener() { + @Override + public void onFanClick(FanItem fanItem) { + mId = fanItem.getId(); + Intent intent; + if (isLearn) { + switch (mId) { + case 0: + mDown.setVisibility(View.VISIBLE); + toLearnByNmber(3); + break; + case 1: + mLeft.setVisibility(View.VISIBLE); + toLearnByNmber(4); + break; + case 2: + mUp.setVisibility(View.VISIBLE); + toLearnByNmber(2); + break; + case 3: + mRight.setVisibility(View.VISIBLE); + toLearnByNmber(5); + break; + } + } else { + Log.i("OnTouchListener", "点击---处理" + mId); + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + } + break; + } + } + } + + @Override + public void onFanLongClick(FanItem fanItem) { + mId = fanItem.getId(); + if (isLearn) { + + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理" + mId); + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + longPressSao(SWEEP_DOWN); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + longPressSao(SWEEP_LEFT); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + longPressSao(SWEEP_UP); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + longPressSao(SWEEP_RIGHT); + } + break; + } + } + } + } + + @Override + public void onUp(FanItem fanItem) { + mId = fanItem.getId(); + if (isLearn) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理抬起" + mId); + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + cancleLongPress(SWEEP_DOWN); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + cancleLongPress(SWEEP_LEFT); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + cancleLongPress(SWEEP_UP); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + cancleLongPress(SWEEP_RIGHT); + break; + } + } else { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Log.i("OnTouchListener", "点击---处理抬起" + mId); + switch (mId) { + case 0: + if (mDownTag) { + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_DOWN)); + } else + // sendAirControlOrder(SWEEP_DOWN); + subsetControl("down"); + } + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + if (mLeftTag) { + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_LEFT)); + } else + subsetControl("left"); + } + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + if (mUpTag) { + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_UP)); + } else + subsetControl("up"); + } + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + if (mRightTag) { + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_RIGHT)); + } else + subsetControl("right"); + } + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } + } + } + }); + } + + private void toLearnByNmber(int i) { + Intent intent = new Intent(getContext(), SweepLearnGuideActivity.class); + intent.putExtra("learnGuide", i); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", SWEEP_TAG); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivityForResult(intent, LEARN_RESULT); + } + + private void cancleLongPress(String sendMsg) { + /*NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", userId); + map.put("sendMsg", sendMsg); + util.requestPostByAsyn(ziId, NetWorkUrl.CANCLE_LONGPRESS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancleLongPress", "onSuccess: " + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(CANCLE_LONGPRESS_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(CANCLE_LONGPRESS_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(CANCLE_LONGPRESS_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + private void longPressSao(String sendMsg) { + /*NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); +// map.put("userId", userId); + map.put("code", sendMsg); + map.put("macId", ziId); + util.requestPostByAsynewApi(NetWorkUrl.LONGPRESS_SAO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("longPressTv", "onSuccess: " + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(LONGPRESS_SAO_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(LONGPRESS_SAO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(LONGPRESS_SAO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + @Override + public void onClick(View v) { + Intent intent; + if (isLearn) { + switch (v.getId()) { + case R.id.tv_sweep_open: + toLearnByNmber(1); + break; + case R.id.tv_sweep_ok: + toLearnByNmber(6); + break; + case R.id.tv_along: + toLearnByNmber(7); + break; + case R.id.tv_strong: + toLearnByNmber(8); + break; + } + } else { + switch (v.getId()) { + case R.id.tv_sweep_open: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_OPEN)); + } else + subsetControl("power"); + break; + case R.id.tv_sweep_ok: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_OK)); + } else + subsetControl("charge"); + break; + case R.id.tv_along: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_ALONG)); + } else + subsetControl("edgewise"); + break; + case R.id.tv_strong: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_STRONG)); + } else + subsetControl("strong"); + break; + case ll_sweep_continue_learn: + isLearn = true; + //查询学习按键 + queryStudyValue(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + } + } + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", SWEEP_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case QUERY_STUDY_SUCCESS: + Key5Entity entity = (Key5Entity) msg.obj; + setIsLearned(entity); + if (isLearn) { + showLearn(); + } else { + showControl(); + } + break; + case QUERY_STUDY_FAIL: + + break; + case SEND_CONTROL_ORDER_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity1.getDeviceType().equals(SWEEP_TAG) && !TextUtils.isEmpty(nettyEntity1.getOpenFlag())) { + if (nettyEntity1.getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + ToastUtil.show(getContext(), "扫地机已打开"); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void setIsLearned(Key5Entity entity) { + List entity1Obj = entity.getData(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + switch (entity1Obj.get(i).getName()) { + case "power": + mOpenCloseTag = true; + break; + case "up": + mUpTag = true; + break; + case "down": + mDownTag = true; + break; + case "left": + mLeftTag = true; + break; + case "right": + mRightTag = true; + break; + case "charge": + mOkTag = true; + break; + case "strong": + mStrongTag = true; + break; + case "edgewise": + mAlongTag = true; + break; + } + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(devicesBean.getId(), SWEEP_TAG); + if (isLearn) { + queryStudyValue(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case LEARN_RESULT: + if (data != null && data.getExtras().get("learnGuide") != null) { + int learnGuide = (int) data.getExtras().get("learnGuide"); + switch (learnGuide) { + case 1: + mOpenCloseMark.setVisibility(View.VISIBLE); + break; + case 2: + mUpMark.setVisibility(View.VISIBLE); + break; + case 3: + mDownMark.setVisibility(View.VISIBLE); + break; + case 4: + mLeftMark.setVisibility(View.VISIBLE); + break; + case 5: + mRightMark.setVisibility(View.VISIBLE); + break; + case 6: + mOkMark.setVisibility(View.VISIBLE); + break; + case 7: + mAlongMark.setVisibility(View.VISIBLE); + break; + case 8: + mStrongMark.setVisibility(View.VISIBLE); + break; + } + } + break; + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("deviceName") != null) { + sweepName = data.getExtras().get("deviceName").toString().trim(); + mTitleView.setHead(sweepName); + } + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(SweepA1Fragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + SweepA1Fragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/SweepA2Fragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/SweepA2Fragment.java new file mode 100644 index 0000000..4528fba --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/SweepA2Fragment.java @@ -0,0 +1,1413 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.AlphaAnimation; +import android.view.animation.AnimationUtils; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.database.entity.entitya2.KeyEntity; +import com.yonsz.z1.database.entity.entitya2.LearnWhatEvent; +import com.yonsz.z1.database.entity.entitya2.LoadEvent; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.device.tv.FanItem; +import com.yonsz.z1.device.tv.OnFanItemClickListener; +import com.yonsz.z1.device.tv.PieChartView; +import com.yonsz.z1.devicea2.sweepa2.SweepLearnGuideA2Activity; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.customview.SaveCodeDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.mine.aboutversion.feature.Callback3; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.device.tv.PieChartView.isLongClickModule1; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_FAIL; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS_SWEEP; +import static com.yonsz.z1.net.Constans.FAN_LEARN_ING; +import static com.yonsz.z1.net.Constans.FAN_LEARN_WHAT; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.SWEEP_ALONG; +import static com.yonsz.z1.net.Constans.SWEEP_DOWN; +import static com.yonsz.z1.net.Constans.SWEEP_LEFT; +import static com.yonsz.z1.net.Constans.SWEEP_OK; +import static com.yonsz.z1.net.Constans.SWEEP_OPEN; +import static com.yonsz.z1.net.Constans.SWEEP_RIGHT; +import static com.yonsz.z1.net.Constans.SWEEP_STRONG; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWEEP_UP; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.isLocalControl; +import static com.yonsz.z1.net.NetWorkUrl.CANCEL_DOWNLOAD; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; +import static com.yonsz.z1.net.NetWorkUrl.SELECT_CONNDEVICE_PUSHKEY; +import static com.yonsz.z1.net.NetWorkUrl.YKY_DOWNLOAD; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class SweepA2Fragment extends BaseFragment implements View.OnClickListener { + public int mId; + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + private TitleView mTitleView; + private PieChartView chartView; + private TextView mOpenClose, mAlong, mOk, mStrong; + private TextView mDown, mLeft, mUp, mRight; + private LinearLayout learningLl, fanContinueLearnLl, fanTopLl; + private AlphaAnimation mAlphaAnimation; + private String userId; + private String ziId; + private TextView mOpenCloseBg, mAlongBg, mOkBg, mStrongBg; + private boolean mOpenCloseTag, mOkTag, mDownTag, mLeftTag, mUpTag, mRightTag, mStrongTag, mAlongTag; + private ImageView mOpenCloseMark, mAlongMark, mOkMark, mStrongMark, mDownMark, mLeftMark, mUpMark, mRightMark; + private String sweepName; + private boolean isLearn = false; + private HorizontalProgressBarWithNumber mProgressBar; + private RelativeLayout progressRl; + private TextView progressTv; + private boolean isLoading = false, isShow = true; + private TextView loadBackTv, tv_cancel_load; + private LoadingDialog mLoadingDialog; + private String cancelFlag; + private ImageView localControlIv, greenCircle; + private TextView tv_tv_ok; + private TextView learnInstruction; + + private boolean isOpenLearn = false, isAlongLearn = false, isOkLearn = false, isUpLearn = false, isDownlearn = false, isLeftLearn = false, isRightLearn = false, isStrongLearn = false; + private RelativeLayout rl_learn_guide; + private boolean isShowLearnGuide = false; + private boolean isInit = false; + + public static SweepA2Fragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + SweepA2Fragment fragment = new SweepA2Fragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LoadEvent event) { + String msg = event.getMsg(); + NettyEntity nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (nettyEntity.getDeviceType().equals(SWEEP_TAG)) { + Log.e("nettyUtilSweep", msg); + Message message = new Message(); + message.what = FAN_LEARN_ING; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + public void onEventMainThread(LearnWhatEvent event) { + /*String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = FAN_LEARN_WHAT; + message.obj = msg; + mHandler.sendMessage(message);*/ + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_sweep_a2, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + showLoadDiaolog(getUserVisibleHint()); + } + + private void showLoadDiaolog(boolean isVisibleToUser) { + if (isVisibleToUser && isInit) { + cancelFlag = devicesBean.getCancelFlag() + ""; + if (cancelFlag.equals("1")) { + EventBus.getDefault().post( + new CanloopEvent(true)); + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + getActivity().finish(); + break; + case 1: + reloadInfrared(SWEEP_TAG); + break; + } + } + }); + dialog.setContent(R.string.Data_not_downloaded_reloaded); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(devicesBean.getId(), SWEEP_TAG); + if (isLearn) { + // learnShowMark(); + selectConnDevicePushkey(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + isInit = true; + sweepName = devicesBean.getDeviceBrand(); + ziId = devicesBean.getZiId(); + if (getArguments().get("loadStatus").toString().equals("1") && getUserVisibleHint() && getArguments().get("loadErrorType").toString().equals(SWEEP_TAG)) { + isLoading = true; + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + } else { + isLoading = false; + } + rl_learn_guide = (RelativeLayout) fragView.findViewById(R.id.rl_learn_guide); + tv_tv_ok = (TextView) fragView.findViewById(R.id.tv_tv_ok); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + greenCircle = (ImageView) fragView.findViewById(R.id.iv_online_green_circle); + learnInstruction = (TextView) fragView.findViewById(R.id.tv_learn_instruction); + learningLl = (LinearLayout) fragView.findViewById(R.id.ll_learning); + loadBackTv = (TextView) fragView.findViewById(R.id.tv_load_back); + tv_cancel_load = (TextView) fragView.findViewById(R.id.tv_cancel_load); + mDown = (TextView) fragView.findViewById(R.id.iv_down); + mLeft = (TextView) fragView.findViewById(R.id.iv_left); + mUp = (TextView) fragView.findViewById(R.id.iv_up); + mRight = (TextView) fragView.findViewById(R.id.iv_right); + mOpenClose = (TextView) fragView.findViewById(R.id.tv_sweep_open); + mOk = (TextView) fragView.findViewById(R.id.tv_sweep_ok); + mAlong = (TextView) fragView.findViewById(R.id.tv_along); + mStrong = (TextView) fragView.findViewById(R.id.tv_strong); + + mOpenCloseBg = (TextView) fragView.findViewById(R.id.tv_sweep_open_bg); + mOkBg = (TextView) fragView.findViewById(R.id.tv_sweep_ok_bg); + mAlongBg = (TextView) fragView.findViewById(R.id.tv_along_bg); + mStrongBg = (TextView) fragView.findViewById(R.id.tv_strong_bg); + + mDownMark = (ImageView) fragView.findViewById(R.id.iv_down_bg); + mLeftMark = (ImageView) fragView.findViewById(R.id.iv_left_bg); + mUpMark = (ImageView) fragView.findViewById(R.id.iv_up_bg); + mRightMark = (ImageView) fragView.findViewById(R.id.iv_right_bg); + mOpenCloseMark = (ImageView) fragView.findViewById(R.id.tv_sweep_open_mark); + mOkMark = (ImageView) fragView.findViewById(R.id.tv_sweep_ok_mark); + mAlongMark = (ImageView) fragView.findViewById(R.id.tv_along_mark); + mStrongMark = (ImageView) fragView.findViewById(R.id.tv_strong_mark); + + chartView = (PieChartView) fragView.findViewById(R.id.pieChartView); + chartView.setFanClickAbleData( + new double[]{90, 90, 90, 90}, + new int[]{Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT}, 0, mHandler); + + setPanClick(); + + progressRl = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + progressTv = (TextView) fragView.findViewById(R.id.tv_progress_top); + mProgressBar = (HorizontalProgressBarWithNumber) fragView.findViewById(R.id.pg_horizontal_fan); + // mHandler.sendEmptyMessage(MSG_PROGRESS_UPDATE); + mTitleView = (TitleView) fragView.findViewById(R.id.title_sweep_a2); + mTitleView.clearBackGroud(); + if (!sweepName.isEmpty()) { + mTitleView.setHead(sweepName); + } else { + mTitleView.setHead("扫地机"); + } + mAlphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.alpha_anim_device); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isLoading) { + + } else { + getActivity().finish(); + } + } + + @Override + public void onFunction() { + if (isLoading) { + + } else { + if (isLearn) { + isLearn = false; + //查询学习按键 + selectConnDevicePushkey(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(SWEEP_TAG, ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //重新命名 + showSavecode(); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", SWEEP_TAG); + startActivity(intent); + break; + case 4: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //遥控学习 + isLearn = true; + //查询学习按键 + selectConnDevicePushkey(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent("保存到码库"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + } + + @Override + public void onFunctionText() { + + } + }); + + if (isLoading) { + progressRl.setVisibility(View.VISIBLE); + } else { + progressRl.setVisibility(View.GONE); + selectConnDevicePushkey(); + } + + showLoadDiaolog(getUserVisibleHint()); + } + + private void showSavecode() { + SaveCodeDialog dialog2 = new SaveCodeDialog(getContext(), new Callback3() { + + @Override + public void callback(int position, String positionName, String model) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positionName.trim())) { + ToastUtil.show(getContext(), "请输入码库名称"); + return; + } + infraredHistoryAdd(positionName, model); + break; + } + } + }); + dialog2.setOldName(devicesBean.getDeviceBrand()); + dialog2.setCancleBtn("不用了"); + dialog2.setSureBtn(R.string.sure); + dialog2.setCancelable(false); + dialog2.show(); + } + + private void reloadInfrared(String deviceType) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("macId", ziId); + map.put("deviceType", deviceType); + map.put("rid", devicesBean.getRid()); + netWorkUtil.requestPostByAsynewApi(YKY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("reloadInfrared", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty message = JSON.parseObject(respone, SimpleEntty.class); + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_SUCCESS_SWEEP); + msg.obj = message; + mHandler.sendMessage(msg); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mOk.setOnClickListener(this); + mStrong.setOnClickListener(this); + mAlong.setOnClickListener(this); + progressRl.setOnClickListener(this); + loadBackTv.setOnClickListener(this); + tv_cancel_load.setOnClickListener(this); + tv_tv_ok.setOnClickListener(this); + rl_learn_guide.setOnClickListener(this); + } + + private void setPanClick() { + chartView.setOnFanClick(new OnFanItemClickListener() { + @Override + public void onFanClick(FanItem fanItem) { + mId = fanItem.getId(); + Intent intent; + if (isLearn) { + switch (mId) { + case 0: + mDown.setVisibility(View.VISIBLE); + toLearnByNmber(3); + break; + case 1: + mLeft.setVisibility(View.VISIBLE); + toLearnByNmber(4); + break; + case 2: + mUp.setVisibility(View.VISIBLE); + toLearnByNmber(2); + break; + case 3: + mRight.setVisibility(View.VISIBLE); + toLearnByNmber(5); + break; + } + } else { + if (isLongClickModule1) { + + } else { + Log.i("OnTouchListener", "点击---处理" + mId); + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + } + break; + } + } + } + } + + @Override + public void onFanLongClick(FanItem fanItem) { + mId = fanItem.getId(); + if (isLearn) { + + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理" + mId); + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + } + break; + } + } + } + } + + @Override + public void onUp(FanItem fanItem) { + mId = fanItem.getId(); + if (isLearn) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理抬起" + mId); + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + break; + } + } else { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Log.i("OnTouchListener", "点击---处理抬起" + mId); + switch (mId) { + case 0: + if (mDownTag) { + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_DOWN)); + } else + // controllerDevice(SWEEP_DOWN); + subsetControl("down"); + } + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + if (mLeftTag) { + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_LEFT)); + } else + // controllerDevice(SWEEP_LEFT); + subsetControl("left"); + } + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + if (mUpTag) { + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_UP)); + } else + // controllerDevice(SWEEP_UP); + subsetControl("up"); + } + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + if (mRightTag) { + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_RIGHT)); + } else + // controllerDevice(SWEEP_RIGHT); + subsetControl("right"); + } + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } + } + } + }); + } + + private void toLearnByNmber(int i) { + Intent intent = new Intent(getContext(), SweepLearnGuideA2Activity.class); + intent.putExtra("learnGuide", i); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", SWEEP_TAG); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivityForResult(intent, LEARN_RESULT); + } + + @Override + public void onClick(View v) { + Intent intent; + if (isLearn) { + switch (v.getId()) { + case R.id.tv_sweep_open: + toLearnByNmber(1); + break; + case R.id.tv_sweep_ok: + toLearnByNmber(6); + break; + case R.id.tv_along: + toLearnByNmber(7); + break; + case R.id.tv_strong: + toLearnByNmber(8); + break; + case R.id.tv_load_back: + SharedpreferencesUtil.save(ziId + SWEEP_TAG, true); + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + case R.id.rl_progress_top: + break; + case R.id.tv_tv_ok: + break; + } + } else { + switch (v.getId()) { + case R.id.tv_sweep_open: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_OPEN)); + } else + // controllerDevice(SWEEP_OPEN); + subsetControl("power"); + break; + case R.id.tv_sweep_ok: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_OK)); + } else + // controllerDevice(SWEEP_OK); + subsetControl("charge"); + break; + case R.id.tv_strong: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_STRONG)); + } else + // controllerDevice(SWEEP_STRONG); + subsetControl("strong"); + break; + case R.id.tv_along: + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(SWEEP_ALONG)); + } else + // controllerDevice(SWEEP_ALONG); + subsetControl("edgewise"); + break; + case R.id.tv_load_back: + SharedpreferencesUtil.save(ziId + SWEEP_TAG, true); + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + case R.id.rl_progress_top: + break; + case R.id.tv_cancel_load: + cancelDownload(); + break; + case R.id.tv_tv_ok: + break; + case R.id.rl_learn_guide: + rl_learn_guide.setVisibility(View.GONE); + isShowLearnGuide = false; + SharedpreferencesUtil.save(ziId + SWEEP_TAG, false); + break; + } + } + } + + private void cancelDownload() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", SWEEP_TAG); + netWorkUtil.requestPostByAsynewApi(CANCEL_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancelDownload", "ShareDeviceActivity onSuccess()" + respone); + getActivity().finish(); + } + + @Override + public void onFail(String message) { + } + }); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case FAN_LEARN_ING: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + float countNum = Integer.parseInt(nettyEntity.getCountNum()); + float loadNum = Integer.parseInt(nettyEntity.getLoadNum()); + progressRl.setVisibility(View.VISIBLE); + mProgressBar.setProgress((int) (loadNum / countNum * 100)); + if (loadNum / countNum == 1) { + isLoading = false; + progressTv.setText(R.string.load_complete); + isShowLearnGuide = true; + progressRl.setVisibility(View.GONE); + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + + } else { + initLoadDialog(); + } + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + selectConnDevicePushkey(); + } + }, 2000); + devicesBean.setCancelFlag(0); + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + if (isShow) { + isShow = false; + showSavecode(); + } + } + break; + case SELECT_CONNDEVICE_PUSHKEY_SUCCESS: + KeyEntity entity1 = (KeyEntity) msg.obj; + List entity1Obj = entity1.getObj(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + Log.i("getPushKey", "FanA2Activity callBackUiThread()" + entity1Obj.get(i).getPushKey()); + switch (entity1Obj.get(i).getPushKey()) { + case "01": + mOkTag = true; + break; + case "02": + mUpTag = true; + break; + case "03": + mDownTag = true; + break; + case "04": + mLeftTag = true; + break; + case "05": + mRightTag = true; + break; + case "06": + mOpenCloseTag = true; + break; + case "07": + mAlongTag = true; + break; + case "08": + mStrongTag = true; + break; + } + } + } + if (isLearn) { + showLearn(); + } else { + showControl(); + } + if (mLoadingDialog != null) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + if (isShowLearnGuide || SharedpreferencesUtil.get(ziId + SWEEP_TAG)) { + rl_learn_guide.setVisibility(View.VISIBLE); + } else { + rl_learn_guide.setVisibility(View.GONE); + } + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case DELETE_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS_SWEEP: + progressRl.setVisibility(View.VISIBLE); + break; + case FAN_LEARN_WHAT: + String obj = (String) msg.obj; + switch (obj) { + case "1": + isOpenLearn = true; + break; + case "2": + isUpLearn = true; + break; + case "3": + isDownlearn = true; + break; + case "4": + isLeftLearn = true; + break; + case "5": + isRightLearn = true; + break; + case "6": + isOkLearn = true; + break; + case "7": + isAlongLearn = true; + break; + case "8": + isStrongLearn = true; + break; + } + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity1.getDeviceType().equals(SWEEP_TAG) && !TextUtils.isEmpty(nettyEntity1.getOpenFlag())) { + if (nettyEntity1.getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + // ToastUtil.show(getContext(), "扫地机已打开"); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + break; + case UPDATEBLIND_ENTITYNAME_SUCCESS: + ToastUtil.show(getContext(), "保存成功"); + break; + case UPDATEBLIND_ENTITYNAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void showLearn() { + mTitleView.setHeadFuntionTxt(R.string.save); + mTitleView.setHeadFuntionGone(); + learningLl.setVisibility(View.VISIBLE); + + // learnShowMark(); + setLearnAlph(); + showLearnInstruction(); + } + + private void showLearnInstruction() { + if (!mOpenCloseTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.Switch); + mOpenCloseBg.startAnimation(mAlphaAnimation); + } else if (!mUpTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("向上"); + mUp.startAnimation(mAlphaAnimation); + } else if (!mDownTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("向下"); + mDown.startAnimation(mAlphaAnimation); + } else if (!mLeftTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("向左"); + mLeft.startAnimation(mAlphaAnimation); + } else if (!mRightTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("向右"); + mRight.startAnimation(mAlphaAnimation); + } else if (!mOkTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText("回充"); + mOkBg.startAnimation(mAlphaAnimation); + } else if (!mAlongTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.Edgeways_mode); + mAlongBg.startAnimation(mAlphaAnimation); + } else if (!mStrongTag) { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.Strong_mode); + mStrongBg.startAnimation(mAlphaAnimation); + } else { + clearAlph(); + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(R.string.Switch); + mOpenCloseBg.startAnimation(mAlphaAnimation); + } + } + + private void clearAlph() { + mRight.clearAnimation(); + mLeft.clearAnimation(); + mDown.clearAnimation(); + mUp.clearAnimation(); + mOkBg.clearAnimation(); + mAlongBg.clearAnimation(); + mOpenCloseBg.clearAnimation(); + mStrongBg.clearAnimation(); + } + + private void setLearnAlph() { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + mAlong.setAlpha(1.0f); + mAlong.setEnabled(true); + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + mStrong.setAlpha(1.0f); + mStrong.setEnabled(true); + } + + private void learnShowMark() { + if (isOpenLearn) { + mOpenCloseMark.setVisibility(View.VISIBLE); + } + if (isUpLearn) { + mUpMark.setVisibility(View.VISIBLE); + } + if (isDownlearn) { + mDownMark.setVisibility(View.VISIBLE); + } + if (isLeftLearn) { + mLeftMark.setVisibility(View.VISIBLE); + } + if (isRightLearn) { + mRightMark.setVisibility(View.VISIBLE); + } + if (isOkLearn) { + mOkMark.setVisibility(View.VISIBLE); + } + if (isAlongLearn) { + mAlongMark.setVisibility(View.VISIBLE); + } + if (isStrongLearn) { + mStrongMark.setVisibility(View.VISIBLE); + } + } + + private void showControl() { + clearAlph(); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + learningLl.setVisibility(View.GONE); + + // clearMark(); + + if (!mOpenCloseTag) { + mOpenClose.setAlpha(0.5f); + mOpenClose.setEnabled(false); + } else { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + } + if (!mOkTag) { + mOk.setAlpha(0.5f); + mOk.setEnabled(false); + } else { + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + } + if (!mAlongTag) { + mAlong.setAlpha(0.5f); + mAlong.setEnabled(false); + } else { + mAlong.setAlpha(1.0f); + mAlong.setEnabled(true); + } + if (!mStrongTag) { + mStrong.setAlpha(0.5f); + mStrong.setEnabled(false); + } else { + mStrong.setAlpha(1.0f); + mStrong.setEnabled(true); + } + } + + private void clearMark() { + mOpenCloseMark.setVisibility(View.GONE); + mUpMark.setVisibility(View.GONE); + mDownMark.setVisibility(View.GONE); + mLeftMark.setVisibility(View.GONE); + mRightMark.setVisibility(View.GONE); + mOkMark.setVisibility(View.GONE); + mStrongMark.setVisibility(View.GONE); + mAlongMark.setVisibility(View.GONE); + } + + private void selectConnDevicePushkey() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceType", SWEEP_TAG); + map.put("ziId", ziId); + netWorkUtil.requestPostByAsynew(SELECT_CONNDEVICE_PUSHKEY, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("selectConnDevicePushkey", "ShareDeviceActivity onSuccess()" + respone); + KeyEntity obj = JSON.parseObject(respone, KeyEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", SWEEP_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void infraredHistoryAdd(String name, String model) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + /*map.put("brand", devicesBean.getDeviceBrand()); + map.put("model", model);*/ + map.put("name", name); + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.INFRARED_HISTORY_ADD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("infraredHistoryModify", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_SUCCESS); + msg.obj = name; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(SweepA2Fragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + SweepA2Fragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/SwitchFragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/SwitchFragment.java new file mode 100644 index 0000000..fb1365b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/SwitchFragment.java @@ -0,0 +1,1108 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.LightEntity; +import com.yonsz.z1.database.entity.LightListEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.VoiceControllEntity; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.BlindTestEntity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.customview.DviceOffLineDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.switcher.SwitcherModifyActivity; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.view.PositionPopupWindow; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; +import com.yonsz.z1.wifi.switcher.ElectricQuantityActivity; +import com.yonsz.z1.wifi.switcher.WifiSwitcherDetailActivity; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.DELBLIND_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELBLIND_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_FAIL; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDVOICE_BLINDMSG_FAIL; +import static com.yonsz.z1.net.Constans.SENDVOICE_BLINDMSG_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_PLUG_TYPE_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_PLUG_TYPE_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class SwitchFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition, aiNameAndState, aiModelName; + private CheckBox childVoiceCb; + private CheckBox childPicture; + private TextView firstControl, thirdControl, timeControl, electricQuantityTv; + private String ziId = ""; + private String switcherId; + private String addressName; + private String addressId; + private String voiceFlag; + private String plugType; + private String largeClass; + private TextView tv_switcher_time; + private TextView tv_next_week, tv_state; + private ImageView localControlIv; + private FrameLayout fl_electric_quantity; + + public static SwitchFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + SwitchFragment fragment = new SwitchFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_switcher4, null); + initView(fragView); + return fragView; + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + if (null != devicesBean.getZiId()) { + ziId = devicesBean.getZiId(); + } + switcherId = devicesBean.getId(); + addressId = devicesBean.getAddressId(); + addressName = AddressNameUtil.getAddressName(addressId); + voiceFlag = devicesBean.getVoiceFlag(); + plugType = devicesBean.getPlugType(); + largeClass = devicesBean.getLargeClass(); + tv_switcher_time = (TextView) fragView.findViewById(R.id.tv_switcher_time); + tv_next_week = (TextView) fragView.findViewById(R.id.tv_next_week); + tv_state = (TextView) fragView.findViewById(R.id.tv_state); + childPosition = (TextView) fragView.findViewById(R.id.tv_child_position); + aiNameAndState = (TextView) fragView.findViewById(R.id.tv_ai_state); + aiModelName = (TextView) fragView.findViewById(R.id.tv_ai_modelname); + childVoiceCb = (CheckBox) fragView.findViewById(R.id.tv_child_voice); + childPicture = (CheckBox) fragView.findViewById(R.id.iv_child_picture); + firstControl = (TextView) fragView.findViewById(R.id.tv_first_control); + thirdControl = (TextView) fragView.findViewById(R.id.tv_second_control); + timeControl = (TextView) fragView.findViewById(R.id.tv_time_control); + electricQuantityTv = (TextView) fragView.findViewById(R.id.tv_electric_quantity); + fl_electric_quantity = (FrameLayout) fragView.findViewById(R.id.fl_electric_quantity); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + childVoiceCb.setOnClickListener(this); + firstControl.setOnClickListener(this); + thirdControl.setOnClickListener(this); + timeControl.setOnClickListener(this); + electricQuantityTv.setOnClickListener(this); + childPicture.setOnClickListener(this); + mTitleView = (TitleView) fragView.findViewById(R.id.title_light4); + if (TextUtils.isEmpty(devicesBean.getDeviceName())) { + mTitleView.setHead(R.string.chazuo); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + } + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + setSwitchTypePic(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + if (devicesBean.isElectricquantity()) { + Intent intent = new Intent(getContext(), WifiSwitcherDetailActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceName", devicesBean.getDeviceName()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("deviceType", SWITCH_TAG); + intent.putExtra("deviceId", switcherId); + intent.putExtra("addressId", devicesBean.getAddressId()); + startActivityForResult(intent, MODIFY_DEVICE_NAME); + } else { + showFunctionDialog(); + } + } + + @Override + public void onFunctionText() { + + } + }); + childPosition.setText(addressName); + aiNameAndState.setText(AddressNameUtil.getAiNameAndState(ziId)); + aiModelName.setText(devicesBean.getModelName()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + + if (devicesBean.isElectricquantity()) { + fl_electric_quantity.setVisibility(View.VISIBLE); + childVoiceCb.setVisibility(View.GONE); + if (!devicesBean.isOnline() && getUserVisibleHint()) { + showOfflineDialog(); + } + } else { + childVoiceCb.setVisibility(View.VISIBLE); + fl_electric_quantity.setVisibility(View.GONE); + } + if (null != devicesBean.getLastInfo() && null != devicesBean.getLastInfo().getOpenFlag()) { + if (devicesBean.getLastInfo().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_state.setText(devicesBean.getDeviceName() + "已打开"); + } else { + childPicture.setChecked(false); + tv_state.setText(devicesBean.getDeviceName() + "已关闭"); + } + } + } + + private void showFunctionDialog() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除插座 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //修改窗帘位置信息 + // showPositionBottom(switcherId, "0", addressId); + Intent intent1 = new Intent(getActivity(), ModifyRoomActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("deviceType", SWITCH_TAG); + intent1.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent1.putExtra("addressId", addressId); + intent1.putExtra("deviceId", switcherId); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", SWITCH_TAG); + intent.putExtra("plugType", plugType); + startActivity(intent); + break; + case 4: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改插座连入电器 + // showTypeBottom(switcherId, plugType); + Intent intent2 = new Intent(getContext(), SwitcherModifyActivity.class); + intent2.putExtra("plugType", plugType); + intent2.putExtra("switcherId", switcherId); + intent2.putExtra("deviceAddress", addressId); + intent2.putExtra("largeClass", devicesBean.getDeviceModel()); + intent2.putExtra("ziId", ziId); + startActivityForResult(intent2, MODIFY_DEVICE_NAME); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent("修改设备位置"); + dialog2.setLearnTxt("修改设备类型"); + dialog2.setSureBtnTxt(R.string.Delete_socket); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + private void showOfflineDialog() { + DviceOffLineDialog dialog = new DviceOffLineDialog(getActivity(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: //cancle + + break; + case 1: //sure + + break; + } + } + }); + dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); + if (!dialog.isShowing()) { + dialog.show(); + } + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setSwitchTypePic() { + if (AppIdUtil.isWork()) { +// mTitleView.setHead(R.string.chazuo); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_chazuo)); + tv_state.setVisibility(View.VISIBLE); + } else if (AppIdUtil.isZhiKong()) { + tv_state.setVisibility(View.VISIBLE); + switch (plugType) { + case "0"://插座 +// mTitleView.setHead(R.string.chazuo); + switch (devicesBean.getDeviceModel()) { + case "0": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_plug_t1)); + break; + case "1": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_wallsocket_t2)); + break; + case "2": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_plug_t4)); + break; + case "4": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_wifi_socket)); + break; + default: + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_chazuo)); + break; + } + break; + case "1"://台灯 +// mTitleView.setHead(R.string.tai_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_desklamp)); + break; + case "2"://热水器(厨电) +// mTitleView.setHead(R.string.chu_dian); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_kitchenpower)); + break; + case "3"://墙壁插座 +// mTitleView.setHead(R.string.bi_cha); + // childPicture.setBackground(getResources().getDrawable(R.drawable.icon_wallsocket_open_close)); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_wallsocket_t2)); + break; + case "4"://热水壶 + mTitleView.setHead(R.string.reshui_hu); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_kettle)); + break; + case "5"://取暖器 +// mTitleView.setHead(R.string.qunuan_qi); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_heater)); + break; + case "6"://电蚊香 +// mTitleView.setHead(R.string.dianwen_xiang); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_dwx)); + break; + case "7"://紫外消毒灯 +// mTitleView.setHead("紫外消毒灯"); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_sterilizing_lamp)); + break; + default: + if (TextUtils.isEmpty(devicesBean.getDeviceName())) { + mTitleView.setHead(R.string.chazuo); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + } + switch (devicesBean.getDeviceModel()) { + case "0": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_plug_t1)); + break; + case "1": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_wallsocket_t2)); + break; + case "2": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_plug_t4)); + break; + case "4": + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_wifi_socket)); + break; + default: + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_chazuo)); + break; + } + break; + } + } else { + switch (plugType) { + case "0"://插座 +// mTitleView.setHead(R.string.chazuo); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_switch_open_close)); + break; + case "1"://台灯 +// mTitleView.setHead(R.string.tai_deng); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_desklamp_open_close)); + break; + case "2"://热水器(厨电) +// mTitleView.setHead(R.string.chu_dian); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_kitchenpower_open_close)); + break; + case "3"://墙壁插座 +// mTitleView.setHead(R.string.bi_cha); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_switch_open_close)); + break; + case "4"://热水壶 +// mTitleView.setHead(R.string.reshui_hu); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_kettle_open_close)); + break; + case "5"://取暖器 +// mTitleView.setHead(R.string.qunuan_qi); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_heater_open_close)); + break; + case "6"://电蚊香 +// mTitleView.setHead(R.string.dianwen_xiang); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_dwx_open_close)); + break; + case "7"://紫外消毒灯 + mTitleView.setHead("紫外消毒灯"); + childPicture.setBackground(getResources().getDrawable(R.drawable.icon_sterilizing_open_close)); + break; + default: + if (TextUtils.isEmpty(devicesBean.getDeviceName())) { + mTitleView.setHead(R.string.chazuo); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + } + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_switch_open_close)); + break; + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(switcherId, SWITCH_TAG, devicesBean.getDeviceModel()); + queryNextTimer(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType, String deviceModel) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(MODIFY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetDelete() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", switcherId); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", SWITCH_TAG); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELBLIND_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELBLIND_ENTITY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELBLIND_ENTITY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECTBLIND_BYZI_SUCCESS: + LightListEntity obj = (LightListEntity) msg.obj; + break; + case SELECTBLIND_BYZI_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + getActivity().finish(); + break; + case DELBLIND_ENTITY_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + getActivity().finish(); + break; + case DELBLIND_ENTITY_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BlindTestEntity blindTestEntity = (BlindTestEntity) msg.obj; + addressId = blindTestEntity.getObj().getAddressId(); + childPosition.setText(blindTestEntity.getObj().getAddressName().toString()); + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + case ALLOW_VOICE_CONTROLL_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + int obj1 = Integer.parseInt((String) msg.obj); + if (obj1 == 0) { + voiceFlag = "0"; + ToastUtil.show(getContext(), "关闭语音成功"); + childVoiceCb.setChecked(false); + } else { + voiceFlag = "1"; + ToastUtil.show(getContext(), "开启语音成功"); + childVoiceCb.setChecked(true); + } + break; + case SENDVOICE_BLINDMSG_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + VoiceControllEntity voiceControllEntity = (VoiceControllEntity) msg.obj; + voiceFlag = voiceControllEntity.getObj().getVoiceFlag(); + if (voiceFlag.equals("1")) { + ToastUtil.show(getContext(), "开启语音成功"); + childVoiceCb.setChecked(true); + } else { + ToastUtil.show(getContext(), "关闭语音成功"); + childVoiceCb.setChecked(false); + } + break; + case STUDY_ANDCONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_PLUG_TYPE_SUCCESS: + LightEntity lightEntity1 = (LightEntity) msg.obj; + plugType = lightEntity1.getObj().getPlugType(); + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + setSwitchTypePic(); + ToastUtil.show(getContext(), "修改成功"); + break; + case UPDATE_PLUG_TYPE_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case QUERY_NEXT_TIMER_SUCCESS: + Z1TimeEntity entity12 = (Z1TimeEntity) msg.obj; + if (entity12.getData() != null && !TextUtils.isEmpty(entity12.getData().getMin())) { + String cmdType = entity12.getData().getCmdType(); + int restMin = Integer.parseInt(entity12.getData().getMin()); + if (restMin < 60) { + if (cmdType.equals("1")) { + tv_switcher_time.setText(restMin + "分钟后开启"); + } else { + tv_switcher_time.setText(restMin + "分钟后关闭"); + } + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + if (cmdType.equals("1")) { + tv_switcher_time.setText(hour + "小时后开启"); + } else { + tv_switcher_time.setText(hour + "小时后关闭"); + } + } else { + if (cmdType.equals("1")) { + tv_switcher_time.setText(hour + "小时" + minite + "分钟后开启"); + } else { + tv_switcher_time.setText(hour + "小时" + minite + "分钟后关闭"); + } + } + } + tv_next_week.setText(""); + } else if (entity12.getData() != null) { + switch (entity12.getData().getWeek().toString()) { + case "1": + tv_next_week.setText(R.string.Sunday); + break; + case "2": + tv_next_week.setText(R.string.Monday); + break; + case "3": + tv_next_week.setText(R.string.Tuesday); + break; + case "4": + tv_next_week.setText(R.string.Wednesday); + break; + case "5": + tv_next_week.setText(R.string.Thursday); + break; + case "6": + tv_next_week.setText(R.string.Friday); + break; + case "7": + tv_next_week.setText(R.string.Saturday); + break; + } + if (entity12.getData().getCmdType().toString().equals("1")) { + tv_switcher_time.setText(" " + entity12.getData().getTime().toString() + getString(R.string.open)); + } else { + tv_switcher_time.setText(" " + entity12.getData().getTime().toString() + getString(R.string.close)); + } + } else { + tv_switcher_time.setText(""); + tv_next_week.setText(""); + } + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (null != nettyEntity.getContext() && !nettyEntity.getContext().getDeviceType().isEmpty()) { + if (!nettyEntity.getContext().getDeviceId().equals(switcherId)) { + return; + } + if (null != nettyEntity.getContext().getDeviceType() && nettyEntity.getContext().getDeviceType().equals(SWITCH_TAG) && !TextUtils.isEmpty(nettyEntity.getContext().getLastInfo().getOpenFlag())) { + if (nettyEntity.getContext().getLastInfo().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_state.setText(devicesBean.getDeviceName() + "已打开"); + } else { + childPicture.setChecked(false); + tv_state.setText(devicesBean.getDeviceName() + "已关闭"); + } + } + } else { + if (!nettyEntity.getDeviceType().isEmpty()) { + if (!nettyEntity.getDeviceIds().equals(switcherId)) { + return; + } + if (null != nettyEntity.getDeviceType() && nettyEntity.getDeviceType().equals(SWITCH_TAG) && !TextUtils.isEmpty(nettyEntity.getOpenFlag())) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_state.setText(devicesBean.getDeviceName() + "已打开"); + } else { + childPicture.setChecked(false); + tv_state.setText(devicesBean.getDeviceName() + "已关闭"); + } + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_state.setText(devicesBean.getDeviceName() + "已打开"); + } else { + childPicture.setChecked(false); + tv_state.setText(devicesBean.getDeviceName() + "已关闭"); + } + break; + case MODIFY_NAME_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case MODIFY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + ShakeUtil.setShake(getContext()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (voiceFlag.equals("1")) { + // allowVoiceControll(0, "id"); + subseSetVoice("0"); + } else { + // allowVoiceControll(1, "id"); + subseSetVoice("1"); + } + break; + } + } + }); + if (!voiceFlag.equals("1")) { + dialog.setContent("开启语音控制?"); + } else { + dialog.setContent("关闭语音控制?"); + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_first_control: + ShakeUtil.setShake(getContext()); + //打开插座 + subsetControl("power"); + /*if (devicesBean.getControlKeys().size() != 0) { + ExecSendUtil.getInstance().execSend(getContext(), devicesBean.getControlKeys().get(0).getCmds().get(0), ziId); + } else { + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(devicesBean.getOnInfrared(), "05")); + } else { + studyAndControllPlug(devicesBean.getOnInfrared()); + } + }*/ + break; + case R.id.tv_second_control: + ShakeUtil.setShake(getContext()); + //关闭插座 + subsetControl("poweroff"); + /*if (devicesBean.getControlKeys().size() != 0) { + ExecSendUtil.getInstance().execSend(getContext(), devicesBean.getControlKeys().get(1).getCmds().get(0), ziId); + } else { + if (isLocalControl) { + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(devicesBean.getOffInfrared(), "05")); + } else { + studyAndControllPlug(devicesBean.getOffInfrared()); + } + }*/ + break; + case R.id.tv_time_control: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + Intent intent = new Intent(getContext(), SwitcherTimeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("id", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("deviceType", SWITCH_TAG); + startActivity(intent); + break; + case R.id.tv_electric_quantity: + Intent intent1 = new Intent(getContext(), ElectricQuantityActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("deviceName", devicesBean.getDeviceName()); + intent1.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent1.putExtra("deviceType", SWITCH_TAG); + intent1.putExtra("deviceId", switcherId); + intent1.putExtra("addressId", devicesBean.getAddressId()); + startActivity(intent1); + break; + case R.id.iv_child_picture: + + break; + } + } + + private void subsetControl(String key) { + String body = "{}"; + /*AdditionEntity additionEntity = new AdditionEntity(); + if (key.equals("dimming")) { + key = "power"; + AdditionEntity.AdditionBean addition = new AdditionEntity.AdditionBean(); + addition.setBrightness(String.valueOf(brightness)); + additionEntity.setAddition(addition); + body = JSONObject.toJSONString(additionEntity); + }*/ + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", switcherId); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", SWITCH_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(STUDY_ANDCONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + Message msg = mHandler.obtainMessage(STUDY_ANDCONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(STUDY_ANDCONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(STUDY_ANDCONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void queryNextTimer() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceId", switcherId); + netWorkUtil.requestGetByAsy(NetWorkUrl.QUERY_NEXT_TIMER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryNextTimer", "ShareDeviceActivity onSuccess()" + respone); + Z1TimeEntity obj = JSON.parseObject(respone, Z1TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subseSetVoice(final String flag) { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", switcherId); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", SWITCH_TAG); + map.put("ziId", ziId); + map.put("voiceFlag", flag); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SETVOICE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subseSetVoice", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = flag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("devicePosition") != null) { + childPosition.setText(data.getExtras().get("devicePosition").toString()); + addressId = data.getExtras().get("addressId").toString(); + } + if (data != null && data.getExtras().get("plugType") != null) { + plugType = data.getExtras().get("plugType").toString(); + devicesBean.setDeviceName(data.getExtras().get("plugName").toString()); + setSwitchTypePic(); + } + if (data != null && data.getExtras().get("gatewayName") != null) { + aiNameAndState.setText(data.getExtras().get("gatewayName").toString()); + } + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(SwitchFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + SwitchFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/TvA1BoxFragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/TvA1BoxFragment.java new file mode 100644 index 0000000..8bd025a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/TvA1BoxFragment.java @@ -0,0 +1,2202 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.AlphaAnimation; +import android.view.animation.AnimationUtils; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SignalEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.StudyValueEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.Key5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.device.tv.FanItem; +import com.yonsz.z1.device.tv.OnFanItemClickListener; +import com.yonsz.z1.device.tv.PieChartView; +import com.yonsz.z1.device.tv.TvLearnGuideActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.tv.FrequencyChannelActivity; +import com.yonsz.z1.view.TitleView; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.tv_no_voice; +import static com.yonsz.z1.R.id.tv_tv_voice; +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.device.tv.PieChartView.isLongClickModule1; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.BACKTV; +import static com.yonsz.z1.net.Constans.BOOTTV; +import static com.yonsz.z1.net.Constans.CANCLE_LONGPRESS_FAIL; +import static com.yonsz.z1.net.Constans.CANCLE_LONGPRESS_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNTV; +import static com.yonsz.z1.net.Constans.EIGHTTV; +import static com.yonsz.z1.net.Constans.FIVETV; +import static com.yonsz.z1.net.Constans.FOURTV; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.LEFTTV; +import static com.yonsz.z1.net.Constans.LONGPRESS_TV_FAIL; +import static com.yonsz.z1.net.Constans.LONGPRESS_TV_SUCCESS; +import static com.yonsz.z1.net.Constans.MENUTV; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MUTETV; +import static com.yonsz.z1.net.Constans.NINETV; +import static com.yonsz.z1.net.Constans.OKTV; +import static com.yonsz.z1.net.Constans.ONETV; +import static com.yonsz.z1.net.Constans.POWERBOXTV; +import static com.yonsz.z1.net.Constans.POWEROFFTV; +import static com.yonsz.z1.net.Constans.POWERTV; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_STUDY_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_STUDY_SUCCESS; +import static com.yonsz.z1.net.Constans.RECALLTV; +import static com.yonsz.z1.net.Constans.RIGHTTV; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_FAIL; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_SUCCESS; +import static com.yonsz.z1.net.Constans.SEVENTV; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.SIGNALTV; +import static com.yonsz.z1.net.Constans.SIXTV; +import static com.yonsz.z1.net.Constans.THREETV; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_BACK; +import static com.yonsz.z1.net.Constans.TV_DOWN; +import static com.yonsz.z1.net.Constans.TV_EIGHT; +import static com.yonsz.z1.net.Constans.TV_FIVE; +import static com.yonsz.z1.net.Constans.TV_FOUR; +import static com.yonsz.z1.net.Constans.TV_HOME; +import static com.yonsz.z1.net.Constans.TV_JIDINGHE; +import static com.yonsz.z1.net.Constans.TV_LEFT; +import static com.yonsz.z1.net.Constans.TV_MENU; +import static com.yonsz.z1.net.Constans.TV_NINE; +import static com.yonsz.z1.net.Constans.TV_OK; +import static com.yonsz.z1.net.Constans.TV_ONE; +import static com.yonsz.z1.net.Constans.TV_OPEN; +import static com.yonsz.z1.net.Constans.TV_RIGHT; +import static com.yonsz.z1.net.Constans.TV_SEVEN; +import static com.yonsz.z1.net.Constans.TV_SIGNAL; +import static com.yonsz.z1.net.Constans.TV_SIX; +import static com.yonsz.z1.net.Constans.TV_THREE; +import static com.yonsz.z1.net.Constans.TV_TWO; +import static com.yonsz.z1.net.Constans.TV_UP; +import static com.yonsz.z1.net.Constans.TV_VOICE; +import static com.yonsz.z1.net.Constans.TV_VOLADD; +import static com.yonsz.z1.net.Constans.TV_VOLREDUCE; +import static com.yonsz.z1.net.Constans.TV_ZERO; +import static com.yonsz.z1.net.Constans.TWOTV; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPTV; +import static com.yonsz.z1.net.Constans.VOLADDTV; +import static com.yonsz.z1.net.Constans.VOLREDTV; +import static com.yonsz.z1.net.Constans.ZEROTV; +import static com.yonsz.z1.net.Constans.isLocalControl; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETCONTROLKEYS; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class TvA1BoxFragment extends BaseFragment implements View.OnClickListener { + public int mId; + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + private TitleView mTitleView; + private PieChartView chartView; + private TextView mDown, mLeft, mUp, mRight; + private int longId; + private String userId; + private String ziId; + private AlphaAnimation mAlphaAnimation; + private boolean isLearn; + private LinearLayout learningLl, tvContinueLearnLl; + private TextView learnInstruction, learnComplete; + private TextView mOpenClose, mVoice, mNoVoice, mOk, mHome, mBack, mMenu, mVolAdd, mVolReduce, mSignal, mFrequencyChannel; + private TextView numerOne, numerTwo, numerThree, numerFour, numerFive, numerSix, numerSeven, numerEight, numerNine, numerZero; + private TextView mOpenCloseBg, mVoiceBg, mNoVoiceBg, mOkBg, mHomeBg, mBackBg, mMenuBg, mVolAddBg, mVolReduceBg, mSignalBg; + private TextView numerOneBg, numerTwoBg, numerThreeBg, numerFourBg, numerFiveBg, numerSixBg, numerSevenBg, numerEightBg, numerNineBg, numerZeroBg; + private ImageView mOpenCloseMark, mVoiceMark, mNoVoiceMark, mOkMark, mHomeMark, mBackMark, mMenuMark, mVolAddMark, mVolReduceMark, mDownMark, mLeftMark, mUpMark, mRightMark, mSignalMark; + private ImageView numerOneMark, numerTwoMark, numerThreeMark, numerFourMark, numerFiveMark, numerSixMark, numerSevenMark, numerEightMark, numerNineMark, numerZeroMark; + private boolean mOpenCloseTag, mVoiceTag, mOkTag, mHomeTag, mBackTag, mMenuTag, mVolAddTag, mVolReduceTag, mDownTag, mLeftTag, mUpTag, mRightTag, mSignalTag, mNoVoiceTag; + private boolean numerOneTag, numerTwoTag, numerThreeTag, numerFourTag, numerFiveTag, numerSixTag, numerSevenTag, numerEightTag, numerNineTag, numerZeroTag; + private ImageView mVoicePic, mNoVoicePic, mHomePic, mBackPic, mMenuPic, mVolAddPic, mVolRedPic; + private String tvName; + private boolean isTv; + private TextView jidingheVisible, tvVisible; + private String deviceIp = ""; + private ImageView localControlIv, greenCircle; + private String mSignalOrder = ""; + + public static TvA1BoxFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + TvA1BoxFragment fragment = new TvA1BoxFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_tv_control_box, null); + initView(fragView); + initListener(); + return fragView; + } + + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + userId = SharedpreferencesUtil.get(Constans.USERPHONE, ""); + ziId = devicesBean.getZiId(); + if (devicesBean.getAssistFlag().equals("1")) { + isTv = false; + } else { + isTv = true; + } + if (getArguments().get("tvStateTag").toString().equals("0")) { + isLearn = true; + } else { + isLearn = false; + } + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + mFrequencyChannel = (TextView) fragView.findViewById(R.id.tv_channel); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + greenCircle = (ImageView) fragView.findViewById(R.id.iv_online_green_circle); + learnInstruction = (TextView) fragView.findViewById(R.id.tv_learn_instruction); + learnComplete = (TextView) fragView.findViewById(R.id.tv_learn_complete); + learningLl = (LinearLayout) fragView.findViewById(R.id.ll_learning); + tvContinueLearnLl = (LinearLayout) fragView.findViewById(R.id.ll_tv_continue_learn); + jidingheVisible = (TextView) fragView.findViewById(R.id.tv_jidinghe_visible); + tvVisible = (TextView) fragView.findViewById(R.id.tv_tv_visible); + + mDown = (TextView) fragView.findViewById(R.id.iv_down); + mLeft = (TextView) fragView.findViewById(R.id.iv_left); + mUp = (TextView) fragView.findViewById(R.id.iv_up); + mRight = (TextView) fragView.findViewById(R.id.iv_right); + mOpenClose = (TextView) fragView.findViewById(R.id.tv_tv_open); + mVoice = (TextView) fragView.findViewById(tv_tv_voice); + mNoVoice = (TextView) fragView.findViewById(tv_no_voice); + mOk = (TextView) fragView.findViewById(R.id.tv_tv_ok); + mHome = (TextView) fragView.findViewById(R.id.tv_tv_home); + mMenu = (TextView) fragView.findViewById(R.id.tv_tv_menu); + mBack = (TextView) fragView.findViewById(R.id.tv_tv_back); + mSignal = (TextView) fragView.findViewById(R.id.tv_tv_signal); + mVolAdd = (TextView) fragView.findViewById(R.id.tv_tv_voladd); + mVolReduce = (TextView) fragView.findViewById(R.id.tv_tv_volreduce); + numerOne = (TextView) fragView.findViewById(R.id.tv_tv_one); + numerTwo = (TextView) fragView.findViewById(R.id.tv_tv_two); + numerThree = (TextView) fragView.findViewById(R.id.tv_tv_three); + numerFour = (TextView) fragView.findViewById(R.id.tv_tv_four); + numerFive = (TextView) fragView.findViewById(R.id.tv_tv_five); + numerSix = (TextView) fragView.findViewById(R.id.tv_tv_six); + numerSeven = (TextView) fragView.findViewById(R.id.tv_tv_seven); + numerEight = (TextView) fragView.findViewById(R.id.tv_tv_eight); + numerNine = (TextView) fragView.findViewById(R.id.tv_tv_nine); + numerZero = (TextView) fragView.findViewById(R.id.tv_tv_zero); + + + mOpenCloseBg = (TextView) fragView.findViewById(R.id.tv_tv_open_bg); + mVoiceBg = (TextView) fragView.findViewById(R.id.tv_tv_voice_bg); + mNoVoiceBg = (TextView) fragView.findViewById(R.id.tv_no_voice_bg); + mOkBg = (TextView) fragView.findViewById(R.id.tv_tv_ok_bg); + mHomeBg = (TextView) fragView.findViewById(R.id.tv_tv_home_bg); + mMenuBg = (TextView) fragView.findViewById(R.id.tv_tv_menu_bg); + mBackBg = (TextView) fragView.findViewById(R.id.tv_tv_back_bg); + mSignalBg = (TextView) fragView.findViewById(R.id.tv_tv_signal_bg); + mVolAddBg = (TextView) fragView.findViewById(R.id.tv_tv_voladd_bg); + mVolReduceBg = (TextView) fragView.findViewById(R.id.tv_tv_volreduce_bg); + numerOneBg = (TextView) fragView.findViewById(R.id.tv_tv_one_bg); + numerTwoBg = (TextView) fragView.findViewById(R.id.tv_tv_two_bg); + numerThreeBg = (TextView) fragView.findViewById(R.id.tv_tv_three_bg); + numerFourBg = (TextView) fragView.findViewById(R.id.tv_tv_four_bg); + numerFiveBg = (TextView) fragView.findViewById(R.id.tv_tv_five_bg); + numerSixBg = (TextView) fragView.findViewById(R.id.tv_tv_six_bg); + numerSevenBg = (TextView) fragView.findViewById(R.id.tv_tv_seven_bg); + numerEightBg = (TextView) fragView.findViewById(R.id.tv_tv_eight_bg); + numerNineBg = (TextView) fragView.findViewById(R.id.tv_tv_nine_bg); + numerZeroBg = (TextView) fragView.findViewById(R.id.tv_tv_zero_bg); + + mDownMark = (ImageView) fragView.findViewById(R.id.iv_down_bg); + mLeftMark = (ImageView) fragView.findViewById(R.id.iv_left_bg); + mUpMark = (ImageView) fragView.findViewById(R.id.iv_up_bg); + mRightMark = (ImageView) fragView.findViewById(R.id.iv_right_bg); + mOpenCloseMark = (ImageView) fragView.findViewById(R.id.tv_tv_open_mark); + mVoiceMark = (ImageView) fragView.findViewById(R.id.tv_tv_voice_mark); + mNoVoiceMark = (ImageView) fragView.findViewById(R.id.tv_no_voice_mark); + mOkMark = (ImageView) fragView.findViewById(R.id.tv_tv_ok_mark); + mHomeMark = (ImageView) fragView.findViewById(R.id.tv_tv_home_mark); + mMenuMark = (ImageView) fragView.findViewById(R.id.tv_tv_menu_mark); + mBackMark = (ImageView) fragView.findViewById(R.id.tv_tv_back_mark); + mSignalMark = (ImageView) fragView.findViewById(R.id.tv_tv_signal_mark); + mVolAddMark = (ImageView) fragView.findViewById(R.id.tv_tv_voladd_mark); + mVolReduceMark = (ImageView) fragView.findViewById(R.id.tv_tv_volreduce_mark); + numerOneMark = (ImageView) fragView.findViewById(R.id.tv_tv_one_mark); + numerTwoMark = (ImageView) fragView.findViewById(R.id.tv_tv_two_mark); + numerThreeMark = (ImageView) fragView.findViewById(R.id.tv_tv_three_mark); + numerFourMark = (ImageView) fragView.findViewById(R.id.tv_tv_four_mark); + numerFiveMark = (ImageView) fragView.findViewById(R.id.tv_tv_five_mark); + numerSixMark = (ImageView) fragView.findViewById(R.id.tv_tv_six_mark); + numerSevenMark = (ImageView) fragView.findViewById(R.id.tv_tv_seven_mark); + numerEightMark = (ImageView) fragView.findViewById(R.id.tv_tv_eight_mark); + numerNineMark = (ImageView) fragView.findViewById(R.id.tv_tv_nine_mark); + numerZeroMark = (ImageView) fragView.findViewById(R.id.tv_tv_zero_mark); + + mVoicePic = (ImageView) fragView.findViewById(R.id.iv_tv_voice); + mNoVoicePic = (ImageView) fragView.findViewById(R.id.iv_no_voice); + mHomePic = (ImageView) fragView.findViewById(R.id.iv_tv_home); + mMenuPic = (ImageView) fragView.findViewById(R.id.iv_tv_menu); + mBackPic = (ImageView) fragView.findViewById(R.id.iv_tv_back); + mVolAddPic = (ImageView) fragView.findViewById(R.id.iv_tv_add); + mVolRedPic = (ImageView) fragView.findViewById(R.id.iv_tv_reduce); + chartView = (PieChartView) fragView.findViewById(R.id.pieChartView); + chartView.setFanClickAbleData( + new double[]{90, 90, 90, 90}, + new int[]{Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT}, 0, mHandler); + setPanClick(); + mAlphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.alpha_anim_device); + mTitleView = (TitleView) fragView.findViewById(R.id.title_tv); + if (TextUtils.isEmpty(devicesBean.getDeviceBrand())) { + tvName = "电视"; + } else { + tvName = devicesBean.getDeviceBrand(); + } + mTitleView.setHead(tvName); + mTitleView.clearBackGroud(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + clearAlph(); + clearMark(); + if (isLearn) { + isLearn = false; + //查询学习按键 + // queryStudyValue(); + subsetGetControlKeys(); + showControl(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(TVONE_TAG, ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //重新命名 + /*if (isTv) { + Intent intent1 = new Intent(getContext(), TvListOneActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("nameTag", "name"); + intent1.putExtra("id", devicesBean.getId()); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + } else { + Intent intent1 = new Intent(getContext(), TvListOneActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("nameTag", "name"); + intent1.putExtra("id", devicesBean.getId()); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + }*/ + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", TVONE_TAG); + startActivity(intent); + break; + case 4: + + //遥控学习 + isLearn = true; + showLearn(); + //查询学习按键 + // queryStudyValue(); + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent(); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + + @Override + public void onFunctionText() { + + } + }); + + /*if (isTv) { + tvVisible.setVisibility(View.GONE); + jidingheVisible.setVisibility(View.GONE); + mVoicePic.setImageDrawable(getResources().getDrawable(R.drawable.icon_quiet_press)); + } else { + tvVisible.setVisibility(View.VISIBLE); + jidingheVisible.setVisibility(View.VISIBLE); + }*/ + + if (isLearn) { + showLearn(); + } else { + showControl(); + } + //查询学习按键 + // queryStudyValue(); + subsetGetControlKeys(); + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void clearMark() { + learnComplete.setVisibility(View.GONE); + mOpenCloseMark.setVisibility(View.GONE); + mUpMark.setVisibility(View.GONE); + mDownMark.setVisibility(View.GONE); + mLeftMark.setVisibility(View.GONE); + mRightMark.setVisibility(View.GONE); + mOkMark.setVisibility(View.GONE); + mHomeMark.setVisibility(View.GONE); + mBackMark.setVisibility(View.GONE); + mSignalMark.setVisibility(View.GONE); + mMenuMark.setVisibility(View.GONE); + mVoiceMark.setVisibility(View.GONE); + mNoVoiceMark.setVisibility(View.GONE); + mVolAddMark.setVisibility(View.GONE); + mVolReduceMark.setVisibility(View.GONE); + numerOneMark.setVisibility(View.GONE); + numerTwoMark.setVisibility(View.GONE); + numerThreeMark.setVisibility(View.GONE); + numerFourMark.setVisibility(View.GONE); + numerFiveMark.setVisibility(View.GONE); + numerSixMark.setVisibility(View.GONE); + numerSevenMark.setVisibility(View.GONE); + numerEightMark.setVisibility(View.GONE); + numerNineMark.setVisibility(View.GONE); + numerZeroMark.setVisibility(View.GONE); + } + + private void clearAlph() { + mVolReduceBg.clearAnimation(); + mVolAddBg.clearAnimation(); + mBackBg.clearAnimation(); + mSignalBg.clearAnimation(); + mMenuBg.clearAnimation(); + mHomeBg.clearAnimation(); + mOkBg.clearAnimation(); + mRight.clearAnimation(); + mLeft.clearAnimation(); + mDown.clearAnimation(); + mUp.clearAnimation(); + mOpenCloseBg.clearAnimation(); + mVoiceBg.clearAnimation(); + mNoVoiceBg.clearAnimation(); + numerOneBg.clearAnimation(); + numerTwoBg.clearAnimation(); + numerThreeBg.clearAnimation(); + numerFourBg.clearAnimation(); + numerFiveBg.clearAnimation(); + numerSixBg.clearAnimation(); + numerSevenBg.clearAnimation(); + numerEightBg.clearAnimation(); + numerNineBg.clearAnimation(); + numerZeroBg.clearAnimation(); + } + + private void showControl() { + // mTitleView.setHeadFuntionTxt(R.string.voice_said); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + learningLl.setVisibility(View.GONE); + tvContinueLearnLl.setVisibility(View.GONE); + controlShowAlph(); + } + + private void controlShowAlph() { + if (!mOpenCloseTag) { + mOpenClose.setAlpha(0.5f); + mOpenClose.setEnabled(false); + } else { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + } + if (!mVoiceTag) { + mVoice.setAlpha(0.5f); + mVoicePic.setAlpha(0.5f); + mVoice.setEnabled(false); + } else { + mVoice.setAlpha(1.0f); + mVoicePic.setAlpha(1.0f); + mVoice.setEnabled(true); + } + if (!mNoVoiceTag) { + mNoVoice.setAlpha(0.5f); + mNoVoicePic.setAlpha(0.5f); + mNoVoice.setEnabled(false); + } else { + mNoVoice.setAlpha(1.0f); + mNoVoicePic.setAlpha(1.0f); + mNoVoice.setEnabled(true); + } + if (!mOkTag) { + mOk.setAlpha(0.5f); + mOk.setEnabled(false); + } else { + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + } + if (!mHomeTag) { + mHome.setAlpha(0.5f); + mHomePic.setAlpha(0.5f); + mHome.setEnabled(false); + } else { + mHome.setAlpha(1.0f); + mHomePic.setAlpha(1.0f); + mHome.setEnabled(true); + } + if (!mBackTag) { + mBack.setAlpha(0.5f); + mBackPic.setAlpha(0.5f); + mBack.setEnabled(false); + } else { + mBack.setAlpha(1.0f); + mBackPic.setAlpha(1.0f); + mBack.setEnabled(true); + } + if (!mMenuTag) { + mMenu.setAlpha(0.5f); + mMenuPic.setAlpha(0.5f); + mMenu.setEnabled(false); + } else { + mMenu.setAlpha(1.0f); + mMenuPic.setAlpha(1.0f); + mMenu.setEnabled(true); + } + if (!mVolAddTag) { + mVolAdd.setAlpha(0.5f); + mVolAddPic.setAlpha(0.5f); + mVolAdd.setEnabled(false); + } else { + mVolAdd.setAlpha(1.0f); + mVolAddPic.setAlpha(1.0f); + mVolAdd.setEnabled(true); + } + if (!mVolReduceTag) { + mVolReduce.setAlpha(0.5f); + mVolRedPic.setAlpha(0.5f); + mVolReduce.setEnabled(false); + } else { + mVolReduce.setAlpha(1.0f); + mVolRedPic.setAlpha(1.0f); + mVolReduce.setEnabled(true); + } + if (!numerOneTag) { + numerOne.setAlpha(0.5f); + numerOne.setEnabled(false); + } else { + numerOne.setAlpha(1.0f); + numerOne.setEnabled(true); + } + if (!numerTwoTag) { + numerTwo.setAlpha(0.5f); + numerTwo.setEnabled(false); + } else { + numerTwo.setAlpha(1.0f); + numerTwo.setEnabled(true); + } + if (!numerThreeTag) { + numerThree.setAlpha(0.5f); + numerThree.setEnabled(false); + } else { + numerThree.setAlpha(1.0f); + numerThree.setEnabled(true); + } + if (!numerFourTag) { + numerFour.setAlpha(0.5f); + numerFour.setEnabled(false); + } else { + numerFour.setAlpha(1.0f); + numerFour.setEnabled(true); + } + if (!numerFiveTag) { + numerFive.setAlpha(0.5f); + numerFive.setEnabled(false); + } else { + numerFive.setAlpha(1.0f); + numerFive.setEnabled(true); + } + if (!numerSixTag) { + numerSix.setAlpha(0.5f); + numerSix.setEnabled(false); + } else { + numerSix.setAlpha(1.0f); + numerSix.setEnabled(true); + } + if (!numerSevenTag) { + numerSeven.setAlpha(0.5f); + numerSeven.setEnabled(false); + } else { + numerSeven.setAlpha(1.0f); + numerSeven.setEnabled(true); + } + if (!numerEightTag) { + numerEight.setAlpha(0.5f); + numerEight.setEnabled(false); + } else { + numerEight.setAlpha(1.0f); + numerEight.setEnabled(true); + } + if (!numerNineTag) { + numerNine.setAlpha(0.5f); + numerNine.setEnabled(false); + } else { + numerNine.setAlpha(1.0f); + numerNine.setEnabled(true); + } + if (!numerZeroTag) { + numerZero.setAlpha(0.5f); + numerZero.setEnabled(false); + } else { + numerZero.setAlpha(1.0f); + numerZero.setEnabled(true); + } + if (!mSignalTag) { + mSignal.setAlpha(0.5f); + mSignal.setEnabled(false); + } else { + mSignal.setAlpha(1.0f); + mSignal.setEnabled(true); + } + } + + private void showLearn() { + mTitleView.setHeadFuntionTxt(R.string.save); + mTitleView.setHeadFuntionGone(); + learnComplete.setVisibility(View.GONE); + learningLl.setVisibility(View.VISIBLE); + tvContinueLearnLl.setVisibility(View.GONE); + setLearnAlph(); + learnShowMark(); + + if (!mOpenCloseTag) { + showTopTxtAndAlpha(getString(R.string.Switch), mOpenCloseBg); + /*if (isTv) { + } else { + showTopTxtAndAlpha("机顶盒", mOpenCloseBg); + }*/ + } else if (!mVoiceTag) { + showTopTxtAndAlpha(getString(R.string.tv2), mVoiceBg); + /*if (isTv) { + showTopTxtAndAlpha("静音", mVoiceBg); + } else { + showTopTxtAndAlpha("电视", mVoiceBg); + }*/ + } else if (!mUpTag) { + showTopTxtAndAlpha("向上", mUp); + } else if (!mDownTag) { + showTopTxtAndAlpha("向下", mDown); + } else if (!mLeftTag) { + showTopTxtAndAlpha("向左", mLeft); + } else if (!mRightTag) { + showTopTxtAndAlpha("向右", mRight); + } else if (!mOkTag) { + showTopTxtAndAlpha("OK", mOkBg); + } else if (!mHomeTag) { + showTopTxtAndAlpha("HOME", mHomeBg); + } else if (!mMenuTag) { + showTopTxtAndAlpha("菜单", mMenuBg); + } else if (!mBackTag) { + showTopTxtAndAlpha("返回", mBackBg); + } else if (!mVolAddTag) { + showTopTxtAndAlpha("音量+", mVolAddBg); + } else if (!mVolReduceTag) { + showTopTxtAndAlpha("音量-", mVolReduceBg); + } else if (!numerOneTag) { + showTopTxtAndAlpha("1", numerOneBg); + } else if (!numerTwoTag) { + showTopTxtAndAlpha("2", numerTwoBg); + } else if (!numerThreeTag) { + showTopTxtAndAlpha("3", numerThreeBg); + } else if (!numerFourTag) { + showTopTxtAndAlpha("4", numerFourBg); + } else if (!numerFiveTag) { + showTopTxtAndAlpha("5", numerFiveBg); + } else if (!numerSixTag) { + showTopTxtAndAlpha("6", numerSixBg); + } else if (!numerSevenTag) { + showTopTxtAndAlpha("7", numerSevenBg); + } else if (!numerEightTag) { + showTopTxtAndAlpha("8", numerEightBg); + } else if (!numerNineTag) { + showTopTxtAndAlpha("9", numerNineBg); + } else if (!numerZeroTag) { + showTopTxtAndAlpha("0", numerZeroBg); + } else if (!mSignalTag) { + showTopTxtAndAlpha("信号源", mSignalBg); + } else if (!mNoVoiceTag) { + showTopTxtAndAlpha("静音", mNoVoiceBg); + } else { + learningLl.setVisibility(View.GONE); + learnComplete.setVisibility(View.VISIBLE); + clearAlph(); + } + } + + private void showTopTxtAndAlpha(String text, TextView textView) { + learningLl.setVisibility(View.VISIBLE); + learnComplete.setVisibility(View.GONE); + learnInstruction.setText(text); + clearAlph(); + textView.startAnimation(mAlphaAnimation); + } + + private void setLearnAlph() { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + mVoice.setAlpha(1.0f); + mVoice.setEnabled(true); + mNoVoice.setAlpha(1.0f); + mNoVoice.setEnabled(true); + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + mHome.setAlpha(1.0f); + mHome.setEnabled(true); + mBack.setAlpha(1.0f); + mBack.setEnabled(true); + mSignal.setAlpha(1.0f); + mSignal.setEnabled(true); + mMenu.setAlpha(1.0f); + mMenu.setEnabled(true); + mVolAdd.setAlpha(1.0f); + mVolAdd.setEnabled(true); + mVolReduce.setAlpha(1.0f); + mVolReduce.setEnabled(true); + mNoVoicePic.setAlpha(1.0f); + mHomePic.setAlpha(1.0f); + mMenuPic.setAlpha(1.0f); + mBackPic.setAlpha(1.0f); + mVolAddPic.setAlpha(1.0f); + mVolRedPic.setAlpha(1.0f); + + numerOne.setAlpha(1.0f); + numerOne.setEnabled(true); + numerTwo.setAlpha(1.0f); + numerTwo.setEnabled(true); + numerThree.setAlpha(1.0f); + numerThree.setEnabled(true); + numerFour.setAlpha(1.0f); + numerFour.setEnabled(true); + numerFive.setAlpha(1.0f); + numerFive.setEnabled(true); + numerSix.setAlpha(1.0f); + numerSix.setEnabled(true); + numerSeven.setAlpha(1.0f); + numerSeven.setEnabled(true); + numerEight.setAlpha(1.0f); + numerEight.setEnabled(true); + numerNine.setAlpha(1.0f); + numerNine.setEnabled(true); + numerZero.setAlpha(1.0f); + numerZero.setEnabled(true); + } + + private void learnShowMark() { + if (mOpenCloseTag) { + mOpenCloseMark.setVisibility(View.VISIBLE); + } + if (mVoiceTag) { + mVoiceMark.setVisibility(View.VISIBLE); + } + if (mNoVoiceTag) { + mNoVoiceMark.setVisibility(View.VISIBLE); + } + if (mOkTag) { + mOkMark.setVisibility(View.VISIBLE); + } + if (mHomeTag) { + mHomeMark.setVisibility(View.VISIBLE); + } + if (mBackTag) { + mBackMark.setVisibility(View.VISIBLE); + } + if (mSignalTag) { + mSignalMark.setVisibility(View.VISIBLE); + } + if (mMenuTag) { + mMenuMark.setVisibility(View.VISIBLE); + } + if (mVolAddTag) { + mVolAddMark.setVisibility(View.VISIBLE); + } + if (mVolReduceTag) { + mVolReduceMark.setVisibility(View.VISIBLE); + } + if (mDownTag) { + mDownMark.setVisibility(View.VISIBLE); + } + if (mLeftTag) { + mLeftMark.setVisibility(View.VISIBLE); + } + if (mUpTag) { + mUpMark.setVisibility(View.VISIBLE); + } + if (mRightTag) { + mRightMark.setVisibility(View.VISIBLE); + } + if (numerOneTag) { + numerOneMark.setVisibility(View.VISIBLE); + } + if (numerTwoTag) { + numerTwoMark.setVisibility(View.VISIBLE); + } + if (numerThreeTag) { + numerThreeMark.setVisibility(View.VISIBLE); + } + if (numerFourTag) { + numerFourMark.setVisibility(View.VISIBLE); + } + if (numerFiveTag) { + numerFiveMark.setVisibility(View.VISIBLE); + } + if (numerSixTag) { + numerSixMark.setVisibility(View.VISIBLE); + } + if (numerSevenTag) { + numerSevenMark.setVisibility(View.VISIBLE); + } + if (numerEightTag) { + numerEightMark.setVisibility(View.VISIBLE); + } + if (numerNineTag) { + numerNineMark.setVisibility(View.VISIBLE); + } + if (numerZeroTag) { + numerZeroMark.setVisibility(View.VISIBLE); + } + } + + private void subsetGetControlKeys() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", TVONE_TAG); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETCONTROLKEYS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetControlKeys", "onSuccess()" + respone); + Key5Entity obj = JSON.parseObject(respone, Key5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_STUDY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_STUDY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_STUDY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mVoice.setOnClickListener(this); + mNoVoice.setOnClickListener(this); + mOk.setOnClickListener(this); + mHome.setOnClickListener(this); + mMenu.setOnClickListener(this); + mBack.setOnClickListener(this); + mSignal.setOnClickListener(this); + mVolAdd.setOnClickListener(this); + mVolReduce.setOnClickListener(this); + tvContinueLearnLl.setOnClickListener(this); + numerOne.setOnClickListener(this); + numerTwo.setOnClickListener(this); + numerThree.setOnClickListener(this); + numerFour.setOnClickListener(this); + numerFive.setOnClickListener(this); + numerSix.setOnClickListener(this); + numerSeven.setOnClickListener(this); + numerEight.setOnClickListener(this); + numerNine.setOnClickListener(this); + numerZero.setOnClickListener(this); + + mFrequencyChannel.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + Intent intent = new Intent(getContext(), FrequencyChannelActivity.class); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("ziId", ziId); + intent.putExtra("nameTag", ""); + intent.putExtra("id", devicesBean.getId()); + intent.putExtra("deviceType", ""); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivity(intent); + + } + }); + + mVolAdd.setOnTouchListener(new View.OnTouchListener() { + boolean isLongClickModule = false; + boolean isLongClicking = false; + boolean isUp = false; + + @Override + public boolean onTouch(View v, MotionEvent event) { + long downTime = System.currentTimeMillis(); + if (event.getAction() == MotionEvent.ACTION_DOWN) { + isUp = false; + Log.i("OnTouchListenerDown", "TvControlActivity onTouch()" + downTime); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + if (!isUp) { + Log.i("OnTouchListenerDown", "TvControlActivity onTouch()" + "我开始长按了"); + longPressTv(TV_VOLADD); + } else { + Log.i("OnTouchListenerDown", "TvControlActivity onTouch()" + "我已经抬起了"); + } + } + }, 200); + } + if (event.getAction() == MotionEvent.ACTION_UP) { + isUp = true; + long upTime = System.currentTimeMillis(); + Log.i("OnTouchListenerUp", "TvControlActivity onTouch()" + (upTime - downTime)); + if ((upTime - downTime) >= 200) { + Log.i("OnTouchListenerUp", "TvControlActivity onTouch()" + "长按"); + isLongClickModule = true; + } else { + Log.i("OnTouchListenerUp", "TvControlActivity onTouch()" + "非长按"); + isLongClickModule = false; + } + if (isLongClickModule) { + Log.i("OnTouchListenerUp", "TvControlActivity onTouch()" + "取消长按控制"); + cancleLongPress(TV_VOLADD); + } + if (isLongClickModule) { + isLongClickModule = false; + isLongClicking = false; + } + } + if (event.getAction() == MotionEvent.ACTION_OUTSIDE) { + Log.i("OnTouchListenerOut", "TvControlActivity onTouch()"); + cancleLongPress(TV_VOLADD); + } + return false; + } + }); + + mVolReduce.setOnTouchListener(new View.OnTouchListener() { + boolean isLongClickModule = false; + boolean isLongClicking = false; + boolean isUp = false; + + @Override + public boolean onTouch(View v, MotionEvent event) { + long downTime = System.currentTimeMillis(); + if (event.getAction() == MotionEvent.ACTION_DOWN) { + isUp = false; + Log.i("OnTouchListenerDown", "TvControlActivity onTouch()" + downTime); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + if (!isUp) { + Log.i("OnTouchListenerDown", "TvControlActivity onTouch()" + "我开始长按了"); + longPressTv(TV_VOLREDUCE); + } else { + Log.i("OnTouchListenerDown", "TvControlActivity onTouch()" + "我已经抬起了"); + } + } + }, 200); + } + if (event.getAction() == MotionEvent.ACTION_UP) { + isUp = true; + long upTime = System.currentTimeMillis(); + Log.i("OnTouchListenerUp", "TvControlActivity onTouch()" + (upTime - downTime)); + if ((upTime - downTime) >= 200) { + isLongClickModule = true; + } else { + isLongClickModule = false; + } + if (isLongClickModule) { + cancleLongPress(TV_VOLREDUCE); + } + if (isLongClickModule) { + isLongClickModule = false; + isLongClicking = false; + } + } + return false; + } + }); + } + + private void cancleLongPress(String sendMsg) { + /*NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", userId); + map.put("sendMsg", sendMsg); + util.requestPostByAsyn(ziId, NetWorkUrl.CANCLE_LONGPRESS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancleLongPress", "onSuccess: " + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(CANCLE_LONGPRESS_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(CANCLE_LONGPRESS_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(CANCLE_LONGPRESS_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + private void longPressTv(String sendMsg) { + /*NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", userId); + map.put("sendMsg", sendMsg); + util.requestPostByAsyn(ziId, NetWorkUrl.LONGPRESS_TV, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("longPressTv", "onSuccess: " + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(LONGPRESS_TV_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + Message msg = mHandler.obtainMessage(LONGPRESS_TV_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(LONGPRESS_TV_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(LONGPRESS_TV_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + + private void setPanClick() { + chartView.setOnFanClick(new OnFanItemClickListener() { + @Override + public void onFanClick(FanItem fanItem) { + mId = fanItem.getId(); + Intent intent; + if (isLearn) { + switch (mId) { + case 0: + mDown.setVisibility(View.VISIBLE); + toLearnByNmber(3); + break; + case 1: + mLeft.setVisibility(View.VISIBLE); + toLearnByNmber(4); + break; + case 2: + mUp.setVisibility(View.VISIBLE); + toLearnByNmber(2); + break; + case 3: + mRight.setVisibility(View.VISIBLE); + toLearnByNmber(5); + break; + } + } else { + Log.i("OnTouchListener", "点击---处理" + mId); + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + } + break; + } + } + } + + @Override + public void onFanLongClick(FanItem fanItem) { + mId = fanItem.getId(); + if (isLearn) { + + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理" + mId); + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + longPressTv(TV_DOWN); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + longPressTv(TV_LEFT); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + longPressTv(TV_UP); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + longPressTv(TV_RIGHT); + } + break; + } + + } + } + } + + @Override + public void onUp(FanItem fanItem) { + if (fanItem != null) { + mId = fanItem.getId(); + } + if (isLearn) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理抬起" + mId); + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + cancleLongPress(TV_DOWN); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + cancleLongPress(TV_LEFT); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + cancleLongPress(TV_UP); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + cancleLongPress(TV_RIGHT); + break; + } + } else { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Log.i("OnTouchListener", "点击---处理抬起" + mId); + switch (mId) { + case 0: + if (mDownTag) { + // sentControlOrder(TV_DOWN); + subsetControl("down"); + } + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + if (mLeftTag) { + // sentControlOrder(TV_LEFT); + subsetControl("left"); + } + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + if (mUpTag) { + // sentControlOrder(TV_UP); + subsetControl("up"); + } + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + if (mRightTag) { + // sentControlOrder(TV_RIGHT); + subsetControl("right"); + } + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } + } + } + }); + } + + @Override + public void onClick(View v) { + if (isLearn) { + switch (v.getId()) { + case R.id.tv_tv_open: + toLearnByNmber(10); + /*if (isTv) { + toLearnByNmber(10); + } else { + toLearnByNmber(1); + }*/ + break; + case tv_tv_voice: + toLearnByNmber(1); + /*if (isTv) { + toLearnByNmber(13); + } else { + toLearnByNmber(10); + }*/ + break; + case R.id.tv_no_voice: + toLearnByNmber(13); + break; + case R.id.tv_tv_ok: + toLearnByNmber(6); + break; + case R.id.tv_tv_home: + toLearnByNmber(7); + break; + case R.id.tv_tv_menu: + toLearnByNmber(9); + break; + case R.id.tv_tv_back: + toLearnByNmber(8); + break; + case R.id.tv_tv_voladd: + toLearnByNmber(11); + break; + case R.id.tv_tv_volreduce: + toLearnByNmber(12); + break; + case R.id.tv_tv_one: + toLearnByNmber(21); + break; + case R.id.tv_tv_two: + toLearnByNmber(22); + break; + case R.id.tv_tv_three: + toLearnByNmber(23); + break; + case R.id.tv_tv_four: + toLearnByNmber(24); + break; + case R.id.tv_tv_five: + toLearnByNmber(25); + break; + case R.id.tv_tv_six: + toLearnByNmber(26); + break; + case R.id.tv_tv_seven: + toLearnByNmber(27); + break; + case R.id.tv_tv_eight: + toLearnByNmber(28); + break; + case R.id.tv_tv_nine: + toLearnByNmber(29); + break; + case R.id.tv_tv_zero: + toLearnByNmber(30); + break; + case R.id.tv_tv_signal: + toLearnByNmber(31); + break; + } + } else { + switch (v.getId()) { + case R.id.tv_tv_open: + subsetControl("powertv"); + break; + case tv_tv_voice: + subsetControl("power"); + break; + case R.id.tv_no_voice: + // sentControlOrder(TV_VOICE); + subsetControl("mute"); + break; + case R.id.tv_tv_ok: + // sentControlOrder(TV_OK); + subsetControl("ok"); + break; + case R.id.tv_tv_home: + // sentControlOrder(TV_HOME); + subsetControl("boot"); + break; + case R.id.tv_tv_menu: + // sentControlOrder(TV_MENU); + subsetControl("menu"); + break; + case R.id.tv_tv_back: + // sentControlOrder(TV_BACK); + subsetControl("back"); + break; + case R.id.tv_tv_voladd: + // sentControlOrder(TV_VOLADD); + subsetControl("volplus"); + break; + case R.id.tv_tv_volreduce: + // sentControlOrder(TV_VOLREDUCE); + subsetControl("volminus"); + break; + case R.id.tv_tv_one: + // sentControlOrder(TV_ONE); + subsetControl("1"); + break; + case R.id.tv_tv_two: + // sentControlOrder(TV_TWO); + subsetControl("2"); + break; + case R.id.tv_tv_three: + // sentControlOrder(TV_THREE); + subsetControl("3"); + break; + case R.id.tv_tv_four: + // sentControlOrder(TV_FOUR); + subsetControl("4"); + break; + case R.id.tv_tv_five: + // sentControlOrder(TV_FIVE); + subsetControl("5"); + break; + case R.id.tv_tv_six: + // sentControlOrder(TV_SIX); + subsetControl("6"); + break; + case R.id.tv_tv_seven: + // sentControlOrder(TV_SEVEN); + subsetControl("7"); + break; + case R.id.tv_tv_eight: + // sentControlOrder(TV_EIGHT); + subsetControl("8"); + break; + case R.id.tv_tv_nine: + // sentControlOrder(TV_NINE); + subsetControl("9"); + break; + case R.id.tv_tv_zero: + // sentControlOrder(TV_ZERO); + subsetControl("0"); + break; + case R.id.tv_tv_signal: + // sentControlOrder(TV_SIGNAL); + subsetControl("signal"); + break; + case R.id.ll_tv_continue_learn: + isLearn = true; + //查询学习按键 + // queryStudyValue(); + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + } + } + } + + private void sentControlOrder(String order) { + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(order)); + } else + sendAirControlOrder(order); + } + + private void toLearnByNmber(int number) { + Intent intent = new Intent(getContext(), TvLearnGuideActivity.class); + intent.putExtra("learnGuide", number); + intent.putExtra("ziId", ziId); + intent.putExtra("isTv", false); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivityForResult(intent, LEARN_RESULT); + } + + //发送开关指令 + private void sendAirControlOrder(String order) { + ShakeUtil.setShake(getContext()); + /*if (DensityUtil.isNetworkConnected(getContext())) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", userId); + map.put("macId", ziId); + map.put("sendMsg", order); + util.requestPostByAsyn(ziId, NetWorkUrl.SEND_CONTROL_AIR_ORDER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("sendAirControlOrder", "onSuccess: " + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + } else { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } else { + ToastUtil.show(getContext(), R.string.net_error); + }*/ + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case QUERY_STUDY_SUCCESS: + /*String response = (String) msg.obj; + try { + JSONObject jsonObject = new JSONObject(response); + JSONObject object = jsonObject.getJSONObject("obj"); + setIsLearned(object); + } catch (JSONException e) { + e.printStackTrace(); + Log.i("queryStudyValue", "TvA1Fragment callBackUiThread()" + e.getMessage()); + }*/ + Key5Entity entity1 = (Key5Entity) msg.obj; + setIsLearned(entity1); + if (isLearn) { + showLearn(); + } else { + showControl(); + } + break; + case QUERY_STUDY_FAIL: + + break; + case SEND_CONTROL_ORDER_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case LONGPRESS_TV_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity1.getDeviceType().equals(TVONE_TAG) && !TextUtils.isEmpty(nettyEntity1.getOpenFlag())) { + if (nettyEntity1.getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + ToastUtil.show(getContext(), "机顶盒已打开"); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void setIsLearned(Key5Entity entity1) { + List entity1Obj = entity1.getData(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + switch (entity1Obj.get(i).getName()) { + case "powertv": + // case "poweroff": + mOpenCloseTag = true; + break; + case "up": + mUpTag = true; + break; + case "down": + mDownTag = true; + break; + case "left": + mLeftTag = true; + break; + case "right": + mRightTag = true; + break; + case "ok": + mOkTag = true; + break; + case "boot": + mHomeTag = true; + break; + case "back": + mBackTag = true; + break; + case "menu": + mMenuTag = true; + break; + case "volplus": + mVolAddTag = true; + break; + case "volminus": + mVolReduceTag = true; + break; + case "power": + isTv = false; + mVoiceTag = true; + break; + case "mute": + mNoVoiceTag = true; + break; + case "1": + numerOneTag = true; + break; + case "2": + numerTwoTag = true; + break; + case "3": + numerThreeTag = true; + break; + case "4": + numerFourTag = true; + break; + case "5": + numerFiveTag = true; + break; + case "6": + numerSixTag = true; + break; + case "7": + numerSevenTag = true; + break; + case "8": + numerEightTag = true; + break; + case "9": + numerNineTag = true; + break; + case "0": + numerZeroTag = true; + break; + case "signal": + mSignalTag = true; + break; + } + } + } + } + + private void setIsLearned(JSONObject object) { + if (!object.isNull(ZEROTV)) { + numerZeroTag = true; + } + if (!object.isNull(ONETV)) { + numerOneTag = true; + } + if (!object.isNull(TWOTV)) { + numerTwoTag = true; + } + if (!object.isNull(THREETV)) { + numerThreeTag = true; + } + if (!object.isNull(FOURTV)) { + numerFourTag = true; + } + if (!object.isNull(FIVETV)) { + numerFiveTag = true; + } + if (!object.isNull(SIXTV)) { + numerSixTag = true; + } + if (!object.isNull(SEVENTV)) { + numerSevenTag = true; + } + if (!object.isNull(EIGHTTV)) { + numerEightTag = true; + } + if (!object.isNull(NINETV)) { + numerNineTag = true; + } + if (!object.isNull(DOWNTV)) { + mDownTag = true; + } + if (!object.isNull(UPTV)) { + mUpTag = true; + } + if (!object.isNull(LEFTTV)) { + mLeftTag = true; + } + if (!object.isNull(RIGHTTV)) { + mRightTag = true; + } + if (!object.isNull(POWERTV)) { + mOpenCloseTag = true; + /*if (isTv) { + mOpenCloseTag = true; + } else { + mVoiceTag = true; + }*/ + } + if (!object.isNull(POWEROFFTV)) { + mOpenCloseTag = true; + /*if (isTv) { + mOpenCloseTag = true; + } else { + mVoiceTag = true; + }*/ + } + if (!object.isNull(OKTV)) { + mOkTag = true; + } + if (!object.isNull(VOLADDTV)) { + mVolAddTag = true; + } + if (!object.isNull(VOLREDTV)) { + mVolReduceTag = true; + } + if (!object.isNull(BOOTTV)) { + mHomeTag = true; + } + if (!object.isNull(BACKTV)) { + mBackTag = true; + } + if (!object.isNull(RECALLTV)) { + } + if (!object.isNull(SIGNALTV)) { + mSignalTag = true; + try { + JSONObject signal = object.getJSONObject("signal"); + SignalEntity signalEntity = JSON.parseObject(String.valueOf(signal), SignalEntity.class); + mSignalOrder = signalEntity.getCmds().get(0); + } catch (JSONException e) { + e.printStackTrace(); + } + } + if (!object.isNull(MENUTV)) { + mMenuTag = true; + } + if (!object.isNull(POWERBOXTV)) { + // mOpenCloseTag = true; + mVoiceTag = true; + } + if (!object.isNull(MUTETV)) { + mNoVoiceTag = true; + // mVoiceTag = true; + } + } + + private void setIsLearned(StudyValueEntity entity) { + if (entity.getObj() != null) { + StudyValueEntity.ObjBean.SignalBean signal = entity.getObj().getSignal(); + // for (int i = 0; i < entity.getObj().size(); i++) { + switch (entity.getObj().getSignal().getPushKey()) { + case TV_OPEN: + if (isTv) { + mOpenCloseTag = true; + } else { + mVoiceTag = true; + } + break; + case TV_UP: + mUpTag = true; + break; + case TV_DOWN: + mDownTag = true; + break; + case TV_LEFT: + mLeftTag = true; + break; + case TV_RIGHT: + mRightTag = true; + break; + case TV_OK: + mOkTag = true; + break; + case TV_HOME: + mHomeTag = true; + break; + case TV_BACK: + mBackTag = true; + break; + case TV_MENU: + mMenuTag = true; + break; + case TV_VOICE: + mVoiceTag = true; + break; + case TV_VOLADD: + mVolAddTag = true; + break; + case TV_VOLREDUCE: + mVolReduceTag = true; + break; + case TV_JIDINGHE: + mOpenCloseTag = true; + break; + case TV_ONE: + numerOneTag = true; + break; + case TV_TWO: + numerTwoTag = true; + break; + case TV_THREE: + numerThreeTag = true; + break; + case TV_FOUR: + numerFourTag = true; + break; + case TV_FIVE: + numerFiveTag = true; + break; + case TV_SIX: + numerSixTag = true; + break; + case TV_SEVEN: + numerSevenTag = true; + break; + case TV_EIGHT: + numerEightTag = true; + break; + case TV_NINE: + numerNineTag = true; + break; + case TV_ZERO: + numerZeroTag = true; + break; + case TV_SIGNAL: + mSignalTag = true; + break; + } + } + // } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(devicesBean.getId(), TVONE_TAG); + if (isLearn) { + // queryStudyValue(); + subsetGetControlKeys(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case LEARN_RESULT: + if (data != null && data.getExtras().get("learnGuide") != null) { + int learnGuide = (int) data.getExtras().get("learnGuide"); + switch (learnGuide) { + case 1: + mOpenCloseMark.setVisibility(View.VISIBLE); + break; + case 2: + mUpMark.setVisibility(View.VISIBLE); + break; + case 3: + mDownMark.setVisibility(View.VISIBLE); + break; + case 4: + mLeftMark.setVisibility(View.VISIBLE); + break; + case 5: + mRightMark.setVisibility(View.VISIBLE); + break; + case 6: + mOkMark.setVisibility(View.VISIBLE); + break; + case 7: + mHomeMark.setVisibility(View.VISIBLE); + break; + case 8: + mBackMark.setVisibility(View.VISIBLE); + break; + case 9: + mMenuMark.setVisibility(View.VISIBLE); + break; + case 10: + mVoiceMark.setVisibility(View.VISIBLE); + break; + case 11: + mVolAddMark.setVisibility(View.VISIBLE); + break; + case 12: + mVolReduceMark.setVisibility(View.VISIBLE); + break; + case 13: + mNoVoiceMark.setVisibility(View.VISIBLE); + break; + case 21: + numerOneMark.setVisibility(View.VISIBLE); + break; + case 22: + numerTwoMark.setVisibility(View.VISIBLE); + break; + case 23: + numerThreeMark.setVisibility(View.VISIBLE); + break; + case 24: + numerFourMark.setVisibility(View.VISIBLE); + break; + case 25: + numerFiveMark.setVisibility(View.VISIBLE); + break; + case 26: + numerSixMark.setVisibility(View.VISIBLE); + break; + case 27: + numerSevenMark.setVisibility(View.VISIBLE); + break; + case 28: + numerEightMark.setVisibility(View.VISIBLE); + break; + case 29: + numerNineMark.setVisibility(View.VISIBLE); + break; + case 30: + numerZeroMark.setVisibility(View.VISIBLE); + break; + case 31: + mSignalMark.setVisibility(View.VISIBLE); + break; + } + } + break; + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("deviceName") != null) { + tvName = data.getExtras().get("deviceName").toString().trim(); + mTitleView.setHead(tvName); + } + break; + } + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", TVONE_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(TvA1BoxFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + TvA1BoxFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/TvA1Fragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/TvA1Fragment.java new file mode 100644 index 0000000..aa02c58 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/TvA1Fragment.java @@ -0,0 +1,1931 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.AlphaAnimation; +import android.view.animation.AnimationUtils; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.Key5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.device.tv.FanItem; +import com.yonsz.z1.device.tv.OnFanItemClickListener; +import com.yonsz.z1.device.tv.PieChartView; +import com.yonsz.z1.device.tv.TvLearnGuideActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.tv.FrequencyChannelActivity; +import com.yonsz.z1.view.TitleView; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.tv_no_voice; +import static com.yonsz.z1.R.id.tv_tv_voice; +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.device.tv.PieChartView.isLongClickModule1; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CANCLE_LONGPRESS_FAIL; +import static com.yonsz.z1.net.Constans.CANCLE_LONGPRESS_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.LONGPRESS_TV_FAIL; +import static com.yonsz.z1.net.Constans.LONGPRESS_TV_SUCCESS; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_STUDY_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_STUDY_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.TV_DOWN; +import static com.yonsz.z1.net.Constans.TV_LEFT; +import static com.yonsz.z1.net.Constans.TV_RIGHT; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.TV_UP; +import static com.yonsz.z1.net.Constans.TV_VOLADD; +import static com.yonsz.z1.net.Constans.TV_VOLREDUCE; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETCONTROLKEYS; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class TvA1Fragment extends BaseFragment implements View.OnClickListener { + public int mId; + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + private TitleView mTitleView; + private PieChartView chartView; + private TextView mDown, mLeft, mUp, mRight; + private int longId; + private String userId; + private String ziId; + private AlphaAnimation mAlphaAnimation; + private boolean isLearn; + private LinearLayout learningLl, tvContinueLearnLl; + private TextView learnInstruction, learnComplete; + private TextView mOpenClose, mVoice, mNoVoice, mOk, mHome, mBack, mMenu, mVolAdd, mVolReduce, mChAdd, mChReduce, mSignal, mFrequencyChannel; + private TextView numerOne, numerTwo, numerThree, numerFour, numerFive, numerSix, numerSeven, numerEight, numerNine, numerZero; + private TextView mOpenCloseBg, mVoiceBg, mNoVoiceBg, mOkBg, mHomeBg, mBackBg, mMenuBg, mVolAddBg, mVolReduceBg, mChAddBg, mChReduceBg, mSignalBg; + private TextView numerOneBg, numerTwoBg, numerThreeBg, numerFourBg, numerFiveBg, numerSixBg, numerSevenBg, numerEightBg, numerNineBg, numerZeroBg; + private ImageView mOpenCloseMark, mVoiceMark, mNoVoiceMark, mOkMark, mHomeMark, mBackMark, mMenuMark, mVolAddMark, mVolReduceMark, mChAddMark, mChReduceMark, mDownMark, mLeftMark, mUpMark, mRightMark, mSignalMark; + private ImageView numerOneMark, numerTwoMark, numerThreeMark, numerFourMark, numerFiveMark, numerSixMark, numerSevenMark, numerEightMark, numerNineMark, numerZeroMark; + private boolean mOpenCloseTag, mVoiceTag, mOkTag, mHomeTag, mBackTag, mMenuTag, mVolAddTag, mVolReduceTag, mChAddTag, mChReduceTag, mDownTag, mLeftTag, mUpTag, mRightTag, mSignalTag, mNoVoiceTag; + private boolean numerOneTag, numerTwoTag, numerThreeTag, numerFourTag, numerFiveTag, numerSixTag, numerSevenTag, numerEightTag, numerNineTag, numerZeroTag; + private ImageView mVoicePic, mNoVoicePic, mHomePic, mBackPic, mMenuPic, mVolAddPic, mVolRedPic, mChAddPic, mChRedPic; + private String tvName; + private boolean isTv; + private TextView jidingheVisible, tvVisible; + private String deviceIp = ""; + private ImageView localControlIv, greenCircle; + private String mSignalOrder = ""; + + public static TvA1Fragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + TvA1Fragment fragment = new TvA1Fragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_tv_control, null); + initView(fragView); + initListener(); + return fragView; + } + + private void initView(View fragView) { + userId = SharedpreferencesUtil.get(Constans.USERPHONE, ""); + ziId = devicesBean.getZiId(); + if (devicesBean.getAssistFlag().equals("1")) { + isTv = false; + } else { + isTv = true; + } + if (getArguments().get("tvStateTag").toString().equals("0")) { + isLearn = true; + } else { + isLearn = false; + } + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + mFrequencyChannel = (TextView) fragView.findViewById(R.id.tv_channel); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + greenCircle = (ImageView) fragView.findViewById(R.id.iv_online_green_circle); + learnInstruction = (TextView) fragView.findViewById(R.id.tv_learn_instruction); + learnComplete = (TextView) fragView.findViewById(R.id.tv_learn_complete); + learningLl = (LinearLayout) fragView.findViewById(R.id.ll_learning); + tvContinueLearnLl = (LinearLayout) fragView.findViewById(R.id.ll_tv_continue_learn); + jidingheVisible = (TextView) fragView.findViewById(R.id.tv_jidinghe_visible); + tvVisible = (TextView) fragView.findViewById(R.id.tv_tv_visible); + + mDown = (TextView) fragView.findViewById(R.id.iv_down); + mLeft = (TextView) fragView.findViewById(R.id.iv_left); + mUp = (TextView) fragView.findViewById(R.id.iv_up); + mRight = (TextView) fragView.findViewById(R.id.iv_right); + mOpenClose = (TextView) fragView.findViewById(R.id.tv_tv_open); + mVoice = (TextView) fragView.findViewById(tv_tv_voice); + mNoVoice = (TextView) fragView.findViewById(tv_no_voice); + mOk = (TextView) fragView.findViewById(R.id.tv_tv_ok); + mHome = (TextView) fragView.findViewById(R.id.tv_tv_home); + mMenu = (TextView) fragView.findViewById(R.id.tv_tv_menu); + mBack = (TextView) fragView.findViewById(R.id.tv_tv_back); + mSignal = (TextView) fragView.findViewById(R.id.tv_tv_signal); + mVolAdd = (TextView) fragView.findViewById(R.id.tv_tv_voladd); + mVolReduce = (TextView) fragView.findViewById(R.id.tv_tv_volreduce); + mChAdd = (TextView) fragView.findViewById(R.id.tv_tv_chadd); + mChReduce = (TextView) fragView.findViewById(R.id.tv_tv_chreduce); + numerOne = (TextView) fragView.findViewById(R.id.tv_tv_one); + numerTwo = (TextView) fragView.findViewById(R.id.tv_tv_two); + numerThree = (TextView) fragView.findViewById(R.id.tv_tv_three); + numerFour = (TextView) fragView.findViewById(R.id.tv_tv_four); + numerFive = (TextView) fragView.findViewById(R.id.tv_tv_five); + numerSix = (TextView) fragView.findViewById(R.id.tv_tv_six); + numerSeven = (TextView) fragView.findViewById(R.id.tv_tv_seven); + numerEight = (TextView) fragView.findViewById(R.id.tv_tv_eight); + numerNine = (TextView) fragView.findViewById(R.id.tv_tv_nine); + numerZero = (TextView) fragView.findViewById(R.id.tv_tv_zero); + + + mOpenCloseBg = (TextView) fragView.findViewById(R.id.tv_tv_open_bg); + mVoiceBg = (TextView) fragView.findViewById(R.id.tv_tv_voice_bg); + mNoVoiceBg = (TextView) fragView.findViewById(R.id.tv_no_voice_bg); + mOkBg = (TextView) fragView.findViewById(R.id.tv_tv_ok_bg); + mHomeBg = (TextView) fragView.findViewById(R.id.tv_tv_home_bg); + mMenuBg = (TextView) fragView.findViewById(R.id.tv_tv_menu_bg); + mBackBg = (TextView) fragView.findViewById(R.id.tv_tv_back_bg); + mSignalBg = (TextView) fragView.findViewById(R.id.tv_tv_signal_bg); + mVolAddBg = (TextView) fragView.findViewById(R.id.tv_tv_voladd_bg); + mVolReduceBg = (TextView) fragView.findViewById(R.id.tv_tv_volreduce_bg); + mChAddBg = (TextView) fragView.findViewById(R.id.tv_tv_chadd_bg); + mChReduceBg = (TextView) fragView.findViewById(R.id.tv_tv_chreduce_bg); + numerOneBg = (TextView) fragView.findViewById(R.id.tv_tv_one_bg); + numerTwoBg = (TextView) fragView.findViewById(R.id.tv_tv_two_bg); + numerThreeBg = (TextView) fragView.findViewById(R.id.tv_tv_three_bg); + numerFourBg = (TextView) fragView.findViewById(R.id.tv_tv_four_bg); + numerFiveBg = (TextView) fragView.findViewById(R.id.tv_tv_five_bg); + numerSixBg = (TextView) fragView.findViewById(R.id.tv_tv_six_bg); + numerSevenBg = (TextView) fragView.findViewById(R.id.tv_tv_seven_bg); + numerEightBg = (TextView) fragView.findViewById(R.id.tv_tv_eight_bg); + numerNineBg = (TextView) fragView.findViewById(R.id.tv_tv_nine_bg); + numerZeroBg = (TextView) fragView.findViewById(R.id.tv_tv_zero_bg); + + mDownMark = (ImageView) fragView.findViewById(R.id.iv_down_bg); + mLeftMark = (ImageView) fragView.findViewById(R.id.iv_left_bg); + mUpMark = (ImageView) fragView.findViewById(R.id.iv_up_bg); + mRightMark = (ImageView) fragView.findViewById(R.id.iv_right_bg); + mOpenCloseMark = (ImageView) fragView.findViewById(R.id.tv_tv_open_mark); + mVoiceMark = (ImageView) fragView.findViewById(R.id.tv_tv_voice_mark); + mNoVoiceMark = (ImageView) fragView.findViewById(R.id.tv_no_voice_mark); + mOkMark = (ImageView) fragView.findViewById(R.id.tv_tv_ok_mark); + mHomeMark = (ImageView) fragView.findViewById(R.id.tv_tv_home_mark); + mMenuMark = (ImageView) fragView.findViewById(R.id.tv_tv_menu_mark); + mBackMark = (ImageView) fragView.findViewById(R.id.tv_tv_back_mark); + mSignalMark = (ImageView) fragView.findViewById(R.id.tv_tv_signal_mark); + mVolAddMark = (ImageView) fragView.findViewById(R.id.tv_tv_voladd_mark); + mVolReduceMark = (ImageView) fragView.findViewById(R.id.tv_tv_volreduce_mark); + mChAddMark = (ImageView) fragView.findViewById(R.id.tv_tv_chadd_mark); + mChReduceMark = (ImageView) fragView.findViewById(R.id.tv_tv_chreduce_mark); + numerOneMark = (ImageView) fragView.findViewById(R.id.tv_tv_one_mark); + numerTwoMark = (ImageView) fragView.findViewById(R.id.tv_tv_two_mark); + numerThreeMark = (ImageView) fragView.findViewById(R.id.tv_tv_three_mark); + numerFourMark = (ImageView) fragView.findViewById(R.id.tv_tv_four_mark); + numerFiveMark = (ImageView) fragView.findViewById(R.id.tv_tv_five_mark); + numerSixMark = (ImageView) fragView.findViewById(R.id.tv_tv_six_mark); + numerSevenMark = (ImageView) fragView.findViewById(R.id.tv_tv_seven_mark); + numerEightMark = (ImageView) fragView.findViewById(R.id.tv_tv_eight_mark); + numerNineMark = (ImageView) fragView.findViewById(R.id.tv_tv_nine_mark); + numerZeroMark = (ImageView) fragView.findViewById(R.id.tv_tv_zero_mark); + + mVoicePic = (ImageView) fragView.findViewById(R.id.iv_tv_voice); + mNoVoicePic = (ImageView) fragView.findViewById(R.id.iv_no_voice); + mHomePic = (ImageView) fragView.findViewById(R.id.iv_tv_home); + mMenuPic = (ImageView) fragView.findViewById(R.id.iv_tv_menu); + mBackPic = (ImageView) fragView.findViewById(R.id.iv_tv_back); + mVolAddPic = (ImageView) fragView.findViewById(R.id.iv_tv_add); + mVolRedPic = (ImageView) fragView.findViewById(R.id.iv_tv_reduce); + mChAddPic = (ImageView) fragView.findViewById(R.id.iv_tv_ch_add); + mChRedPic = (ImageView) fragView.findViewById(R.id.iv_tv_ch_reduce); + chartView = (PieChartView) fragView.findViewById(R.id.pieChartView); + chartView.setFanClickAbleData( + new double[]{90, 90, 90, 90}, + new int[]{Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT}, 0, mHandler); + setPanClick(); + mAlphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.alpha_anim_device); + mTitleView = (TitleView) fragView.findViewById(R.id.title_tv); + if (TextUtils.isEmpty(devicesBean.getDeviceBrand())) { + tvName = "电视"; + } else { + tvName = devicesBean.getDeviceBrand(); + } + mTitleView.setHead(tvName); + mTitleView.clearBackGroud(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + clearAlph(); + clearMark(); + if (isLearn) { + isLearn = false; + //查询学习按键 + subsetGetControlKeys(); + showControl(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(TV_TAG, ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", TV_TAG); + startActivity(intent); + break; + case 4: + + //遥控学习 + isLearn = true; + showLearn(); + //查询学习按键 + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent(); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + + @Override + public void onFunctionText() { + + } + }); + + if (isLearn) { + showLearn(); + } else { + showControl(); + } + //查询学习按键 + subsetGetControlKeys(); + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void clearMark() { + learnComplete.setVisibility(View.GONE); + mOpenCloseMark.setVisibility(View.GONE); + mUpMark.setVisibility(View.GONE); + mDownMark.setVisibility(View.GONE); + mLeftMark.setVisibility(View.GONE); + mRightMark.setVisibility(View.GONE); + mOkMark.setVisibility(View.GONE); + mHomeMark.setVisibility(View.GONE); + mBackMark.setVisibility(View.GONE); + mSignalMark.setVisibility(View.GONE); + mMenuMark.setVisibility(View.GONE); + mVoiceMark.setVisibility(View.GONE); + mNoVoiceMark.setVisibility(View.GONE); + mVolAddMark.setVisibility(View.GONE); + mVolReduceMark.setVisibility(View.GONE); + mChAddMark.setVisibility(View.GONE); + mChReduceMark.setVisibility(View.GONE); + numerOneMark.setVisibility(View.GONE); + numerTwoMark.setVisibility(View.GONE); + numerThreeMark.setVisibility(View.GONE); + numerFourMark.setVisibility(View.GONE); + numerFiveMark.setVisibility(View.GONE); + numerSixMark.setVisibility(View.GONE); + numerSevenMark.setVisibility(View.GONE); + numerEightMark.setVisibility(View.GONE); + numerNineMark.setVisibility(View.GONE); + numerZeroMark.setVisibility(View.GONE); + } + + private void clearAlph() { + mVolReduceBg.clearAnimation(); + mVolAddBg.clearAnimation(); + mChReduceBg.clearAnimation(); + mChAddBg.clearAnimation(); + mBackBg.clearAnimation(); + mSignalBg.clearAnimation(); + mMenuBg.clearAnimation(); + mHomeBg.clearAnimation(); + mOkBg.clearAnimation(); + mRight.clearAnimation(); + mLeft.clearAnimation(); + mDown.clearAnimation(); + mUp.clearAnimation(); + mOpenCloseBg.clearAnimation(); + mVoiceBg.clearAnimation(); + mNoVoiceBg.clearAnimation(); + numerOneBg.clearAnimation(); + numerTwoBg.clearAnimation(); + numerThreeBg.clearAnimation(); + numerFourBg.clearAnimation(); + numerFiveBg.clearAnimation(); + numerSixBg.clearAnimation(); + numerSevenBg.clearAnimation(); + numerEightBg.clearAnimation(); + numerNineBg.clearAnimation(); + numerZeroBg.clearAnimation(); + } + + private void showControl() { + // mTitleView.setHeadFuntionTxt(R.string.voice_said); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + learningLl.setVisibility(View.GONE); + tvContinueLearnLl.setVisibility(View.GONE); + controlShowAlph(); + } + + private void controlShowAlph() { + if (!mOpenCloseTag) { + mOpenClose.setAlpha(0.5f); + mOpenClose.setEnabled(false); + } else { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + } + if (!mVoiceTag) { + mVoice.setAlpha(0.5f); + mVoicePic.setAlpha(0.5f); + mVoice.setEnabled(false); + } else { + mVoice.setAlpha(1.0f); + mVoicePic.setAlpha(1.0f); + mVoice.setEnabled(true); + } + if (!mNoVoiceTag) { + mNoVoice.setAlpha(0.5f); + mNoVoicePic.setAlpha(0.5f); + mNoVoice.setEnabled(false); + } else { + mNoVoice.setAlpha(1.0f); + mNoVoicePic.setAlpha(1.0f); + mNoVoice.setEnabled(true); + } + if (!mOkTag) { + mOk.setAlpha(0.5f); + mOk.setEnabled(false); + } else { + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + } + if (!mHomeTag) { + mHome.setAlpha(0.5f); + mHomePic.setAlpha(0.5f); + mHome.setEnabled(false); + } else { + mHome.setAlpha(1.0f); + mHomePic.setAlpha(1.0f); + mHome.setEnabled(true); + } + if (!mBackTag) { + mBack.setAlpha(0.5f); + mBackPic.setAlpha(0.5f); + mBack.setEnabled(false); + } else { + mBack.setAlpha(1.0f); + mBackPic.setAlpha(1.0f); + mBack.setEnabled(true); + } + if (!mMenuTag) { + mMenu.setAlpha(0.5f); + mMenuPic.setAlpha(0.5f); + mMenu.setEnabled(false); + } else { + mMenu.setAlpha(1.0f); + mMenuPic.setAlpha(1.0f); + mMenu.setEnabled(true); + } + if (!mVolAddTag) { + mVolAdd.setAlpha(0.5f); + mVolAddPic.setAlpha(0.5f); + mVolAdd.setEnabled(false); + } else { + mVolAdd.setAlpha(1.0f); + mVolAddPic.setAlpha(1.0f); + mVolAdd.setEnabled(true); + } + if (!mVolReduceTag) { + mVolReduce.setAlpha(0.5f); + mVolRedPic.setAlpha(0.5f); + mVolReduce.setEnabled(false); + } else { + mVolReduce.setAlpha(1.0f); + mVolRedPic.setAlpha(1.0f); + mVolReduce.setEnabled(true); + } + if (!mChAddTag) { + mChAdd.setAlpha(0.5f); + mChAddPic.setAlpha(0.5f); + mChAdd.setEnabled(false); + } else { + mChAdd.setAlpha(1.0f); + mChAddPic.setAlpha(1.0f); + mChAdd.setEnabled(true); + } + if (!mChReduceTag) { + mChReduce.setAlpha(0.5f); + mChRedPic.setAlpha(0.5f); + mChReduce.setEnabled(false); + } else { + mChReduce.setAlpha(1.0f); + mChRedPic.setAlpha(1.0f); + mChReduce.setEnabled(true); + } + if (!numerOneTag) { + numerOne.setAlpha(0.5f); + numerOne.setEnabled(false); + } else { + numerOne.setAlpha(1.0f); + numerOne.setEnabled(true); + } + if (!numerTwoTag) { + numerTwo.setAlpha(0.5f); + numerTwo.setEnabled(false); + } else { + numerTwo.setAlpha(1.0f); + numerTwo.setEnabled(true); + } + if (!numerThreeTag) { + numerThree.setAlpha(0.5f); + numerThree.setEnabled(false); + } else { + numerThree.setAlpha(1.0f); + numerThree.setEnabled(true); + } + if (!numerFourTag) { + numerFour.setAlpha(0.5f); + numerFour.setEnabled(false); + } else { + numerFour.setAlpha(1.0f); + numerFour.setEnabled(true); + } + if (!numerFiveTag) { + numerFive.setAlpha(0.5f); + numerFive.setEnabled(false); + } else { + numerFive.setAlpha(1.0f); + numerFive.setEnabled(true); + } + if (!numerSixTag) { + numerSix.setAlpha(0.5f); + numerSix.setEnabled(false); + } else { + numerSix.setAlpha(1.0f); + numerSix.setEnabled(true); + } + if (!numerSevenTag) { + numerSeven.setAlpha(0.5f); + numerSeven.setEnabled(false); + } else { + numerSeven.setAlpha(1.0f); + numerSeven.setEnabled(true); + } + if (!numerEightTag) { + numerEight.setAlpha(0.5f); + numerEight.setEnabled(false); + } else { + numerEight.setAlpha(1.0f); + numerEight.setEnabled(true); + } + if (!numerNineTag) { + numerNine.setAlpha(0.5f); + numerNine.setEnabled(false); + } else { + numerNine.setAlpha(1.0f); + numerNine.setEnabled(true); + } + if (!numerZeroTag) { + numerZero.setAlpha(0.5f); + numerZero.setEnabled(false); + } else { + numerZero.setAlpha(1.0f); + numerZero.setEnabled(true); + } + if (!mSignalTag) { + mSignal.setAlpha(0.5f); + mSignal.setEnabled(false); + } else { + mSignal.setAlpha(1.0f); + mSignal.setEnabled(true); + } + } + + private void showLearn() { + mTitleView.setHeadFuntionTxt(R.string.save); + mTitleView.setHeadFuntionGone(); + learnComplete.setVisibility(View.GONE); + learningLl.setVisibility(View.VISIBLE); + tvContinueLearnLl.setVisibility(View.GONE); + setLearnAlph(); + learnShowMark(); + + if (!mOpenCloseTag) { + showTopTxtAndAlpha(getString(R.string.Switch), mOpenCloseBg); + /*if (isTv) { + } else { + showTopTxtAndAlpha("机顶盒", mOpenCloseBg); + }*/ + } + /*else if (!mVoiceTag) { + showTopTxtAndAlpha(getString(R.string.tv2), mVoiceBg); + *//*if (isTv) { + showTopTxtAndAlpha("静音", mVoiceBg); + } else { + showTopTxtAndAlpha("电视", mVoiceBg); + }*//* + } */ + else if (!mUpTag) { + showTopTxtAndAlpha("向上", mUp); + } else if (!mDownTag) { + showTopTxtAndAlpha("向下", mDown); + } else if (!mLeftTag) { + showTopTxtAndAlpha("向左", mLeft); + } else if (!mRightTag) { + showTopTxtAndAlpha("向右", mRight); + } else if (!mOkTag) { + showTopTxtAndAlpha("OK", mOkBg); + } else if (!mHomeTag) { + showTopTxtAndAlpha("HOME", mHomeBg); + } else if (!mMenuTag) { + showTopTxtAndAlpha("菜单", mMenuBg); + } else if (!mBackTag) { + showTopTxtAndAlpha("返回", mBackBg); + } else if (!mVolAddTag) { + showTopTxtAndAlpha("音量+", mVolAddBg); + } else if (!mVolReduceTag) { + showTopTxtAndAlpha("音量-", mVolReduceBg); + } else if (!mChAddTag) { + showTopTxtAndAlpha("频道+", mChAddBg); + } else if (!mChReduceTag) { + showTopTxtAndAlpha("频道-", mChReduceBg); + } + /*else if (!numerOneTag) { + showTopTxtAndAlpha("1", numerOneBg); + } else if (!numerTwoTag) { + showTopTxtAndAlpha("2", numerTwoBg); + } else if (!numerThreeTag) { + showTopTxtAndAlpha("3", numerThreeBg); + } else if (!numerFourTag) { + showTopTxtAndAlpha("4", numerFourBg); + } else if (!numerFiveTag) { + showTopTxtAndAlpha("5", numerFiveBg); + } else if (!numerSixTag) { + showTopTxtAndAlpha("6", numerSixBg); + } else if (!numerSevenTag) { + showTopTxtAndAlpha("7", numerSevenBg); + } else if (!numerEightTag) { + showTopTxtAndAlpha("8", numerEightBg); + } else if (!numerNineTag) { + showTopTxtAndAlpha("9", numerNineBg); + } else if (!numerZeroTag) { + showTopTxtAndAlpha("0", numerZeroBg); + } */ + else if (!mSignalTag) { + showTopTxtAndAlpha("信号源", mSignalBg); + } else if (!mNoVoiceTag) { + showTopTxtAndAlpha("静音", mNoVoiceBg); + } else { + learningLl.setVisibility(View.GONE); + learnComplete.setVisibility(View.VISIBLE); + clearAlph(); + } + } + + private void showTopTxtAndAlpha(String text, TextView textView) { + learningLl.setVisibility(View.VISIBLE); + learnComplete.setVisibility(View.GONE); + learnInstruction.setText(text); + clearAlph(); + textView.startAnimation(mAlphaAnimation); + } + + private void setLearnAlph() { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + mVoice.setAlpha(1.0f); + mVoice.setEnabled(true); + mNoVoice.setAlpha(1.0f); + mNoVoice.setEnabled(true); + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + mHome.setAlpha(1.0f); + mHome.setEnabled(true); + mBack.setAlpha(1.0f); + mBack.setEnabled(true); + mSignal.setAlpha(1.0f); + mSignal.setEnabled(true); + mMenu.setAlpha(1.0f); + mMenu.setEnabled(true); + mVolAdd.setAlpha(1.0f); + mVolAdd.setEnabled(true); + mVolReduce.setAlpha(1.0f); + mVolReduce.setEnabled(true); + mChAdd.setAlpha(1.0f); + mChAdd.setEnabled(true); + mChReduce.setAlpha(1.0f); + mChReduce.setEnabled(true); + mNoVoicePic.setAlpha(1.0f); + mHomePic.setAlpha(1.0f); + mMenuPic.setAlpha(1.0f); + mBackPic.setAlpha(1.0f); + mVolAddPic.setAlpha(1.0f); + mVolRedPic.setAlpha(1.0f); + mChAddPic.setAlpha(1.0f); + mChRedPic.setAlpha(1.0f); + + /*numerOne.setAlpha(1.0f); + numerOne.setEnabled(true); + numerTwo.setAlpha(1.0f); + numerTwo.setEnabled(true); + numerThree.setAlpha(1.0f); + numerThree.setEnabled(true); + numerFour.setAlpha(1.0f); + numerFour.setEnabled(true); + numerFive.setAlpha(1.0f); + numerFive.setEnabled(true); + numerSix.setAlpha(1.0f); + numerSix.setEnabled(true); + numerSeven.setAlpha(1.0f); + numerSeven.setEnabled(true); + numerEight.setAlpha(1.0f); + numerEight.setEnabled(true); + numerNine.setAlpha(1.0f); + numerNine.setEnabled(true); + numerZero.setAlpha(1.0f); + numerZero.setEnabled(true);*/ + } + + private void learnShowMark() { + if (mOpenCloseTag) { + mOpenCloseMark.setVisibility(View.VISIBLE); + } + if (mVoiceTag) { + mVoiceMark.setVisibility(View.VISIBLE); + } + if (mNoVoiceTag) { + mNoVoiceMark.setVisibility(View.VISIBLE); + } + if (mOkTag) { + mOkMark.setVisibility(View.VISIBLE); + } + if (mHomeTag) { + mHomeMark.setVisibility(View.VISIBLE); + } + if (mBackTag) { + mBackMark.setVisibility(View.VISIBLE); + } + if (mSignalTag) { + mSignalMark.setVisibility(View.VISIBLE); + } + if (mMenuTag) { + mMenuMark.setVisibility(View.VISIBLE); + } + if (mVolAddTag) { + mVolAddMark.setVisibility(View.VISIBLE); + } + if (mVolReduceTag) { + mVolReduceMark.setVisibility(View.VISIBLE); + } + if (mChAddTag) { + mChAddMark.setVisibility(View.VISIBLE); + } + if (mChReduceTag) { + mChReduceMark.setVisibility(View.VISIBLE); + } + if (mDownTag) { + mDownMark.setVisibility(View.VISIBLE); + } + if (mLeftTag) { + mLeftMark.setVisibility(View.VISIBLE); + } + if (mUpTag) { + mUpMark.setVisibility(View.VISIBLE); + } + if (mRightTag) { + mRightMark.setVisibility(View.VISIBLE); + } + /*if (numerOneTag) { + numerOneMark.setVisibility(View.VISIBLE); + } + if (numerTwoTag) { + numerTwoMark.setVisibility(View.VISIBLE); + } + if (numerThreeTag) { + numerThreeMark.setVisibility(View.VISIBLE); + } + if (numerFourTag) { + numerFourMark.setVisibility(View.VISIBLE); + } + if (numerFiveTag) { + numerFiveMark.setVisibility(View.VISIBLE); + } + if (numerSixTag) { + numerSixMark.setVisibility(View.VISIBLE); + } + if (numerSevenTag) { + numerSevenMark.setVisibility(View.VISIBLE); + } + if (numerEightTag) { + numerEightMark.setVisibility(View.VISIBLE); + } + if (numerNineTag) { + numerNineMark.setVisibility(View.VISIBLE); + } + if (numerZeroTag) { + numerZeroMark.setVisibility(View.VISIBLE); + }*/ + } + + private void subsetGetControlKeys() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", TV_TAG); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETCONTROLKEYS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetControlKeys", "onSuccess()" + respone); + Key5Entity obj = JSON.parseObject(respone, Key5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_STUDY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_STUDY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_STUDY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mVoice.setOnClickListener(this); + mNoVoice.setOnClickListener(this); + mOk.setOnClickListener(this); + mHome.setOnClickListener(this); + mMenu.setOnClickListener(this); + mBack.setOnClickListener(this); + mSignal.setOnClickListener(this); + mVolAdd.setOnClickListener(this); + mVolReduce.setOnClickListener(this); + mChAdd.setOnClickListener(this); + mChReduce.setOnClickListener(this); + tvContinueLearnLl.setOnClickListener(this); + numerOne.setOnClickListener(this); + numerTwo.setOnClickListener(this); + numerThree.setOnClickListener(this); + numerFour.setOnClickListener(this); + numerFive.setOnClickListener(this); + numerSix.setOnClickListener(this); + numerSeven.setOnClickListener(this); + numerEight.setOnClickListener(this); + numerNine.setOnClickListener(this); + numerZero.setOnClickListener(this); + + mFrequencyChannel.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + Intent intent = new Intent(getContext(), FrequencyChannelActivity.class); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("ziId", ziId); + intent.putExtra("nameTag", ""); + intent.putExtra("id", devicesBean.getId()); + intent.putExtra("deviceType", ""); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivity(intent); + + } + }); + + mVolAdd.setOnTouchListener(new View.OnTouchListener() { + boolean isLongClickModule = false; + boolean isLongClicking = false; + boolean isUp = false; + + @Override + public boolean onTouch(View v, MotionEvent event) { + long downTime = System.currentTimeMillis(); + if (event.getAction() == MotionEvent.ACTION_DOWN) { + isUp = false; + Log.i("OnTouchListenerDown", "TvControlActivity onTouch()" + downTime); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + if (!isUp) { + Log.i("OnTouchListenerDown", "TvControlActivity onTouch()" + "我开始长按了"); + longPressTv(TV_VOLADD); + } else { + Log.i("OnTouchListenerDown", "TvControlActivity onTouch()" + "我已经抬起了"); + } + } + }, 200); + } + if (event.getAction() == MotionEvent.ACTION_UP) { + isUp = true; + long upTime = System.currentTimeMillis(); + Log.i("OnTouchListenerUp", "TvControlActivity onTouch()" + (upTime - downTime)); + if ((upTime - downTime) >= 200) { + Log.i("OnTouchListenerUp", "TvControlActivity onTouch()" + "长按"); + isLongClickModule = true; + } else { + Log.i("OnTouchListenerUp", "TvControlActivity onTouch()" + "非长按"); + isLongClickModule = false; + } + if (isLongClickModule) { + Log.i("OnTouchListenerUp", "TvControlActivity onTouch()" + "取消长按控制"); + cancleLongPress(TV_VOLADD); + } + if (isLongClickModule) { + isLongClickModule = false; + isLongClicking = false; + } + } + if (event.getAction() == MotionEvent.ACTION_OUTSIDE) { + Log.i("OnTouchListenerOut", "TvControlActivity onTouch()"); + cancleLongPress(TV_VOLADD); + } + return false; + } + }); + + mVolReduce.setOnTouchListener(new View.OnTouchListener() { + boolean isLongClickModule = false; + boolean isLongClicking = false; + boolean isUp = false; + + @Override + public boolean onTouch(View v, MotionEvent event) { + long downTime = System.currentTimeMillis(); + if (event.getAction() == MotionEvent.ACTION_DOWN) { + isUp = false; + Log.i("OnTouchListenerDown", "TvControlActivity onTouch()" + downTime); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + if (!isUp) { + Log.i("OnTouchListenerDown", "TvControlActivity onTouch()" + "我开始长按了"); + longPressTv(TV_VOLREDUCE); + } else { + Log.i("OnTouchListenerDown", "TvControlActivity onTouch()" + "我已经抬起了"); + } + } + }, 200); + } + if (event.getAction() == MotionEvent.ACTION_UP) { + isUp = true; + long upTime = System.currentTimeMillis(); + Log.i("OnTouchListenerUp", "TvControlActivity onTouch()" + (upTime - downTime)); + if ((upTime - downTime) >= 200) { + isLongClickModule = true; + } else { + isLongClickModule = false; + } + if (isLongClickModule) { + cancleLongPress(TV_VOLREDUCE); + } + if (isLongClickModule) { + isLongClickModule = false; + isLongClicking = false; + } + } + return false; + } + }); + } + + private void cancleLongPress(String sendMsg) { + /*NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", userId); + map.put("sendMsg", sendMsg); + util.requestPostByAsyn(ziId, NetWorkUrl.CANCLE_LONGPRESS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancleLongPress", "onSuccess: " + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(CANCLE_LONGPRESS_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(CANCLE_LONGPRESS_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(CANCLE_LONGPRESS_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + private void longPressTv(String sendMsg) { + /*NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", userId); + map.put("sendMsg", sendMsg); + util.requestPostByAsyn(ziId, NetWorkUrl.LONGPRESS_TV, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("longPressTv", "onSuccess: " + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(LONGPRESS_TV_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + Message msg = mHandler.obtainMessage(LONGPRESS_TV_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(LONGPRESS_TV_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(LONGPRESS_TV_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } + + + private void setPanClick() { + chartView.setOnFanClick(new OnFanItemClickListener() { + @Override + public void onFanClick(FanItem fanItem) { + mId = fanItem.getId(); + Intent intent; + if (isLearn) { + switch (mId) { + case 0: + mDown.setVisibility(View.VISIBLE); + toLearnByNmber(3); + break; + case 1: + mLeft.setVisibility(View.VISIBLE); + toLearnByNmber(4); + break; + case 2: + mUp.setVisibility(View.VISIBLE); + toLearnByNmber(2); + break; + case 3: + mRight.setVisibility(View.VISIBLE); + toLearnByNmber(5); + break; + } + } else { + Log.i("OnTouchListener", "点击---处理" + mId); + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + } + break; + } + } + } + + @Override + public void onFanLongClick(FanItem fanItem) { + mId = fanItem.getId(); + if (isLearn) { + + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理" + mId); + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + longPressTv(TV_DOWN); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + longPressTv(TV_LEFT); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + longPressTv(TV_UP); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + longPressTv(TV_RIGHT); + } + break; + } + + } + } + } + + @Override + public void onUp(FanItem fanItem) { + if (fanItem != null) { + mId = fanItem.getId(); + } + if (isLearn) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理抬起" + mId); + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + cancleLongPress(TV_DOWN); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + cancleLongPress(TV_LEFT); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + cancleLongPress(TV_UP); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + cancleLongPress(TV_RIGHT); + break; + } + } else { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Log.i("OnTouchListener", "点击---处理抬起" + mId); + switch (mId) { + case 0: + if (mDownTag) { + subsetControl("down"); + } + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + if (mLeftTag) { + subsetControl("left"); + } + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + if (mUpTag) { + subsetControl("up"); + } + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + if (mRightTag) { + subsetControl("right"); + } + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } + } + } + }); + } + + @Override + public void onClick(View v) { + if (isLearn) { + switch (v.getId()) { + case R.id.tv_tv_open: + toLearnByNmber(10); + /*if (isTv) { + toLearnByNmber(10); + } else { + toLearnByNmber(1); + }*/ + break; + case tv_tv_voice: + toLearnByNmber(1); + /*if (isTv) { + toLearnByNmber(13); + } else { + toLearnByNmber(10); + }*/ + break; + case R.id.tv_no_voice: + toLearnByNmber(13); + break; + case R.id.tv_tv_ok: + toLearnByNmber(6); + break; + case R.id.tv_tv_home: + toLearnByNmber(7); + break; + case R.id.tv_tv_menu: + toLearnByNmber(9); + break; + case R.id.tv_tv_back: + toLearnByNmber(8); + break; + case R.id.tv_tv_voladd: + toLearnByNmber(11); + break; + case R.id.tv_tv_volreduce: + toLearnByNmber(12); + break; + case R.id.tv_tv_chadd: + toLearnByNmber(32); + break; + case R.id.tv_tv_chreduce: + toLearnByNmber(33); + break; + case R.id.tv_tv_one: + toLearnByNmber(21); + break; + case R.id.tv_tv_two: + toLearnByNmber(22); + break; + case R.id.tv_tv_three: + toLearnByNmber(23); + break; + case R.id.tv_tv_four: + toLearnByNmber(24); + break; + case R.id.tv_tv_five: + toLearnByNmber(25); + break; + case R.id.tv_tv_six: + toLearnByNmber(26); + break; + case R.id.tv_tv_seven: + toLearnByNmber(27); + break; + case R.id.tv_tv_eight: + toLearnByNmber(28); + break; + case R.id.tv_tv_nine: + toLearnByNmber(29); + break; + case R.id.tv_tv_zero: + toLearnByNmber(30); + break; + case R.id.tv_tv_signal: + toLearnByNmber(31); + break; + } + } else { + switch (v.getId()) { + case R.id.tv_tv_open: + subsetControl("power"); + break; + case tv_tv_voice: + subsetControl("powerbox"); + break; + case R.id.tv_no_voice: + subsetControl("mute"); + break; + case R.id.tv_tv_ok: + subsetControl("ok"); + break; + case R.id.tv_tv_home: + subsetControl("boot"); + break; + case R.id.tv_tv_menu: + subsetControl("menu"); + break; + case R.id.tv_tv_back: + subsetControl("back"); + break; + case R.id.tv_tv_voladd: + subsetControl("volplus"); + break; + case R.id.tv_tv_volreduce: + subsetControl("volminus"); + break; + case R.id.tv_tv_chadd: + subsetControl("chplus"); + break; + case R.id.tv_tv_chreduce: + subsetControl("chminus"); + break; + case R.id.tv_tv_one: + subsetControl("1"); + break; + case R.id.tv_tv_two: + subsetControl("2"); + break; + case R.id.tv_tv_three: + subsetControl("3"); + break; + case R.id.tv_tv_four: + subsetControl("4"); + break; + case R.id.tv_tv_five: + subsetControl("5"); + break; + case R.id.tv_tv_six: + subsetControl("6"); + break; + case R.id.tv_tv_seven: + subsetControl("7"); + break; + case R.id.tv_tv_eight: + subsetControl("8"); + break; + case R.id.tv_tv_nine: + subsetControl("9"); + break; + case R.id.tv_tv_zero: + subsetControl("0"); + break; + case R.id.tv_tv_signal: + subsetControl("signal"); + break; + case R.id.ll_tv_continue_learn: + isLearn = true; + //查询学习按键 + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + } + } + } + + private void toLearnByNmber(int number) { + Intent intent = new Intent(getContext(), TvLearnGuideActivity.class); + intent.putExtra("learnGuide", number); + intent.putExtra("ziId", ziId); + intent.putExtra("isTv", true); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivityForResult(intent, LEARN_RESULT); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case QUERY_STUDY_SUCCESS: + Key5Entity entity1 = (Key5Entity) msg.obj; + setIsLearned(entity1); + if (isLearn) { + showLearn(); + } else { + showControl(); + } + break; + case QUERY_STUDY_FAIL: + + break; + case SEND_CONTROL_ORDER_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case LONGPRESS_TV_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity1.getDeviceType().equals(TV_TAG) && !TextUtils.isEmpty(nettyEntity1.getOpenFlag())) { + if (nettyEntity1.getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + ToastUtil.show(getContext(), "电视已打开"); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void setIsLearned(Key5Entity entity1) { + List entity1Obj = entity1.getData(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + switch (entity1Obj.get(i).getName()) { + case "power": + case "poweroff": + mOpenCloseTag = true; + break; + case "up": + mUpTag = true; + break; + case "down": + mDownTag = true; + break; + case "left": + mLeftTag = true; + break; + case "right": + mRightTag = true; + break; + case "ok": + mOkTag = true; + break; + case "boot": + mHomeTag = true; + break; + case "back": + mBackTag = true; + break; + case "menu": + mMenuTag = true; + break; + case "volplus": + mVolAddTag = true; + break; + case "volminus": + mVolReduceTag = true; + break; + case "chplus": + mChAddTag = true; + break; + case "chminus": + mChReduceTag = true; + break; + case "powerbox": + isTv = false; + mVoiceTag = true; + break; + case "mute": + mNoVoiceTag = true; + break; + case "1": + numerOneTag = true; + break; + case "2": + numerTwoTag = true; + break; + case "3": + numerThreeTag = true; + break; + case "4": + numerFourTag = true; + break; + case "5": + numerFiveTag = true; + break; + case "6": + numerSixTag = true; + break; + case "7": + numerSevenTag = true; + break; + case "8": + numerEightTag = true; + break; + case "9": + numerNineTag = true; + break; + case "0": + numerZeroTag = true; + break; + case "signal": + mSignalTag = true; + break; + } + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(devicesBean.getId(), TV_TAG); + if (isLearn) { + subsetGetControlKeys(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case LEARN_RESULT: + if (data != null && data.getExtras().get("learnGuide") != null) { + int learnGuide = (int) data.getExtras().get("learnGuide"); + switch (learnGuide) { + case 1: + mOpenCloseMark.setVisibility(View.VISIBLE); + break; + case 2: + mUpMark.setVisibility(View.VISIBLE); + break; + case 3: + mDownMark.setVisibility(View.VISIBLE); + break; + case 4: + mLeftMark.setVisibility(View.VISIBLE); + break; + case 5: + mRightMark.setVisibility(View.VISIBLE); + break; + case 6: + mOkMark.setVisibility(View.VISIBLE); + break; + case 7: + mHomeMark.setVisibility(View.VISIBLE); + break; + case 8: + mBackMark.setVisibility(View.VISIBLE); + break; + case 9: + mMenuMark.setVisibility(View.VISIBLE); + break; + case 10: + mVoiceMark.setVisibility(View.VISIBLE); + break; + case 11: + mVolAddMark.setVisibility(View.VISIBLE); + break; + case 12: + mVolReduceMark.setVisibility(View.VISIBLE); + break; + case 32: + mChAddMark.setVisibility(View.VISIBLE); + break; + case 33: + mChReduceMark.setVisibility(View.VISIBLE); + break; + case 13: + mNoVoiceMark.setVisibility(View.VISIBLE); + break; + case 21: + numerOneMark.setVisibility(View.VISIBLE); + break; + case 22: + numerTwoMark.setVisibility(View.VISIBLE); + break; + case 23: + numerThreeMark.setVisibility(View.VISIBLE); + break; + case 24: + numerFourMark.setVisibility(View.VISIBLE); + break; + case 25: + numerFiveMark.setVisibility(View.VISIBLE); + break; + case 26: + numerSixMark.setVisibility(View.VISIBLE); + break; + case 27: + numerSevenMark.setVisibility(View.VISIBLE); + break; + case 28: + numerEightMark.setVisibility(View.VISIBLE); + break; + case 29: + numerNineMark.setVisibility(View.VISIBLE); + break; + case 30: + numerZeroMark.setVisibility(View.VISIBLE); + break; + case 31: + mSignalMark.setVisibility(View.VISIBLE); + break; + } + } + break; + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("deviceName") != null) { + tvName = data.getExtras().get("deviceName").toString().trim(); + mTitleView.setHead(tvName); + } + break; + } + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", TV_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(TvA1Fragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + TvA1Fragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/TvA2BoxFragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/TvA2BoxFragment.java new file mode 100644 index 0000000..d1133c0 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/TvA2BoxFragment.java @@ -0,0 +1,1957 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.AlphaAnimation; +import android.view.animation.AnimationUtils; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.Key5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.database.entity.entitya2.KeyEntity; +import com.yonsz.z1.database.entity.entitya2.LearnWhatEvent; +import com.yonsz.z1.database.entity.entitya2.LoadEvent; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.device.tv.FanItem; +import com.yonsz.z1.device.tv.OnFanItemClickListener; +import com.yonsz.z1.device.tv.PieChartView; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.devicea2.tva2.TvLearnGuideA2Activity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.customview.SaveCodeDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.mine.aboutversion.feature.Callback3; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.utils.ToolsUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.tv.FrequencyChannelActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.tv_no_voice; +import static com.yonsz.z1.R.id.tv_tv_voice; +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.device.tv.PieChartView.isLongClickModule1; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_FAIL; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS_TV; +import static com.yonsz.z1.net.Constans.FAN_LEARN_ING; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_BRAND_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.isLocalControl; +import static com.yonsz.z1.net.NetWorkUrl.CANCEL_DOWNLOAD; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETCONTROLKEYS; +import static com.yonsz.z1.net.NetWorkUrl.YKY_DOWNLOAD; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class TvA2BoxFragment extends BaseFragment implements View.OnClickListener { + public int mId; + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + private TitleView mTitleView; + private PieChartView chartView; + private String userId; + private String ziId; + private TextView mOpenClose, mVoice, mNoVoice, mOk, mHome, mBack, mMenu, mVolAdd, mVolReduce, mDown, mLeft, mUp, mRight, mSignal, mFrequencyChannel; + private TextView numerOne, numerTwo, numerThree, numerFour, numerFive, numerSix, numerSeven, numerEight, numerNine, numerZero; + private TextView mOpenCloseBg, mVoiceBg, mNoVoiceBg, mOkBg, mHomeBg, mBackBg, mMenuBg, mVolAddBg, mVolReduceBg; + private TextView numerOneBg, numerTwoBg, numerThreeBg, numerFourBg, numerFiveBg, numerSixBg, numerSevenBg, numerEightBg, numerNineBg, numerZeroBg, mSignalBg; + private boolean mOpenCloseTag, mVoiceTag, mNoVoiceTag, mOkTag, mHomeTag, mBackTag, mMenuTag, mVolAddTag, mVolReduceTag, mDownTag, mLeftTag, mUpTag, mRightTag, mSignalTag; + private boolean numerOneTag, numerTwoTag, numerThreeTag, numerFourTag, numerFiveTag, numerSixTag, numerSevenTag, numerEightTag, numerNineTag, numerZeroTag; + private ImageView mOpenCloseMark, mVoiceMark, mOkMark, mHomeMark, mBackMark, mMenuMark, mVolAddMark, mVolReduceMark, mDownMark, mLeftMark, mUpMark, mRightMark, mSignalMark; + private ImageView mVoicePic, mNoVoicePic, mHomePic, mBackPic, mMenuPic, mVolAddPic, mVolRedPic; + private HorizontalProgressBarWithNumber mProgressBar; + private TextView learnInstruction; + private RelativeLayout progressRl; + private TextView progressTv; + private boolean isLoading = false, isShow = true; + private String tvStateTag; + private TextView loadBackTv, tv_cancel_load; + private String tvName; + private LoadingDialog mLoadingDialog; + private String cancelFlag; + private boolean isLearn = false; + private LinearLayout learningLl; + private boolean isTv = true; + private ImageView localControlIv, greenCircle; + private boolean isOpenCloseLearn = false, isJidingheLearn = false, isOkLearn = false, isHomeLearn = false, isBackLearn = false, isMenuLearn = false, isVolAddLearn = false, isVolReduceLearn = false, isDownLearn = false, isLeftLearn = false, isUpLearn = false, isRightLearn = false; + private AlphaAnimation mAlphaAnimation; + private RelativeLayout rl_learn_guide; + private boolean isShowLearnGuide = false; + private boolean isInit = false; + + public static TvA2BoxFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + TvA2BoxFragment fragment = new TvA2BoxFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LoadEvent event) { + String msg = event.getMsg(); + NettyEntity nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (nettyEntity.getDeviceType().equals(TVONE_TAG) || nettyEntity.getDeviceType().equals(TV_TAG)) { + Log.e("nettyUtilTv", msg); + Message message = new Message(); + message.what = FAN_LEARN_ING; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + public void onEventMainThread(LearnWhatEvent event) { + /*String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = FAN_LEARN_WHAT; + message.obj = msg; + mHandler.sendMessage(message);*/ + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_tv_a2_box, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + showLoadDiaolog(getUserVisibleHint()); + } + + private void showLoadDiaolog(boolean isVisibleToUser) { + if (isVisibleToUser && isInit) { + cancelFlag = devicesBean.getCancelFlag() + ""; + if (cancelFlag.equals("1")) { + EventBus.getDefault().post( + new CanloopEvent(true)); + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + getActivity().finish(); + break; + case 1: + reloadInfrared(TVONE_TAG); + break; + } + } + }); + dialog.setContent(R.string.Data_not_downloaded_reloaded); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(devicesBean.getId(), TVONE_TAG); + if (isLearn) { + subsetGetControlKeys(); + } + // selectConnDevicePushkey(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + isInit = true; + tvName = devicesBean.getDeviceBrand(); + ziId = devicesBean.getZiId(); + if (getArguments().get("loadStatus").toString().equals("1") && getUserVisibleHint() && getArguments().get("loadErrorType").toString().equals(TVONE_TAG)) { + isLoading = true; + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + } else { + isLoading = false; + } + mFrequencyChannel = (TextView) fragView.findViewById(R.id.tv_channel); + rl_learn_guide = (RelativeLayout) fragView.findViewById(R.id.rl_learn_guide); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + greenCircle = (ImageView) fragView.findViewById(R.id.iv_online_green_circle); + learnInstruction = (TextView) fragView.findViewById(R.id.tv_learn_instruction); + learningLl = (LinearLayout) fragView.findViewById(R.id.ll_learning); + loadBackTv = (TextView) fragView.findViewById(R.id.tv_load_back); + tv_cancel_load = (TextView) fragView.findViewById(R.id.tv_cancel_load); + mDown = (TextView) fragView.findViewById(R.id.iv_down); + mLeft = (TextView) fragView.findViewById(R.id.iv_left); + mUp = (TextView) fragView.findViewById(R.id.iv_up); + mRight = (TextView) fragView.findViewById(R.id.iv_right); + mOpenClose = (TextView) fragView.findViewById(R.id.tv_tv_open); + mVoice = (TextView) fragView.findViewById(tv_tv_voice); + mNoVoice = (TextView) fragView.findViewById(tv_no_voice); + mOk = (TextView) fragView.findViewById(R.id.tv_tv_ok); + mHome = (TextView) fragView.findViewById(R.id.tv_tv_home); + mMenu = (TextView) fragView.findViewById(R.id.tv_tv_menu); + mBack = (TextView) fragView.findViewById(R.id.tv_tv_back); + mSignal = (TextView) fragView.findViewById(R.id.tv_tv_signal); + mVolAdd = (TextView) fragView.findViewById(R.id.tv_tv_voladd); + mVolReduce = (TextView) fragView.findViewById(R.id.tv_tv_volreduce); + numerOne = (TextView) fragView.findViewById(R.id.tv_tv_one); + numerTwo = (TextView) fragView.findViewById(R.id.tv_tv_two); + numerThree = (TextView) fragView.findViewById(R.id.tv_tv_three); + numerFour = (TextView) fragView.findViewById(R.id.tv_tv_four); + numerFive = (TextView) fragView.findViewById(R.id.tv_tv_five); + numerSix = (TextView) fragView.findViewById(R.id.tv_tv_six); + numerSeven = (TextView) fragView.findViewById(R.id.tv_tv_seven); + numerEight = (TextView) fragView.findViewById(R.id.tv_tv_eight); + numerNine = (TextView) fragView.findViewById(R.id.tv_tv_nine); + numerZero = (TextView) fragView.findViewById(R.id.tv_tv_zero); + + mOpenCloseBg = (TextView) fragView.findViewById(R.id.tv_tv_open_bg); + mVoiceBg = (TextView) fragView.findViewById(R.id.tv_tv_voice_bg); + mNoVoiceBg = (TextView) fragView.findViewById(R.id.tv_no_voice_bg); + mOkBg = (TextView) fragView.findViewById(R.id.tv_tv_ok_bg); + mHomeBg = (TextView) fragView.findViewById(R.id.tv_tv_home_bg); + mMenuBg = (TextView) fragView.findViewById(R.id.tv_tv_menu_bg); + mBackBg = (TextView) fragView.findViewById(R.id.tv_tv_back_bg); + mSignalBg = (TextView) fragView.findViewById(R.id.tv_tv_signal_bg); + mVolAddBg = (TextView) fragView.findViewById(R.id.tv_tv_voladd_bg); + mVolReduceBg = (TextView) fragView.findViewById(R.id.tv_tv_volreduce_bg); + numerOneBg = (TextView) fragView.findViewById(R.id.tv_tv_one_bg); + numerTwoBg = (TextView) fragView.findViewById(R.id.tv_tv_two_bg); + numerThreeBg = (TextView) fragView.findViewById(R.id.tv_tv_three_bg); + numerFourBg = (TextView) fragView.findViewById(R.id.tv_tv_four_bg); + numerFiveBg = (TextView) fragView.findViewById(R.id.tv_tv_five_bg); + numerSixBg = (TextView) fragView.findViewById(R.id.tv_tv_six_bg); + numerSevenBg = (TextView) fragView.findViewById(R.id.tv_tv_seven_bg); + numerEightBg = (TextView) fragView.findViewById(R.id.tv_tv_eight_bg); + numerNineBg = (TextView) fragView.findViewById(R.id.tv_tv_nine_bg); + numerZeroBg = (TextView) fragView.findViewById(R.id.tv_tv_zero_bg); + + /*mDownMark = (ImageView) fragView.findViewById(R.id.iv_down_bg); + mLeftMark = (ImageView) fragView.findViewById(R.id.iv_left_bg); + mUpMark = (ImageView) fragView.findViewById(R.id.iv_up_bg); + mRightMark = (ImageView) fragView.findViewById(R.id.iv_right_bg); + mOpenCloseMark = (ImageView) fragView.findViewById(R.id.tv_tv_open_mark); + mVoiceMark = (ImageView) fragView.findViewById(R.id.tv_tv_voice_mark); + mOkMark = (ImageView) fragView.findViewById(R.id.tv_tv_ok_mark); + mHomeMark = (ImageView) fragView.findViewById(R.id.tv_tv_home_mark); + mMenuMark = (ImageView) fragView.findViewById(R.id.tv_tv_menu_mark); + mBackMark = (ImageView) fragView.findViewById(R.id.tv_tv_back_mark); + mSignalMark = (ImageView) fragView.findViewById(R.id.tv_tv_signal_mark); + mVolAddMark = (ImageView) fragView.findViewById(R.id.tv_tv_voladd_mark); + mVolReduceMark = (ImageView) fragView.findViewById(R.id.tv_tv_volreduce_mark);*/ + + mVoicePic = (ImageView) fragView.findViewById(R.id.iv_tv_voice); + mNoVoicePic = (ImageView) fragView.findViewById(R.id.iv_no_voice); + mHomePic = (ImageView) fragView.findViewById(R.id.iv_tv_home); + mMenuPic = (ImageView) fragView.findViewById(R.id.iv_tv_menu); + mBackPic = (ImageView) fragView.findViewById(R.id.iv_tv_back); + mVolAddPic = (ImageView) fragView.findViewById(R.id.iv_tv_add); + mVolRedPic = (ImageView) fragView.findViewById(R.id.iv_tv_reduce); + + progressRl = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + progressTv = (TextView) fragView.findViewById(R.id.tv_progress_top); + mProgressBar = (HorizontalProgressBarWithNumber) fragView.findViewById(R.id.pg_horizontal_fan); + // mHandler.sendEmptyMessage(MSG_PROGRESS_UPDATE); + mTitleView = (TitleView) fragView.findViewById(R.id.title_tv); + mTitleView.clearBackGroud(); + if (!tvName.isEmpty()) { + mTitleView.setHead(tvName); + } else { + mTitleView.setHead("电视"); + } + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mAlphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.alpha_anim_device); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isLoading) { + + } else { + getActivity().finish(); + } + } + + @Override + public void onFunction() { + // clearMark(); + if (isLoading) { + + } else { + if (isLearn) { + isLearn = false; + //查询学习按键 + // selectConnDevicePushkey(); + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(TVONE_TAG, ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //重新命名 + showSavecode(); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", TVONE_TAG); + startActivity(intent); + break; + case 4: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //遥控学习 + isLearn = true; + //查询学习按键 + // selectConnDevicePushkey(); + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent("保存到码库"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + } + + @Override + public void onFunctionText() { + + } + }); + + chartView = (PieChartView) fragView.findViewById(R.id.pieChartView); + chartView.setFanClickAbleData( + new double[]{90, 90, 90, 90}, + new int[]{Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT}, 0, mHandler); + setPanClick(); + + if (isLoading) { + progressRl.setVisibility(View.VISIBLE); + } else { + progressRl.setVisibility(View.GONE); + // selectConnDevicePushkey(); + subsetGetControlKeys(); + } + showLoadDiaolog(getUserVisibleHint()); + } + + private synchronized void showSavecode() { + if (!getUserVisibleHint()) { + return; + } + SaveCodeDialog dialog2 = new SaveCodeDialog(getContext(), new Callback3() { + + @Override + public void callback(int position, String positionName, String model) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positionName.trim())) { + ToastUtil.show(getContext(), "请输入码库名称"); + return; + } + infraredHistoryAdd(positionName, model); + break; + } + } + }); + dialog2.setOldName(devicesBean.getDeviceBrand()); + dialog2.setCancleBtn("不用了"); + dialog2.setSureBtn(R.string.sure); + dialog2.setCancelable(false); + dialog2.show(); + } + + private void clearMark() { + mOpenCloseMark.setVisibility(View.GONE); + mUpMark.setVisibility(View.GONE); + mDownMark.setVisibility(View.GONE); + mLeftMark.setVisibility(View.GONE); + mRightMark.setVisibility(View.GONE); + mOkMark.setVisibility(View.GONE); + mHomeMark.setVisibility(View.GONE); + mBackMark.setVisibility(View.GONE); + mSignalMark.setVisibility(View.GONE); + mMenuMark.setVisibility(View.GONE); + mVoiceMark.setVisibility(View.GONE); + mVolAddMark.setVisibility(View.GONE); + mVolReduceMark.setVisibility(View.GONE); + } + + private void reloadInfrared(String deviceType) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("macId", ziId); + map.put("deviceType", deviceType); + map.put("rid", devicesBean.getRid()); + netWorkUtil.requestPostByAsynewApi(YKY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("reloadInfrared", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty message = JSON.parseObject(respone, SimpleEntty.class); + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_SUCCESS_TV); + msg.obj = message; + mHandler.sendMessage(msg); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void setPanClick() { + chartView.setOnFanClick(new OnFanItemClickListener() { + @Override + public void onFanClick(FanItem fanItem) { + mId = fanItem.getId(); + Intent intent; + if (isLearn) { + switch (mId) { + case 0: + mDown.setVisibility(View.VISIBLE); + toLearnByNmber(3); + break; + case 1: + mLeft.setVisibility(View.VISIBLE); + toLearnByNmber(4); + break; + case 2: + mUp.setVisibility(View.VISIBLE); + toLearnByNmber(2); + break; + case 3: + mRight.setVisibility(View.VISIBLE); + toLearnByNmber(5); + break; + } + } else { + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + } + break; + } + } + } + + @Override + public void onFanLongClick(FanItem fanItem) { + mId = fanItem.getId(); + if (isLearn) { + + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理" + mId); + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + // longPressTv(TV_DOWN); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + // longPressTv(TV_LEFT); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + // longPressTv(TV_UP); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + // longPressTv(TV_RIGHT); + } + break; + } + + } + } + } + + @Override + public void onUp(FanItem fanItem) { + if (fanItem != null) { + mId = fanItem.getId(); + } + if (isLearn) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理抬起" + mId); + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + // cancleLongPress(TV_DOWN); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + // cancleLongPress(TV_LEFT); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + // cancleLongPress(TV_UP); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + // cancleLongPress(TV_RIGHT); + break; + } + } else { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Log.i("OnTouchListener", "点击---处理抬起" + mId); + switch (mId) { + case 0: + if (mDownTag) { + // sentControlOrder(TV_DOWN); + subsetControl("down"); + } + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + if (mLeftTag) { + // sentControlOrder(TV_LEFT); + subsetControl("left"); + } + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + if (mUpTag) { + // sentControlOrder(TV_UP); + subsetControl("up"); + } + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + if (mRightTag) { + // sentControlOrder(TV_RIGHT); + subsetControl("right"); + } + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } + } + } + }); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mVoice.setOnClickListener(this); + mNoVoice.setOnClickListener(this); + mOk.setOnClickListener(this); + mHome.setOnClickListener(this); + mMenu.setOnClickListener(this); + mBack.setOnClickListener(this); + mSignal.setOnClickListener(this); + mVolAdd.setOnClickListener(this); + mVolReduce.setOnClickListener(this); + loadBackTv.setOnClickListener(this); + tv_cancel_load.setOnClickListener(this); + progressRl.setOnClickListener(this); + rl_learn_guide.setOnClickListener(this); + numerOne.setOnClickListener(this); + numerTwo.setOnClickListener(this); + numerThree.setOnClickListener(this); + numerFour.setOnClickListener(this); + numerFive.setOnClickListener(this); + numerSix.setOnClickListener(this); + numerSeven.setOnClickListener(this); + numerEight.setOnClickListener(this); + numerNine.setOnClickListener(this); + numerZero.setOnClickListener(this); + + mFrequencyChannel.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + Intent intent = new Intent(getContext(), FrequencyChannelActivity.class); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("ziId", ziId); + intent.putExtra("nameTag", ""); + intent.putExtra("id", devicesBean.getId()); + intent.putExtra("deviceType", ""); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivity(intent); + + } + }); + } + + + @Override + public void onClick(View v) { + if (isLearn) { + switch (v.getId()) { + case R.id.tv_tv_open: + toLearnByNmber(10); + break; + case tv_tv_voice: + toLearnByNmber(1); + /* if (mVoiceTag) { + toLearnByNmber(1); + } else { + ToastUtil.show(getContext(), "请先添加机顶盒"); + }*/ + break; + case tv_no_voice: + toLearnByNmber(13); + break; + case R.id.tv_tv_ok: + toLearnByNmber(6); + break; + case R.id.tv_tv_home: + toLearnByNmber(7); + break; + case R.id.tv_tv_menu: + toLearnByNmber(9); + break; + case R.id.tv_tv_back: + toLearnByNmber(8); + break; + case R.id.tv_tv_voladd: + toLearnByNmber(11); + break; + case R.id.tv_tv_volreduce: + toLearnByNmber(12); + break; + case R.id.tv_tv_one: + toLearnByNmber(21); + break; + case R.id.tv_tv_two: + toLearnByNmber(22); + break; + case R.id.tv_tv_three: + toLearnByNmber(23); + break; + case R.id.tv_tv_four: + toLearnByNmber(24); + break; + case R.id.tv_tv_five: + toLearnByNmber(25); + break; + case R.id.tv_tv_six: + toLearnByNmber(26); + break; + case R.id.tv_tv_seven: + toLearnByNmber(27); + break; + case R.id.tv_tv_eight: + toLearnByNmber(28); + break; + case R.id.tv_tv_nine: + toLearnByNmber(29); + break; + case R.id.tv_tv_zero: + toLearnByNmber(30); + break; + case R.id.tv_tv_signal: + toLearnByNmber(31); + break; + case R.id.tv_load_back: + SharedpreferencesUtil.save(ziId + TVONE_TAG, true); + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + case R.id.rl_progress_top: + break; + } + } else { + switch (v.getId()) { + case R.id.tv_tv_open: + // sentControlOrder(TV_OPEN); + subsetControl("powertv"); + break; + case tv_tv_voice: + subsetControl("power"); + /*if (mVoiceTag) { + // sentControlOrder(TV_JIDINGHE); + subsetControl("power"); + } else { + ToastUtil.show(getContext(), "请先添加机顶盒"); + }*/ + break; + case R.id.tv_no_voice: + // sentControlOrder(TV_VOICE); + subsetControl("mute"); + break; + case R.id.tv_tv_ok: + // sentControlOrder(TV_OK); + subsetControl("ok"); + break; + case R.id.tv_tv_home: + // sentControlOrder(TV_HOME); + subsetControl("boot"); + break; + case R.id.tv_tv_menu: + // sentControlOrder(TV_MENU); + subsetControl("menu"); + break; + case R.id.tv_tv_back: + // sentControlOrder(TV_BACK); + subsetControl("back"); + break; + case R.id.tv_tv_voladd: + // sentControlOrder(TV_VOLADD); + subsetControl("volplus"); + break; + case R.id.tv_tv_volreduce: + // sentControlOrder(TV_VOLREDUCE); + subsetControl("volminus"); + break; + case R.id.tv_tv_one: + // sentControlOrder(TV_ONE); + subsetControl("1"); + break; + case R.id.tv_tv_two: + // sentControlOrder(TV_TWO); + subsetControl("2"); + break; + case R.id.tv_tv_three: + // sentControlOrder(TV_THREE); + subsetControl("3"); + break; + case R.id.tv_tv_four: + // sentControlOrder(TV_FOUR); + subsetControl("4"); + break; + case R.id.tv_tv_five: + // sentControlOrder(TV_FIVE); + subsetControl("5"); + break; + case R.id.tv_tv_six: + // sentControlOrder(TV_SIX); + subsetControl("6"); + break; + case R.id.tv_tv_seven: + // sentControlOrder(TV_SEVEN); + subsetControl("7"); + break; + case R.id.tv_tv_eight: + // sentControlOrder(TV_EIGHT); + subsetControl("8"); + break; + case R.id.tv_tv_nine: + // sentControlOrder(TV_NINE); + subsetControl("9"); + break; + case R.id.tv_tv_zero: + // sentControlOrder(TV_ZERO); + subsetControl("0"); + break; + case R.id.tv_tv_signal: + // sentControlOrder(TV_SIGNAL); + subsetControl("signal"); + break; + case R.id.tv_load_back: + SharedpreferencesUtil.save(ziId + TVONE_TAG, true); + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + case R.id.rl_progress_top: + break; + case R.id.tv_cancel_load: + cancelDownload(); + break; + case R.id.rl_learn_guide: + rl_learn_guide.setVisibility(View.GONE); + isShowLearnGuide = false; + SharedpreferencesUtil.save(ziId + TVONE_TAG, false); + break; + } + } + } + + private void sentControlOrder(String order) { + if (isLocalControl) { + ShakeUtil.setShake(getContext()); + NettyManager.sendBleMsg2Server(ToolsUtil.completeAiInfo(order)); + } else { +// controllerDevice(order); + } + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", TVONE_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void toLearnByNmber(int number) { + Intent intent = new Intent(getContext(), TvLearnGuideA2Activity.class); + intent.putExtra("learnGuide", number); + intent.putExtra("ziId", ziId); + intent.putExtra("isTv", false); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("subVersion", getArguments().get("subVersion").toString()); + startActivityForResult(intent, LEARN_RESULT); + } + + private void cancelDownload() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", TVONE_TAG); + netWorkUtil.requestPostByAsynewApi(CANCEL_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancelDownload", "ShareDeviceActivity onSuccess()" + respone); + getActivity().finish(); + } + + @Override + public void onFail(String message) { + } + }); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case FAN_LEARN_ING: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + float countNum = Integer.parseInt(nettyEntity.getCountNum()); + float loadNum = Integer.parseInt(nettyEntity.getLoadNum()); + progressRl.setVisibility(View.VISIBLE); + mProgressBar.setProgress((int) (loadNum / countNum * 100)); + if (loadNum / countNum == 1) { + isLoading = false; + progressTv.setText(R.string.load_complete); + isShowLearnGuide = true; + progressRl.setVisibility(View.GONE); + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + + } else { + initLoadDialog(); + } + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + // selectConnDevicePushkey(); + subsetGetControlKeys(); + } + }, 2000); + devicesBean.setCancelFlag(0); + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + if (isShow) { + isShow = false; + showSavecode(); + } + } + break; + case SELECT_CONNDEVICE_PUSHKEY_SUCCESS: + /* KeyEntity entity1 = (KeyEntity) msg.obj; + setIsLearned(entity1);*/ + Key5Entity entity1 = (Key5Entity) msg.obj; + setIsLearned(entity1); + if (isLearn) { + showLearn(); + } else { + showControl(); + } + if (mLoadingDialog != null) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + if (isShowLearnGuide || SharedpreferencesUtil.get(ziId + TVONE_TAG)) { + rl_learn_guide.setVisibility(View.VISIBLE); + } else { + rl_learn_guide.setVisibility(View.GONE); + } + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case DELETE_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS_TV: + progressRl.setVisibility(View.VISIBLE); + break; + /*case FAN_LEARN_WHAT: + String obj = (String) msg.obj; + switch (obj) { + case "1": + isJidingheLearn = true; + break; + case "2": + isUpLearn = true; + break; + case "3": + isDownLearn = true; + break; + case "4": + isLeftLearn = true; + break; + case "5": + isRightLearn = true; + break; + case "6": + isOkLearn = true; + break; + case "7": + isHomeLearn = true; + break; + case "8": + isBackLearn = true; + break; + case "9": + isMenuLearn = true; + break; + case "10": + isOpenCloseLearn = true; + break; + case "11": + isVolAddLearn = true; + break; + case "12": + isVolReduceLearn = true; + break; + } + break;*/ + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity1.getDeviceType().equals(TVONE_TAG) && !TextUtils.isEmpty(nettyEntity1.getOpenFlag())) { + if (nettyEntity1.getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + ToastUtil.show(getContext(), "机顶盒已打开"); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + break; + case UPDATEBLIND_ENTITYNAME_SUCCESS: + ToastUtil.show(getContext(), "保存成功"); + break; + case UPDATEBLIND_ENTITYNAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void setIsLearned(Key5Entity entity1) { + List entity1Obj = entity1.getData(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + switch (entity1Obj.get(i).getName()) { + case "powertv"://电视改成powertv + // case "poweroff": + mOpenCloseTag = true; + break; + case "up": + mUpTag = true; + break; + case "down": + mDownTag = true; + break; + case "left": + mLeftTag = true; + break; + case "right": + mRightTag = true; + break; + case "ok": + mOkTag = true; + break; + case "boot": + mHomeTag = true; + break; + case "back": + mBackTag = true; + break; + case "menu": + mMenuTag = true; + break; + case "volplus": + mVolAddTag = true; + break; + case "volminus": + mVolReduceTag = true; + break; + case "power"://机顶盒改成power + isTv = false; + mVoiceTag = true; + break; + case "mute": + mNoVoiceTag = true; + break; + case "1": + numerOneTag = true; + break; + case "2": + numerTwoTag = true; + break; + case "3": + numerThreeTag = true; + break; + case "4": + numerFourTag = true; + break; + case "5": + numerFiveTag = true; + break; + case "6": + numerSixTag = true; + break; + case "7": + numerSevenTag = true; + break; + case "8": + numerEightTag = true; + break; + case "9": + numerNineTag = true; + break; + case "0": + numerZeroTag = true; + break; + case "signal": + mSignalTag = true; + break; + } + } + } + } + + private void setIsLearned(KeyEntity entity1) { + List entity1Obj = entity1.getObj(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + switch (entity1Obj.get(i).getPushKey()) { + case "01": + mOpenCloseTag = true; + break; + case "02": + mUpTag = true; + break; + case "03": + mDownTag = true; + break; + case "04": + mLeftTag = true; + break; + case "05": + mRightTag = true; + break; + case "06": + mOkTag = true; + break; + case "07": + mHomeTag = true; + break; + case "08": + mBackTag = true; + break; + case "09": + mMenuTag = true; + break; + case "0b": + mVolReduceTag = true; + break; + case "0a": + mVolAddTag = true; + break; + case "0d": + isTv = false; + mVoiceTag = true; + break; + case "0c": + mNoVoiceTag = true; + break; + case "11": + numerOneTag = true; + break; + case "12": + numerTwoTag = true; + break; + case "13": + numerThreeTag = true; + break; + case "14": + numerFourTag = true; + break; + case "15": + numerFiveTag = true; + break; + case "16": + numerSixTag = true; + break; + case "17": + numerSevenTag = true; + break; + case "18": + numerEightTag = true; + break; + case "19": + numerNineTag = true; + break; + case "10": + numerZeroTag = true; + break; + } + } + } + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void showLearn() { + mTitleView.setHeadFuntionTxt(R.string.save); + mTitleView.setHeadFuntionGone(); + learningLl.setVisibility(View.VISIBLE); + setLearnAlph(); + // learnShowMark(); + + if (!mOpenCloseTag) { + showTopTxtAndAlpha(getString(R.string.Switch), mOpenCloseBg); + } else if (!mVoiceTag && !isTv) { + showTopTxtAndAlpha("机顶盒", mVoiceBg); + } else if (!mUpTag) { + showTopTxtAndAlpha("向上", mUp); + } else if (!mDownTag) { + showTopTxtAndAlpha("向下", mDown); + } else if (!mLeftTag) { + showTopTxtAndAlpha("向左", mLeft); + } else if (!mRightTag) { + showTopTxtAndAlpha("向右", mRight); + } else if (!mOkTag) { + showTopTxtAndAlpha("OK", mOkBg); + } else if (!mHomeTag) { + showTopTxtAndAlpha("HOME", mHomeBg); + } else if (!mMenuTag) { + showTopTxtAndAlpha("菜单", mMenuBg); + } else if (!mBackTag) { + showTopTxtAndAlpha("返回", mBackBg); + } else if (!mVolAddTag) { + showTopTxtAndAlpha("音量+", mVolAddBg); + } else if (!mVolReduceTag) { + showTopTxtAndAlpha("音量-", mVolReduceBg); + } else if (!numerOneTag) { + showTopTxtAndAlpha("1", numerOneBg); + } else if (!numerTwoTag) { + showTopTxtAndAlpha("2", numerTwoBg); + } else if (!numerThreeTag) { + showTopTxtAndAlpha("3", numerThreeBg); + } else if (!numerFourTag) { + showTopTxtAndAlpha("4", numerFourBg); + } else if (!numerFiveTag) { + showTopTxtAndAlpha("5", numerFiveBg); + } else if (!numerSixTag) { + showTopTxtAndAlpha("6", numerSixBg); + } else if (!numerSevenTag) { + showTopTxtAndAlpha("7", numerSevenBg); + } else if (!numerEightTag) { + showTopTxtAndAlpha("8", numerEightBg); + } else if (!numerNineTag) { + showTopTxtAndAlpha("9", numerNineBg); + } else if (!numerZeroTag) { + showTopTxtAndAlpha("0", numerZeroBg); + } else if (!mSignalTag) { + showTopTxtAndAlpha("信号源", mSignalBg); + } else if (!mNoVoiceTag) { + showTopTxtAndAlpha("静音", mNoVoiceBg); + } else { + showTopTxtAndAlpha(getString(R.string.Switch), mOpenCloseBg); + } + } + + private void showTopTxtAndAlpha(String text, TextView textView) { + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(text); + clearAlph(); + textView.startAnimation(mAlphaAnimation); + } + + private void clearAlph() { + mVolReduceBg.clearAnimation(); + mVolAddBg.clearAnimation(); + mBackBg.clearAnimation(); + mSignalBg.clearAnimation(); + mMenuBg.clearAnimation(); + mHomeBg.clearAnimation(); + mOkBg.clearAnimation(); + mRight.clearAnimation(); + mLeft.clearAnimation(); + mDown.clearAnimation(); + mUp.clearAnimation(); + mOpenCloseBg.clearAnimation(); + mVoiceBg.clearAnimation(); + mNoVoiceBg.clearAnimation(); + numerOneBg.clearAnimation(); + numerTwoBg.clearAnimation(); + numerThreeBg.clearAnimation(); + numerFourBg.clearAnimation(); + numerFiveBg.clearAnimation(); + numerSixBg.clearAnimation(); + numerSevenBg.clearAnimation(); + numerEightBg.clearAnimation(); + numerNineBg.clearAnimation(); + numerZeroBg.clearAnimation(); + } + + private void learnShowMark() { + if (isOpenCloseLearn) { + mOpenCloseMark.setVisibility(View.VISIBLE); + } + if (isJidingheLearn) { + mVoiceMark.setVisibility(View.VISIBLE); + } + if (isUpLearn) { + mUpMark.setVisibility(View.VISIBLE); + } + if (isDownLearn) { + mDownMark.setVisibility(View.VISIBLE); + } + if (isLeftLearn) { + mLeftMark.setVisibility(View.VISIBLE); + } + if (isRightLearn) { + mRightMark.setVisibility(View.VISIBLE); + } + if (isOkLearn) { + mOkMark.setVisibility(View.VISIBLE); + } + if (isHomeLearn) { + mHomeMark.setVisibility(View.VISIBLE); + } + if (isMenuLearn) { + mMenuMark.setVisibility(View.VISIBLE); + } + if (isBackLearn) { + mBackMark.setVisibility(View.VISIBLE); + } + if (mSignalTag) { + mSignalMark.setVisibility(View.VISIBLE); + } + if (isVolAddLearn) { + mVolAddMark.setVisibility(View.VISIBLE); + } + if (isVolReduceLearn) { + mVolReduceMark.setVisibility(View.VISIBLE); + } + } + + private void setLearnAlph() { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + mVoice.setAlpha(1.0f); + mVoice.setEnabled(true); + mNoVoice.setAlpha(1.0f); + mNoVoice.setEnabled(true); + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + mHome.setAlpha(1.0f); + mHome.setEnabled(true); + mBack.setAlpha(1.0f); + mBack.setEnabled(true); + mSignal.setAlpha(1.0f); + mSignal.setEnabled(true); + mMenu.setAlpha(1.0f); + mMenu.setEnabled(true); + mVolAdd.setAlpha(1.0f); + mVolAdd.setEnabled(true); + mVolReduce.setAlpha(1.0f); + mVolReduce.setEnabled(true); + mVoicePic.setAlpha(1.0f); + mNoVoicePic.setAlpha(1.0f); + mHomePic.setAlpha(1.0f); + mMenuPic.setAlpha(1.0f); + mBackPic.setAlpha(1.0f); + mVolAddPic.setAlpha(1.0f); + mVolRedPic.setAlpha(1.0f); + numerOne.setAlpha(1.0f); + numerOne.setEnabled(true); + numerTwo.setAlpha(1.0f); + numerTwo.setEnabled(true); + numerThree.setAlpha(1.0f); + numerThree.setEnabled(true); + numerFour.setAlpha(1.0f); + numerFour.setEnabled(true); + numerFive.setAlpha(1.0f); + numerFive.setEnabled(true); + numerSix.setAlpha(1.0f); + numerSix.setEnabled(true); + numerSeven.setAlpha(1.0f); + numerSeven.setEnabled(true); + numerEight.setAlpha(1.0f); + numerEight.setEnabled(true); + numerNine.setAlpha(1.0f); + numerNine.setEnabled(true); + numerZero.setAlpha(1.0f); + numerZero.setEnabled(true); + } + + + private void showControl() { + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + learningLl.setVisibility(View.GONE); + // clearMark(); + clearAlph(); + controlShowAlph(); + } + + private void controlShowAlph() { + if (!mOpenCloseTag) { + mOpenClose.setAlpha(0.5f); + mOpenClose.setEnabled(false); + } else { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + } + if (!mVoiceTag) { + mVoice.setAlpha(0.5f); + mVoicePic.setAlpha(0.5f); + } else { + mVoice.setAlpha(1.0f); + mVoicePic.setAlpha(1.0f); + } + if (!mNoVoiceTag) { + mNoVoice.setAlpha(0.5f); + mNoVoicePic.setAlpha(0.5f); + mNoVoice.setEnabled(false); + } else { + mNoVoice.setAlpha(1.0f); + mNoVoicePic.setAlpha(1.0f); + mNoVoice.setEnabled(true); + } + if (!mOkTag) { + mOk.setAlpha(0.5f); + mOk.setEnabled(false); + } else { + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + } + if (!mHomeTag) { + mHome.setAlpha(0.5f); + mHomePic.setAlpha(0.5f); + mHome.setEnabled(false); + } else { + mHome.setAlpha(1.0f); + mHomePic.setAlpha(1.0f); + mHome.setEnabled(true); + } + if (!mBackTag) { + mBack.setAlpha(0.5f); + mBackPic.setAlpha(0.5f); + mBack.setEnabled(false); + } else { + mBack.setAlpha(1.0f); + mBackPic.setAlpha(1.0f); + mBack.setEnabled(true); + } + if (!mMenuTag) { + mMenu.setAlpha(0.5f); + mMenuPic.setAlpha(0.5f); + mMenu.setEnabled(false); + } else { + mMenu.setAlpha(1.0f); + mMenuPic.setAlpha(1.0f); + mMenu.setEnabled(true); + } + if (!mVolAddTag) { + mVolAdd.setAlpha(0.5f); + mVolAddPic.setAlpha(0.5f); + mVolAdd.setEnabled(false); + } else { + mVolAdd.setAlpha(1.0f); + mVolAddPic.setAlpha(1.0f); + mVolAdd.setEnabled(true); + } + if (!mVolReduceTag) { + mVolReduce.setAlpha(0.5f); + mVolRedPic.setAlpha(0.5f); + mVolReduce.setEnabled(false); + } else { + mVolReduce.setAlpha(1.0f); + mVolRedPic.setAlpha(1.0f); + mVolReduce.setEnabled(true); + } + + if (!numerOneTag) { + numerOne.setAlpha(0.5f); + numerOne.setEnabled(false); + } else { + numerOne.setAlpha(1.0f); + numerOne.setEnabled(true); + } + if (!numerTwoTag) { + numerTwo.setAlpha(0.5f); + numerTwo.setEnabled(false); + } else { + numerTwo.setAlpha(1.0f); + numerTwo.setEnabled(true); + } + if (!numerThreeTag) { + numerThree.setAlpha(0.5f); + numerThree.setEnabled(false); + } else { + numerThree.setAlpha(1.0f); + numerThree.setEnabled(true); + } + if (!numerFourTag) { + numerFour.setAlpha(0.5f); + numerFour.setEnabled(false); + } else { + numerFour.setAlpha(1.0f); + numerFour.setEnabled(true); + } + if (!numerFiveTag) { + numerFive.setAlpha(0.5f); + numerFive.setEnabled(false); + } else { + numerFive.setAlpha(1.0f); + numerFive.setEnabled(true); + } + if (!numerSixTag) { + numerSix.setAlpha(0.5f); + numerSix.setEnabled(false); + } else { + numerSix.setAlpha(1.0f); + numerSix.setEnabled(true); + } + if (!numerSevenTag) { + numerSeven.setAlpha(0.5f); + numerSeven.setEnabled(false); + } else { + numerSeven.setAlpha(1.0f); + numerSeven.setEnabled(true); + } + if (!numerEightTag) { + numerEight.setAlpha(0.5f); + numerEight.setEnabled(false); + } else { + numerEight.setAlpha(1.0f); + numerEight.setEnabled(true); + } + if (!numerNineTag) { + numerNine.setAlpha(0.5f); + numerNine.setEnabled(false); + } else { + numerNine.setAlpha(1.0f); + numerNine.setEnabled(true); + } + if (!numerZeroTag) { + numerZero.setAlpha(0.5f); + numerZero.setEnabled(false); + } else { + numerZero.setAlpha(1.0f); + numerZero.setEnabled(true); + } + if (!mSignalTag) { + mSignal.setAlpha(0.5f); + mSignal.setEnabled(false); + } else { + mSignal.setAlpha(1.0f); + mSignal.setEnabled(true); + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + private void subsetGetControlKeys() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", TVONE_TAG); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETCONTROLKEYS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetControlKeys", "onSuccess()" + respone); + Key5Entity obj = JSON.parseObject(respone, Key5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_BRAND_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void infraredHistoryAdd(String name, String model) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + /*map.put("brand", devicesBean.getDeviceBrand()); + map.put("model", model);*/ + map.put("name", name); + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.INFRARED_HISTORY_ADD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("infraredHistoryModify", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_SUCCESS); + msg.obj = name; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(TvA2BoxFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + TvA2BoxFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/TvA2Fragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/TvA2Fragment.java new file mode 100644 index 0000000..d9ec2f9 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/TvA2Fragment.java @@ -0,0 +1,1860 @@ +package com.yonsz.z1.version4.fragment; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.AlphaAnimation; +import android.view.animation.AnimationUtils; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.Key5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.database.entity.entitya2.LoadEvent; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.device.tv.FanItem; +import com.yonsz.z1.device.tv.OnFanItemClickListener; +import com.yonsz.z1.device.tv.PieChartView; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.devicea2.tva2.TvLearnGuideA2Activity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.fragment.person.WebViewActivity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.customview.SaveCodeDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.mine.aboutversion.feature.Callback3; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.version5.SwoitSyncActivity; +import com.yonsz.z1.version5.tv.FrequencyChannelActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.tv_no_voice; +import static com.yonsz.z1.R.id.tv_tv_voice; +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.device.tv.PieChartView.isLongClickModule1; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_FAIL; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS_TV; +import static com.yonsz.z1.net.Constans.FAN_LEARN_ING; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_BRAND_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.SKYWORTH_TV; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.CANCEL_DOWNLOAD; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETCONTROLKEYS; +import static com.yonsz.z1.net.NetWorkUrl.YKY_DOWNLOAD; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class TvA2Fragment extends BaseFragment implements View.OnClickListener { + public int mId; + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + private TitleView mTitleView; + private PieChartView chartView; + private String userId; + private String ziId; + private TextView mOpenClose, mVoice, mNoVoice, mOk, mHome, mBack, mMenu, mVolAdd, mVolReduce, mChAdd, mChReduce, mDown, mLeft, mUp, mRight, mSignal, mFrequencyChannel; + private TextView numerOne, numerTwo, numerThree, numerFour, numerFive, numerSix, numerSeven, numerEight, numerNine, numerZero; + private TextView mOpenCloseBg, mVoiceBg, mNoVoiceBg, mOkBg, mHomeBg, mBackBg, mMenuBg, mVolAddBg, mVolReduceBg, mChAddBg, mChReduceBg; + private TextView numerOneBg, numerTwoBg, numerThreeBg, numerFourBg, numerFiveBg, numerSixBg, numerSevenBg, numerEightBg, numerNineBg, numerZeroBg, mSignalBg; + private boolean mOpenCloseTag, mVoiceTag, mNoVoiceTag, mOkTag, mHomeTag, mBackTag, mMenuTag, mVolAddTag, mVolReduceTag, mChAddTag, mChReduceTag, mDownTag, mLeftTag, mUpTag, mRightTag, mSignalTag; + private boolean numerOneTag, numerTwoTag, numerThreeTag, numerFourTag, numerFiveTag, numerSixTag, numerSevenTag, numerEightTag, numerNineTag, numerZeroTag; + private ImageView mVoicePic, mNoVoicePic, mHomePic, mBackPic, mMenuPic, mVolAddPic, mVolRedPic, mChAddPic, mChRedPic; + private HorizontalProgressBarWithNumber mProgressBar; + private TextView learnInstruction; + private RelativeLayout progressRl; + private TextView progressTv; + private boolean isLoading = false, isShow = true; + private String tvStateTag; + private TextView loadBackTv, tv_cancel_load; + private String tvName; + private LoadingDialog mLoadingDialog; + private String cancelFlag; + private boolean isLearn = false; + private LinearLayout learningLl; + private boolean isTv = true; + private ImageView localControlIv, greenCircle; + private AlphaAnimation mAlphaAnimation; + private RelativeLayout rl_learn_guide; + private boolean isShowLearnGuide = false; + private boolean isInit = false; + + public static TvA2Fragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + TvA2Fragment fragment = new TvA2Fragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(LoadEvent event) { + String msg = event.getMsg(); + NettyEntity nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (nettyEntity.getDeviceType().equals(TV_TAG)) { + Log.e("nettyUtilTv", msg); + Message message = new Message(); + message.what = FAN_LEARN_ING; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_tv_a2, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + showLoadDiaolog(getUserVisibleHint()); + } + + private void showLoadDiaolog(boolean isVisibleToUser) { + if (isVisibleToUser && isInit) { + cancelFlag = devicesBean.getCancelFlag() + ""; + if (cancelFlag.equals("1")) { + EventBus.getDefault().post( + new CanloopEvent(true)); + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + getActivity().finish(); + break; + case 1: + reloadInfrared(TV_TAG); + break; + } + } + }); + dialog.setContent(R.string.Data_not_downloaded_reloaded); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(devicesBean.getId(), TV_TAG); + if (isLearn) { + subsetGetControlKeys(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + isInit = true; + tvName = devicesBean.getDeviceBrand(); + ziId = devicesBean.getZiId(); + if (getArguments().get("loadStatus").toString().equals("1") && getUserVisibleHint() && getArguments().get("loadErrorType").toString().equals(TV_TAG)) { + isLoading = true; + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + } else { + isLoading = false; + } + mFrequencyChannel = (TextView) fragView.findViewById(R.id.tv_channel); + rl_learn_guide = (RelativeLayout) fragView.findViewById(R.id.rl_learn_guide); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + greenCircle = (ImageView) fragView.findViewById(R.id.iv_online_green_circle); + learnInstruction = (TextView) fragView.findViewById(R.id.tv_learn_instruction); + learningLl = (LinearLayout) fragView.findViewById(R.id.ll_learning); + loadBackTv = (TextView) fragView.findViewById(R.id.tv_load_back); + tv_cancel_load = (TextView) fragView.findViewById(R.id.tv_cancel_load); + mDown = (TextView) fragView.findViewById(R.id.iv_down); + mLeft = (TextView) fragView.findViewById(R.id.iv_left); + mUp = (TextView) fragView.findViewById(R.id.iv_up); + mRight = (TextView) fragView.findViewById(R.id.iv_right); + mOk = (TextView) fragView.findViewById(R.id.tv_tv_ok); + mOpenClose = (TextView) fragView.findViewById(R.id.tv_tv_open); + mVoice = (TextView) fragView.findViewById(tv_tv_voice); + mNoVoice = (TextView) fragView.findViewById(tv_no_voice); + mHome = (TextView) fragView.findViewById(R.id.tv_tv_home); + mMenu = (TextView) fragView.findViewById(R.id.tv_tv_menu); + mBack = (TextView) fragView.findViewById(R.id.tv_tv_back); + mSignal = (TextView) fragView.findViewById(R.id.tv_tv_signal); + mVolAdd = (TextView) fragView.findViewById(R.id.tv_tv_voladd); + mVolReduce = (TextView) fragView.findViewById(R.id.tv_tv_volreduce); + mChAdd = (TextView) fragView.findViewById(R.id.tv_tv_chadd); + mChReduce = (TextView) fragView.findViewById(R.id.tv_tv_chreduce); + numerOne = (TextView) fragView.findViewById(R.id.tv_tv_one); + numerTwo = (TextView) fragView.findViewById(R.id.tv_tv_two); + numerThree = (TextView) fragView.findViewById(R.id.tv_tv_three); + numerFour = (TextView) fragView.findViewById(R.id.tv_tv_four); + numerFive = (TextView) fragView.findViewById(R.id.tv_tv_five); + numerSix = (TextView) fragView.findViewById(R.id.tv_tv_six); + numerSeven = (TextView) fragView.findViewById(R.id.tv_tv_seven); + numerEight = (TextView) fragView.findViewById(R.id.tv_tv_eight); + numerNine = (TextView) fragView.findViewById(R.id.tv_tv_nine); + numerZero = (TextView) fragView.findViewById(R.id.tv_tv_zero); + + mOpenCloseBg = (TextView) fragView.findViewById(R.id.tv_tv_open_bg); + mVoiceBg = (TextView) fragView.findViewById(R.id.tv_tv_voice_bg); + mNoVoiceBg = (TextView) fragView.findViewById(R.id.tv_no_voice_bg); + mOkBg = (TextView) fragView.findViewById(R.id.tv_tv_ok_bg); + mHomeBg = (TextView) fragView.findViewById(R.id.tv_tv_home_bg); + mMenuBg = (TextView) fragView.findViewById(R.id.tv_tv_menu_bg); + mBackBg = (TextView) fragView.findViewById(R.id.tv_tv_back_bg); + mSignalBg = (TextView) fragView.findViewById(R.id.tv_tv_signal_bg); + mVolAddBg = (TextView) fragView.findViewById(R.id.tv_tv_voladd_bg); + mVolReduceBg = (TextView) fragView.findViewById(R.id.tv_tv_volreduce_bg); + mChAddBg = (TextView) fragView.findViewById(R.id.tv_tv_chadd_bg); + mChReduceBg = (TextView) fragView.findViewById(R.id.tv_tv_chreduce_bg); + numerOneBg = (TextView) fragView.findViewById(R.id.tv_tv_one_bg); + numerTwoBg = (TextView) fragView.findViewById(R.id.tv_tv_two_bg); + numerThreeBg = (TextView) fragView.findViewById(R.id.tv_tv_three_bg); + numerFourBg = (TextView) fragView.findViewById(R.id.tv_tv_four_bg); + numerFiveBg = (TextView) fragView.findViewById(R.id.tv_tv_five_bg); + numerSixBg = (TextView) fragView.findViewById(R.id.tv_tv_six_bg); + numerSevenBg = (TextView) fragView.findViewById(R.id.tv_tv_seven_bg); + numerEightBg = (TextView) fragView.findViewById(R.id.tv_tv_eight_bg); + numerNineBg = (TextView) fragView.findViewById(R.id.tv_tv_nine_bg); + numerZeroBg = (TextView) fragView.findViewById(R.id.tv_tv_zero_bg); + + mVoicePic = (ImageView) fragView.findViewById(R.id.iv_tv_voice); + mNoVoicePic = (ImageView) fragView.findViewById(R.id.iv_no_voice); + mHomePic = (ImageView) fragView.findViewById(R.id.iv_tv_home); + mMenuPic = (ImageView) fragView.findViewById(R.id.iv_tv_menu); + mBackPic = (ImageView) fragView.findViewById(R.id.iv_tv_back); + mVolAddPic = (ImageView) fragView.findViewById(R.id.iv_tv_add); + mVolRedPic = (ImageView) fragView.findViewById(R.id.iv_tv_reduce); + mChAddPic = (ImageView) fragView.findViewById(R.id.iv_tv_ch_add); + mChRedPic = (ImageView) fragView.findViewById(R.id.iv_tv_ch_reduce); + + progressRl = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + progressTv = (TextView) fragView.findViewById(R.id.tv_progress_top); + mProgressBar = (HorizontalProgressBarWithNumber) fragView.findViewById(R.id.pg_horizontal_fan); + // mHandler.sendEmptyMessage(MSG_PROGRESS_UPDATE); + mTitleView = (TitleView) fragView.findViewById(R.id.title_tv); + mTitleView.clearBackGroud(); + if (!tvName.isEmpty()) { + mTitleView.setHead(tvName); + } else { + mTitleView.setHead("电视"); + } + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mAlphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.alpha_anim_device); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isLoading) { + + } else { + getActivity().finish(); + } + } + + @Override + public void onFunction() { + // clearMark(); + if (isLoading) { + + } else { + if (isLearn) { + isLearn = false; + //查询学习按键 + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + } else { + if (devicesBean.getDeviceType().equals(SKYWORTH_TV)) { + showSkyworthBottom(); + } else { + showTvBootom(); + } + } + } + } + + @Override + public void onFunctionText() { + + } + }); + + chartView = (PieChartView) fragView.findViewById(R.id.pieChartView); + chartView.setFanClickAbleData( + new double[]{90, 90, 90, 90}, + new int[]{Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT}, 0, mHandler); + setPanClick(); + + if (isLoading) { + progressRl.setVisibility(View.VISIBLE); + } else { + progressRl.setVisibility(View.GONE); + subsetGetControlKeys(); + } + showLoadDiaolog(getUserVisibleHint()); + } + + private void showSkyworthBottom() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + + break; + case 1: + //查看同步设备信息 + Intent intent1 = new Intent(getContext(), SwoitSyncActivity.class); + intent1.putExtra("ziId", ziId); + startActivity(intent1); + break; + case 2: + + break; + case 3: + //修改设备位置 + Intent intent = new Intent(getActivity(), ModifyRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivityForResult(intent, MODIFY_DEVICE_NAME); + break; + case 4: + break; + case 5: + + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setTop("修改设备位置"); + dialog2.setContent(); + dialog2.setLearn(); + dialog2.setModifyName(); + dialog2.setBottom("查看同步设备信息"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + private void showTvBootom() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + deleteChildDevice(TV_TAG, ziId); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //重新命名 + showSavecode(); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", TV_TAG); + startActivity(intent); + break; + case 4: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //遥控学习 + isLearn = true; + //查询学习按键 + subsetGetControlKeys(); + EventBus.getDefault().post( + new CanloopEvent(isLearn)); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent("保存到码库"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + private synchronized void showSavecode() { + if (!getUserVisibleHint()) { + return; + } + SaveCodeDialog dialog2 = new SaveCodeDialog(getContext(), new Callback3() { + + @Override + public void callback(int position, String positionName, String model) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positionName.trim())) { + ToastUtil.show(getContext(), "请输入码库名称"); + return; + } + infraredHistoryAdd(positionName, model); + break; + } + } + }); + dialog2.setOldName(devicesBean.getDeviceBrand()); + dialog2.setCancleBtn("不用了"); + dialog2.setSureBtn(R.string.sure); + dialog2.setCancelable(false); + dialog2.show(); + } + + private void reloadInfrared(String deviceType) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("macId", ziId); + map.put("deviceType", deviceType); + map.put("rid", devicesBean.getRid()); + netWorkUtil.requestPostByAsynewApi(YKY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("reloadInfrared", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty message = JSON.parseObject(respone, SimpleEntty.class); + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_SUCCESS_TV); + msg.obj = message; + mHandler.sendMessage(msg); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void setPanClick() { + chartView.setOnFanClick(new OnFanItemClickListener() { + @Override + public void onFanClick(FanItem fanItem) { + mId = fanItem.getId(); + Intent intent; + if (isLearn) { + switch (mId) { + case 0: + mDown.setVisibility(View.VISIBLE); + toLearnByNmber(3); + break; + case 1: + mLeft.setVisibility(View.VISIBLE); + toLearnByNmber(4); + break; + case 2: + mUp.setVisibility(View.VISIBLE); + toLearnByNmber(2); + break; + case 3: + mRight.setVisibility(View.VISIBLE); + toLearnByNmber(5); + break; + } + } else { + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + } + break; + } + } + } + + @Override + public void onFanLongClick(FanItem fanItem) { + mId = fanItem.getId(); + if (isLearn) { + + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理" + mId); + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + // longPressTv(TV_DOWN); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + // longPressTv(TV_LEFT); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + // longPressTv(TV_UP); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + // longPressTv(TV_RIGHT); + } + break; + } + + } + } + } + + @Override + public void onUp(FanItem fanItem) { + if (fanItem != null) { + mId = fanItem.getId(); + } + if (isLearn) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } else { + if (isLongClickModule1) { + Log.i("OnTouchListener", "处理长按---处理抬起" + mId); + switch (mId) { + case 0: + mDown.setVisibility(View.INVISIBLE); + // cancleLongPress(TV_DOWN); + break; + case 1: + mLeft.setVisibility(View.INVISIBLE); + // cancleLongPress(TV_LEFT); + break; + case 2: + mUp.setVisibility(View.INVISIBLE); + // cancleLongPress(TV_UP); + break; + case 3: + mRight.setVisibility(View.INVISIBLE); + // cancleLongPress(TV_RIGHT); + break; + } + } else { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Log.i("OnTouchListener", "点击---处理抬起" + mId); + switch (mId) { + case 0: + if (mDownTag) { + subsetControl("down"); + } + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + if (mLeftTag) { + subsetControl("left"); + } + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + if (mUpTag) { + subsetControl("up"); + } + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + if (mRightTag) { + subsetControl("right"); + } + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } + } + } + }); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mVoice.setOnClickListener(this); + mNoVoice.setOnClickListener(this); + mOk.setOnClickListener(this); + mHome.setOnClickListener(this); + mMenu.setOnClickListener(this); + mBack.setOnClickListener(this); + mSignal.setOnClickListener(this); + mVolAdd.setOnClickListener(this); + mVolReduce.setOnClickListener(this); + mChAdd.setOnClickListener(this); + mChReduce.setOnClickListener(this); + loadBackTv.setOnClickListener(this); + tv_cancel_load.setOnClickListener(this); + progressRl.setOnClickListener(this); + rl_learn_guide.setOnClickListener(this); + numerOne.setOnClickListener(this); + numerTwo.setOnClickListener(this); + numerThree.setOnClickListener(this); + numerFour.setOnClickListener(this); + numerFive.setOnClickListener(this); + numerSix.setOnClickListener(this); + numerSeven.setOnClickListener(this); + numerEight.setOnClickListener(this); + numerNine.setOnClickListener(this); + numerZero.setOnClickListener(this); + + mFrequencyChannel.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + Intent intent = new Intent(getContext(), FrequencyChannelActivity.class); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("ziId", ziId); + intent.putExtra("nameTag", ""); + intent.putExtra("id", devicesBean.getId()); + intent.putExtra("deviceType", ""); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivity(intent); + + } + }); + } + + + @Override + public void onClick(View v) { + if (isLearn) { + switch (v.getId()) { + case R.id.tv_tv_open: + toLearnByNmber(10); + break; + case tv_tv_voice: + if (mVoiceTag) { + toLearnByNmber(1); + } else { + ToastUtil.show(getContext(), "请先添加机顶盒"); + } + break; + case tv_no_voice: + toLearnByNmber(13); + break; + case R.id.tv_tv_ok: + toLearnByNmber(6); + break; + case R.id.tv_tv_home: + toLearnByNmber(7); + break; + case R.id.tv_tv_menu: + toLearnByNmber(9); + break; + case R.id.tv_tv_back: + toLearnByNmber(8); + break; + case R.id.tv_tv_voladd: + toLearnByNmber(11); + break; + case R.id.tv_tv_volreduce: + toLearnByNmber(12); + break; + case R.id.tv_tv_chadd: + toLearnByNmber(32); + break; + case R.id.tv_tv_chreduce: + toLearnByNmber(33); + break; + case R.id.tv_tv_one: + toLearnByNmber(21); + break; + case R.id.tv_tv_two: + toLearnByNmber(22); + break; + case R.id.tv_tv_three: + toLearnByNmber(23); + break; + case R.id.tv_tv_four: + toLearnByNmber(24); + break; + case R.id.tv_tv_five: + toLearnByNmber(25); + break; + case R.id.tv_tv_six: + toLearnByNmber(26); + break; + case R.id.tv_tv_seven: + toLearnByNmber(27); + break; + case R.id.tv_tv_eight: + toLearnByNmber(28); + break; + case R.id.tv_tv_nine: + toLearnByNmber(29); + break; + case R.id.tv_tv_zero: + toLearnByNmber(30); + break; + case R.id.tv_tv_signal: + toLearnByNmber(31); + break; + case R.id.tv_load_back: + SharedpreferencesUtil.save(ziId + TV_TAG, true); + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + case R.id.rl_progress_top: + break; + } + } else { + switch (v.getId()) { + case R.id.tv_tv_open: + subsetControl("power"); + break; + case tv_tv_voice: + if (mVoiceTag) { + subsetControl("powerbox"); + } else { + ToastUtil.show(getContext(), "请先添加机顶盒"); + } + break; + case R.id.tv_no_voice: + subsetControl("mute"); + break; + case R.id.tv_tv_ok: + subsetControl("ok"); + break; + case R.id.tv_tv_home: + subsetControl("boot"); + break; + case R.id.tv_tv_menu: + subsetControl("menu"); + break; + case R.id.tv_tv_back: + subsetControl("back"); + break; + case R.id.tv_tv_voladd: + subsetControl("volplus"); + break; + case R.id.tv_tv_volreduce: + subsetControl("volminus"); + break; + case R.id.tv_tv_chadd: + subsetControl("chplus"); + break; + case R.id.tv_tv_chreduce: + subsetControl("chminus"); + break; + case R.id.tv_tv_one: + subsetControl("1"); + break; + case R.id.tv_tv_two: + subsetControl("2"); + break; + case R.id.tv_tv_three: + subsetControl("3"); + break; + case R.id.tv_tv_four: + subsetControl("4"); + break; + case R.id.tv_tv_five: + subsetControl("5"); + break; + case R.id.tv_tv_six: + subsetControl("6"); + break; + case R.id.tv_tv_seven: + subsetControl("7"); + break; + case R.id.tv_tv_eight: + subsetControl("8"); + break; + case R.id.tv_tv_nine: + subsetControl("9"); + break; + case R.id.tv_tv_zero: + subsetControl("0"); + break; + case R.id.tv_tv_signal: + subsetControl("signal"); + break; + case R.id.tv_load_back: + SharedpreferencesUtil.save(ziId + TV_TAG, true); + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + case R.id.rl_progress_top: + break; + case R.id.tv_cancel_load: + cancelDownload(); + break; + case R.id.rl_learn_guide: + rl_learn_guide.setVisibility(View.GONE); + isShowLearnGuide = false; + SharedpreferencesUtil.save(ziId + TV_TAG, false); + break; + } + } + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void toLearnByNmber(int number) { + Intent intent = new Intent(getContext(), TvLearnGuideA2Activity.class); + intent.putExtra("learnGuide", number); + intent.putExtra("ziId", ziId); + intent.putExtra("isTv", true); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("subVersion", getArguments().get("subVersion").toString()); + startActivityForResult(intent, LEARN_RESULT); + } + + private void cancelDownload() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", devicesBean.getDeviceType()); + netWorkUtil.requestPostByAsynewApi(CANCEL_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cancelDownload", "ShareDeviceActivity onSuccess()" + respone); + getActivity().finish(); + } + + @Override + public void onFail(String message) { + } + }); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case FAN_LEARN_ING: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + float countNum = Integer.parseInt(nettyEntity.getCountNum()); + float loadNum = Integer.parseInt(nettyEntity.getLoadNum()); + progressRl.setVisibility(View.VISIBLE); + mProgressBar.setProgress((int) (loadNum / countNum * 100)); + if (loadNum / countNum == 1) { + isLoading = false; + progressTv.setText(R.string.load_complete); + isShowLearnGuide = true; + progressRl.setVisibility(View.GONE); + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + + } else { + initLoadDialog(); + } + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + subsetGetControlKeys(); + } + }, 2000); + devicesBean.setCancelFlag(0); + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + if (isShow) { + isShow = false; + showSavecode(); + } + } + break; + case SELECT_CONNDEVICE_PUSHKEY_SUCCESS: + Key5Entity entity1 = (Key5Entity) msg.obj; + setIsLearned(entity1); + if (isLearn) { + showLearn(); + } else { + showControl(); + } + if (mLoadingDialog != null) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + if (isShowLearnGuide || SharedpreferencesUtil.get(ziId + devicesBean.getDeviceType())) { + rl_learn_guide.setVisibility(View.VISIBLE); + } else { + rl_learn_guide.setVisibility(View.GONE); + } + break; + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case DELETE_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS_TV: + progressRl.setVisibility(View.VISIBLE); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity1.getDeviceType().equals(devicesBean.getDeviceType()) && !TextUtils.isEmpty(nettyEntity1.getOpenFlag())) { + if (nettyEntity1.getDeviceIds().equals(devicesBean.getId())) { + if (nettyEntity1.getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + ToastUtil.show(getContext(), "电视已打开"); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + greenCircle.setVisibility(View.VISIBLE); + greenCircle.startAnimation(mAlphaAnimation); + } else { + greenCircle.setVisibility(View.GONE); + greenCircle.clearAnimation(); + } + break; + case UPDATEBLIND_ENTITYNAME_SUCCESS: + ToastUtil.show(getContext(), "保存成功"); + break; + case UPDATEBLIND_ENTITYNAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void setIsLearned(Key5Entity entity1) { + List entity1Obj = entity1.getData(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + switch (entity1Obj.get(i).getName()) { + case "power": + case "poweroff": + mOpenCloseTag = true; + break; + case "up": + mUpTag = true; + break; + case "down": + mDownTag = true; + break; + case "left": + mLeftTag = true; + break; + case "right": + mRightTag = true; + break; + case "ok": + mOkTag = true; + break; + case "boot": + mHomeTag = true; + break; + case "back": + mBackTag = true; + break; + case "menu": + mMenuTag = true; + break; + case "volplus": + mVolAddTag = true; + break; + case "volminus": + mVolReduceTag = true; + break; + case "chplus": + mChAddTag = true; + break; + case "chminus": + mChReduceTag = true; + break; + case "powerbox": + isTv = false; + mVoiceTag = true; + break; + case "mute": + mNoVoiceTag = true; + break; + case "1": + numerOneTag = true; + break; + case "2": + numerTwoTag = true; + break; + case "3": + numerThreeTag = true; + break; + case "4": + numerFourTag = true; + break; + case "5": + numerFiveTag = true; + break; + case "6": + numerSixTag = true; + break; + case "7": + numerSevenTag = true; + break; + case "8": + numerEightTag = true; + break; + case "9": + numerNineTag = true; + break; + case "0": + numerZeroTag = true; + break; + case "signal": + mSignalTag = true; + break; + } + } + } + } + + private void deleteChildDevice(String deviceType, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void showLearn() { + mTitleView.setHeadFuntionTxt(R.string.save); + mTitleView.setHeadFuntionGone(); + learningLl.setVisibility(View.VISIBLE); + setLearnAlph(); + // learnShowMark(); + + if (!mOpenCloseTag) { + showTopTxtAndAlpha(getString(R.string.Switch), mOpenCloseBg); + } else if (!mVoiceTag && !isTv) { + showTopTxtAndAlpha("机顶盒", mVoiceBg); + } else if (!mUpTag) { + showTopTxtAndAlpha("向上", mUp); + } else if (!mDownTag) { + showTopTxtAndAlpha("向下", mDown); + } else if (!mLeftTag) { + showTopTxtAndAlpha("向左", mLeft); + } else if (!mRightTag) { + showTopTxtAndAlpha("向右", mRight); + } else if (!mOkTag) { + showTopTxtAndAlpha("OK", mOkBg); + } else if (!mHomeTag) { + showTopTxtAndAlpha("HOME", mHomeBg); + } else if (!mMenuTag) { + showTopTxtAndAlpha("菜单", mMenuBg); + } else if (!mBackTag) { + showTopTxtAndAlpha("返回", mBackBg); + } else if (!mVolAddTag) { + showTopTxtAndAlpha("音量+", mVolAddBg); + } else if (!mVolReduceTag) { + showTopTxtAndAlpha("音量-", mVolReduceBg); + } else if (!mChAddTag) { + showTopTxtAndAlpha("频道+", mChAddBg); + } else if (!mChReduceTag) { + showTopTxtAndAlpha("频道-", mChReduceBg); + } + /*else if (!numerOneTag) { + showTopTxtAndAlpha("1", numerOneBg); + } else if (!numerTwoTag) { + showTopTxtAndAlpha("2", numerTwoBg); + } else if (!numerThreeTag) { + showTopTxtAndAlpha("3", numerThreeBg); + } else if (!numerFourTag) { + showTopTxtAndAlpha("4", numerFourBg); + } else if (!numerFiveTag) { + showTopTxtAndAlpha("5", numerFiveBg); + } else if (!numerSixTag) { + showTopTxtAndAlpha("6", numerSixBg); + } else if (!numerSevenTag) { + showTopTxtAndAlpha("7", numerSevenBg); + } else if (!numerEightTag) { + showTopTxtAndAlpha("8", numerEightBg); + } else if (!numerNineTag) { + showTopTxtAndAlpha("9", numerNineBg); + } else if (!numerZeroTag) { + showTopTxtAndAlpha("0", numerZeroBg); + } */ + else if (!mSignalTag) { + showTopTxtAndAlpha("信号源", mSignalBg); + } else if (!mNoVoiceTag) { + showTopTxtAndAlpha("静音", mNoVoiceBg); + } else { + showTopTxtAndAlpha(getString(R.string.Switch), mOpenCloseBg); + } + } + + private void showTopTxtAndAlpha(String text, TextView textView) { + learningLl.setVisibility(View.VISIBLE); + learnInstruction.setText(text); + clearAlph(); + textView.startAnimation(mAlphaAnimation); + } + + private void clearAlph() { + mVolReduceBg.clearAnimation(); + mVolAddBg.clearAnimation(); + mChReduceBg.clearAnimation(); + mChAddBg.clearAnimation(); + mBackBg.clearAnimation(); + mSignalBg.clearAnimation(); + mMenuBg.clearAnimation(); + mHomeBg.clearAnimation(); + mOkBg.clearAnimation(); + mRight.clearAnimation(); + mLeft.clearAnimation(); + mDown.clearAnimation(); + mUp.clearAnimation(); + mOpenCloseBg.clearAnimation(); + mVoiceBg.clearAnimation(); + mNoVoiceBg.clearAnimation(); + numerOneBg.clearAnimation(); + numerTwoBg.clearAnimation(); + numerThreeBg.clearAnimation(); + numerFourBg.clearAnimation(); + numerFiveBg.clearAnimation(); + numerSixBg.clearAnimation(); + numerSevenBg.clearAnimation(); + numerEightBg.clearAnimation(); + numerNineBg.clearAnimation(); + numerZeroBg.clearAnimation(); + } + + private void setLearnAlph() { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + mVoice.setAlpha(1.0f); + mVoice.setEnabled(true); + mNoVoice.setAlpha(1.0f); + mNoVoice.setEnabled(true); + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + mHome.setAlpha(1.0f); + mHome.setEnabled(true); + mBack.setAlpha(1.0f); + mBack.setEnabled(true); + mSignal.setAlpha(1.0f); + mSignal.setEnabled(true); + mMenu.setAlpha(1.0f); + mMenu.setEnabled(true); + mVolAdd.setAlpha(1.0f); + mVolAdd.setEnabled(true); + mVolReduce.setAlpha(1.0f); + mVolReduce.setEnabled(true); + mChAdd.setAlpha(1.0f); + mChAdd.setEnabled(true); + mChReduce.setAlpha(1.0f); + mChReduce.setEnabled(true); + mVoicePic.setAlpha(1.0f); + mNoVoicePic.setAlpha(1.0f); + mHomePic.setAlpha(1.0f); + mMenuPic.setAlpha(1.0f); + mBackPic.setAlpha(1.0f); + mVolAddPic.setAlpha(1.0f); + mVolRedPic.setAlpha(1.0f); + mChAddPic.setAlpha(1.0f); + mChRedPic.setAlpha(1.0f); + /*numerOne.setAlpha(1.0f); + numerOne.setEnabled(true); + numerTwo.setAlpha(1.0f); + numerTwo.setEnabled(true); + numerThree.setAlpha(1.0f); + numerThree.setEnabled(true); + numerFour.setAlpha(1.0f); + numerFour.setEnabled(true); + numerFive.setAlpha(1.0f); + numerFive.setEnabled(true); + numerSix.setAlpha(1.0f); + numerSix.setEnabled(true); + numerSeven.setAlpha(1.0f); + numerSeven.setEnabled(true); + numerEight.setAlpha(1.0f); + numerEight.setEnabled(true); + numerNine.setAlpha(1.0f); + numerNine.setEnabled(true); + numerZero.setAlpha(1.0f); + numerZero.setEnabled(true);*/ + } + + + private void showControl() { + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + learningLl.setVisibility(View.GONE); + // clearMark(); + clearAlph(); + controlShowAlph(); + } + + private void controlShowAlph() { + if (!mOpenCloseTag) { + mOpenClose.setAlpha(0.5f); + mOpenClose.setEnabled(false); + } else { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + } + if (!mVoiceTag) { + mVoice.setAlpha(0.5f); + mVoicePic.setAlpha(0.5f); + } else { + mVoice.setAlpha(1.0f); + mVoicePic.setAlpha(1.0f); + } + if (!mNoVoiceTag) { + mNoVoice.setAlpha(0.5f); + mNoVoicePic.setAlpha(0.5f); + mNoVoice.setEnabled(false); + } else { + mNoVoice.setAlpha(1.0f); + mNoVoicePic.setAlpha(1.0f); + mNoVoice.setEnabled(true); + } + if (!mOkTag) { + mOk.setAlpha(0.5f); + mOk.setEnabled(false); + } else { + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + } + if (!mHomeTag) { + mHome.setAlpha(0.5f); + mHomePic.setAlpha(0.5f); + mHome.setEnabled(false); + } else { + mHome.setAlpha(1.0f); + mHomePic.setAlpha(1.0f); + mHome.setEnabled(true); + } + if (!mBackTag) { + mBack.setAlpha(0.5f); + mBackPic.setAlpha(0.5f); + mBack.setEnabled(false); + } else { + mBack.setAlpha(1.0f); + mBackPic.setAlpha(1.0f); + mBack.setEnabled(true); + } + if (!mMenuTag) { + mMenu.setAlpha(0.5f); + mMenuPic.setAlpha(0.5f); + mMenu.setEnabled(false); + } else { + mMenu.setAlpha(1.0f); + mMenuPic.setAlpha(1.0f); + mMenu.setEnabled(true); + } + if (!mVolAddTag) { + mVolAdd.setAlpha(0.5f); + mVolAddPic.setAlpha(0.5f); + mVolAdd.setEnabled(false); + } else { + mVolAdd.setAlpha(1.0f); + mVolAddPic.setAlpha(1.0f); + mVolAdd.setEnabled(true); + } + if (!mVolReduceTag) { + mVolReduce.setAlpha(0.5f); + mVolRedPic.setAlpha(0.5f); + mVolReduce.setEnabled(false); + } else { + mVolReduce.setAlpha(1.0f); + mVolRedPic.setAlpha(1.0f); + mVolReduce.setEnabled(true); + } + if (!mChAddTag) { + mChAdd.setAlpha(0.5f); + mChAddPic.setAlpha(0.5f); + mChAdd.setEnabled(false); + } else { + mChAdd.setAlpha(1.0f); + mChAddPic.setAlpha(1.0f); + mChAdd.setEnabled(true); + } + if (!mChReduceTag) { + mChReduce.setAlpha(0.5f); + mChRedPic.setAlpha(0.5f); + mChReduce.setEnabled(false); + } else { + mChReduce.setAlpha(1.0f); + mChRedPic.setAlpha(1.0f); + mChReduce.setEnabled(true); + } + + /*if (!numerOneTag) { + numerOne.setAlpha(0.5f); + numerOne.setEnabled(false); + } else { + numerOne.setAlpha(1.0f); + numerOne.setEnabled(true); + } + if (!numerTwoTag) { + numerTwo.setAlpha(0.5f); + numerTwo.setEnabled(false); + } else { + numerTwo.setAlpha(1.0f); + numerTwo.setEnabled(true); + } + if (!numerThreeTag) { + numerThree.setAlpha(0.5f); + numerThree.setEnabled(false); + } else { + numerThree.setAlpha(1.0f); + numerThree.setEnabled(true); + } + if (!numerFourTag) { + numerFour.setAlpha(0.5f); + numerFour.setEnabled(false); + } else { + numerFour.setAlpha(1.0f); + numerFour.setEnabled(true); + } + if (!numerFiveTag) { + numerFive.setAlpha(0.5f); + numerFive.setEnabled(false); + } else { + numerFive.setAlpha(1.0f); + numerFive.setEnabled(true); + } + if (!numerSixTag) { + numerSix.setAlpha(0.5f); + numerSix.setEnabled(false); + } else { + numerSix.setAlpha(1.0f); + numerSix.setEnabled(true); + } + if (!numerSevenTag) { + numerSeven.setAlpha(0.5f); + numerSeven.setEnabled(false); + } else { + numerSeven.setAlpha(1.0f); + numerSeven.setEnabled(true); + } + if (!numerEightTag) { + numerEight.setAlpha(0.5f); + numerEight.setEnabled(false); + } else { + numerEight.setAlpha(1.0f); + numerEight.setEnabled(true); + } + if (!numerNineTag) { + numerNine.setAlpha(0.5f); + numerNine.setEnabled(false); + } else { + numerNine.setAlpha(1.0f); + numerNine.setEnabled(true); + } + if (!numerZeroTag) { + numerZero.setAlpha(0.5f); + numerZero.setEnabled(false); + } else { + numerZero.setAlpha(1.0f); + numerZero.setEnabled(true); + }*/ + if (!mSignalTag) { + mSignal.setAlpha(0.5f); + mSignal.setEnabled(false); + } else { + mSignal.setAlpha(1.0f); + mSignal.setEnabled(true); + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + private void subsetGetControlKeys() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETCONTROLKEYS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetControlKeys", "onSuccess()" + respone); + Key5Entity obj = JSON.parseObject(respone, Key5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_BRAND_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void infraredHistoryAdd(String name, String model) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + /*map.put("brand", devicesBean.getDeviceBrand()); + map.put("model", model);*/ + map.put("name", name); + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.INFRARED_HISTORY_ADD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("infraredHistoryModify", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_SUCCESS); + msg.obj = name; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("devicePosition") != null) { + devicesBean.setAddressId(data.getExtras().get("addressId").toString()); + /*childPosition.setText(data.getExtras().get("devicePosition").toString()); + // lightType = data.getExtras().get("lightType").toString(); + addressId = data.getExtras().get("addressId").toString();*/ + + } + if (data != null && data.getExtras().get("deviceName") != null) { + String deviceName = data.getExtras().get("deviceName").toString(); + // int deviceNamePosition = (int) data.getExtras().get("deviceNamePosition"); + devicesBean.setDeviceName(deviceName); + mTitleView.setHead(deviceName); + // setLightTypePic(); + } + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(TvA2Fragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + TvA2Fragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/ViewPagerAdapter.java b/app/src/main/java/com/yonsz/z1/version4/fragment/ViewPagerAdapter.java new file mode 100644 index 0000000..fd7c8e9 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/ViewPagerAdapter.java @@ -0,0 +1,83 @@ +package com.yonsz.z1.version4.fragment; + +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; +import android.view.ViewGroup; + +import com.yonsz.z1.fragment.BaseFragment; + +import java.util.ArrayList; +import java.util.List; + +public class ViewPagerAdapter extends FragmentPagerAdapter { + + private List fragmentList = new ArrayList<>(); + + public ViewPagerAdapter(FragmentManager manager, List fragmentList1) { + super(manager); + this.fragmentList = fragmentList1; + /*if (fragmentList.size() > 1) { + //添加最后一页到第一页 + fragmentList.add(0, fragmentList.get(fragmentList.size() - 1)); + //添加第一页(经过上行的添加已经是第二页了)到最后一页 + fragmentList.add(fragmentList.get(1)); + }*/ + } + + @Override + public void destroyItem(ViewGroup container, int position, Object object) { + //不销毁划过去的fragment +// super.destroyItem(container, position, object); + } + + @Override + public Fragment getItem(int position) { + Fragment page = null; + + /* if (fragmentList.size() - 1 > position) { + page = fragmentList.get(position); + if (page != null) { + return page; + } + } + while (position >= fragmentList.size()) { + fragmentList.add(null); + } + page = PageFragment.newPage(pageList.get(position), position); + + fragmentList.set(position, page); + return page;*/ + + + return fragmentList.get(position); + } + + @Override + public int getCount() { + return fragmentList.size(); + // return Integer.MAX_VALUE; + } + + @Override + public int getItemPosition(Object object) { + return super.getItemPosition(object); + } + + @Override + public Object instantiateItem(ViewGroup container, int position) { + //处理position。让数组下标落在[0,fragmentList.size)中,防止越界 + position = position % fragmentList.size(); + return super.instantiateItem(container, position); + } + + /*@Override + public Object instantiateItem(ViewGroup container, int position) { + // return super.instantiateItem(container, position); + Fragment fragment = (Fragment) super.instantiateItem(container, position); + if (fragment instanceof LightFragment) { + String tag = fragment.getTag(); + } + return fragment; + }*/ +} diff --git a/app/src/main/java/com/yonsz/z1/version4/fragment/ZigbeeDeviceFragment.java b/app/src/main/java/com/yonsz/z1/version4/fragment/ZigbeeDeviceFragment.java new file mode 100644 index 0000000..0c77ab2 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/fragment/ZigbeeDeviceFragment.java @@ -0,0 +1,32 @@ +package com.yonsz.z1.version4.fragment; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.yonsz.z1.R; +import com.yonsz.z1.fragment.BaseFragment; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class ZigbeeDeviceFragment extends BaseFragment { + private View fragView; + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_zigbee_detail, null); + initView(fragView); + return fragView; + } + + private void initView(View fragView) { + + } +} diff --git a/app/src/main/java/com/yonsz/z1/version4/util/LocationUtils.java b/app/src/main/java/com/yonsz/z1/version4/util/LocationUtils.java new file mode 100644 index 0000000..d346984 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version4/util/LocationUtils.java @@ -0,0 +1,119 @@ +package com.yonsz.z1.version4.util; + +import android.content.Context; +import android.location.Address; +import android.location.Criteria; +import android.location.Geocoder; +import android.location.Location; +import android.location.LocationListener; +import android.location.LocationManager; +import android.os.Bundle; +import android.util.Log; + +import java.io.IOException; +import java.util.List; + +/** + * Created by Administrator on 2018/5/24. + */ + +public class LocationUtils { + public static String cityName; //城市名 + private static Geocoder geocoder; //此对象能通过经纬度来获取相应的城市等信息 + //方位改变是触发,进行调用 + private final static LocationListener locationListener = new LocationListener() { + String tempCityName; + + @Override + public void onStatusChanged(String provider, int status, Bundle extras) { + } + + @Override + public void onProviderEnabled(String provider) { + } + + @Override + public void onProviderDisabled(String provider) { + tempCityName = updateWithNewLocation(null); + if ((tempCityName != null) && (tempCityName.length() != 0)) { + cityName = tempCityName; + } + } + + @Override + public void onLocationChanged(Location location) { + tempCityName = updateWithNewLocation(location); + if ((tempCityName != null) && (tempCityName.length() != 0)) { + cityName = tempCityName; + } + } + }; + + //通过地理坐标获取城市名 其中CN分别是city和name的首字母缩写 + public static String getCNBylocation(Context context) { + geocoder = new Geocoder(context); + //用于获取Location对象,以及其他 + LocationManager locationManager; + String serviceName = Context.LOCATION_SERVICE; + //实例化一个LocationManager对象 + locationManager = (LocationManager) context.getSystemService(serviceName); + //provider的类型 + String provider = LocationManager.NETWORK_PROVIDER; + + Criteria criteria = new Criteria(); + criteria.setAccuracy(Criteria.ACCURACY_LOW); //低精度 高精度:ACCURACY_FINE + criteria.setAltitudeRequired(false); //不要求海拔 + criteria.setBearingRequired(false); //不要求方位 + criteria.setCostAllowed(false); //不允许产生资费 + criteria.setPowerRequirement(Criteria.POWER_LOW); //低功耗 + + //通过最后一次的地理位置来获取Location对象 + Location location = locationManager.getLastKnownLocation(provider); + + String queryed_name = updateWithNewLocation(location); + if ((queryed_name != null) && (0 != queryed_name.length())) { + cityName = queryed_name; + Log.i("LocationUtils", "LocationUtils getCNBylocation()" + cityName); + } else { + cityName = "深圳"; + } + /* + 第二个参数表示更新的周期,单位为毫秒 + 第三个参数的含义表示最小距离间隔,单位是米,设定每30秒进行一次自动定位 + */ + locationManager.requestLocationUpdates(provider, 30000, 50, locationListener); + //移除监听器,在只有一个widget的时候,这个还是适用的 + locationManager.removeUpdates(locationListener); + return cityName; + } + + //更新location return cityName + private static String updateWithNewLocation(Location location) { + String mcityName = ""; + double lat = 0; + double lng = 0; + List
addList = null; + if (location != null) { + lat = location.getLatitude(); + lng = location.getLongitude(); + } else { + cityName = "无法获取地理信息"; + } + try { + addList = geocoder.getFromLocation(lat, lng, 1); //解析经纬度 + } catch (IOException e) { + e.printStackTrace(); + } + if (addList != null && addList.size() > 0) { + for (int i = 0; i < addList.size(); i++) { + Address add = addList.get(i); + mcityName += add.getLocality(); + } + } + if (mcityName.length() != 0) { + return mcityName.substring(0, (mcityName.length() - 1)); + } else { + return mcityName; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/ChooseA1AddDeviceActivity.java b/app/src/main/java/com/yonsz/z1/version5/ChooseA1AddDeviceActivity.java new file mode 100644 index 0000000..c86a932 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/ChooseA1AddDeviceActivity.java @@ -0,0 +1,700 @@ +package com.yonsz.z1.version5; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.AsxAddDeviceListActivity; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.DeviceSimpleEntity; +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.device.tv.AirListActivity; +import com.yonsz.z1.device.tv.FanListActivity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.light.LightOneActivity; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.DeviceControlActivity; +import com.yonsz.z1.version4.devicelist.DeviceList4Activity; +import com.yonsz.z1.version5.adapter.ChooseA1Adapter; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.ybl.panel.YblPanelStepOneActivity; + +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE; +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GATE_WAY; +import static com.yonsz.z1.net.Constans.GETZIINFO_FAIL; +import static com.yonsz.z1.net.Constans.GET_USERDEVICES4_SIMPLEINFO_FAIL; +import static com.yonsz.z1.net.Constans.GET_USERDEVICES4_SIMPLEINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.INDEPENDENT_CODE_AC; +import static com.yonsz.z1.net.Constans.INDEX_APPLICANCE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.KUQI_PANEL; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.RGB_LIGHT; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SAFE_DEVICE_TAG; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_PANEL; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SKYWORTH_TV; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; +import static com.yonsz.z1.net.Constans.YBL_ADD_FAIL; +import static com.yonsz.z1.net.Constans.YBL_ADD_SUCCESS; +import static com.yonsz.z1.net.Constans.localAddAddressId; +import static com.yonsz.z1.net.Constans.localAddFloorId; + +/** + * Created by Administrator on 2019/4/1. + */ + +public class ChooseA1AddDeviceActivity extends BaseActivity { + private TitleView mTitleView; + private String deviceType; + private RecyclerView deviceNumberRv; + private ChooseA1Adapter mChooseA1Adapter; + private List dataBeanList; + private Button bt_next; + private String deviceVersion; + private String ziId; + private String subVersion = ""; + private String deviceModel = ""; + private String parentThirdDeviceId = ""; + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("关闭")) { + finish(); + } + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_choose_a1_add_device); + initView(); + } + + private void initView() { + dataBeanList = (List) getIntent().getSerializableExtra("dataBeanList"); + deviceType = getIntent().getExtras().get("deviceType").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + bt_next = (Button) findViewById(R.id.bt_next); + bt_next.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6)); + bt_next.setClickable(false); + bt_next.setEnabled(false); + deviceNumberRv = (RecyclerView) findViewById(R.id.rv_device_number); + mTitleView = (TitleView) findViewById(R.id.title_device_number); + if (deviceType.equals(SWITCH_TAG) && deviceModel.equals("4")) { + mTitleView.setHead("绑定语音管家"); + } else { + mTitleView.setHead(R.string.add_device); + } + mTitleView.setHeadColor(Color.BLACK); + mTitleView.clearBackGroud(); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + if (deviceType.equals(FAN_TAG) || deviceType.equals(AIR_TAG) || deviceType.equals(TV_TAG) + || deviceType.equals(TVONE_TAG) || deviceType.equals(INDEPENDENT_CODE_AC) + || deviceType.equals(SWEEP_TAG) || deviceType.equals(MUSIC_TAG) + || deviceType.equals(MOVIE_CAMERA) || deviceType.equals(AIR_CLEANER)) { + getApplicanceList(); + } + + mChooseA1Adapter = new ChooseA1Adapter(this, dataBeanList); + GridLayoutManager manage1 = new GridLayoutManager(this, 3); + deviceNumberRv.setHasFixedSize(true); + deviceNumberRv.setLayoutManager(manage1); + deviceNumberRv.setAdapter(mChooseA1Adapter); + + mChooseA1Adapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int position) { + bt_next.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee)); + bt_next.setClickable(true); + bt_next.setEnabled(true); + ziId = dataBeanList.get(position).getZiId(); + localAddAddressId = dataBeanList.get(position).getAddressId(); + if (!TextUtils.isEmpty(dataBeanList.get(position).getFloor())) { + localAddFloorId = dataBeanList.get(position).getFloor(); + } else { + localAddFloorId = dataBeanList.get(position).getFloorCode(); + } + if (null != dataBeanList.get(0).getDeviceType() && dataBeanList.get(0).getDeviceType().equals(GATE_WAY)) { + parentThirdDeviceId = dataBeanList.get(position).getId(); + } else { + deviceVersion = dataBeanList.get(position).getDeviceModel(); + String deviceModel = dataBeanList.get(position).getDeviceModel(); + if (deviceModel.substring(0, 1).contains("B")) { + subVersion = "Y"; + } else { + subVersion = ""; + } + } + } + }); + + bt_next.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (deviceType.equals(SWITCH_TAG) && deviceModel.equals("4")) { + subsetBindaidevice(); + } else { + Intent intent; + if (null != dataBeanList.get(0).getDeviceType() && dataBeanList.get(0).getDeviceType().equals(GATE_WAY)) { + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("parentThirdDeviceId", parentThirdDeviceId); + startActivity(intent); + } else { + switch (deviceVersion) { + //智控已经没有A1了,先这样写 + case "100": + case "A1-D": + case "A1-L": + switch (deviceType) { + case AIR_TAG: + intent = new Intent(ChooseA1AddDeviceActivity.this, AirListActivity.class); + intent.putExtra("airStateTag", "0"); + intent.putExtra("ziId", ziId); + startActivity(intent); + break; + case TV_TAG: + case TVONE_TAG: + case FAN_TAG: + case SWEEP_TAG: + intent = new Intent(ChooseA1AddDeviceActivity.this, FanListActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("nameTag", ""); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + case MUSIC_TAG: + case MOVIE_CAMERA: + case AIR_CLEANER: + intent = new Intent(ChooseA1AddDeviceActivity.this, DeviceList4Activity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("nameTag", ""); + intent.putExtra("id", ""); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + case SAFE_DEVICE_TAG: + case DOOR_LOCK_TAG: + case INFRARED_TAG: + case SMOKE_TAG: + case GAS_TAG: + case WATER_TAG: + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceAddress", localAddAddressId); + intent.putExtra("deviceModel", deviceModel); + startActivity(intent); + break; + case SITUATIONAL_PANEL: + /* if (deviceModel.equals("0")) { + intent = new Intent(ChooseA1AddDeviceActivity.this, YblPanelStepOneActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceAddress", localAddAddressId); + intent.putExtra("addressId", localAddAddressId); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", SITUATIONAL_PANEL); + startActivity(intent); + } else if (deviceModel.equals("1") || deviceModel.equals("2")) {*/ + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", SITUATIONAL_PANEL); + intent.putExtra("deviceAddress", localAddAddressId); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", localAddAddressId); + startActivity(intent); +// } + break; + case CURTAINS_TAG: + if (deviceModel.equals("0")) { + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceAddress", localAddAddressId); + intent.putExtra("deviceModel", deviceModel); + startActivity(intent); + } else if (deviceModel.equals("1")) { + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + startActivity(intent); + } + break; + case SWITCH_TAG: + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", SWITCH_TAG); + intent.putExtra("deviceAddress", localAddAddressId); + intent.putExtra("deviceModel", deviceModel); + startActivity(intent); + break; + case CLOTHES_HANGER: + case LIGHT_TAG: + case WINDOW_OPENER: + case SAFETY_VALVE: + case SECURITY_MANIPULATOR: + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + if (null != getIntent().getExtras().get("version")) { + intent.putExtra("version", getIntent().getExtras().get("version").toString()); + } + startActivity(intent); + break; + case MULTIFUNCTIONAL_CONTROLLER: + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("subType", getIntent().getExtras().get("subType").toString()); + startActivity(intent); + break; + case SITUATIONAL_TRIGGER: + case SECURITY_TRIGGER: + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceAddress", localAddAddressId); + startActivity(intent); + break; + case TEMP_CONTROL: + case FRESH_AIR: + case FLOOR_HEATING: + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceAddress", localAddAddressId); + startActivity(intent); + case SERVICE_PANEL_485: + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("panelType", "2"); + intent.putExtra("ziId", ziId); + intent.putExtra("addressId", localAddAddressId); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + case WIRELESS_EMERGENCY_BUTTON: + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("addressId", localAddAddressId); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + default: + break; + } + break; + default: + switch (deviceType) { + case TV_TAG: + case TVONE_TAG: + case AIR_TAG: + case INDEPENDENT_CODE_AC: + case FAN_TAG: + case SWEEP_TAG: + case MUSIC_TAG: + case MOVIE_CAMERA: + case AIR_CLEANER: + intent = new Intent(ChooseA1AddDeviceActivity.this, DeviceList4Activity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("nameTag", ""); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + case RGB_LIGHT: + subsetAdd(); + break; + case SITUATIONAL_PANEL: + /* if (deviceModel.equals("0")) { + intent = new Intent(ChooseA1AddDeviceActivity.this, YblPanelStepOneActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", SITUATIONAL_PANEL); + intent.putExtra("deviceAddress", localAddAddressId); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", localAddAddressId); + startActivity(intent); + } else {*/ + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", SITUATIONAL_PANEL); + intent.putExtra("deviceAddress", localAddAddressId); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", localAddAddressId); + startActivity(intent); +// } + break; + case SAFE_DEVICE_TAG: + case DOOR_LOCK_TAG: + case INFRARED_TAG: + case SMOKE_TAG: + case GAS_TAG: + case WATER_TAG: + case CURTAINS_TAG: + case SWITCH_TAG: + case SITUATIONAL_TRIGGER: + case SECURITY_TRIGGER: + case TEMP_CONTROL: + case FRESH_AIR: + case FLOOR_HEATING: + case CLOTHES_HANGER: + case LIGHT_TAG: + case WINDOW_OPENER: + case SAFETY_VALVE: + case SECURITY_MANIPULATOR: + case KUQI_PANEL: + case INTELLIGENT_DOOR_LOCK: + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceAddress", localAddAddressId); + if (null != getIntent().getExtras().get("version")) { + intent.putExtra("version", getIntent().getExtras().get("version").toString()); + } + startActivity(intent); + break; + case MULTIFUNCTIONAL_CONTROLLER: + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("subType", getIntent().getExtras().get("subType").toString()); + startActivity(intent); + break; + case SERVICE_PANEL_485: + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("panelType", "2"); + intent.putExtra("ziId", ziId); + intent.putExtra("addressId", localAddAddressId); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + case WIRELESS_EMERGENCY_BUTTON: + intent = new Intent(ChooseA1AddDeviceActivity.this, ChooseRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("addressId", localAddAddressId); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + case SKYWORTH_TV: + Intent intent1; + if (null != getIntent().getExtras().get("platform") && null != getIntent().getExtras().get("data")) { + intent1 = new Intent(ChooseA1AddDeviceActivity.this, SwoitBindActivity.class); + intent1.putExtra("platform", "skyworth_tv"); + intent1.putExtra("data", getIntent().getExtras().get("data").toString()); + } else { + intent1 = new Intent(ChooseA1AddDeviceActivity.this, SwoitSyncActivity.class); + } + intent1.putExtra("ziId", ziId); + startActivity(intent1); + finish(); + break; + default: + break; + } + break; + } + } + } + } + }); + + if (deviceType.equals(RGB_LIGHT)) { + getAideviceList(); + } + } + + private void subsetBindaidevice() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("deviceId").toString()); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + util.requestPostByAsynewApi(NetWorkUrl.SUBSET_BINDAIDEVICE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetBindaidevice", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getAideviceList() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("standardCodes", getIntent().getExtras().get("standardCodes").toString()); + map.put("deviceType", deviceType); + map.put("deviceModel", deviceModel); + util.requestGetByAsy(NetWorkUrl.DEIVCE_AIDEVICE_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getAideviceList", respone); + DeviceSimpleEntity entity = JSON.parseObject(respone, DeviceSimpleEntity.class); + if (1 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(GET_USERDEVICES4_SIMPLEINFO_SUCCESS); + msg.obj = entity; + msg.arg1 = 0; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GET_USERDEVICES4_SIMPLEINFO_FAIL); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(); + msg.what = GET_USERDEVICES4_SIMPLEINFO_FAIL; + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getApplicanceList() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("withControlKey", "false"); + map.put("isMerge485", "false"); + util.requestGetByAsy(NetWorkUrl.INDEX_APPLICANCE_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getApplicanceList5", respone); + AllDeviceEntity entity = JSON.parseObject(respone, AllDeviceEntity.class); + if (1 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(INDEX_APPLICANCE_LIST_SUCCESS); + msg.obj = entity; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GETZIINFO_FAIL); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(); + msg.what = GETZIINFO_FAIL; + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetAdd() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("addressId", localAddAddressId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_ADD, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetAdd", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(YBL_ADD_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(YBL_ADD_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(YBL_ADD_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case ADD_CHILDDEVICE_SUCCESS: + case ADD_CHILDDEVICE: + Intent intent1 = new Intent(ChooseA1AddDeviceActivity.this, LightOneActivity.class); + intent1.putExtra("isFirst", "1"); + intent1.putExtra("ziId", ziId); + intent1.putExtra("addressId", localAddAddressId); + startActivity(intent1); + break; + case ADD_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + case YBL_ADD_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case INDEX_APPLICANCE_LIST_SUCCESS: + AllDeviceEntity allDeviceEntity = (AllDeviceEntity) msg.obj; + if (allDeviceEntity != null && allDeviceEntity.getData().size() != 0) { + for (int i = 0; i < allDeviceEntity.getData().size(); i++) { + List devices = allDeviceEntity.getData().get(i).getDevices(); + if (null != devices && devices.size() > 0) { + for (int j = 0; j < devices.size(); j++) { + String haveDeviceType = devices.get(j).getDeviceType(); + if (haveDeviceType.equals(deviceType)) { + String ziId = devices.get(j).getZiId(); + for (int k = dataBeanList.size() - 1; k >= 0; k--) { + String ziId1 = dataBeanList.get(k).getZiId(); + if (ziId.equals(ziId1)) { + dataBeanList.remove(k); + } + } + } + } + } + } + } + mChooseA1Adapter.notifyDataSetChanged(); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + EventBus.getDefault().post( + new EventBusEntity("关闭")); + Intent intent = new Intent(this, DeviceControlByRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("addressId", getIntent().getExtras().get("addressId").toString()); + intent.putExtra("deviceAddress", getIntent().getExtras().get("addressId").toString()); + intent.putExtra("id", getIntent().getExtras().get("deviceId").toString()); + intent.putExtra("isFirst", "true"); + intent.putExtra("plugType", ""); + intent.putExtra("largeClass", ""); + startActivity(intent); + finish(); + break; + case YBL_ADD_SUCCESS: + BaseVersion5Entity obj = (BaseVersion5Entity) msg.obj; + EventBus.getDefault().post( + new EventBusEntity("关闭")); + Intent intent2; + if (AppIdUtil.isBaseZhiKong()) { + intent2 = new Intent(ChooseA1AddDeviceActivity.this, DeviceControlByRoomActivity.class); + } else { + intent2 = new Intent(ChooseA1AddDeviceActivity.this, DeviceControlActivity.class); + } + intent2.putExtra("ziId", ziId); + intent2.putExtra("musicStateTag", "0"); + intent2.putExtra("id", obj.getData().getId()); + startActivity(intent2); + finish(); + break; + case GET_USERDEVICES4_SIMPLEINFO_SUCCESS: + DeviceSimpleEntity simpleEntity = (DeviceSimpleEntity) msg.obj; + List data = simpleEntity.getData(); + dataBeanList.clear(); + dataBeanList.addAll(data); + mChooseA1Adapter.notifyDataSetChanged(); + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/ChooseA1OrUnbindActivity.java b/app/src/main/java/com/yonsz/z1/version5/ChooseA1OrUnbindActivity.java new file mode 100644 index 0000000..8929fe3 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/ChooseA1OrUnbindActivity.java @@ -0,0 +1,365 @@ +package com.yonsz.z1.version5; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.AddChildDeviceEntity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.DeviceSimpleEntity; +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.device.tv.AirListActivity; +import com.yonsz.z1.device.tv.FanListActivity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNextDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.light.LightOneActivity; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.adapter.ChooseA1Adapter; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.wifi.switcher.WifiSwitcherDetailActivity; + +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE; +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GATE_WAY; +import static com.yonsz.z1.net.Constans.GETZIINFO_FAIL; +import static com.yonsz.z1.net.Constans.INDEX_APPLICANCE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.SAFE_DEVICE_TAG; +import static com.yonsz.z1.net.Constans.SITUATIONAL_PANEL; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.Constans.localAddAddressId; +import static com.yonsz.z1.net.Constans.localAddFloorId; + +/** + * Created by Administrator on 2019/4/1. + */ + +public class ChooseA1OrUnbindActivity extends BaseActivity { + private TitleView mTitleView; + private String deviceType; + private RecyclerView deviceNumberRv; + private ChooseA1Adapter mChooseA1Adapter; + private List dataBeanList; + private Button bt_next; + private TextView bt_unbind; + private String deviceVersion; + private String ziId; + private String subVersion = ""; + private String deviceModel = ""; + private String bindZiId = ""; + private String parentThirdDeviceId = ""; + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_choose_a1_add_device); + initView(); + } + + private void initView() { + dataBeanList = (List) getIntent().getSerializableExtra("dataBeanList"); + deviceType = getIntent().getExtras().get("deviceType").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + bindZiId = getIntent().getExtras().get("ziId").toString(); + bt_unbind = (TextView) findViewById(R.id.bt_unbind); + bt_next = (Button) findViewById(R.id.bt_next); + bt_next.setText("确定"); + deviceNumberRv = (RecyclerView) findViewById(R.id.rv_device_number); + mTitleView = (TitleView) findViewById(R.id.title_device_number); + if ((deviceType.equals(SWITCH_TAG) && deviceModel.equals("4"))||deviceType.equals(INTELLIGENT_DOOR_LOCK)) { + mTitleView.setHead("绑定语音管家"); + } else { + mTitleView.setHead(R.string.add_device); + } + mTitleView.setHeadColor(Color.BLACK); + mTitleView.clearBackGroud(); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + Intent intent = new Intent(ChooseA1OrUnbindActivity.this, WifiSwitcherDetailActivity.class); + intent.putExtra("gateWayName", bindZiId); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + if (deviceType.equals(FAN_TAG) || deviceType.equals(AIR_TAG) || deviceType.equals(TV_TAG) + || deviceType.equals(TVONE_TAG) + || deviceType.equals(SWEEP_TAG) || deviceType.equals(MUSIC_TAG) + || deviceType.equals(MOVIE_CAMERA) || deviceType.equals(AIR_CLEANER)) { + getApplicanceList(); + } + + mChooseA1Adapter = new ChooseA1Adapter(this, dataBeanList); + GridLayoutManager manage1 = new GridLayoutManager(this, 3); + deviceNumberRv.setHasFixedSize(true); + deviceNumberRv.setLayoutManager(manage1); + deviceNumberRv.setAdapter(mChooseA1Adapter); + + mChooseA1Adapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int position) { + ziId = dataBeanList.get(position).getZiId(); + bt_next.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee)); + bt_next.setClickable(true); + bt_next.setEnabled(true); + localAddAddressId = dataBeanList.get(position).getAddressId(); + if (!TextUtils.isEmpty(dataBeanList.get(position).getFloor())) { + localAddFloorId = dataBeanList.get(position).getFloor(); + } else { + localAddFloorId = dataBeanList.get(position).getFloorCode(); + } + // deviceVersion = dataBeanList.get(position).getDeviceVersion(); + if (null != dataBeanList.get(0).getDeviceType() && dataBeanList.get(0).getDeviceType().equals(GATE_WAY)) { + parentThirdDeviceId = dataBeanList.get(position).getId(); + } else { + deviceVersion = dataBeanList.get(position).getAddition().getDeviceVersion(); + String deviceModel = dataBeanList.get(position).getDeviceModel(); + if (deviceModel.substring(0, 1).equals("B")) { + subVersion = "Y"; + } else { + subVersion = ""; + } + } + } + }); + + bt_unbind.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + ConfirmNextDialog dialog1 = new ConfirmNextDialog(ChooseA1OrUnbindActivity.this, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + break; + case 1: + bindZiId = ""; + subsetBindaidevice(); + break; + } + } + }); + dialog1.setTopTxt("是否确定解除绑定?"); + dialog1.setContent("解除绑定该WiFi设备,将无法使用语音场景模式控制"); + dialog1.setCancelable(false); + dialog1.show(); + } + }); + bt_next.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if ((deviceType.equals(SWITCH_TAG) && deviceModel.equals("4"))||deviceType.equals(INTELLIGENT_DOOR_LOCK)) { + bindZiId = ziId; + subsetBindaidevice(); + } + } + }); + if (!bindZiId.contains("wifi")) { + bt_unbind.setVisibility(View.VISIBLE); + mChooseA1Adapter.setNowZiName(bindZiId); + } else { + bt_unbind.setVisibility(View.GONE); + bt_next.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6)); + bt_next.setClickable(false); + bt_next.setEnabled(false); + } + } + + @Override + public void onBackPressed() { + Intent intent = new Intent(ChooseA1OrUnbindActivity.this, WifiSwitcherDetailActivity.class); + intent.putExtra("gateWayName", bindZiId); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + + private void subsetBindaidevice() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("deviceId").toString()); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("ziId", bindZiId); + util.requestPostByAsynewApi(NetWorkUrl.SUBSET_BINDAIDEVICE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetBindaidevice", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getApplicanceList() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("withControlKey", "false"); + map.put("isMerge485", "false"); + util.requestGetByAsy(NetWorkUrl.INDEX_APPLICANCE_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getApplicanceList5", respone); + AllDeviceEntity entity = JSON.parseObject(respone, AllDeviceEntity.class); + if (1 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(INDEX_APPLICANCE_LIST_SUCCESS); + msg.obj = entity; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GETZIINFO_FAIL); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(); + msg.what = GETZIINFO_FAIL; + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case ADD_CHILDDEVICE_SUCCESS: + case ADD_CHILDDEVICE: + Intent intent1 = new Intent(ChooseA1OrUnbindActivity.this, LightOneActivity.class); + intent1.putExtra("isFirst", "1"); + intent1.putExtra("ziId", ziId); + intent1.putExtra("addressId", localAddAddressId); + startActivity(intent1); + break; + case ADD_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case INDEX_APPLICANCE_LIST_SUCCESS: + AllDeviceEntity allDeviceEntity = (AllDeviceEntity) msg.obj; + if (allDeviceEntity != null && allDeviceEntity.getData().size() != 0) { + for (int i = 0; i < allDeviceEntity.getData().size(); i++) { + List devices = allDeviceEntity.getData().get(i).getDevices(); + if (null != devices && devices.size() > 0) { + for (int j = 0; j < devices.size(); j++) { + String haveDeviceType = devices.get(j).getDeviceType(); + if (haveDeviceType.equals(deviceType)) { + String ziId = devices.get(j).getZiId(); + for (int k = dataBeanList.size() - 1; k >= 0; k--) { + String ziId1 = dataBeanList.get(k).getZiId(); + if (ziId.equals(ziId1)) { + dataBeanList.remove(k); + } + } + } + } + } + } + } + mChooseA1Adapter.notifyDataSetChanged(); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + EventBus.getDefault().post( + new EventBusEntity("关闭")); + if (bindZiId.isEmpty()) { + bt_unbind.setVisibility(View.GONE); + ToastUtil.show(this, "解除绑定成功"); + mChooseA1Adapter.setNowZiName("wifi"); + } else { + bt_unbind.setVisibility(View.VISIBLE); + ToastUtil.show(this, "绑定成功"); + } + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/ChooseRoomActivity.java b/app/src/main/java/com/yonsz/z1/version5/ChooseRoomActivity.java new file mode 100644 index 0000000..dcfc966 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/ChooseRoomActivity.java @@ -0,0 +1,795 @@ +package com.yonsz.z1.version5; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.graphics.Color; +import android.net.wifi.WifiManager; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import com.alibaba.fastjson.JSON; +import com.mm.android.deviceaddmodule.CommonParam; +import com.mm.android.deviceaddmodule.LCDeviceEngine; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.activity.HotelAddDeviceListActivity; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.device.deviceadd.ConnectWifiActivity; +import com.yonsz.z1.device.deviceadd.NoWifiConnectActicity; +import com.yonsz.z1.devicea2.safedevice.ScanCodeActivity; +import com.yonsz.z1.difference.DifferConstans; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.curtain.CurtainOneActivity; +import com.yonsz.z1.new433.light.LightTwoActivity; +import com.yonsz.z1.new433.switcher.SwitcherTwoActivity; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.adapter.RoomChooseAdapter; +import com.yonsz.z1.version5.clotheshanger.ClothesHangerStepOneActivity; +import com.yonsz.z1.version5.clotheshanger.FSKSearchActivity; +import com.yonsz.z1.version5.curtainandWindow.CurtainAndWindowClickActivity; +import com.yonsz.z1.version5.curtainandWindow.CurtainTypeActivity; +import com.yonsz.z1.version5.light.LightT3TypeActivity; +import com.yonsz.z1.version5.light.ModifyTriggerTypeActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.ybl.light.YblHandSearchActivity; +import com.yonsz.z1.ybl.light.YblLightSearchActivity; +import com.yonsz.z1.ybl.panel.LockStepOneActivity; +import com.yonsz.z1.ybl.panel.YblPanelStepOneActivity; +import com.yonsz.z1.ybl.panel.YblPanelStepTwoActivity; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.CAMERA_TAG; +import static com.yonsz.z1.net.Constans.CAT_EYE; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GATE_WAY; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_FAIL; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.KUQI_PANEL; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.SAFETY_ACOUSTO_OPTIC; +import static com.yonsz.z1.net.Constans.SAFETY_DISPLACEMENT; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SAFETY_WIRELESS_REMOTE; +import static com.yonsz.z1.net.Constans.SAFE_DEVICE_TAG; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_PANEL; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.Constans.localAddAddressId; +import static com.yonsz.z1.net.Constans.localAddFloorId; +import static com.yonsz.z1.net.NetWorkUrl.BIND_DEVICE; +import static com.yonsz.z1.net.NetWorkUrl.HOUSEADDRESS_LIST; + +/** + * Created by Administrator on 2019/3/26. + */ + +public class ChooseRoomActivity extends BaseActivity { + private TitleView mTitleView; + private Button bt_start_config; + private RecyclerView chooseHouseTypeRv; + private RoomChooseAdapter mAdapter; + private List dataList = new ArrayList(); + private TextView roomTypeTv; + private String addressTypeCode; + private String deviceType; + private String deviceModel; + private String ziId = ""; + private String icon = ""; + private LcBindReceiver lcBindReceiver = null; + + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("关闭")) { + finish(); + } + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_choose_house_type); + + initView(); + initListener(); + } + + private void initView() { + if (null != getIntent().getExtras().get("ziId")) { + ziId = getIntent().getExtras().get("ziId").toString(); + } + deviceType = getIntent().getExtras().get("deviceType").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + roomTypeTv = (TextView) findViewById(R.id.tv_create_house); + roomTypeTv.setText("选择设备所在的房间"); + roomTypeTv.setTextSize(16); + bt_start_config = (Button) findViewById(R.id.bt_start_config); + chooseHouseTypeRv = (RecyclerView) findViewById(R.id.rv_choose_house_type); + mTitleView = (TitleView) findViewById(R.id.title_house_name); + mTitleView.setHead("选择设备位置"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + getAddresstypeList(); + registReceiver(); + } + + private void registReceiver() { + lcBindReceiver = new LcBindReceiver(); + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction("goMainbind"); + registerReceiver(lcBindReceiver, intentFilter); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + unregisterReceiver(lcBindReceiver); + } + + private void initListener() { + bt_start_config.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6)); + bt_start_config.setEnabled(false); + bt_start_config.setText("下一步"); + bt_start_config.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + Intent intent; + switch (deviceType) { + case "000": + WifiManager wifimanager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE); + if (wifimanager.isWifiEnabled()) { + if (null != getIntent().getExtras().get("titleRemark") && getIntent().getExtras().get("titleRemark").toString().contains("B3E")) { + intent = new Intent(ChooseRoomActivity.this, ScanCodeActivity.class); + } else { + intent = new Intent(ChooseRoomActivity.this, ConnectWifiActivity.class); + } + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + intent.putExtra("from", "AsxAddDeviceListActivity"); + intent.putExtra("addressTypeCode", addressTypeCode); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("titleRemark", getIntent().getExtras().get("titleRemark").toString()); + intent.putExtra("deviceType", "000"); + startActivity(intent); + } else { + intent = new Intent(ChooseRoomActivity.this, NoWifiConnectActicity.class); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + intent.putExtra("from", "AsxAddDeviceListActivity"); + intent.putExtra("addressTypeCode", addressTypeCode); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("titleRemark", getIntent().getExtras().get("titleRemark").toString()); + intent.putExtra("deviceType", "000"); + startActivity(intent); + } + break; + case CLOTHES_HANGER: + switch (deviceModel) { + case "0": + intent = new Intent(ChooseRoomActivity.this, ClothesHangerStepOneActivity.class); + intent.putExtra("addressTypeCode", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + startActivity(intent); + break; + case "1": + //FSK + intent = new Intent(ChooseRoomActivity.this, FSKSearchActivity.class); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + startActivity(intent); + break; + default: + + break; + } + break; + case TEMP_CONTROL: + case FRESH_AIR: + case FLOOR_HEATING: + case SAFETY_VALVE: + case SECURITY_MANIPULATOR: + intent = new Intent(ChooseRoomActivity.this, FSKSearchActivity.class); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + startActivity(intent); + break; + case LIGHT_TAG: + switch (deviceModel) { + case "0"://T1 + intent = new Intent(ChooseRoomActivity.this, LightTwoActivity.class); + intent.putExtra("panelType", "0"); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("icon", icon); + startActivity(intent); + break; + case "1"://T2 + intent = new Intent(ChooseRoomActivity.this, LightTwoActivity.class); + intent.putExtra("panelType", "1"); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("icon", icon); + startActivity(intent); + break; + case "2"://易百珑 + case "8"://调光调温 + intent = new Intent(ChooseRoomActivity.this, YblHandSearchActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + if (null != getIntent().getExtras().get("version")) { + intent.putExtra("version", getIntent().getExtras().get("version").toString()); + } + startActivity(intent); + break; + case "3"://尚慧T3 + case "4": + intent = new Intent(ChooseRoomActivity.this, LightT3TypeActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceModel", deviceModel); + startActivity(intent); + break; + case "9": + NettyHandlerUtil.getInstance(); + intent = new Intent(ChooseRoomActivity.this, FSKSearchActivity.class); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + startActivity(intent); + break; + default: + + break; + } + break; + case MULTIFUNCTIONAL_CONTROLLER: + intent = new Intent(ChooseRoomActivity.this, YblHandSearchActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + intent.putExtra("subType", getIntent().getExtras().get("subType").toString()); + startActivity(intent); + break; + case CURTAINS_TAG: + switch (deviceModel) { + case "0"://T1 + intent = new Intent(ChooseRoomActivity.this, CurtainOneActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + case "1"://尚慧T3 + intent = new Intent(ChooseRoomActivity.this, CurtainTypeActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + case "2"://易百珑FSK双向窗帘 + intent = new Intent(ChooseRoomActivity.this, YblLightSearchActivity.class); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + startActivity(intent); + break; + case "3"://T5窗帘面板 + intent = new Intent(ChooseRoomActivity.this, CurtainTypeActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + case "4"://T5双轨面板 + intent = new Intent(ChooseRoomActivity.this, CurtainAndWindowClickActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceType", deviceType); + intent.putExtra("subtype", "2"); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceModel", deviceModel); + startActivity(intent); + break; + case "7": + intent = new Intent(ChooseRoomActivity.this, YblHandSearchActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + default: + + break; + } + break; + case WINDOW_OPENER: + switch (deviceModel) { + case "0": + intent = new Intent(ChooseRoomActivity.this, CurtainAndWindowClickActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceType", deviceType); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceModel", deviceModel); + startActivity(intent); + break; + case "1": + intent = new Intent(ChooseRoomActivity.this, CurtainAndWindowClickActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceType", deviceType); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceModel", deviceModel); + startActivity(intent); + break; + default: + + break; + } + break; + case WIRELESS_EMERGENCY_BUTTON: + switch (deviceModel) { + case "0": + intent = new Intent(ChooseRoomActivity.this, ScanCodeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + if (null != getIntent().getExtras().get("parentThirdDeviceId")) { + intent.putExtra("parentThirdDeviceId", getIntent().getExtras().get("parentThirdDeviceId").toString()); + } + startActivity(intent); + break; + case "1": + intent = new Intent(ChooseRoomActivity.this, YblPanelStepTwoActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", deviceType); + intent.putExtra("subtype", "0"); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("panelType", "1"); + startActivity(intent); + break; + default: + + break; + } + break; + case GAS_TAG: + if (deviceModel.equals("1") || deviceModel.equals("2")) { + intent = new Intent(ChooseRoomActivity.this, YblPanelStepTwoActivity.class); + intent.putExtra("panelType", "2"); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + } else { + intent = new Intent(ChooseRoomActivity.this, ScanCodeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + if (null != getIntent().getExtras().get("parentThirdDeviceId")) { + intent.putExtra("parentThirdDeviceId", getIntent().getExtras().get("parentThirdDeviceId").toString()); + } + startActivity(intent); + } + break; + case CAT_EYE: + try { + LCDeviceEngine.newInstance().addDevice(ChooseRoomActivity.this); + } catch (Exception e) { + e.printStackTrace(); + } + break; + case INTELLIGENT_DOOR_LOCK: + if (deviceModel.equals("1")) { + try { + LCDeviceEngine.newInstance().addDevice(ChooseRoomActivity.this); + } catch (Exception e) { + e.printStackTrace(); + } + } else if (deviceModel.equals("2")) { + intent = new Intent(ChooseRoomActivity.this, LockStepOneActivity.class); + intent.putExtra("panelType", "2"); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + } else { + intent = new Intent(ChooseRoomActivity.this, ScanCodeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + if (null != getIntent().getExtras().get("parentThirdDeviceId")) { + intent.putExtra("parentThirdDeviceId", getIntent().getExtras().get("parentThirdDeviceId").toString()); + } + startActivity(intent); + } + break; + case SAFE_DEVICE_TAG: + case INFRARED_CURTAIN_DETECTOR: + case SAFETY_DISPLACEMENT: + case SAFETY_ACOUSTO_OPTIC: + case SAFETY_WIRELESS_REMOTE: + case "安防": + intent = new Intent(ChooseRoomActivity.this, ScanCodeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + if (null != getIntent().getExtras().get("parentThirdDeviceId")) { + intent.putExtra("parentThirdDeviceId", getIntent().getExtras().get("parentThirdDeviceId").toString()); + } + startActivity(intent); + break; + case DOOR_LOCK_TAG: + case INFRARED_TAG: + case SMOKE_TAG: + case WATER_TAG: + if (deviceModel.equals("2")) { + intent = new Intent(ChooseRoomActivity.this, YblPanelStepTwoActivity.class); + intent.putExtra("panelType", "2"); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + } else { + intent = new Intent(ChooseRoomActivity.this, ScanCodeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + if (null != getIntent().getExtras().get("parentThirdDeviceId")) { + intent.putExtra("parentThirdDeviceId", getIntent().getExtras().get("parentThirdDeviceId").toString()); + } + startActivity(intent); + } + break; + case GATE_WAY: + case CAMERA_TAG: + /*try { + CommonParam commonParam = new CommonParam(); + commonParam.setEnvirment(DifferConstans.SERVER_BACKUP4); + commonParam.setContext(ChooseRoomActivity.this.getApplication()); + commonParam.setAppId(DifferConstans.LECHENG_APPID); + commonParam.setAppSecret(DifferConstans.LECHENG_APPSECRET); + LCDeviceEngine.newInstance().init(commonParam,SharedpreferencesUtil.get("accessToken","")); + } catch (Throwable e) { + Toast.makeText(ChooseRoomActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show(); + }*/ + try { + LCDeviceEngine.newInstance().addDevice(ChooseRoomActivity.this); + } catch (Exception e) { + e.printStackTrace(); + } + /*intent = new Intent(ChooseRoomActivity.this, ScanCodeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + startActivity(intent);*/ + break; + case SWITCH_TAG: + if (deviceModel.equals("2")) { + intent = new Intent(ChooseRoomActivity.this, YblLightSearchActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", ""); + intent.putExtra("deviceModel", "2"); + intent.putExtra("deviceType", SWITCH_TAG); + startActivity(intent); + } else { + intent = new Intent(ChooseRoomActivity.this, SwitcherTwoActivity.class); + if (deviceModel.equals("4")) { + intent.putExtra("ziId", ""); + } else { + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + } + intent.putExtra("deviceType", SWITCH_TAG); + intent.putExtra("largeClass", deviceModel); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + startActivity(intent); + } + break; + case SITUATIONAL_PANEL: + if (deviceModel.equals("0")) { + intent = new Intent(ChooseRoomActivity.this, YblPanelStepOneActivity.class); + } else { + intent = new Intent(ChooseRoomActivity.this, CurtainTypeActivity.class); + } + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + case SITUATIONAL_TRIGGER: + intent = new Intent(ChooseRoomActivity.this, YblPanelStepTwoActivity.class); + intent.putExtra("panelType", "2"); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", SITUATIONAL_TRIGGER); + startActivity(intent); + break; + case SECURITY_TRIGGER: + intent = new Intent(ChooseRoomActivity.this, ModifyTriggerTypeActivity.class); + intent.putExtra("panelType", "2"); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", SECURITY_TRIGGER); + intent.putExtra("lightType", "0"); + startActivity(intent); + break; + case SERVICE_PANEL_485: + intent = new Intent(ChooseRoomActivity.this, YblPanelStepTwoActivity.class); + intent.putExtra("panelType", "2"); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + startActivity(intent); + break; + case KUQI_PANEL: + intent = new Intent(ChooseRoomActivity.this, ScanCodeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("icon", icon); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + startActivity(intent); + break; + } + } + }); + } + + + private void getAddresstypeList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + if (!TextUtils.isEmpty(homeListEntity.getData().get(deviceNumListPosition).getFloorList())) { + if (null != getIntent().getExtras().get("floor")) { + map.put("floor", getIntent().getExtras().get("floor").toString()); + } else if (!TextUtils.isEmpty(localAddFloorId)) { + map.put("floor", localAddFloorId); + } else if (!TextUtils.isEmpty(homeListEntity.getData().get(deviceNumListPosition).getFloorList())) { + map.put("floor", SharedpreferencesUtil.get(SharedpreferencesUtil.get(Constans.HOUSEID, ""), "")); + } + } + netWorkUtil.requestGetByAsy(HOUSEADDRESS_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getHousetypeList", "onSuccess()" + respone); + HouseEntity obj = JSON.parseObject(respone, HouseEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case HOUSE_TYPE_LIST_SUCCESS: + HouseEntity houseEntity = (HouseEntity) msg.obj; + dataList = houseEntity.getData(); + GridLayoutManager manager = new GridLayoutManager(this, 2); + chooseHouseTypeRv.setLayoutManager(manager); + mAdapter = new RoomChooseAdapter(this, dataList, false); + chooseHouseTypeRv.setAdapter(mAdapter); + + mAdapter.setmOnItemClickListener(new OnRecyclerListener() { + @Override + public void onClick(View view, final int position) { + addressTypeCode = dataList.get(position).getAddressTypeCode(); + icon = dataList.get(position).getIcon(); + localAddAddressId = addressTypeCode; + bt_start_config.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee_20dp)); + bt_start_config.setEnabled(true); + } + + @Override + public void onLongClick(RecyclerView.ViewHolder view, int position) { + + } + }); + break; + case HOUSE_TYPE_LIST_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + + /** + * 绑定 + */ + private void bindDevice(String sn, String code) { + //调后台接口 + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", sn); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("code", code); + map.put("addressId", addressTypeCode); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("isBind", "true"); +// map.put("wifiName", "123"); + netWorkUtil.requestPostByAsynewApi(BIND_DEVICE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("bindDevice", "onSuccess()" + respone); + runOnUiThread(new Runnable() { + @Override + public void run() { + SimpleEntty simpleEntty = JSON.parseObject(respone, SimpleEntty.class); + if (simpleEntty.getFlag() != 1) { + Toast.makeText(getApplicationContext(), simpleEntty.getMsg(), Toast.LENGTH_LONG); + } + EventBus.getDefault().post( + new EventBusEntity("关闭")); + EventBus.getDefault().post( + new ChooseHomeEvent("2")); + finish(); + } + }); + } + + @Override + public void onFail(String message) { + Log.i("bindDevice", "onFail()" + message); + } + }); + } + + public class LcBindReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + Log.i("goMainbind", intent.getStringExtra("sn")); + Log.i("goMainbind", intent.getStringExtra("code")); + Log.i("goMainbind", intent.getStringExtra("encryptPwd")); + if (intent.getStringExtra("encryptPwd").isEmpty()) { + bindDevice(intent.getStringExtra("sn"), intent.getStringExtra("code")); + } else { + if (deviceType.equals(GATE_WAY) && deviceModel.equals("0")) { + bindDevice(intent.getStringExtra("sn"), intent.getStringExtra("code")); + } else { + bindDevice(intent.getStringExtra("sn"), intent.getStringExtra("encryptPwd")); + } + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/ChooseVersionActivity.java b/app/src/main/java/com/yonsz/z1/version5/ChooseVersionActivity.java new file mode 100644 index 0000000..80a8d3a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/ChooseVersionActivity.java @@ -0,0 +1,251 @@ +package com.yonsz.z1.version5; + +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE; +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GATE_WAY; +import static com.yonsz.z1.net.Constans.GETZIINFO_FAIL; +import static com.yonsz.z1.net.Constans.GET_USERDEVICES4_SIMPLEINFO_FAIL; +import static com.yonsz.z1.net.Constans.GET_USERDEVICES4_SIMPLEINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.INDEPENDENT_CODE_AC; +import static com.yonsz.z1.net.Constans.INDEX_APPLICANCE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.KUQI_PANEL; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.RGB_LIGHT; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SAFE_DEVICE_TAG; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_PANEL; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SKYWORTH_TV; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; +import static com.yonsz.z1.net.Constans.YBL_ADD_FAIL; +import static com.yonsz.z1.net.Constans.YBL_ADD_SUCCESS; +import static com.yonsz.z1.net.Constans.localAddAddressId; +import static com.yonsz.z1.net.Constans.localAddFloorId; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.DeviceSimpleEntity; +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.database.entity.entity5.AllDeviceTypeEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.device.tv.AirListActivity; +import com.yonsz.z1.device.tv.FanListActivity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.light.LightOneActivity; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.DeviceControlActivity; +import com.yonsz.z1.version4.devicelist.DeviceList4Activity; +import com.yonsz.z1.version5.adapter.ChooseA1Adapter; +import com.yonsz.z1.version5.adapter.ChooseVersionAdapter; +import com.yonsz.z1.view.TitleView; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +/** + * Created by Administrator on 2019/4/1. + */ + +public class ChooseVersionActivity extends BaseActivity { + private TitleView mTitleView; + private String deviceType; + private RecyclerView deviceNumberRv; + private ChooseVersionAdapter mChooseA1Adapter; + private AllDeviceTypeEntity.DataBean.DeviceModelsBean deviceModelsBean; + private List dataBeanList = new ArrayList<>(); + private Button bt_next; + private String deviceModel = ""; + private String chooseValue = ""; + private TextView tv_choose_version; + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("关闭")) { + finish(); + } + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_choose_a1_add_device); + initView(); + } + + private void initView() { + deviceModelsBean = (AllDeviceTypeEntity.DataBean.DeviceModelsBean) getIntent().getSerializableExtra("dataBeanList"); + dataBeanList = deviceModelsBean.getVersionList(); + deviceType = deviceModelsBean.getDeviceTypeCode(); + deviceModel = deviceModelsBean.getCode(); + tv_choose_version = (TextView) findViewById(R.id.tv_device_number); + bt_next = (Button) findViewById(R.id.bt_next); + bt_next.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6)); + bt_next.setClickable(false); + bt_next.setEnabled(false); + deviceNumberRv = (RecyclerView) findViewById(R.id.rv_device_number); + mTitleView = (TitleView) findViewById(R.id.title_device_number); + mTitleView.setHead(R.string.add_device); + tv_choose_version.setText("请选择设备版本"); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.clearBackGroud(); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + mChooseA1Adapter = new ChooseVersionAdapter(this, dataBeanList); + GridLayoutManager manage1 = new GridLayoutManager(this, 3); + deviceNumberRv.setHasFixedSize(true); + deviceNumberRv.setLayoutManager(manage1); + deviceNumberRv.setAdapter(mChooseA1Adapter); + + mChooseA1Adapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int position) { + bt_next.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee)); + bt_next.setClickable(true); + bt_next.setEnabled(true); + chooseValue = dataBeanList.get(position).getValue(); + } + }); + + bt_next.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + getAideviceList(); + } + }); + } + + private void getAideviceList() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("standardCodes", deviceModelsBean.getStandardCodes()); + map.put("deviceType", deviceType); + map.put("deviceModel", deviceModel); + util.requestGetByAsy(NetWorkUrl.DEIVCE_AIDEVICE_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getAideviceList", respone); + DeviceSimpleEntity entity = JSON.parseObject(respone, DeviceSimpleEntity.class); + if (1 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(GET_USERDEVICES4_SIMPLEINFO_SUCCESS); + msg.obj = entity; + msg.arg1 = 0; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GET_USERDEVICES4_SIMPLEINFO_FAIL); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(); + msg.what = GET_USERDEVICES4_SIMPLEINFO_FAIL; + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case GET_USERDEVICES4_SIMPLEINFO_SUCCESS: + DeviceSimpleEntity simpleEntity = (DeviceSimpleEntity) msg.obj; + if (simpleEntity.getData().size() != 0) { + Intent intent = new Intent(this, ChooseA1AddDeviceActivity.class); + Bundle bundle = new Bundle(); + bundle.putSerializable("dataBeanList", (Serializable) simpleEntity.getData()); + intent.putExtras(bundle); + intent.putExtra("deviceType", deviceType); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("standardCodes", deviceModelsBean.getStandardCodes()); + intent.putExtra("version", chooseValue); + startActivity(intent); + } else { + int arg1 = msg.arg1; + if (arg1 == 0) { + ToastUtil.show(this, "暂无语音管家,无法添加该设备"); + } else { + ToastUtil.show(this, "暂无网关,无法添加该设备"); + } + } + break; + case GET_USERDEVICES4_SIMPLEINFO_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/DeviceControlByRoomActivity.java b/app/src/main/java/com/yonsz/z1/version5/DeviceControlByRoomActivity.java new file mode 100644 index 0000000..d219e67 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/DeviceControlByRoomActivity.java @@ -0,0 +1,975 @@ +package com.yonsz.z1.version5; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; +import android.support.v4.view.ViewPager; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.RelativeLayout; + +import com.alibaba.fastjson.JSON; +import com.lechange.demo.ui.DeviceDetailLockFragment; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.gateway.KuQiPanelFragment; +import com.yonsz.z1.gateway.LCSafeDeviceFragment; +import com.yonsz.z1.gateway.SwoitLockFragment; +import com.yonsz.z1.login.LoginActivity; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.panel485.Panel485Fragment; +import com.yonsz.z1.tcpudp.NettyManager; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.fragment.AirA1Fragment; +import com.yonsz.z1.version4.fragment.AirA2Fragment; +import com.yonsz.z1.version4.fragment.AirCleanerFragment; +import com.yonsz.z1.version4.fragment.DependentACFragment; +import com.yonsz.z1.version4.fragment.FanA1Fragment; +import com.yonsz.z1.version4.fragment.FanA2Fragment; +import com.yonsz.z1.version4.fragment.LightA1Fragment; +import com.yonsz.z1.version4.fragment.LightMultiFragment; +import com.yonsz.z1.version4.fragment.MovieCameraFragment; +import com.yonsz.z1.version4.fragment.MusicFragment; +import com.yonsz.z1.version4.fragment.SafeDeviceFragment; +import com.yonsz.z1.version4.fragment.ScrollViewPager; +import com.yonsz.z1.version4.fragment.SweepA1Fragment; +import com.yonsz.z1.version4.fragment.SweepA2Fragment; +import com.yonsz.z1.version4.fragment.SwitchFragment; +import com.yonsz.z1.version4.fragment.TvA1BoxFragment; +import com.yonsz.z1.version4.fragment.TvA1Fragment; +import com.yonsz.z1.version4.fragment.TvA2BoxFragment; +import com.yonsz.z1.version4.fragment.TvA2Fragment; +import com.yonsz.z1.version4.fragment.ViewPagerAdapter; +import com.yonsz.z1.version4.fragment.ZigbeeDeviceFragment; +import com.yonsz.z1.version5.curtainandWindow.Curtain5Fragment; +import com.yonsz.z1.version5.fragment.ClothesHangerFragment; +import com.yonsz.z1.version5.fragment.FloorHeatingFragment; +import com.yonsz.z1.version5.fragment.FreshAirFragment; +import com.yonsz.z1.version5.fragment.MultiControllerFragment; +import com.yonsz.z1.version5.fragment.RGBLightFragment; +import com.yonsz.z1.version5.fragment.SafetyValveFragment; +import com.yonsz.z1.version5.fragment.TempControlFragment; +import com.yonsz.z1.version5.fragment.WindowOpenerFragment; +import com.yonsz.z1.version5.weidget.BaseFragmentPagerAdapter; +import com.yonsz.z1.view.loading.LoadingDialog; +import com.yonsz.z1.ybl.card.SituationalTriggerFragment; +import com.yonsz.z1.ybl.panel.YblPanelFragment; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.CAMERA_TAG; +import static com.yonsz.z1.net.Constans.CAT_EYE; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GATE_WAY; +import static com.yonsz.z1.net.Constans.GETZIINFO_FAIL; +import static com.yonsz.z1.net.Constans.GETZIINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.GET_USER_SESSION_NULL; +import static com.yonsz.z1.net.Constans.INDEX_APPLICANCE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.KUQI_PANEL; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.RGB_LIGHT; +import static com.yonsz.z1.net.Constans.SAFETY_ACOUSTO_OPTIC; +import static com.yonsz.z1.net.Constans.SAFETY_DISPLACEMENT; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SAFETY_WIRELESS_REMOTE; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.Constans.isLocalControl; +import static com.yonsz.z1.net.Constans.localAddAddressId; +import static com.yonsz.z1.net.Constans.localAddFloorId; + +/** + * @author Administrator + * @date 2018/8/7 + */ + +public class DeviceControlByRoomActivity extends BaseActivity { + public static String safeDefenceType = ""; + private List mDeviceBeans; + private ScrollViewPager mViewPager; + private BaseFragmentPagerAdapter mAdAdapter; + private List fragmentList; + private FragmentManager manager; + private String id; + private String ziId; + private int localPosition = 0; + private int a1Number = 0; + private String deviceIp = ""; + private LoadingDialog mLoadingDialog; + private RelativeLayout rl_learn_guide; + private String isAddState = "0"; + private boolean isNeedDeleteLock = false; + private int isNeedDeleteLockPosition = 100; + + public void onEventMainThread(CanloopEvent event) { + boolean isCanScroll = event.getMsg(); + Log.e("nettyUtil", isCanScroll + ""); + //设置能否滑动 + mViewPager.setScanScroll(!isCanScroll); + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + if (msg.equals("插座已删除")) { + Log.e("nettyUtil", msg); + finish(); + } + if (msg.equals("创维大屏已解绑")) { + Log.e("nettyUtil", msg); + finish(); + } + } + + protected void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_device_control); + initView(); + } + + @Override + public void onResume() { + super.onResume(); + } + + private void initView() { + mViewPager = (ScrollViewPager) findViewById(R.id.mvp_main_top); + rl_learn_guide = (RelativeLayout) findViewById(R.id.rl_learn_guide); + rl_learn_guide.setOnClickListener(this); + fragmentList = new ArrayList<>(); + id = getIntent().getExtras().get("id").toString(); + ziId = getIntent().getExtras().get("ziId").toString(); + if (getIntent().getExtras() != null && getIntent().getExtras().get("parentBean") != null) { + // parentBean = (DeviceEntityV4.DataBean) getIntent().getExtras().get("parentBean"); + AllDeviceEntity.DataBean mDeviceBean = JSON.parseObject(getIntent().getExtras().get("parentBean").toString(), AllDeviceEntity.DataBean.class); + // mDeviceBeans = (List) getIntent().getExtras().get("parentBean"); + mDeviceBeans = mDeviceBean.getDevices(); + if (null != mDeviceBeans) { + setPagerNumber(mDeviceBeans); + } + manager = getSupportFragmentManager(); + mAdAdapter = new BaseFragmentPagerAdapter(manager, fragmentList); + mViewPager.setScanScroll(true); + mViewPager.setAdapter(mAdAdapter); + mViewPager.setOffscreenPageLimit(2); + if (isNeedDeleteLock && isNeedDeleteLockPosition != 100) { + if (isNeedDeleteLockPosition < localPosition) { + mViewPager.setCurrentItem(localPosition - a1Number - 1, false); + } else { + mViewPager.setCurrentItem(localPosition - a1Number, false); + } + isNeedDeleteLockPosition = 100; + isNeedDeleteLock = false; + } else { + mViewPager.setCurrentItem(localPosition - a1Number, false); + } +// mViewPager.setCurrentItem(localPosition - a1Number, false); + mAdAdapter.notifyDataSetChanged(); + } else { + // getZ1Info(); + // getApplicanceListByAddress(); + getApplicanceList(); + } + + + // ConnectNettyUtil.connectNetty(ziId, deviceIp, this); + + mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + Log.i("onPageScrolled", position + ""); + /* if (isNeedDeleteLock && isNeedDeleteLockPosition != 100) { + mAdAdapter.removeFragment(isNeedDeleteLockPosition); + isNeedDeleteLockPosition = 100; + isNeedDeleteLock = false; + }*/ + } + + @Override + public void onPageSelected(int position) { + localPosition = position; + Log.i("onPageSelected", position + ""); + } + + @Override + public void onPageScrollStateChanged(int state) { + Log.i("onPageChanged", state + ""); + /*if (fragmentList.size() < 2) + return; + // 若viewpager滑动未停止,直接返回 + if (state != ViewPager.SCROLL_STATE_IDLE) + return; + // 若当前为第一张,设置页面为倒数第二张 + if (localPosition == 0) { + mViewPager.setCurrentItem(fragmentList.size() - 2, false); + } else if (localPosition == fragmentList.size() - 1) { + // 若当前为倒数第一张,设置页面为第二张 + mViewPager.setCurrentItem(1, false); + }*/ + } + }); + } + + @Override + protected void onStop() { + super.onStop(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (isLocalControl) { + NettyManager.closeCtx(); + } + } + + @Override + public void onClick(View v) { + super.onClick(v); + switch (v.getId()) { + case R.id.rl_learn_guide: + rl_learn_guide.setVisibility(View.GONE); + SharedpreferencesUtil.save(ziId + "scroll", false); + break; + } + } + + private List setPagerNumber(List devices) { + fragmentList.clear(); + Bundle bundle; + for (int i = 0; i < devices.size(); i++) { + AllDeviceEntity.DataBean.DeviceBean thisBean = devices.get(i); + if (thisBean.getId().equals(id)) { + localPosition = i; + } +// || (thisBean.getDeviceType().equals(INTELLIGENT_DOOR_LOCK) && thisBean.getDeviceModel().equals("1")) + if (thisBean.getDeviceType().equals("000") || thisBean.getDeviceType().equals(GATE_WAY) || thisBean.getDeviceType().equals(CAMERA_TAG) + ) { + a1Number++; + } + DeviceEntityV4.DataBean.DevicesBean sendBean = new DeviceEntityV4.DataBean.DevicesBean(); + sendBean.setDeviceBrand(thisBean.getDeviceBrand()); + sendBean.setZiId(thisBean.getZiId()); + sendBean.setRid(thisBean.getRid()); + sendBean.setId(thisBean.getId()); + sendBean.setDeviceInfrared(thisBean.getDeviceInfrared()); + sendBean.setAddressId(thisBean.getAddressId()); + sendBean.setAddressName(thisBean.getAddressName()); + sendBean.setDeviceModel(thisBean.getDeviceModel()); + sendBean.setDeviceName(thisBean.getName()); + sendBean.setModelName(thisBean.getModelName()); + sendBean.setDeviceType(thisBean.getDeviceType()); + + if (null != thisBean.getAddition()) { + if (!thisBean.getAddition().getCancelFlag().isEmpty()) { + sendBean.setCancelFlag(Integer.parseInt(thisBean.getAddition().getCancelFlag())); + } + if (!thisBean.getAddition().getRid().isEmpty()) { + sendBean.setRid(thisBean.getAddition().getRid()); + } + } + + switch (thisBean.getDeviceType()) { + case Constans.INDEPENDENT_CODE_AC: + DependentACFragment acFragment = DependentACFragment.getInstance(sendBean); + bundle = new Bundle(); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", isAddState); + acFragment.setArguments(bundle); + fragmentList.add(acFragment); + break; + case Constans.AIR_TAG: + if (null != thisBean.getHardwares() && thisBean.getHardwares().getInfrared().equals("101")) { + AirA1Fragment airA1Fragment = AirA1Fragment.getInstance(sendBean); + bundle = new Bundle(); + // bundle.putSerializable("DATA", sendBean); + if (null != getIntent().getExtras().get("airStateTag")) { + bundle.putString("airStateTag", getIntent().getExtras().get("airStateTag").toString()); + } else { + bundle.putString("airStateTag", "1"); + } + // bundle.putString("DATA", JSON.toJSONString(sendBean)); + airA1Fragment.setArguments(bundle); + fragmentList.add(airA1Fragment); + /*EventBus.getDefault().post( + new BindDateEvent(sendBean, "AirA1Fragment"));*/ + } else { + AirA2Fragment airA2Fragment = AirA2Fragment.getInstance(sendBean); + bundle = new Bundle(); + // bundle.putString("DATA", JSON.toJSONString(sendBean)); + // bundle.putSerializable("DATA", sendBean); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", isAddState); + airA2Fragment.setArguments(bundle); + fragmentList.add(airA2Fragment); + /*EventBus.getDefault().post( + new BindDateEvent(sendBean, "AirA1Fragment"));*/ + } + break; + case Constans.FAN_TAG: + if (null != thisBean.getHardwares() && thisBean.getHardwares().getInfrared().equals("101")) { + FanA1Fragment fanA1Fragment = FanA1Fragment.getInstance(sendBean); + bundle = new Bundle(); + // bundle.putSerializable("DATA", sendBean); + if (null != getIntent().getExtras().get("fanStateTag")) { + bundle.putString("fanStateTag", getIntent().getExtras().get("fanStateTag").toString()); + } else { + bundle.putString("fanStateTag", "1"); + } + // bundle.putString("DATA", JSON.toJSONString(sendBean)); + fanA1Fragment.setArguments(bundle); + fragmentList.add(fanA1Fragment); + } else { + FanA2Fragment fanA2Fragment = FanA2Fragment.getInstance(sendBean); + bundle = new Bundle(); + // bundle.putSerializable("DATA", sendBean); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + bundle.putString("subVersion", "A2"); + // bundle.putString("DATA", JSON.toJSONString(sendBean)); + fanA2Fragment.setArguments(bundle); + fragmentList.add(fanA2Fragment); + } + break; + + case Constans.TV_TAG: + if (null != thisBean.getHardwares() && thisBean.getHardwares().getInfrared().equals("101")) { + TvA1Fragment tvA1Fragment = TvA1Fragment.getInstance(sendBean); + bundle = new Bundle(); + // bundle.putSerializable("DATA", sendBean); + if (null != getIntent().getExtras().get("tvStateTag")) { + bundle.putString("tvStateTag", getIntent().getExtras().get("tvStateTag").toString()); + } else { + bundle.putString("tvStateTag", "1"); + } + // bundle.putString("DATA", JSON.toJSONString(sendBean)); + tvA1Fragment.setArguments(bundle); + fragmentList.add(tvA1Fragment); + } else { + TvA2Fragment tvA2Fragment = TvA2Fragment.getInstance(sendBean); + bundle = new Bundle(); + // bundle.putSerializable("DATA", sendBean); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + bundle.putString("subVersion", "A2"); + // bundle.putString("DATA", JSON.toJSONString(sendBean)); + tvA2Fragment.setArguments(bundle); + fragmentList.add(tvA2Fragment); + } + break; + case Constans.SKYWORTH_TV: + switch (thisBean.getSubType()) { + case "1": + TvA2Fragment tvA2Fragment = TvA2Fragment.getInstance(sendBean); + bundle = new Bundle(); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + bundle.putString("subVersion", "A2"); + tvA2Fragment.setArguments(bundle); + fragmentList.add(tvA2Fragment); + break; + case "8": + AirA2Fragment airA2Fragment = AirA2Fragment.getInstance(sendBean); + bundle = new Bundle(); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", isAddState); + airA2Fragment.setArguments(bundle); + fragmentList.add(airA2Fragment); + break; + } + break; + case MOVIE_CAMERA: + MovieCameraFragment cameraFragment = MovieCameraFragment.getInstance(sendBean); + bundle = new Bundle(); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + cameraFragment.setArguments(bundle); + fragmentList.add(cameraFragment); + break; + case AIR_CLEANER: + AirCleanerFragment airCleanerFragment = AirCleanerFragment.getInstance(sendBean); + bundle = new Bundle(); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + airCleanerFragment.setArguments(bundle); + fragmentList.add(airCleanerFragment); + break; + case Constans.TVONE_TAG: + if (null != thisBean.getHardwares() && thisBean.getHardwares().getInfrared().equals("101")) { + TvA1BoxFragment tvA1Fragment = TvA1BoxFragment.getInstance(sendBean); + bundle = new Bundle(); + // bundle.putSerializable("DATA", sendBean); + if (null != getIntent().getExtras().get("tvStateTag")) { + bundle.putString("tvStateTag", getIntent().getExtras().get("tvStateTag").toString()); + } else { + bundle.putString("tvStateTag", "1"); + } + // bundle.putString("DATA", JSON.toJSONString(sendBean)); + tvA1Fragment.setArguments(bundle); + fragmentList.add(tvA1Fragment); + } else { + TvA2BoxFragment tvA2Fragment = TvA2BoxFragment.getInstance(sendBean); + bundle = new Bundle(); + // bundle.putSerializable("DATA", sendBean); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + bundle.putString("subVersion", "A2"); + // bundle.putString("DATA", JSON.toJSONString(sendBean)); + tvA2Fragment.setArguments(bundle); + fragmentList.add(tvA2Fragment); + } + break; + case Constans.SWEEP_TAG: + if (null != thisBean.getHardwares() && thisBean.getHardwares().getInfrared().equals("101")) { + SweepA1Fragment sweepA1Fragment = SweepA1Fragment.getInstance(sendBean); + bundle = new Bundle(); + // bundle.putSerializable("DATA", sendBean); + if (null != getIntent().getExtras().get("sweepStateTag")) { + bundle.putString("sweepStateTag", getIntent().getExtras().get("sweepStateTag").toString()); + } else { + bundle.putString("sweepStateTag", "1"); + } + // bundle.putString("DATA", JSON.toJSONString(sendBean)); + sweepA1Fragment.setArguments(bundle); + fragmentList.add(sweepA1Fragment); + } else { + SweepA2Fragment sweepA2Fragment = SweepA2Fragment.getInstance(sendBean); + bundle = new Bundle(); + // bundle.putSerializable("DATA", sendBean); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + bundle.putString("subVersion", "A2"); + // bundle.putString("DATA", JSON.toJSONString(sendBean)); + sweepA2Fragment.setArguments(bundle); + fragmentList.add(sweepA2Fragment); + } + break; + case Constans.LIGHT_TAG: + /*if (thisBean.getDeviceModel().equals("5")) { + sendBean.setDeviceCount(Integer.parseInt(thisBean.getKeyCount())); + sendBean.setId(thisBean.getId()); + sendBean.setChildren(thisBean.getChildren()); + Panel485Fragment panel485Fragment = Panel485Fragment.getInstance(sendBean); + fragmentList.add(panel485Fragment); + } else */ + if (thisBean.getDeviceModel().equals("8")) { + sendBean.setLightType(thisBean.getSubType()); + sendBean.setSubType(thisBean.getSubType()); + sendBean.setVoiceFlag(thisBean.getVoiceFlag()); + sendBean.setPanelId(thisBean.getAddition().getPanelId()); + sendBean.setYblType(thisBean.getAddition().getYblType()); + sendBean.setRelatedId(thisBean.getRelatedId()); + if (null != getIntent().getExtras().get("relatedStatus")) { + if (getIntent().getExtras().get("id").toString().equals(thisBean.getId())) { + sendBean.setRelatedStatus(getIntent().getExtras().get("relatedStatus").toString()); + } else { + sendBean.setRelatedStatus("0"); + } + } else { + sendBean.setRelatedStatus("0"); + } + LightMultiFragment lightFragment = LightMultiFragment.getInstance(sendBean); + fragmentList.add(lightFragment); + } else { + sendBean.setLightType(thisBean.getSubType()); + sendBean.setSubType(thisBean.getSubType()); + sendBean.setVoiceFlag(thisBean.getVoiceFlag()); + sendBean.setPanelId(thisBean.getAddition().getPanelId()); + sendBean.setYblType(thisBean.getAddition().getYblType()); + LightA1Fragment lightFragment = LightA1Fragment.getInstance(sendBean); + fragmentList.add(lightFragment); + } + + break; + case Constans.CURTAINS_TAG: + if (thisBean.getChildren().size() != 0) { + sendBean.setRelatedStatus("1"); + sendBean.setRelatedId(thisBean.getRelatedId()); + DeviceEntityV4.DataBean.DevicesBean.RelatedBlindBean relatedBlindBean = new DeviceEntityV4.DataBean.DevicesBean.RelatedBlindBean(); + List controlKeys = thisBean.getChildren().get(0).getControlKeys(); + for (int k = 0; k < controlKeys.size(); k++) { + if (controlKeys.get(k).getCmds().size() != 0) { + String cmd = controlKeys.get(k).getCmds().get(0); + switch (controlKeys.get(k).getName()) { + case "open": + relatedBlindBean.setOpenCode(cmd); + break; + case "stop": + relatedBlindBean.setStopCode(cmd); + break; + case "close": + relatedBlindBean.setCloseCode(cmd); + break; + } + } + } + relatedBlindBean.setId(thisBean.getChildren().get(0).getId()); + if (null != thisBean.getChildren().get(0) && null != thisBean.getChildren().get(0).getLastInfo()) { + relatedBlindBean.setOpenFlag(thisBean.getChildren().get(0).getLastInfo().getOpenFlag()); + } + sendBean.setRelatedBlind(relatedBlindBean); + } else { + sendBean.setRelatedStatus("0"); + } + List controlKeys = thisBean.getControlKeys(); + for (int k = 0; k < controlKeys.size(); k++) { + if (controlKeys.get(k).getCmds().size() != 0) { + String cmd = controlKeys.get(k).getCmds().get(0); + switch (controlKeys.get(k).getName()) { + case "open": + sendBean.setOpenCode(cmd); + break; + case "stop": + sendBean.setStopCode(cmd); + break; + case "close": + sendBean.setCloseCode(cmd); + break; + } + } + } + sendBean.setBlindType(thisBean.getSubType()); + sendBean.setVoiceFlag(thisBean.getVoiceFlag()); + sendBean.setControlKeys(thisBean.getControlKeys()); + bundle = new Bundle(); + if (null != getIntent().getExtras().get("relatedStatus")) { + if (getIntent().getExtras().get("id").toString().equals(thisBean.getId())) { + bundle.putString("relatedStatus", getIntent().getExtras().get("relatedStatus").toString()); + } else { + bundle.putString("relatedStatus", sendBean.getRelatedStatus()); + } + } else { + bundle.putString("relatedStatus", sendBean.getRelatedStatus()); + } + Curtain5Fragment curtainFragment = Curtain5Fragment.getInstance(sendBean); + curtainFragment.setArguments(bundle); + fragmentList.add(curtainFragment); + break; + case Constans.SWITCH_TAG: + sendBean.setVoiceFlag(thisBean.getVoiceFlag()); + sendBean.setPlugType(thisBean.getSubType()); + sendBean.setControlKeys(thisBean.getControlKeys()); + sendBean.setLargeClass(thisBean.getLargeClass()); + if (null != thisBean.getSoftwares()) { + sendBean.setElectricquantity(thisBean.getSoftwares().isElectricquantity()); + sendBean.setOnline(thisBean.getSoftwares().isOnline()); + } else { + sendBean.setElectricquantity(false); + } + if (null != thisBean.getLastInfo() && null != thisBean.getLastInfo().getOpenFlag()) { + AllDeviceEntity.DataBean.DeviceBean.LastInfoBean lastInfo = thisBean.getLastInfo(); + DeviceEntityV4.DataBean.DevicesBean.LastInfoBean lastInfo1 = new DeviceEntityV4.DataBean.DevicesBean.LastInfoBean(); + lastInfo1.setOpenFlag(lastInfo.getOpenFlag()); + sendBean.setLastInfo(lastInfo1); + } + SwitchFragment switchFragment = SwitchFragment.getInstance(sendBean); + fragmentList.add(switchFragment); + break; + case SECURITY_TRIGGER: + sendBean.setSubType(thisBean.getSubType()); + sendBean.setDeviceType(thisBean.getDeviceType()); + sendBean.setDeviceInfrared(thisBean.getDeviceInfrared()); + SafeDeviceFragment safeDeviceFragment1 = SafeDeviceFragment.getInstance(sendBean); + fragmentList.add(safeDeviceFragment1); + break; + case Constans.GAS_TAG: + case WIRELESS_EMERGENCY_BUTTON: + sendBean.setDeviceType(thisBean.getDeviceType()); + sendBean.setDeviceInfrared(thisBean.getDeviceInfrared()); + SafeDeviceFragment safeDeviceFragment2 = SafeDeviceFragment.getInstance(sendBean); + fragmentList.add(safeDeviceFragment2); + break; + case Constans.DOOR_LOCK_TAG: + case Constans.INFRARED_TAG: + case Constans.SMOKE_TAG: + case Constans.WATER_TAG: + case Constans.SECURITY_MANIPULATOR: + if (thisBean.getDeviceModel().equals("1")) { + sendBean.setDeviceType(thisBean.getDeviceType()); + sendBean.setDeviceInfrared(thisBean.getDeviceInfrared()); + sendBean.setId(thisBean.getDeviceId()); + sendBean.setDeviceId(thisBean.getId()); + LCSafeDeviceFragment safeDeviceFragment = LCSafeDeviceFragment.getInstance(sendBean); + fragmentList.add(safeDeviceFragment); + } else { + sendBean.setDeviceType(thisBean.getDeviceType()); + sendBean.setDeviceInfrared(thisBean.getDeviceInfrared()); + SafeDeviceFragment safeDeviceFragment = SafeDeviceFragment.getInstance(sendBean); + fragmentList.add(safeDeviceFragment); + } + break; + case CAT_EYE: + isNeedDeleteLock = true; + isNeedDeleteLockPosition = i; + break; + case INTELLIGENT_DOOR_LOCK: + if (thisBean.getDeviceModel().equals("1")) { + isNeedDeleteLock = true; + /*sendBean.setDeviceType(thisBean.getDeviceType()); + sendBean.setDeviceInfrared(thisBean.getDeviceInfrared()); + sendBean.setId(thisBean.getDeviceId()); + sendBean.setDeviceId(thisBean.getId()); + LCSafeDeviceFragment safeDeviceFragment = LCSafeDeviceFragment.getInstance(sendBean); + fragmentList.add(safeDeviceFragment);*/ + isNeedDeleteLockPosition = i; + } else if (thisBean.getDeviceModel().equals("2")) { + sendBean.setDeviceType(thisBean.getDeviceType()); + sendBean.setDeviceInfrared(thisBean.getDeviceInfrared()); + sendBean.setId(thisBean.getDeviceId()); + sendBean.setDeviceId(thisBean.getId()); + SwoitLockFragment safeDeviceFragment = SwoitLockFragment.getInstance(sendBean); + fragmentList.add(safeDeviceFragment); + } else { + sendBean.setDeviceType(thisBean.getDeviceType()); + sendBean.setDeviceInfrared(thisBean.getDeviceInfrared()); + sendBean.setId(thisBean.getDeviceId()); + sendBean.setDeviceId(thisBean.getId()); + LCSafeDeviceFragment safeDeviceFragment = LCSafeDeviceFragment.getInstance(sendBean); + fragmentList.add(safeDeviceFragment); + } + break; + case INFRARED_CURTAIN_DETECTOR: + case SAFETY_DISPLACEMENT: + case SAFETY_ACOUSTO_OPTIC: + case SAFETY_WIRELESS_REMOTE: + sendBean.setDeviceType(thisBean.getDeviceType()); + sendBean.setDeviceInfrared(thisBean.getDeviceInfrared()); + sendBean.setId(thisBean.getDeviceId()); + sendBean.setDeviceId(thisBean.getId()); + LCSafeDeviceFragment safeDeviceFragment = LCSafeDeviceFragment.getInstance(sendBean); + fragmentList.add(safeDeviceFragment); + break; + case KUQI_PANEL: + sendBean.setDeviceType(thisBean.getDeviceType()); + sendBean.setDeviceInfrared(thisBean.getDeviceInfrared()); + KuQiPanelFragment kuQiPanelFragment = KuQiPanelFragment.getInstance(sendBean); + fragmentList.add(kuQiPanelFragment); + break; + case Constans.SITUATIONAL_PANEL: + sendBean.setDeviceCount(Integer.parseInt(thisBean.getKeyCount())); + sendBean.setId(thisBean.getId()); + YblPanelFragment yblPanelDetailFragment = YblPanelFragment.getInstance(sendBean); + fragmentList.add(yblPanelDetailFragment); + break; + case SITUATIONAL_TRIGGER: + sendBean.setDeviceCount(Integer.parseInt(thisBean.getKeyCount())); + sendBean.setId(thisBean.getId()); + SituationalTriggerFragment triggerFragment = SituationalTriggerFragment.getInstance(sendBean); + fragmentList.add(triggerFragment); + break; + case Constans.MUSIC_TAG: + MusicFragment musicFragment = MusicFragment.getInstance(sendBean); + bundle = new Bundle(); + // bundle.putSerializable("DATA", sendBean); + // bundle.putString("DATA", JSON.toJSONString(sendBean)); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + bundle.putString("subVersion", "A2"); + musicFragment.setArguments(bundle); + fragmentList.add(musicFragment); + break; + case Constans.ZIGBEE_LIGHT: + case Constans.ZIGBEE_PLUG: + case Constans.ZIGBEE_INFRARED: + case Constans.ZIGBEE_TEMPERATURE: + case Constans.ZIGBEE_DOOR: + case Constans.ZIGBEE_CO: + case Constans.ZIGBEE_WATER: + case Constans.ZIGBEE_SMOKE: + fragmentList.add(new ZigbeeDeviceFragment()); + break; + case CLOTHES_HANGER: + if (null != thisBean.getLastInfo()) { + DeviceEntityV4.DataBean.DevicesBean.LastInfoBean lastInfoBean = new DeviceEntityV4.DataBean.DevicesBean.LastInfoBean(); + lastInfoBean.setAirdrying(thisBean.getLastInfo().getAirdrying()); + lastInfoBean.setAnion(thisBean.getLastInfo().getAnion()); + lastInfoBean.setDisinfect(thisBean.getLastInfo().getDisinfect()); + lastInfoBean.setLight(thisBean.getLastInfo().getLight()); + lastInfoBean.setOpenFlag(thisBean.getLastInfo().getOpenFlag()); + lastInfoBean.setStoving(thisBean.getLastInfo().getStoving()); + lastInfoBean.setVoice(thisBean.getLastInfo().getVoice()); + sendBean.setLastInfo(lastInfoBean); + } + sendBean.setVoiceFlag(thisBean.getVoiceFlag()); + ClothesHangerFragment clothesHangerFragment = ClothesHangerFragment.getInstance(sendBean); + /*bundle = new Bundle(); + bundle.putSerializable("DATA", sendBean); + bundle.putString("DATA", JSON.toJSONString(sendBean)); + clothesHangerFragment.setArguments(bundle);*/ + fragmentList.add(clothesHangerFragment); + break; + case SAFETY_VALVE: + SafetyValveFragment safetyValveFragment = SafetyValveFragment.getInstance(sendBean); + fragmentList.add(safetyValveFragment); + break; + case WINDOW_OPENER: + sendBean.setVoiceFlag(thisBean.getVoiceFlag()); + WindowOpenerFragment windowOpenerFragment = WindowOpenerFragment.getInstance(sendBean); + fragmentList.add(windowOpenerFragment); + break; + case MULTIFUNCTIONAL_CONTROLLER: + sendBean.setSubType(thisBean.getSubType()); + sendBean.setVoiceFlag(thisBean.getVoiceFlag()); + MultiControllerFragment multiControllerFragment = MultiControllerFragment.getInstance(sendBean); + /*bundle = new Bundle(); + bundle.putSerializable("DATA", sendBean); + bundle.putString("DATA", JSON.toJSONString(sendBean)); + multiControllerFragment.setArguments(bundle);*/ + fragmentList.add(multiControllerFragment); + break; + case RGB_LIGHT: + sendBean.setSubType(thisBean.getSubType()); + sendBean.setVoiceFlag(thisBean.getVoiceFlag()); + RGBLightFragment rgbLightFragment = RGBLightFragment.getInstance(sendBean); + fragmentList.add(rgbLightFragment); + break; + case TEMP_CONTROL: + TempControlFragment tempControlFragment = TempControlFragment.getInstance(sendBean); + bundle = new Bundle(); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + tempControlFragment.setArguments(bundle); + fragmentList.add(tempControlFragment); + break; + case FRESH_AIR: + FreshAirFragment freshAirFragment = FreshAirFragment.getInstance(sendBean); + bundle = new Bundle(); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + freshAirFragment.setArguments(bundle); + fragmentList.add(freshAirFragment); + break; + case FLOOR_HEATING: + FloorHeatingFragment floorHeatingFragment = FloorHeatingFragment.getInstance(sendBean); + bundle = new Bundle(); + bundle.putString("loadStatus", "0"); + bundle.putString("loadErrorType", "0"); + floorHeatingFragment.setArguments(bundle); + fragmentList.add(floorHeatingFragment); + break; + } + } + if ("air".equals(id)) { + localPosition = devices.size(); + AirA1Fragment airA1Fragment = new AirA1Fragment(); + bundle = new Bundle(); + /*if (localPosition != 0) { + bundle.putSerializable("DATA", devices.get(0)); + } else { + bundle.putSerializable("DATA", ""); + }*/ + if (null != getIntent().getExtras().get("airStateTag")) { + bundle.putString("airStateTag", getIntent().getExtras().get("airStateTag").toString()); + } else { + bundle.putString("airStateTag", "1"); + } + airA1Fragment.setArguments(bundle); + fragmentList.add(airA1Fragment); + } + + boolean isStatistics = true; + if (localPosition != 0 && isStatistics) { + for (int j = 0; j <= localPosition; j++) { + if (devices.size() > j && devices.get(j).getDeviceType().equals(SERVICE_PANEL_485)) { + a1Number++; + } + } + isStatistics = false; + } + return fragmentList; + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case GETZIINFO_SUCCESS: + case INDEX_APPLICANCE_LIST_SUCCESS: + AllDeviceEntity entity = (AllDeviceEntity) msg.obj; + List beanList = new ArrayList<>(); + beanList.clear(); + String floorList = homeListEntity.getData().get(deviceNumListPosition).getFloorList(); + if (!TextUtils.isEmpty(floorList)) { + for (int i = 0; i < entity.getData().size(); i++) { + String addressId = entity.getData().get(i).getAddressType().getCode(); + if (null != getIntent().getExtras().get("addressId")) { + if (addressId.equals(getIntent().getExtras().get("addressId").toString())) { + String floor = entity.getData().get(i).getAddressType().getFloor(); + if (floor.equals(localAddFloorId)) { + beanList.addAll(entity.getData().get(i).getDevices()); + } + } + } else { + if (addressId.equals(localAddAddressId)) { + String floor = entity.getData().get(i).getAddressType().getFloor(); + if (floor.equals(localAddFloorId)) { + beanList.addAll(entity.getData().get(i).getDevices()); + } + } + } + } + } else { + for (int i = 0; i < entity.getData().size(); i++) { + String addressId = entity.getData().get(i).getAddressType().getCode(); + if (null != getIntent().getExtras().get("addressId")) { + if (addressId.equals(getIntent().getExtras().get("addressId").toString())) { + beanList.addAll(entity.getData().get(i).getDevices()); + } + } else { + if (addressId.equals(localAddAddressId)) { + beanList.addAll(entity.getData().get(i).getDevices()); + } + } + } + } + if (beanList.size() == 0) { + if (localAddAddressId.equals("200")) { + beanList.addAll(entity.getData().get(0).getDevices()); + } else { + beanList.addAll(entity.getData().get(0).getDevices()); + } + } + if (beanList.size() != 0) { + isAddState = "1"; + setPagerNumber(beanList); + } + manager = getSupportFragmentManager(); + mAdAdapter = new BaseFragmentPagerAdapter(manager, fragmentList); + mViewPager.setScanScroll(true); + mViewPager.setAdapter(mAdAdapter); + mViewPager.setOffscreenPageLimit(2); + mViewPager.setCurrentItem(localPosition - a1Number, false); + mAdAdapter.notifyDataSetChanged(); + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + /*if (fragmentList.size() == 2) { + rl_learn_guide.setVisibility(View.VISIBLE); + } else { + rl_learn_guide.setVisibility(View.GONE); + }*/ + break; + case GETZIINFO_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case GET_USER_SESSION_NULL: + NettyHandlerUtil.closeCtx(); + ToastUtil.show(this, "用户在其他手机登陆"); + SharedpreferencesUtil.save(Constans.SEESSIONID, ""); + SharedpreferencesUtil.save(Constans.TOKENID, ""); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Intent intent = new Intent(DeviceControlByRoomActivity.this, LoginActivity.class); + startActivity(intent); + finish(); + } + }, 1000); + break; + } + } + + //获取Z1列表 + + private void getApplicanceList() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("withControlKey", "false"); + map.put("isMerge485", "false"); + util.requestGetByAsy(NetWorkUrl.INDEX_APPLICANCE_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getApplicanceList5", respone); + AllDeviceEntity entity = JSON.parseObject(respone, AllDeviceEntity.class); + if (1 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(INDEX_APPLICANCE_LIST_SUCCESS); + msg.obj = entity; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GETZIINFO_FAIL); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(); + msg.what = GETZIINFO_FAIL; + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getApplicanceListByAddress() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + // map.put("withControlKey", "true"); + map.put("addressId", localAddAddressId); + map.put("isMerge485", "false"); + util.requestGetByAsy(NetWorkUrl.INDEX_APPLICANCE_LISTBYADDRESS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getApplicanceListByAddress", respone); + AllDeviceEntity entity = JSON.parseObject(respone, AllDeviceEntity.class); + if (1 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(INDEX_APPLICANCE_LIST_SUCCESS); + msg.obj = entity; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GETZIINFO_FAIL); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(); + msg.what = GETZIINFO_FAIL; + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/DeviceOtherNameActivity.java b/app/src/main/java/com/yonsz/z1/version5/DeviceOtherNameActivity.java new file mode 100644 index 0000000..ad2a43f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/DeviceOtherNameActivity.java @@ -0,0 +1,290 @@ +package com.yonsz.z1.version5; + +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.entity5.NewSceneEntity; +import com.yonsz.z1.database.entity.entitya2.AddModelEntity; +import com.yonsz.z1.database.entity.entitya2.SafeVoiceEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.scene.ModelOtherNameActivity; +import com.yonsz.z1.version5.scene.OtherNameAdapter; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_SAFETY_DETAIL_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_SAFETY_DETAIL_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.NetWorkUrl.FIND_TIME_ANDEXECLIST; +import static com.yonsz.z1.net.NetWorkUrl.SCENE_SETALIAS; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETDETAIL; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_SETDEVICEALIAS; + +public class DeviceOtherNameActivity extends BaseActivity { + private TitleView mtTitleView; + private List mDatas = new ArrayList<>(); + private Button clearButton, bt_sure; + private String deviceId = "", deviceModel = "", deviceType = "", ziId = ""; + private RelativeLayout nameRl, positionRl; + private TextView tv_position_alias, tv_device_alias, setTv; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_device_other_name); + initView(); + } + + private void initView() { + deviceId = getIntent().getExtras().get("deviceId").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + deviceType = getIntent().getExtras().get("deviceType").toString(); + ziId = getIntent().getExtras().get("ziId").toString(); + tv_position_alias = (TextView) findViewById(R.id.tv_position_alias); + tv_device_alias = (TextView) findViewById(R.id.tv_device_alias); + setTv = (TextView) findViewById(R.id.tv_set_device); + clearButton = (Button) findViewById(R.id.bt_start_config); + bt_sure = (Button) findViewById(R.id.bt_sure); + nameRl = (RelativeLayout) findViewById(R.id.rl_name); + positionRl = (RelativeLayout) findViewById(R.id.rl_position); + nameRl.setOnClickListener(this); + positionRl.setOnClickListener(this); + clearButton = (Button) findViewById(R.id.bt_start_config); + mtTitleView = (TitleView) findViewById(R.id.title_other_name); + mtTitleView.setHead("设置设备别名"); + mtTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + clearButton.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + ConfirmDialog dialog = new ConfirmDialog(DeviceOtherNameActivity.this, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + break; + case 1: + clearAll(); + break; + } + } + }); + dialog.setContent("是否清除设备别名?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + }); + bt_sure.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + finish(); + } + }); + subsetGetDetail(); + } + + private void clearAll() { + updateModelTime(-1, ""); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.rl_position: + setData(0, tv_position_alias.getText().toString()); + break; + case R.id.rl_name: + setData(1, tv_device_alias.getText().toString()); + break; + } + } + + private void setData(int flag, String oldName) { + RenameNameDialog dialog = new RenameNameDialog(DeviceOtherNameActivity.this, new Callback1() { + @Override + public void callback(int namePosition, String positioName) { + switch (namePosition) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + ToastUtil.show(DeviceOtherNameActivity.this, "别名不能为空"); + return; + } + updateModelTime(flag, positioName); + break; + } + } + }); + dialog.setMaxEms(8); + dialog.setHintName(""); + dialog.setOldName(oldName); + dialog.setContent("设置设备别名"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_SAFETY_DETAIL_SUCCESS: + SafeVoiceEntity safeVoiceEntity = (SafeVoiceEntity) msg.obj; + /* if (safeVoiceEntity.getData().getDeviceAlias().isEmpty()) { + tv_device_alias.setText(safeVoiceEntity.getData().getTarget().getDeviceName()); + } else { + }*/ + if (null != safeVoiceEntity.getData().getTarget()) { + setTv.setText(safeVoiceEntity.getData().getTarget().getDeviceName() + "别名设置"); + } + tv_device_alias.setText(safeVoiceEntity.getData().getDeviceAlias()); + /* if (safeVoiceEntity.getData().getPositionAlias().isEmpty()) { + tv_position_alias.setText(safeVoiceEntity.getData().getTarget().getAddressName()); + } else { + tv_position_alias.setText(safeVoiceEntity.getData().getPositionAlias()); + }*/ + tv_position_alias.setText(safeVoiceEntity.getData().getPositionAlias()); + break; + case UPDATE_MODEL_TIME_SUCCESS: + String obj = (String) msg.obj; + int arg1 = msg.arg1; + if (obj.isEmpty()) { + tv_device_alias.setText(""); + tv_position_alias.setText(""); + } else { + if (arg1 == 0) { + tv_position_alias.setText(obj); + } else { + tv_device_alias.setText(obj); + } + } + break; + case SELECT_SAFETY_DETAIL_FAIL: + case UPDATE_MODEL_TIME_FAIL: + ToastUtil.show(DeviceOtherNameActivity.this, (String) msg.obj); + break; + } + } + + private void updateModelTime(int openFlag, String modeAlias) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + if (openFlag == -1) { + map.put("addressAlias", modeAlias); + map.put("deviceAlias", modeAlias); + } else if (openFlag == 0) { + map.put("addressAlias", modeAlias); + } else { + map.put("deviceAlias", modeAlias); + } + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + if (!ziId.isEmpty()) { + map.put("ziId", ziId); + } + netWorkUtil.requestPostByAsynewApi(SUBSET_SETDEVICEALIAS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateModelTime", "ShareDeviceActivity onSuccess()" + respone); + AddModelEntity obj = JSON.parseObject(respone, AddModelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_SUCCESS); + msg.obj = modeAlias; + msg.arg1 = openFlag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetGetDetail() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETDETAIL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetDetail", "onSuccess()" + respone); + SafeVoiceEntity obj = JSON.parseObject(respone, SafeVoiceEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_SAFETY_DETAIL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_SAFETY_DETAIL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_SAFETY_DETAIL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/ExecSendUtil.java b/app/src/main/java/com/yonsz/z1/version5/ExecSendUtil.java new file mode 100644 index 0000000..ed78249 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/ExecSendUtil.java @@ -0,0 +1,171 @@ +package com.yonsz.z1.version5; + +import android.content.Context; +import android.os.Handler; +import android.os.Looper; +import android.util.Log; +import android.widget.Toast; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; + +import java.util.HashMap; + +/** + * Created by Administrator on 2019/4/3. + */ + +public class ExecSendUtil { + private static ExecSendUtil instance; + + public ExecSendUtil() { + } + + public static ExecSendUtil getInstance() { + if (null == instance) { + instance = new ExecSendUtil(); + } + return instance; + } + + private void subsetControl(final Context context, String key, String ziId, String deviceId, String deviceModel, String deviceType) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + final SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 != obj.getFlag()) { + MainHandler.getInstance().post(new Runnable() { + @Override + public void run() { + //需要抛到主线程的代码 + Toast.makeText(context, obj.getMsg(), Toast.LENGTH_SHORT).show(); + } + }); + } + } + + @Override + public void onFail(String message) { + MainHandler.getInstance().post(new Runnable() { + @Override + public void run() { + //需要抛到主线程的代码 + Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); + } + }); + } + }); + } + + public static void execSend(final Context context, String cmd, String ziId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("cmd", cmd); + map.put("ziId", ziId); + util.requestGetByAsy(NetWorkUrl.EXEC_SEND, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("execSend", respone); + final SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 != obj.getFlag()) { + MainHandler.getInstance().post(new Runnable() { + @Override + public void run() { + //需要抛到主线程的代码 + Toast.makeText(context, obj.getMsg(), Toast.LENGTH_SHORT).show(); + } + }); + } + + + /*TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + }*/ + } + + @Override + public void onFail(String message) { + MainHandler.getInstance().post(new Runnable() { + @Override + public void run() { + //需要抛到主线程的代码 + Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); + } + }); + } + }); + } + + public static void subsetControl(final Context context, String cmd, String ziId, AllDeviceEntity.DataBean.DeviceBean deviceBean) { + ShakeUtil.setShake(context); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceBean.getId()); + map.put("deviceModel", deviceBean.getDeviceModel()); + map.put("deviceType", deviceBean.getDeviceType()); + map.put("ziId", ziId); + map.put("oper", cmd); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + final SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 != obj.getFlag()) { + MainHandler.getInstance().post(new Runnable() { + @Override + public void run() { + //需要抛到主线程的代码 + Toast.makeText(context, obj.getMsg(), Toast.LENGTH_SHORT).show(); + } + }); + } + } + + @Override + public void onFail(String message) { + + } + }); + } + + public static class MainHandler extends Handler { + + private static volatile MainHandler mInstance; + + private MainHandler() { + super(Looper.getMainLooper()); + } + + public static MainHandler getInstance() { + if (mInstance == null) { + synchronized (MainHandler.class) { + if (mInstance == null) { + mInstance = new MainHandler(); + } + } + } + return mInstance; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/MainFragment5.java b/app/src/main/java/com/yonsz/z1/version5/MainFragment5.java new file mode 100644 index 0000000..446c3c7 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/MainFragment5.java @@ -0,0 +1,1057 @@ +package com.yonsz.z1.version5; + +import android.content.Context; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.support.v4.widget.SwipeRefreshLayout; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.StaggeredGridLayoutManager; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Toast; + +import com.alibaba.fastjson.JSON; +import com.common.openapi.entity.DeviceDetailListData; +import com.lechange.demo.business.Business; +import com.lechange.demo.business.entity.ChannelInfo; +import com.lechange.demo.yonsz.LcDataListEntity; +import com.lechange.demo.yonsz.LcListEntity; +import com.mm.android.deviceaddmodule.CommonParam; +import com.mm.android.deviceaddmodule.LCDeviceEngine; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.AsxAddDeviceListActivity; +import com.yonsz.z1.createfamily.CreateFamilyActivity; +import com.yonsz.z1.database.entity.OnlineEvent; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.CheckBindEntity; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.database.entity.entity4.GetZ1Event; +import com.yonsz.z1.database.entity.entity4.HomeListEntity; +import com.yonsz.z1.database.entity.entity4.WeatherNewEntity; +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.database.entity.entitya2.ModelOpenEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.difference.DifferConstans; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.homemanage.HomeManageActivity; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.login.LoginActivity; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNextDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.MainActivity4; +import com.yonsz.z1.version5.adapter.HomepagerRecycleAdapter; +import com.yonsz.z1.version5.scene.ModelNewDetailActivity; +import com.yonsz.z1.version5.weidget.MyStaggerGrildLayoutManger; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.MySwipeRefreshLayout; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.listpopupwindow.RankingPopupWindow; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.AVTIVE_MODEL_FAIL; +import static com.yonsz.z1.net.Constans.AVTIVE_MODEL_SUCCESS; +import static com.yonsz.z1.net.Constans.AVTIVE_MODEL_TO_OPEN; +import static com.yonsz.z1.net.Constans.AVTIVE_MODEL_TO_SET; +import static com.yonsz.z1.net.Constans.CAMERA_TAG; +import static com.yonsz.z1.net.Constans.CHECK_MODEL_STATUS_SET; +import static com.yonsz.z1.net.Constans.CHECK_MODEL_STATUS_SUCCESS; +import static com.yonsz.z1.net.Constans.CHECK_USER_BIND_FAIL; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FIND_DEVICES_FAIL; +import static com.yonsz.z1.net.Constans.FIND_DEVICES_SUCCESS; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GETZIINFO_FAIL; +import static com.yonsz.z1.net.Constans.GET_USER_SESSION_NULL; +import static com.yonsz.z1.net.Constans.GET_WEATHER_SUCCESS; +import static com.yonsz.z1.net.Constans.GET_Z1_INFO; +import static com.yonsz.z1.net.Constans.HOUSEID; +import static com.yonsz.z1.net.Constans.INDEX_APPLICANCE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.QUERY_HOUSES_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_HOUSES_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WEATHERPICURL; +import static com.yonsz.z1.net.Constans.deviceNumList; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.Constans.isUseDefFlag; +import static com.yonsz.z1.net.Constans.roomPosition; +import static com.yonsz.z1.net.NetWorkUrl.AVTIVE_MODEL_NEW; +import static com.yonsz.z1.net.NetWorkUrl.CHECK_MODEL_STATUS; +import static com.yonsz.z1.net.NetWorkUrl.DEVICE_LIST; +import static com.yonsz.z1.net.NetWorkUrl.SELECT_MODEL_TIME; +import static com.yonsz.z1.net.NetWorkUrl.UPDATE_MODEL_BASIC; +import static com.yonsz.z1.net.NetWorkUrl.USER_TOKEN; + +/** + * Created by Administrator on 2018/4/23. + */ + +public class MainFragment5 extends BaseFragment implements View.OnClickListener { + public static boolean isRefreshCamera = true; + private TitleView mTitleView; + private RecyclerView recyclerView; + private View fragView; + private UIHandle mHandler; + private HomepagerRecycleAdapter homepagerRecycleAdapter; + private static ArrayList mChannelInfoList = new ArrayList<>(); + private Context mContext; + private RankingPopupWindow mWindow; + private RankingPopupWindow.Listener listener; + private AllDeviceEntity allDeviceEntity; + private boolean isShowSafeControl = false; + private MySwipeRefreshLayout swipeRefreshLayout; + private boolean isRefreshModel = true; + + public static void setDefaultHouse() { + SharedpreferencesUtil.save(Constans.HOUSEID, homeListEntity.getData().get(deviceNumListPosition).getId()); + HashMap map = new HashMap<>(); + map.put("houseId", homeListEntity.getData().get(deviceNumListPosition).getId()); + NetWorkUtil net = NetWorkUtil.instans(); + net.requestPostByAsynewApi(NetWorkUrl.SET_DEFAULT_HOUSE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("setDefaultHouse", "UpdatePwActivity onSuccess()" + respone); + } + + @Override + public void onFail(String message) { + } + }); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mContext = this.getActivity(); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.M) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.fragment_main5, null); + if (AppIdUtil.isBaseZhiKong()) { + Business.getInstance().init(DifferConstans.LECHENG_APPID, DifferConstans.LECHENG_APPSECRET, "openapi.lechange.cn:443"); + } + initView(); + return fragView; + } + + public void onEventMainThread(GetZ1Event event) { + String msg = event.getMsg(); + Log.e("nettyUtil111111111111", msg); + // Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); + Message message = new Message(); + message.what = GET_Z1_INFO; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(ChooseHomeEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("2") || msg.equals("3")) { + roomPosition = 0; + isRefreshCamera = true; + isRefreshModel = true; + queryHouses(); + } else if (msg.equals("10")) { + selectModelTime(); + } + } + + public void onEventMainThread(OnlineEvent event) { + final String msg = event.getMsg(); + Log.e("nettyUtil", msg); + queryHouses(); + } + + @Override + public void onResume() { + super.onResume(); + if (DensityUtil.isNetworkConnected(getActivity())) { + queryHouses(); + } else { + ToastUtil.show(getActivity(), R.string.net_error); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + @RequiresApi(api = Build.VERSION_CODES.M) + private void initView() { + swipeRefreshLayout = (MySwipeRefreshLayout) fragView.findViewById(R.id.swipe_refresh); + mTitleView = (TitleView) fragView.findViewById(R.id.title_version5); + mTitleView.clearBackGroud(); + // mTitleView.setHead("首页"); + mTitleView.setHeadHomeVisible(R.drawable.icon_home_house1); + mTitleView.setHeadFuntion(R.drawable.icon_nav_add_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + initListItem(deviceNumList, 0, mTitleView.getHomeNameTxt()); + } + + @Override + public void onFunction() { + if (AppIdUtil.isBaseZhiKong()) { + Intent intent = new Intent(getActivity(), AsxAddDeviceListActivity.class); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + if (null != homeListEntity && !TextUtils.isEmpty(homeListEntity.getData().get(deviceNumListPosition).getFloorList())) { + intent.putExtra("floorList", homeListEntity.getData().get(deviceNumListPosition).getFloorList()); + } else { + intent.putExtra("floorList", ""); + } + getActivity().startActivity(intent); + } else { + // startAddDevice(); + } + } + + @Override + public void onFunctionText() { + + } + }); + recyclerView = (RecyclerView) fragView.findViewById(R.id.rv_content); + homepagerRecycleAdapter = new HomepagerRecycleAdapter(getActivity().getSupportFragmentManager(), mContext); + recyclerView.setAdapter(homepagerRecycleAdapter); + final MyStaggerGrildLayoutManger myStaggerGrildLayoutManger = new MyStaggerGrildLayoutManger(mContext, 1, StaggeredGridLayoutManager.VERTICAL); + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(mContext); + recyclerView.setLayoutManager(myStaggerGrildLayoutManger); + // getAllDate(); + + recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy) { + Log.i("TAG", "MainFragment5 onScrolled()" + dy + "===" + recyclerView.getBottom() + "===" + recyclerView.getScrollState()); + if (null != myStaggerGrildLayoutManger) { + View firstVisiableChildView = myStaggerGrildLayoutManger.findViewByPosition(0); + //获取当前显示条目的高度 + if (null != firstVisiableChildView) { + int itemHeight = firstVisiableChildView.getHeight(); + //获取当前Recyclerview 偏移量 + int flag = -firstVisiableChildView.getTop(); + if (flag >= 400) { + mTitleView.showBackGroud5(); + } else if (flag >= 100) { + mTitleView.showBackGroud6(); + } else { + mTitleView.clearBackGroud(); + } + } else { + mTitleView.showBackGroud5(); + } + + } + } + }); + + swipeRefreshLayout.setTouchSlop(200); + swipeRefreshLayout.setProgressViewEndTarget(true, 200); + swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { + @Override + public void onRefresh() { + queryHouses(); + } + }); + /*if (AppIdUtil.isZhiKong()) { + getWeather(); + }*/ + } + + private void initListItem(final List list, final int flag, final String selectName) { + //生成Listener和清空 + setPopupWindowListener(); + mWindow = null; + //显示popupwindow + mWindow = new RankingPopupWindow(getActivity(), list, selectName, listener, mTitleView, flag); + } + + private void setPopupWindowListener() { + listener = null; + listener = new RankingPopupWindow.Listener() { + @Override + public void onPopupWindowDismissListener() { + //消失时的操作 + } + + @Override + public void onItemClickListener(int position) { + //点击Item时的操作 + //跳转到家庭管理的页面 + if (position == 100) { + Intent intent = new Intent(getContext(), HomeManageActivity.class); + startActivity(intent); + } else { + isUseDefFlag = false; + deviceNumListPosition = position; + mTitleView.setHomeNameTxt(deviceNumList.get(position)); + setDefaultHouse(); + roomPosition = 0; + isRefreshCamera = true; + isRefreshModel = true; + queryHouses(); + } + } + }; + } + + public void getAllDate() { + if (null != mHandler) { + getWeather(); + } + } + + private void getApplicanceList() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", homeListEntity.getData().get(deviceNumListPosition).getId()); + map.put("withControlKey", "false"); + map.put("isMerge485", "false"); + util.requestGetByAsy(NetWorkUrl.INDEX_APPLICANCE_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone.length()); + ToastUtil.i("getApplicanceList5", respone); + AllDeviceEntity entity = JSON.parseObject(respone, AllDeviceEntity.class); + if (-401 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(GET_USER_SESSION_NULL); + msg.obj = entity; + mHandler.sendMessage(msg); + } else if (1 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(INDEX_APPLICANCE_LIST_SUCCESS); + msg.obj = entity; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GETZIINFO_FAIL); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(); + msg.what = GETZIINFO_FAIL; + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getWeather() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("appId", DifferConstans.APPID_S); + if (null != String.valueOf(MainActivity4.latitudeMain) && null != String.valueOf(MainActivity4.longitudeMain)) { + map.put("lat", String.valueOf(MainActivity4.latitudeMain)); + map.put("lng", String.valueOf(MainActivity4.longitudeMain)); + } + util.requestPostByAsynewApi(NetWorkUrl.GET_WEATHER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("getWeather", "onSuccess: " + respone); + WeatherNewEntity weatherEntity = JSON.parseObject(respone, WeatherNewEntity.class); + Message message = new Message(); + message.what = GET_WEATHER_SUCCESS; + message.obj = weatherEntity; + mHandler.sendMessage(message); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ADD_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void selectModelTime() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + if (deviceNumListPosition > homeListEntity.getData().size() - 1) { + deviceNumListPosition = 0; + } + if (null != SharedpreferencesUtil.get(Constans.HOUSEID, "")) { + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + } else { + return; + } + map.put("isCustom", "1"); + netWorkUtil.requestGetByAsy(SELECT_MODEL_TIME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("selectModelTime", "ShareDeviceActivity onSuccess()" + respone); + TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case GET_WEATHER_SUCCESS: + WeatherNewEntity weatherEntity = (WeatherNewEntity) msg.obj; + /*List weatherNewEntities = new ArrayList<>(); + weatherNewEntities.add(weatherEntity);*/ + homepagerRecycleAdapter.setheaderbean(weatherEntity); + break; + case INDEX_APPLICANCE_LIST_SUCCESS: + allDeviceEntity = (AllDeviceEntity) msg.obj; + AddressNameUtil.setInstance(allDeviceEntity); + isNeedUpdate(); + homepagerRecycleAdapter.setAllDevicebean(allDeviceEntity, roomPosition); + isShowSafeControl = false; + if (allDeviceEntity != null && allDeviceEntity.getData().size() != 0) { + for (int i = 0; i < allDeviceEntity.getData().size(); i++) { + List devices = allDeviceEntity.getData().get(i).getDevices(); + if (null != devices && devices.size() > 0) { + for (int j = 0; j < devices.size(); j++) { + if (devices.get(j).getDeviceType().equals(DOOR_LOCK_TAG) || + devices.get(j).getDeviceType().equals(INFRARED_TAG) || + devices.get(j).getDeviceType().equals(INFRARED_CURTAIN_DETECTOR) || + devices.get(j).getDeviceType().equals(SMOKE_TAG) || + devices.get(j).getDeviceType().equals(GAS_TAG) || + devices.get(j).getDeviceType().equals(WATER_TAG)) { + if (null != devices.get(j).getAddition()) { + if (!devices.get(j).getAddition().isModeTriggerBound()) { + isShowSafeControl = true; + } + } else { + isShowSafeControl = true; + } + } + } + } + } + } + homepagerRecycleAdapter.setSafeAndCameraBean(mChannelInfoList, isShowSafeControl, homeListEntity.getData().get(deviceNumListPosition).getSafeSwitch()); + break; + case SELECT_MODEL_TIME_SUCCESS: + final TimeSetEntity obj = (TimeSetEntity) msg.obj; + homepagerRecycleAdapter.setCategoryBean(obj.getData()); + homepagerRecycleAdapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int position) { + checkModelStatus(obj.getData().get(position)); + } + }); + break; + case QUERY_HOUSES_FAIL: + swipeRefreshLayout.setRefreshing(false); + break; + case QUERY_HOUSES_SUCCESS: + swipeRefreshLayout.setRefreshing(false); + homeListEntity = (HomeListEntity) msg.obj; + if (homeListEntity.getData().size() == 0) { + Intent intent = new Intent(getContext(), CreateFamilyActivity.class); + intent.putExtra("from", "MainFragment5"); + startActivity(intent); + // getActivity().finish(); + } else { + deviceNumList.clear(); + if (null != homeListEntity.getData()) { + if (deviceNumListPosition > homeListEntity.getData().size() - 1) { + deviceNumListPosition = 0; + } + deviceNumList.clear(); + for (int i = 0; i < homeListEntity.getData().size(); i++) { + if (homeListEntity.getData().get(i).getDefFlag() == 1) { + if (isUseDefFlag) { + deviceNumListPosition = i; + } + } + /*if (homeListEntity.getData().get(i).getName().length() > 9) { + deviceNumList.add(homeListEntity.getData().get(i).getName().substring(0, 6) + "…"); + } else { + deviceNumList.add(homeListEntity.getData().get(i).getName()); + }*/ + deviceNumList.add(homeListEntity.getData().get(i).getName()); + } + /*if (homeListEntity.getData().get(deviceNumListPosition).getName().length() > 9) { + mTitleView.setHomeNameTxt(homeListEntity.getData().get(deviceNumListPosition).getName().substring(0, 6) + "…"); + } else { + mTitleView.setHomeNameTxt(homeListEntity.getData().get(deviceNumListPosition).getName()); + }*/ + mTitleView.setHomeNameTxt(homeListEntity.getData().get(deviceNumListPosition).getName()); + if (!TextUtils.isEmpty(homeListEntity.getData().get(deviceNumListPosition).getPicUrl()) && !homeListEntity.getData().get(deviceNumListPosition).getPicUrl().equals(SharedpreferencesUtil.get(WEATHERPICURL, ""))) { + SharedpreferencesUtil.save(WEATHERPICURL, homeListEntity.getData().get(deviceNumListPosition).getPicUrl()); + homepagerRecycleAdapter.setBgPic(homeListEntity.getData().get(deviceNumListPosition).getPicUrl()); + } + } + SharedpreferencesUtil.save(HOUSEID, homeListEntity.getData().get(deviceNumListPosition).getId()); +// deviceNumList.add(getString(R.string.home_manage)); + EventBus.getDefault().post( + new ChooseHomeEvent("1")); + getApplicanceList(); + if (isRefreshModel) { + selectModelTime(); + isRefreshModel = false; + } + if (isRefreshCamera) { + //创维也暂时不需要查摄像头 + /*if (!AppIdUtil.isChuangWei()) { + + }*/ + userToken(); + isRefreshCamera = false; + } else { + getLcDeviceList(); + } + // userToken(); + } + break; + case CHECK_MODEL_STATUS_SUCCESS: + final TimeSetEntity.DataBean entity1 = (TimeSetEntity.DataBean) msg.obj; + ConfirmNextDialog dialog2 = new ConfirmNextDialog(getActivity(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + + break; + case 1: + // updateModelBasic(model2); + avtiveModel(entity1); + break; + } + } + }); + dialog2.setTopTxt("开启" + entity1.getModelName()); + dialog2.setContent("开启" + entity1.getModelName() + "下的设备预设动作"); + dialog2.setCancelable(false); + dialog2.show(); + break; + case CHECK_MODEL_STATUS_SET: + final TimeSetEntity.DataBean entity2 = (TimeSetEntity.DataBean) msg.obj; + ConfirmDialog dialog3 = new ConfirmDialog(getActivity(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + + break; + case 1: + Intent intent = new Intent(getActivity(), ModelNewDetailActivity.class); + intent.putExtra("model", entity2.getModelType()); + intent.putExtra("isAdd", false); + intent.putExtra("isCheckBoxOpen", false); + intent.putExtra("modelId", entity2.getId()); + intent.putExtra("modelId1", entity2.getModelId()); + intent.putExtra("isHaveDevice", "1"); + intent.putExtra("repeatTime", ""); + intent.putExtra("setTime", ""); + intent.putExtra("houseId", entity2.getHouseId()); + intent.putExtra("houseModelName", entity2.getModelName()); + + startActivity(intent); + break; + } + } + }); + dialog3.setContent("您还未设置情景模式,请先设置"); + dialog3.setCancleBtn(R.string.cancel); + dialog3.setSureBtn("去设置"); + dialog3.setCancelable(false); + dialog3.show(); + break; + case AVTIVE_MODEL_FAIL: + ToastUtil.show(getActivity(), (String) msg.obj); + break; + case AVTIVE_MODEL_SUCCESS: + ToastUtil.show(getActivity(), "开启成功"); + break; + case AVTIVE_MODEL_TO_SET: + final TimeSetEntity.DataBean entity3 = (TimeSetEntity.DataBean) msg.obj; + ConfirmDialog dialog4 = new ConfirmDialog(getActivity(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + + break; + case 1: + Intent intent = new Intent(getActivity(), ModelNewDetailActivity.class); + intent.putExtra("model", entity3.getModelType()); + intent.putExtra("isAdd", false); + intent.putExtra("isCheckBoxOpen", false); + intent.putExtra("modelId", entity3.getId()); + intent.putExtra("modelId1", entity3.getModelId()); + intent.putExtra("isHaveDevice", "1"); + intent.putExtra("repeatTime", ""); + intent.putExtra("setTime", ""); + intent.putExtra("houseId", entity3.getHouseId()); + intent.putExtra("houseModelName", entity3.getModelName()); + startActivity(intent); + break; + } + } + }); + dialog4.setContent("您还未设置情景模式,请先设置"); + dialog4.setCancleBtn(R.string.cancel); + dialog4.setSureBtn("去设置"); + dialog4.setCancelable(false); + dialog4.show(); + break; + case AVTIVE_MODEL_TO_OPEN: + final TimeSetEntity.ObjEntity entity4 = (TimeSetEntity.ObjEntity) msg.obj; + ConfirmNextDialog dialog1 = new ConfirmNextDialog(getActivity(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + + break; + case 1: + updateModelBasic(entity4); + break; + } + } + }); + dialog1.setTopTxt("开启" + entity4.getModelName()); + dialog1.setContent("开启" + entity4.getModelName() + "下的设备预设动作"); + dialog1.setCancelable(false); + dialog1.show(); + break; + case UPDATE_MODEL_BASIC_SUCCESS: + ToastUtil.show(getActivity(), "开启成功"); + break; + case UPDATE_MODEL_BASIC_FAIL: + ToastUtil.show(getActivity(), (String) msg.obj); + break; + case GET_USER_SESSION_NULL: + SharedpreferencesUtil.save(Constans.SEESSIONID, ""); + SharedpreferencesUtil.save(Constans.TOKENID, ""); + NettyHandlerUtil.closeCtx(); + ToastUtil.show(getContext(), "用户在其他手机登陆"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Intent intent = new Intent(getContext(), LoginActivity.class); + startActivity(intent); + getActivity().finish(); + } + }, 1000); + break; + case FIND_DEVICES_SUCCESS: + LcDataListEntity lcListEntity = (LcDataListEntity) msg.obj; + List datas = new ArrayList<>(); + + if (lcListEntity.getData().size() > 0) { + loadChannelList(lcListEntity); + + datas.addAll(lcListEntity.getData()); + if (datas.size() != 0) { + AddressNameUtil.setDatas(datas); + } + } else { + mChannelInfoList.clear(); + homepagerRecycleAdapter.setSafeAndCameraBean(mChannelInfoList, isShowSafeControl, homeListEntity.getData().get(deviceNumListPosition).getSafeSwitch()); + } + break; + case CHECK_USER_BIND_FAIL: + mChannelInfoList.clear(); + homepagerRecycleAdapter.setSafeAndCameraBean(mChannelInfoList, isShowSafeControl, homeListEntity.getData().get(deviceNumListPosition).getSafeSwitch()); + break; + case FIND_DEVICES_FAIL: + ToastUtil.show(getActivity(), (String) msg.obj); + break; + } + } + + private void updateModelBasic(TimeSetEntity.ObjEntity entity4) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", entity4.getUserId()); + map.put("modelType", entity4.getModelType()); + map.put("flag", "1"); + netWorkUtil.requestPostByAsynewApi(UPDATE_MODEL_BASIC, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateModelBasic", "ShareDeviceActivity onSuccess()" + respone); + ModelOpenEntity obj = JSON.parseObject(respone, ModelOpenEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void avtiveModel(final TimeSetEntity.DataBean entity1) { + if (DensityUtil.isNetworkConnected(getActivity())) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", entity1.getUserId()); + map.put("modelType", entity1.getModelType()); + map.put("modelId", entity1.getModelId()); + map.put("houseId", entity1.getHouseId()); + netWorkUtil.requestPostByAsynewApi(AVTIVE_MODEL_NEW, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("avtiveModel", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(AVTIVE_MODEL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (8001 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + Message msg = mHandler.obtainMessage(AVTIVE_MODEL_TO_SET); + msg.obj = entity1; + mHandler.sendMessage(msg); + } else if (8002 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + Message msg = mHandler.obtainMessage(AVTIVE_MODEL_TO_OPEN); + msg.obj = entity1; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(AVTIVE_MODEL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(AVTIVE_MODEL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } else { + ToastUtil.show(getActivity(), R.string.net_error); + } + } + + private void checkModelStatus(final TimeSetEntity.DataBean objEntity) { + if (DensityUtil.isNetworkConnected(getActivity())) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", objEntity.getUserId()); + map.put("modelType", objEntity.getModelType()); + if (null != SharedpreferencesUtil.get(Constans.HOUSEID, "")) { + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + } else { + return; + } + netWorkUtil.requestPostByAsynewApi(CHECK_MODEL_STATUS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("checkModelStatus", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + // if (nowChoosePosition == 0) { + if (-401 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(GET_USER_SESSION_NULL); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(CHECK_MODEL_STATUS_SUCCESS); + msg.obj = objEntity; + mHandler.sendMessage(msg); + } else { + NettyHandlerUtil.getInstance(); + Message msg = mHandler.obtainMessage(CHECK_MODEL_STATUS_SET); + msg.obj = objEntity; + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(AVTIVE_MODEL_FAIL); + msg.obj = objEntity; + mHandler.sendMessage(msg); + } + }); + } else { + ToastUtil.show(getActivity(), R.string.net_error); + } + } + + public void queryHouses() { + HashMap map = new HashMap<>(); + map.put("autoCreate", "0"); + NetWorkUtil net = NetWorkUtil.instans(); + net.requestGetByAsy(NetWorkUrl.QUERY_HOUSES, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryHouses1", "UpdatePwActivity onSuccess()" + respone); + HomeListEntity obj = JSON.parseObject(respone, HomeListEntity.class); + if (-401 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(GET_USER_SESSION_NULL); + msg.obj = obj; + mHandler.sendMessage(msg); + } else if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_HOUSES_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_HOUSES_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_HOUSES_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + public int isHaveDevice() { + int isHaveDevice = 0; + if (allDeviceEntity != null && allDeviceEntity.getData().size() != 0) { + for (int i = 0; i < allDeviceEntity.getData().size(); i++) { + if (allDeviceEntity.getData().get(i).getDevices().size() != 0) { + List devices = allDeviceEntity.getData().get(i).getDevices(); + isHaveDevice = 1; + for (int j = 0; j < devices.size(); j++) { + String deviceModel = devices.get(j).getDeviceModel(); + if (deviceModel.substring(deviceModel.length() - 1, deviceModel.length()).equals("L")) { + isHaveDevice = 2; + return isHaveDevice; + } + } + } + } + return isHaveDevice; + } else { + return isHaveDevice; + } + } + + private void userToken() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + if (null != SharedpreferencesUtil.get(Constans.HOUSEID, "")) { + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + } else { + return; + } + netWorkUtil.requestPostByAsynewApi(USER_TOKEN, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("findDevices", "onSuccess()" + respone); + CheckBindEntity obj = JSON.parseObject(respone, CheckBindEntity.class); + if (1 == obj.getFlag()) { + SharedpreferencesUtil.save("accessToken", obj.getData().getUserToken()); + try { + CommonParam commonParam = new CommonParam(); + commonParam.setEnvirment(DifferConstans.SERVER_BACKUP4); + commonParam.setContext(getActivity().getApplication()); + commonParam.setAppId(DifferConstans.LECHENG_APPID); + commonParam.setAppSecret(DifferConstans.LECHENG_APPSECRET); + LCDeviceEngine.newInstance().init(commonParam, SharedpreferencesUtil.get("accessToken", "")); + } catch (Throwable e) { + Toast.makeText(getContext(), e.getMessage(), Toast.LENGTH_SHORT).show(); + } + getLcDeviceList(); + } else { + android.os.Message msg = mHandler.obtainMessage(CHECK_USER_BIND_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + android.os.Message msg = mHandler.obtainMessage(CHECK_USER_BIND_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private synchronized void getLcDeviceList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", homeListEntity.getData().get(deviceNumListPosition).getId()); + /*map.put("deviceModel", "0"); + map.put("deviceType", CAMERA_TAG);*/ + netWorkUtil.requestPostByAsynewApi(DEVICE_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("findDevices", "onSuccess()" + respone); + LcDataListEntity obj = JSON.parseObject(respone, LcDataListEntity.class); + if (1 == obj.getFlag()) { + android.os.Message msg = mHandler.obtainMessage(FIND_DEVICES_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + android.os.Message msg = mHandler.obtainMessage(FIND_DEVICES_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + android.os.Message msg = mHandler.obtainMessage(FIND_DEVICES_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + public static ArrayList getChannelInfoList() { + return mChannelInfoList; + } + + private synchronized void loadChannelList(final LcDataListEntity lcListEntity) { + mChannelInfoList.clear(); + for (int j = 0; j < lcListEntity.getData().size(); j++) { + mChannelInfoList.add(lcListEntity.getData().get(j)); + } + homepagerRecycleAdapter.setSafeAndCameraBean(mChannelInfoList, isShowSafeControl, homeListEntity.getData().get(deviceNumListPosition).getSafeSwitch()); + + // 初始化数据 + /*Business.getInstance().getChannelList(new Handler() { + @SuppressWarnings("unchecked") + @Override + public void handleMessage(Message msg) { + Business.RetObject retObject = (Business.RetObject) msg.obj; + if (msg.what == 0) { + List resp = (List) retObject.resp; + Log.i("findDevices", "MainFragment4 handleMessage()" + resp.size()); + for (int i = 0; i < resp.size(); i++) { + String name = resp.get(i).getDeviceCode(); + Log.i("findDevices", "MainFragment4 handleMessage()" + name); + for (int j = 0; j < lcListEntity.getData().size(); j++) { + if (name.contains(lcListEntity.getData().get(j).getDeviceId())) { + // resp.get(i).setDeviceName(lcListEntity.getData().get(j).getDeviceName()); + resp.get(i).setDeviceName(AddressNameUtil.getAddressName(lcListEntity.getData().get(j).getAddressId()) + "的" + lcListEntity.getData().get(j).getDeviceName()); + mChannelInfoList.add(resp.get(i)); + } + } + } + homepagerRecycleAdapter.setSafeAndCameraBean(mChannelInfoList, isShowSafeControl, homeListEntity.getData().get(deviceNumListPosition).getSafeSwitch()); + } else { + Toast.makeText(getContext(), retObject.mMsg, Toast.LENGTH_LONG).show(); + } + } + });*/ + } + + + @Override + public void onClick(View v) { + + } + + public void isNeedUpdate() { + int totalNumber = 0; + if (allDeviceEntity != null && allDeviceEntity.getData().size() != 0) { + for (int i = 0; i < allDeviceEntity.getData().size(); i++) { + List devices = allDeviceEntity.getData().get(i).getDevices(); + if (devices.size() != 0) { + for (int j = 0; j < devices.size(); j++) { + if (devices.get(j).getDeviceType().equals("000")) { + if (null != devices.get(j).getAddition()) { + if (null != devices.get(j).getAddition().getHasNewVersion()) { + if (devices.get(j).getAddition().getHasNewVersion().equals("1")) { + totalNumber++; + MainActivity4.remind(totalNumber); + return; + } + } + } + } + } + } + } + if (totalNumber == 0) { + MainActivity4.remind(totalNumber); + } + } + } + + //handler + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(MainFragment5 activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + MainFragment5 activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/ModifyRoomActivity.java b/app/src/main/java/com/yonsz/z1/version5/ModifyRoomActivity.java new file mode 100644 index 0000000..e937eb4 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/ModifyRoomActivity.java @@ -0,0 +1,504 @@ +package com.yonsz.z1.version5; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.ModifyDeviceEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.gateway.GatewayDetailActivity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.mydevice.DeviceDetailActivity; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.adapter.RoomChooseAdapter; +import com.yonsz.z1.version5.fragment.ClothesHangerFragment; +import com.yonsz.z1.version5.light.LightTestAndModifyActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.CAMERA_TAG; +import static com.yonsz.z1.net.Constans.CAT_EYE; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GATE_WAY; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_FAIL; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.KUQI_PANEL; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_FAIL; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_PANEL; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.NetWorkUrl.HOUSEADDRESS_LIST; + +/** + * Created by Administrator on 2019/3/26. + */ + +public class ModifyRoomActivity extends BaseActivity { + private TitleView mTitleView; + private Button bt_start_config; + private RecyclerView chooseHouseTypeRv; + private RoomChooseAdapter mAdapter; + private List dataList = new ArrayList(); + private TextView roomTypeTv; + private String addressTypeCode; + private String deviceType; + private String deviceModel; + private String ziId; + private String deviceId; + private String addressId; + private LoadingDialog mLoadingDialog; + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_choose_house_type); + + initView(); + initListener(); + } + + private void initView() { + ziId = getIntent().getExtras().get("ziId").toString(); + if (null != getIntent().getExtras().get("deviceId")) { + deviceId = getIntent().getExtras().get("deviceId").toString(); + } + deviceType = getIntent().getExtras().get("deviceType").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + addressId = getIntent().getExtras().get("addressId").toString(); + roomTypeTv = (TextView) findViewById(R.id.tv_create_house); + roomTypeTv.setText("选择设备所在的房间"); + roomTypeTv.setTextSize(16); + bt_start_config = (Button) findViewById(R.id.bt_start_config); + chooseHouseTypeRv = (RecyclerView) findViewById(R.id.rv_choose_house_type); + mTitleView = (TitleView) findViewById(R.id.title_house_name); + mTitleView.clearBackGroud(); + mTitleView.setHead("选择设备位置"); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + getAddresstypeList(); + } + + private void initListener() { + bt_start_config.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6)); + bt_start_config.setEnabled(false); + bt_start_config.setText("确定"); + bt_start_config.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + switch (deviceType) { + case CLOTHES_HANGER: + case SAFETY_VALVE: + case SECURITY_MANIPULATOR: + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(); + } else { + Intent intent = new Intent(ModifyRoomActivity.this, ClothesHangerFragment.class); + intent.putExtra("addressId", addressTypeCode); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + break; + case LIGHT_TAG: + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(); + } else { + Intent intent = new Intent(ModifyRoomActivity.this, LightTestAndModifyActivity.class); + intent.putExtra("addressId", addressTypeCode); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + break; + case SWITCH_TAG: + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(); + } + break; + case CURTAINS_TAG: + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(); + } else if (deviceModel.equals("5") || deviceModel.equals("6")) { + Intent intent = new Intent(ModifyRoomActivity.this, LightTestAndModifyActivity.class); + intent.putExtra("addressId", addressTypeCode); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + break; + case WINDOW_OPENER: + case MULTIFUNCTIONAL_CONTROLLER: + subsetModify(); + break; + case "000": + saveUserInfo(); + break; + case INTELLIGENT_DOOR_LOCK: + if (deviceModel.equals("2")){ + subsetModify(); + }else { + modifyDevice(); + } + break; + case GATE_WAY: + case WIRELESS_EMERGENCY_BUTTON: + case INFRARED_CURTAIN_DETECTOR: + modifyDevice(); +// subsetModify(); + break; + case GAS_TAG: + subsetModify(); + break; + case DOOR_LOCK_TAG: + case INFRARED_TAG: + case SMOKE_TAG: + case WATER_TAG: +// subsetModify(); + if (deviceModel.equals("1")) { + modifyDevice(); + } else { +// updateSafetyEntity(); + subsetModify(); + } + break; + case SITUATIONAL_PANEL: + subsetModify(); + break; + case SITUATIONAL_TRIGGER: + subsetModify(); + break; + case CAMERA_TAG: + case CAT_EYE: + EventBus.getDefault().post( + new ChooseHomeEvent("2")); + modifyDevice(); +// subsetModify(); + break; + case SERVICE_PANEL_485: + case KUQI_PANEL: + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(); + } + break; + default: + subsetModify(); + break; + } + } + }); + } + + private void saveUserInfo() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("addressId", addressTypeCode); + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.UPDATE_DEVICE_ADDRESS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("saveUserInfo", "DeviceA2PositionActivity onSuccess()" + respone); + ModifyDeviceEntity obj = JSON.parseObject(respone, ModifyDeviceEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(MODIFY_DEVICE_SUCCESS); + msg.obj = addressTypeCode; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + } else { + Message msg = mHandler.obtainMessage(MODIFY_DEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_DEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void subsetModify() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("addressId", addressTypeCode); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void modifyDevice() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("addressId", addressTypeCode); + util.requestPostByAsynewApi(NetWorkUrl.MODIFY_DEVICE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateBlindEntityName", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = addressId; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void getAddresstypeList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + if (null != SharedpreferencesUtil.get(Constans.HOUSEID, "")) { + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + } else { + return; + } + if (!TextUtils.isEmpty(homeListEntity.getData().get(deviceNumListPosition).getFloorList())) { + map.put("floor", SharedpreferencesUtil.get(homeListEntity.getData().get(deviceNumListPosition).getId(), "")); + } + netWorkUtil.requestGetByAsy(HOUSEADDRESS_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getHousetypeList", "onSuccess()" + respone); + HouseEntity obj = JSON.parseObject(respone, HouseEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case HOUSE_TYPE_LIST_SUCCESS: + HouseEntity houseEntity = (HouseEntity) msg.obj; + dataList = houseEntity.getData(); + GridLayoutManager manager = new GridLayoutManager(this, 2); + chooseHouseTypeRv.setLayoutManager(manager); + mAdapter = new RoomChooseAdapter(this, dataList, false); + mAdapter.setAddressId(addressId); + chooseHouseTypeRv.setAdapter(mAdapter); + + mAdapter.setmOnItemClickListener(new OnRecyclerListener() { + @Override + public void onClick(View view, final int position) { + addressTypeCode = dataList.get(position).getAddressTypeCode(); + bt_start_config.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee_20dp)); + bt_start_config.setEnabled(true); + } + + @Override + public void onLongClick(RecyclerView.ViewHolder view, int position) { + + } + }); + break; + case HOUSE_TYPE_LIST_FAIL: + case ALLOW_VOICE_CONTROLL_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + Intent intent = new Intent(ModifyRoomActivity.this, ClothesHangerFragment.class); + intent.putExtra("devicePosition", AddressNameUtil.getAddressName(entity.getData().getAddressId().toString())); + intent.putExtra("addressId", entity.getData().getAddressId()); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + break; + case MODIFY_DEVICE_SUCCESS: + final String entity1 = (String) msg.obj; + ToastUtil.show(this, "修改成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Intent intent = new Intent(ModifyRoomActivity.this, DeviceDetailActivity.class); + intent.putExtra("devicePosition", entity1); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + }, 1000); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + Intent intent2 = new Intent(ModifyRoomActivity.this, GatewayDetailActivity.class); + intent2.putExtra("addressId", addressTypeCode); + setResult(MODIFY_DEVICE_NAME, intent2); + finish(); + break; + case MODIFY_DEVICE_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void updateSafetyEntity() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", deviceId); + map.put("ziId", ziId); + map.put("addressId", addressTypeCode); + netWorkUtil.requestPostByAsynew(NetWorkUrl.UPDATE_SAFETY_ENTITY, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateSafetyEntity", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(MODIFY_DEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_DEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/ModifyTypeActivity.java b/app/src/main/java/com/yonsz/z1/version5/ModifyTypeActivity.java new file mode 100644 index 0000000..9e0b0eb --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/ModifyTypeActivity.java @@ -0,0 +1,644 @@ +package com.yonsz.z1.version5; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.gavin.com.library.listener.OnGroupClickListener; +import com.gavin.com.library.listener.PowerGroupListener; +import com.lechange.demo.localvideo.PowerfulStickyDecoration; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.ModifyDeviceEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.gateway.GatewayDetailActivity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.mine.mydevice.DeviceDetailActivity; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.adapter.DeviceTypeChooseAdapter; +import com.yonsz.z1.version5.curtainandWindow.CurtainAndWindowClickActivity; +import com.yonsz.z1.version5.fragment.ClothesHangerFragment; +import com.yonsz.z1.version5.light.LightTestAndModifyActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; +import com.yonsz.z1.ybl.light.YblLightListActivity; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GATE_WAY; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_FAIL; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_FAIL; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.SITUATIONAL_PANEL; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.NetWorkUrl.HOUSEADDRESS_LIST; + +/** + * Created by Administrator on 2019/3/26. + */ + +public class ModifyTypeActivity extends BaseActivity { + private TitleView mTitleView; + private Button bt_start_config; + private RecyclerView chooseHouseTypeRv; + private DeviceTypeChooseAdapter mAdapter; + private List dataList = new ArrayList(); + private TextView roomTypeTv; + private String addressTypeCode; + private String deviceType; + private String deviceModel; + private String ziId; + private String deviceId; + private String deviceName; + private int deviceNamePosition = 0; + private LoadingDialog mLoadingDialog; + private PowerfulStickyDecoration decoration; + private RelativeLayout rl_light_type; + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_choose_device_type); + + initView(); + initListener(); + } + + private void initView() { + ziId = getIntent().getExtras().get("ziId").toString(); + if (null != getIntent().getExtras().get("deviceId")) { + deviceId = getIntent().getExtras().get("deviceId").toString(); + } + deviceType = getIntent().getExtras().get("deviceType").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + deviceName = getIntent().getExtras().get("deviceName").toString(); + roomTypeTv = (TextView) findViewById(R.id.tv_create_house); + roomTypeTv.setText("选择设备的类型"); + roomTypeTv.setTextSize(16); + rl_light_type = (RelativeLayout) findViewById(R.id.rl_light_type); + bt_start_config = (Button) findViewById(R.id.bt_start_config); + chooseHouseTypeRv = (RecyclerView) findViewById(R.id.rv_choose_house_type); + mTitleView = (TitleView) findViewById(R.id.title_house_name); + mTitleView.clearBackGroud(); + if (deviceType.equals(MULTIFUNCTIONAL_CONTROLLER)) { + mTitleView.setHead("添加多功能控制器"); + } else { + mTitleView.setHead("添加智能面板"); + } + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + // getAddresstypeList(); + if (deviceType.equals(CURTAINS_TAG)) { + dataList.add("窗帘"); + dataList.add("纱帘"); + /*dataList.add("左窗帘"); + dataList.add("右窗帘"); + dataList.add("左纱帘"); + dataList.add("右纱帘");*/ + rl_light_type.setVisibility(View.GONE); + } else if (deviceType.equals(MULTIFUNCTIONAL_CONTROLLER)) { + dataList.add("控制器"); + dataList.add("窗帘"); + dataList.add("纱帘"); + dataList.add("开窗器"); + dataList.add("车库门"); + // dataList.add("遮阳棚"); + dataList.add("电动门"); + dataList.add("投影升降机"); + dataList.add("幕布升降机"); + /*dataList.add("电动喷淋"); + dataList.add("控制器");*/ + } else { + dataList.add("灯光"); + dataList.add("筒灯"); + dataList.add("灯带"); + dataList.add("射灯"); + dataList.add("壁灯"); + dataList.add("吊灯"); + dataList.add("廊灯"); + dataList.add("排气扇"); + } + /*GridLayoutManager manager = new GridLayoutManager(this, 4); + chooseHouseTypeRv.setLayoutManager(manager); + mAdapter = new DeviceTypeChooseAdapter(this, dataList, false);*/ + setRecycleView(); + + } + + private void setRecycleView() { + //模拟数据 + // dataList.addAll(CityUtil.getCityList()); + GridLayoutManager manager = new GridLayoutManager(this, 4); + chooseHouseTypeRv.setLayoutManager(manager); + decoration = PowerfulStickyDecoration.Builder + .init(new PowerGroupListener() { + @Override + public String getGroupName(int position) { + //获取组名,用于判断是否是同一组 + if (dataList.size() > position) { + String groupName = ""; + if (deviceType.equals(CURTAINS_TAG)) { + groupName = "选择设备的类型"; + } else if (deviceType.equals(MULTIFUNCTIONAL_CONTROLLER)) { + groupName = "选择设备的类型"; + } else { + groupName = "选择灯光面板的类型"; + } + return groupName; + } + return null; + } + + @Override + public View getGroupView(int position) { + //获取自定定义的组View + if (dataList.size() > position) { + String groupName = ""; + if (dataList.size() > position) { + if (deviceType.equals(CURTAINS_TAG)) { + groupName = "选择设备的类型"; + } else if (deviceType.equals(MULTIFUNCTIONAL_CONTROLLER)) { + groupName = "选择设备的类型"; + } else { + groupName = "选择灯光面板的类型"; + } + } + final View view = getLayoutInflater().inflate(R.layout.add_room_group, null, true); + ((TextView) view.findViewById(R.id.tv_room_type)).setText(groupName); + return view; + } else { + return null; + } + } + }) + .setCacheEnable(true) + .resetSpan(chooseHouseTypeRv, manager) + .setGroupHeight(DensityUtil.dip2px(ModifyTypeActivity.this, 40)) + .setDivideHeight(0) + .setGroupBackground(0xfffafafa) + .setOnClickListener(new OnGroupClickListener() { + @Override + public void onClick(int position, int id) { + + } + }) + .build(); + //---------------- ------------- + chooseHouseTypeRv.addItemDecoration(decoration); + chooseHouseTypeRv.setVisibility(View.VISIBLE); + //------------- PowerfulStickyDecoration 使用部分 ---------------- + //下面是平时的RecyclerView操作 + mAdapter = new DeviceTypeChooseAdapter(this, dataList, false); + chooseHouseTypeRv.setAdapter(mAdapter); + + if (deviceName.isEmpty()) { + if (deviceType.equals(CURTAINS_TAG)) { + mAdapter.setAddressId("窗帘"); + } else if (deviceType.equals(MULTIFUNCTIONAL_CONTROLLER)) { + mAdapter.setAddressId("控制器"); + } else { + mAdapter.setAddressId("灯光"); + } + } else { + mAdapter.setAddressId(deviceName); + } + + mAdapter.setmOnItemClickListener(new OnRecyclerListener() { + @Override + public void onClick(View view, final int position) { + deviceName = dataList.get(position); + if (deviceType.equals(CURTAINS_TAG)) { + if (position < 2) { + deviceNamePosition = position; + } else { + deviceNamePosition = position + 1; + } + } else { + deviceNamePosition = position; + } + bt_start_config.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee_20dp)); + bt_start_config.setEnabled(true); + } + + @Override + public void onLongClick(RecyclerView.ViewHolder view, int position) { + + } + }); + + /*mAdapter.setmOnItemClickListener(new OnExbandItemClickListener() { + @Override + public void onClick(View view, int parentPosition, int childPosition, int i, int j, String id) { + //添加设备 + addDevice(parentPosition, childPosition); + } + });*/ + } + + private void initListener() { + rl_light_type.setOnClickListener(this); + bt_start_config.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6)); + bt_start_config.setEnabled(false); + bt_start_config.setText("确定"); + bt_start_config.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + switch (deviceType) { + case CLOTHES_HANGER: + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(); + } else { + Intent intent = new Intent(ModifyTypeActivity.this, ClothesHangerFragment.class); + intent.putExtra("addressId", addressTypeCode); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + break; + case LIGHT_TAG: + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(); + } else { + Intent intent = new Intent(ModifyTypeActivity.this, LightTestAndModifyActivity.class); + intent.putExtra("deviceName", deviceName); + intent.putExtra("deviceNamePosition", deviceNamePosition); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + break; + case SWITCH_TAG: + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(); + } + break; + case CURTAINS_TAG: + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(); + } else { + if (deviceModel.equals("3")) { + Intent intent = new Intent(ModifyTypeActivity.this, CurtainAndWindowClickActivity.class); + intent.putExtra("deviceName", deviceName); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceType", deviceType); + intent.putExtra("subtype", String.valueOf(deviceNamePosition)); + intent.putExtra("addressId", getIntent().getExtras().get("addressId").toString()); + intent.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + startActivity(intent); + } else { + Intent intent = new Intent(ModifyTypeActivity.this, LightTestAndModifyActivity.class); + intent.putExtra("deviceName", deviceName); + intent.putExtra("deviceNamePosition", deviceNamePosition); + setResult(MODIFY_DEVICE_NAME, intent); + } + finish(); + } + break; + case WINDOW_OPENER: + case MULTIFUNCTIONAL_CONTROLLER: + if (deviceNamePosition == 0) { + deviceNamePosition = 254; + deviceName = "控制器"; + } else if (deviceNamePosition < 5) { + deviceNamePosition -= 1; + } + + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(); + } else { + Intent intent = new Intent(ModifyTypeActivity.this, YblLightListActivity.class); + intent.putExtra("deviceName", deviceName); + intent.putExtra("deviceNamePosition", deviceNamePosition); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + break; + case "000": + saveUserInfo(); + break; + case GATE_WAY: + case INTELLIGENT_DOOR_LOCK: + case WIRELESS_EMERGENCY_BUTTON: + case INFRARED_CURTAIN_DETECTOR: + modifyDevice(); + break; + case DOOR_LOCK_TAG: + case INFRARED_TAG: + case SMOKE_TAG: + case GAS_TAG: + case WATER_TAG: + if (deviceModel.equals("1")) { + modifyDevice(); + } else { +// updateSafetyEntity(); + subsetModify(); + } + break; + case SITUATIONAL_PANEL: + subsetModify(); + break; + } + } + }); + + rl_light_type.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + RenameNameDialog dialog = new RenameNameDialog(ModifyTypeActivity.this, new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + deviceNamePosition = 254; + if (null != getIntent().getExtras().get("deviceId")) { + deviceName = positioName; + subsetModify(); + } else { + Intent intent = new Intent(ModifyTypeActivity.this, LightTestAndModifyActivity.class); + intent.putExtra("deviceNamePosition", deviceNamePosition + ""); + intent.putExtra("deviceName", positioName); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + break; + } + } + }); + dialog.setHintName(""); + dialog.setContent("设置设备类型名称"); + dialog.setMaxEms(10); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + } + }); + } + + private void saveUserInfo() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("addressId", addressTypeCode); + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.UPDATE_DEVICE_ADDRESS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("saveUserInfo", "DeviceA2PositionActivity onSuccess()" + respone); + ModifyDeviceEntity obj = JSON.parseObject(respone, ModifyDeviceEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(MODIFY_DEVICE_SUCCESS); + msg.obj = addressTypeCode; + mHandler.sendMessage(msg); + } else if (5003 == obj.getFlag()) { + NettyHandlerUtil.getInstance(); + } else { + Message msg = mHandler.obtainMessage(MODIFY_DEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_DEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void subsetModify() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("addressId", getIntent().getExtras().get("addressId").toString()); + map.put("subtype", deviceNamePosition); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void modifyDevice() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("addressId", addressTypeCode); + util.requestPostByAsynewApi(NetWorkUrl.MODIFY_DEVICE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateBlindEntityName", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = deviceName; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case HOUSE_TYPE_LIST_SUCCESS: + + break; + case HOUSE_TYPE_LIST_FAIL: + case ALLOW_VOICE_CONTROLL_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + Intent intent = new Intent(ModifyTypeActivity.this, ClothesHangerFragment.class); + intent.putExtra("devicePosition", AddressNameUtil.getAddressName(entity.getData().getAddressId().toString())); + intent.putExtra("deviceNamePosition", deviceNamePosition); + intent.putExtra("addressId", entity.getData().getAddressId()); + if (entity.getData().getDeviceName().isEmpty()) { + intent.putExtra("deviceName", entity.getData().getName()); + } else { + intent.putExtra("deviceName", entity.getData().getDeviceName()); + } + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + break; + case MODIFY_DEVICE_SUCCESS: + final String entity1 = (String) msg.obj; + ToastUtil.show(this, "修改成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + Intent intent = new Intent(ModifyTypeActivity.this, DeviceDetailActivity.class); + intent.putExtra("devicePosition", entity1); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + }, 1000); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + Intent intent2 = new Intent(ModifyTypeActivity.this, GatewayDetailActivity.class); + intent2.putExtra("addressId", addressTypeCode); + setResult(MODIFY_DEVICE_NAME, intent2); + finish(); + break; + case MODIFY_DEVICE_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void updateSafetyEntity() { + /*NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", deviceId); + map.put("ziId", ziId); + map.put("addressId", addressTypeCode); + netWorkUtil.requestPostByAsynew(NetWorkUrl.UPDATE_SAFETY_ENTITY, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateSafetyEntity", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(MODIFY_DEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_DEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + });*/ + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/MulitiControlModifyActivity.java b/app/src/main/java/com/yonsz/z1/version5/MulitiControlModifyActivity.java new file mode 100644 index 0000000..863b6e5 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/MulitiControlModifyActivity.java @@ -0,0 +1,396 @@ +package com.yonsz.z1.version5; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.fragment.SwitchFragment; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; +import com.yonsz.z1.ybl.light.YblLightListActivity; + +import java.util.HashMap; + +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; + +public class MulitiControlModifyActivity extends BaseActivity { + private TitleView mTitleView; + private String deviceModel; + private ImageView duogongnengIv, chuanglianIv, shalianIv, tcqIv; + private ImageView chekuIv, zheyangIv, diandongIv, touyingIv, mubuIv, penlinIv; + private ImageView duogongnengMark, chuanglianMark, shalianMark, tcqMark; + private ImageView chekuMark, zheyangMark, diandongMark, touyingMark, mubuMark, penlinMark; + private String subtype = "254"; + private LoadingDialog mLoadingDialog; + private String deviceId; + private RelativeLayout rl_switch_type, rl_tcq, rl_duogongneng, rl_chekumen, rl_zheyangpeng, rl_shalian, rl_chuanglian; + private Button mButton; + private String deviceName = ""; + private LinearLayout secondLineLl, thirdLineLl; + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_multicontrol_modify); + initView(); + initListener(); + } + + private void initView() { + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + if (null != getIntent().getExtras().get("subtype")) { + subtype = getIntent().getExtras().get("subtype").toString(); + if (deviceModel.equals("2") && subtype.isEmpty()) { + subtype = "0"; + } + } + if (null != getIntent().getExtras().get("deviceId")) { + deviceId = getIntent().getExtras().get("deviceId").toString(); + } + if (null != getIntent().getExtras().get("deviceId")) { + deviceName = getIntent().getExtras().get("deviceName").toString(); + } + mButton = (Button) findViewById(R.id.bt_sure_config); + secondLineLl = (LinearLayout) findViewById(R.id.ll_second_line); + thirdLineLl = (LinearLayout) findViewById(R.id.ll_third_line); + rl_switch_type = (RelativeLayout) findViewById(R.id.rl_switch_type); + rl_tcq = (RelativeLayout) findViewById(R.id.rl_tcq); + rl_duogongneng = (RelativeLayout) findViewById(R.id.rl_duogongneng); + rl_chekumen = (RelativeLayout) findViewById(R.id.rl_chekumen); + rl_zheyangpeng = (RelativeLayout) findViewById(R.id.rl_zheyangpeng); + rl_shalian = (RelativeLayout) findViewById(R.id.rl_shalian); + rl_chuanglian = (RelativeLayout) findViewById(R.id.rl_chuanglian); + + duogongnengIv = (ImageView) findViewById(R.id.iv_duogongneng); + chuanglianIv = (ImageView) findViewById(R.id.iv_chuanglian); + shalianIv = (ImageView) findViewById(R.id.iv_shalian); + tcqIv = (ImageView) findViewById(R.id.iv_tcq); + chekuIv = (ImageView) findViewById(R.id.iv_chekumen); + zheyangIv = (ImageView) findViewById(R.id.iv_zheyangpeng); + diandongIv = (ImageView) findViewById(R.id.iv_diandongmen); + touyingIv = (ImageView) findViewById(R.id.iv_touying); + mubuIv = (ImageView) findViewById(R.id.iv_mubu); + penlinIv = (ImageView) findViewById(R.id.iv_penlin); + + duogongnengMark = (ImageView) findViewById(R.id.tv_duogongneng); + chuanglianMark = (ImageView) findViewById(R.id.tv_chuanglian); + shalianMark = (ImageView) findViewById(R.id.tv_shalian); + tcqMark = (ImageView) findViewById(R.id.tv_tcq); + chekuMark = (ImageView) findViewById(R.id.tv_chekumen); + zheyangMark = (ImageView) findViewById(R.id.tv_zheyangpeng); + diandongMark = (ImageView) findViewById(R.id.tv_diandongmen); + touyingMark = (ImageView) findViewById(R.id.tv_touying); + mubuMark = (ImageView) findViewById(R.id.tv_mubu); + penlinMark = (ImageView) findViewById(R.id.tv_penlin); + + + mTitleView = (TitleView) findViewById(R.id.title_switcher_two); + mTitleView.setHead("修改类型"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + } + + @Override + public void onFunctionText() { + + } + }); + if (deviceModel.equals("2") || deviceModel.equals("5") || deviceModel.equals("6")) { + rl_duogongneng.setVisibility(View.GONE); + rl_tcq.setVisibility(View.GONE); + rl_switch_type.setVisibility(View.GONE); + rl_chekumen.setVisibility(View.GONE); + rl_zheyangpeng.setVisibility(View.GONE); + secondLineLl.setVisibility(View.GONE); + thirdLineLl.setVisibility(View.GONE); + rl_shalian.setVisibility(View.VISIBLE); + rl_chuanglian.setVisibility(View.VISIBLE); + } + + switch (subtype) { + case "0": + chuanglianMark.setVisibility(View.VISIBLE); + break; + case "1": + shalianMark.setVisibility(View.VISIBLE); + break; + case "2": + tcqMark.setVisibility(View.VISIBLE); + break; + case "3": + chekuMark.setVisibility(View.VISIBLE); + break; + case "4": + zheyangMark.setVisibility(View.VISIBLE); + break; + case "5": + diandongMark.setVisibility(View.VISIBLE); + break; + case "6": + touyingMark.setVisibility(View.VISIBLE); + break; + case "7": + mubuMark.setVisibility(View.VISIBLE); + break; + case "8": + penlinMark.setVisibility(View.VISIBLE); + break; + case "9": + + break; + case "254": + if (deviceName.equals("多功能控制器")) { + duogongnengMark.setVisibility(View.VISIBLE); + } + break; + default: + + break; + } + } + + private void initListener() { + duogongnengIv.setOnClickListener(this); + chuanglianIv.setOnClickListener(this); + shalianIv.setOnClickListener(this); + tcqIv.setOnClickListener(this); + chekuIv.setOnClickListener(this); + zheyangIv.setOnClickListener(this); + diandongIv.setOnClickListener(this); + touyingIv.setOnClickListener(this); + mubuIv.setOnClickListener(this); + penlinIv.setOnClickListener(this); + rl_switch_type.setOnClickListener(this); + mButton.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.iv_duogongneng: + subtype = "254"; + deviceName = "多功能控制器"; + setAllMarkGone(); + duogongnengMark.setVisibility(View.VISIBLE); + break; + case R.id.iv_chuanglian: + subtype = "0"; + deviceName = "窗帘"; + setAllMarkGone(); + chuanglianMark.setVisibility(View.VISIBLE); + break; + case R.id.iv_shalian: + subtype = "1"; + deviceName = "纱帘"; + setAllMarkGone(); + shalianMark.setVisibility(View.VISIBLE); + break; + case R.id.iv_tcq: + subtype = "2"; + deviceName = "开窗器"; + setAllMarkGone(); + tcqMark.setVisibility(View.VISIBLE); + break; + case R.id.iv_chekumen: + subtype = "3"; + deviceName = "车库门"; + setAllMarkGone(); + chekuMark.setVisibility(View.VISIBLE); + break; + case R.id.iv_zheyangpeng: + subtype = "4"; + deviceName = "遮阳棚"; + setAllMarkGone(); + zheyangMark.setVisibility(View.VISIBLE); + break; + case R.id.iv_diandongmen: + subtype = "5"; + deviceName = "电动门"; + setAllMarkGone(); + diandongMark.setVisibility(View.VISIBLE); + break; + case R.id.iv_touying: + subtype = "6"; + deviceName = "投影升降机"; + setAllMarkGone(); + touyingMark.setVisibility(View.VISIBLE); + break; + case R.id.iv_mubu: + subtype = "7"; + deviceName = "幕布升降机"; + setAllMarkGone(); + mubuMark.setVisibility(View.VISIBLE); + break; + case R.id.iv_penlin: + subtype = "8"; + deviceName = "电动喷淋"; + setAllMarkGone(); + penlinMark.setVisibility(View.VISIBLE); + break; + case R.id.rl_switch_type: + RenameNameDialog dialog = new RenameNameDialog(MulitiControlModifyActivity.this, new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subtype = "254"; + deviceName = positioName; + if (null != deviceId) { + subsetModify(positioName); + } else { + Intent intent = new Intent(MulitiControlModifyActivity.this, YblLightListActivity.class); + intent.putExtra("plugType", subtype); + intent.putExtra("plugName", deviceName); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + + break; + } + } + }); + dialog.setHintName(deviceName); + dialog.setContent("设置接入电器名称"); + dialog.setMaxEms(10); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.bt_sure_config: + if (null != deviceId) { + subsetModify(deviceName); + } else { + Intent intent = new Intent(MulitiControlModifyActivity.this, YblLightListActivity.class); + intent.putExtra("plugType", subtype); + intent.putExtra("plugName", deviceName); + if ((deviceModel.equals("5") || deviceModel.equals("6"))) { + intent.putExtra("icon", getIntent().getExtras().get("icon").toString()); + } + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + break; + } + } + + private void setAllMarkGone() { + duogongnengMark.setVisibility(View.GONE); + chuanglianMark.setVisibility(View.GONE); + shalianMark.setVisibility(View.GONE); + tcqMark.setVisibility(View.GONE); + chekuMark.setVisibility(View.GONE); + zheyangMark.setVisibility(View.GONE); + diandongMark.setVisibility(View.GONE); + touyingMark.setVisibility(View.GONE); + mubuMark.setVisibility(View.GONE); + penlinMark.setVisibility(View.GONE); + } + + private void subsetModify(String deviceName) { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", MULTIFUNCTIONAL_CONTROLLER); + map.put("subtype", subtype); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case ALLOW_VOICE_CONTROLL_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + Intent intent = new Intent(MulitiControlModifyActivity.this, SwitchFragment.class); + intent.putExtra("plugType", entity.getData().getSubType()); + intent.putExtra("plugName", entity.getData().getName()); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + break; + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/ScreenStatusReceiver.java b/app/src/main/java/com/yonsz/z1/version5/ScreenStatusReceiver.java new file mode 100644 index 0000000..c2a65ec --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/ScreenStatusReceiver.java @@ -0,0 +1,24 @@ +package com.yonsz.z1.version5; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +import com.yonsz.z1.utils.NettyHandlerUtil; + + +public class ScreenStatusReceiver extends BroadcastReceiver { + String SCREEN_ON = "android.intent.action.SCREEN_ON"; + String SCREEN_OFF = "android.intent.action.SCREEN_OFF"; + + @Override + public void onReceive(Context context, Intent intent) { + if (SCREEN_ON.equals(intent.getAction())) { + Log.i("SCREEN_ON", SCREEN_ON); + NettyHandlerUtil.getInstance(); + } else if (SCREEN_OFF.equals(intent.getAction())) { + Log.i("SCREEN_ON", SCREEN_OFF); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/SwoitBindActivity.java b/app/src/main/java/com/yonsz/z1/version5/SwoitBindActivity.java new file mode 100644 index 0000000..22fcb11 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/SwoitBindActivity.java @@ -0,0 +1,62 @@ +package com.yonsz.z1.version5; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.view.View; +import android.widget.Button; + +import com.yonsz.z1.R; +import com.yonsz.z1.activity.AsxAddDeviceListActivity; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.fragment.person.WebViewActivity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.view.TitleView; + +public class SwoitBindActivity extends BaseActivity { + private TitleView mTitleView; + private Button bt_bind; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_swoit_bind); + mTitleView = findViewById(R.id.title_swoit_bind); + bt_bind = findViewById(R.id.bt_bind); + + mTitleView.setHead("帐号绑定"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + bt_bind.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent1 = new Intent(SwoitBindActivity.this, WebViewActivity.class); + intent1.putExtra("platform", "skyworth_tv"); + intent1.putExtra("data", getIntent().getExtras().get("data").toString()); + intent1.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + startActivity(intent1); + finish(); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/SwoitSyncActivity.java b/app/src/main/java/com/yonsz/z1/version5/SwoitSyncActivity.java new file mode 100644 index 0000000..4c3435c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/SwoitSyncActivity.java @@ -0,0 +1,331 @@ +package com.yonsz.z1.version5; + +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.gavin.com.library.listener.OnGroupClickListener; +import com.gavin.com.library.listener.PowerGroupListener; +import com.lechange.demo.localvideo.PowerfulStickyDecoration; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity5.SyncEquipmentEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.adapter.SyncEquipmentAdapter; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.GET_CODE_FAIL; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_FAIL; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.KUQI_PANEL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.WX_LOGIN_SUCCESS; + +/** + * Created by Administrator on 2019/3/26. + */ + +public class SwoitSyncActivity extends BaseActivity { + private TitleView mTitleView; + private Button bt_start_config, bt_unbind; + private RecyclerView chooseHouseTypeRv; + private SyncEquipmentAdapter mAdapter; + private List dataList = new ArrayList(); + private TextView roomTypeTv; + private String addressTypeCode; + private int deviceNamePosition = 0; + private LoadingDialog mLoadingDialog; + private PowerfulStickyDecoration decoration; + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("关闭")) { + finish(); + } + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_swoit_equipment); + + initView(); + initListener(); + } + + private void initView() { + roomTypeTv = (TextView) findViewById(R.id.tv_create_house); + roomTypeTv.setText("设备"); + roomTypeTv.setTextSize(16); + bt_start_config = (Button) findViewById(R.id.bt_start_config); + bt_unbind = (Button) findViewById(R.id.bt_unbind); + chooseHouseTypeRv = (RecyclerView) findViewById(R.id.rv_choose_house_type); + mTitleView = (TitleView) findViewById(R.id.title_house_name); + mTitleView.clearBackGroud(); + mTitleView.setHead("同步设备信息"); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + swaiotSyncdevicelist(1); + + setRecycleView(); + } + + private void setRecycleView() { + //模拟数据 + GridLayoutManager manager = new GridLayoutManager(this, 2); + chooseHouseTypeRv.setLayoutManager(manager); + decoration = PowerfulStickyDecoration.Builder + .init(new PowerGroupListener() { + @Override + public String getGroupName(int position) { + //获取组名,用于判断是否是同一组 + if (dataList.size() > position) { + String groupName = "设备"; + return groupName; + } + return null; + } + + @Override + public View getGroupView(int position) { + //获取自定定义的组View + if (dataList.size() > position) { + String groupName = "设备"; + final View view = getLayoutInflater().inflate(R.layout.add_room_group, null, true); + ((TextView) view.findViewById(R.id.tv_room_type)).setText(groupName); + return view; + } else { + return null; + } + } + }) + .setCacheEnable(true) + .resetSpan(chooseHouseTypeRv, manager) + .setGroupHeight(DensityUtil.dip2px(SwoitSyncActivity.this, 40)) + .setDivideHeight(0) + .setGroupBackground(0xfffafafa) + .setOnClickListener(new OnGroupClickListener() { + @Override + public void onClick(int position, int id) { + + } + }) + .build(); + //---------------- ------------- + chooseHouseTypeRv.addItemDecoration(decoration); + chooseHouseTypeRv.setVisibility(View.VISIBLE); + //------------- PowerfulStickyDecoration 使用部分 ---------------- + //下面是平时的RecyclerView操作 + mAdapter = new SyncEquipmentAdapter(this, dataList, false); + chooseHouseTypeRv.setAdapter(mAdapter); + + + mAdapter.setmOnItemClickListener(new OnRecyclerListener() { + @Override + public void onClick(View view, final int position) { + deviceNamePosition = position; + } + + @Override + public void onLongClick(RecyclerView.ViewHolder view, int position) { + + } + }); + } + + private void initListener() { + bt_start_config.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee_20dp)); + bt_start_config.setEnabled(true); + bt_start_config.setText("同步设备"); + bt_start_config.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + swaiotSyncdevicelist(2); + } + }); + bt_unbind.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ConfirmDialog dialog = new ConfirmDialog(SwoitSyncActivity.this, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + break; + case 1: + swaiotUnbind(); + break; + } + } + }); + dialog.setContent("解除绑定?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + }); + } + + private void swaiotSyncdevicelist(int arg) { + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("floor", "1"); + map.put("ziId",getIntent().getExtras().get("ziId").toString()); + NetWorkUtil net = NetWorkUtil.instans(); + net.requestGetByAsy(NetWorkUrl.SWAIOT_SYNCDEVICELIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("swaiotSyncdevicelist", "UpdatePwActivity onSuccess()" + respone); + SyncEquipmentEntity obj = JSON.parseObject(respone, SyncEquipmentEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + msg.arg1 = arg; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GET_CODE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(GET_CODE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void swaiotUnbind() { + HashMap map = new HashMap<>(); + NetWorkUtil net = NetWorkUtil.instans(); + net.requestGetByAsy(NetWorkUrl.SWAIOT_SUSERUNBIND, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("swaiotUnbind", "UpdatePwActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(WX_LOGIN_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GET_CODE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(GET_CODE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case HOUSE_TYPE_LIST_SUCCESS: + break; + case HOUSE_TYPE_LIST_FAIL: + case ALLOW_VOICE_CONTROLL_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + case GET_CODE_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + int arg1 = msg.arg1; + if (arg1 == 2) { + ToastUtil.show(this, "设备同步完成"); + } + SyncEquipmentEntity obj = (SyncEquipmentEntity) msg.obj; + if (null != obj.getData() && obj.getData().size() != 0) { + dataList.clear(); + List data = obj.getData(); + for (int i = 0; i < data.size(); i++) { + if (data.get(i).getRoom().isEmpty()) { + dataList.add(data.get(i).getAlias()); + } else { + dataList.add(data.get(i).getRoom() + "-" + data.get(i).getAlias()); + } + } + } + mAdapter.notifyDataSetChanged(); + break; + case WX_LOGIN_SUCCESS: + ToastUtil.show(this, "解绑成功"); + EventBus.getDefault().post( + new EventBusEntity("创维大屏已解绑")); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/SyncEquipmentActivity.java b/app/src/main/java/com/yonsz/z1/version5/SyncEquipmentActivity.java new file mode 100644 index 0000000..7e16e6c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/SyncEquipmentActivity.java @@ -0,0 +1,340 @@ +package com.yonsz.z1.version5; + +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.gavin.com.library.listener.OnGroupClickListener; +import com.gavin.com.library.listener.PowerGroupListener; +import com.lechange.demo.localvideo.PowerfulStickyDecoration; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity5.SyncEquipmentEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.adapter.SyncEquipmentAdapter; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.GET_CODE_FAIL; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_FAIL; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.KUQI_PANEL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; + +/** + * Created by Administrator on 2019/3/26. + */ + +public class SyncEquipmentActivity extends BaseActivity { + private TitleView mTitleView; + private Button bt_start_config; + private RecyclerView chooseHouseTypeRv; + private SyncEquipmentAdapter mAdapter; + private List dataList = new ArrayList(); + private TextView roomTypeTv; + private String addressTypeCode; + private String deviceType; + private String deviceModel; + private String ziId; + private String deviceId; + private String deviceName; + private int deviceNamePosition = 0; + private LoadingDialog mLoadingDialog; + private PowerfulStickyDecoration decoration; + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("关闭")) { + finish(); + } + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_sync_equipment); + + initView(); + initListener(); + } + + private void initView() { + ziId = getIntent().getExtras().get("ziId").toString(); + if (null != getIntent().getExtras().get("deviceId")) { + deviceId = getIntent().getExtras().get("deviceId").toString(); + } + deviceType = getIntent().getExtras().get("deviceType").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + deviceName = getIntent().getExtras().get("deviceName").toString(); + roomTypeTv = (TextView) findViewById(R.id.tv_create_house); + roomTypeTv.setText("设备"); + roomTypeTv.setTextSize(16); + bt_start_config = (Button) findViewById(R.id.bt_start_config); + chooseHouseTypeRv = (RecyclerView) findViewById(R.id.rv_choose_house_type); + mTitleView = (TitleView) findViewById(R.id.title_house_name); + mTitleView.clearBackGroud(); + mTitleView.setHead("同步设备信息"); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + subsetExtend("1"); + + setRecycleView(); + } + + private void setRecycleView() { + //模拟数据 + GridLayoutManager manager = new GridLayoutManager(this, 2); + chooseHouseTypeRv.setLayoutManager(manager); + decoration = PowerfulStickyDecoration.Builder + .init(new PowerGroupListener() { + @Override + public String getGroupName(int position) { + //获取组名,用于判断是否是同一组 + if (dataList.size() > position) { + String groupName = "设备"; + return groupName; + } + return null; + } + + @Override + public View getGroupView(int position) { + //获取自定定义的组View + if (dataList.size() > position) { + String groupName = "设备"; + final View view = getLayoutInflater().inflate(R.layout.add_room_group, null, true); + ((TextView) view.findViewById(R.id.tv_room_type)).setText(groupName); + return view; + } else { + return null; + } + } + }) + .setCacheEnable(true) + .resetSpan(chooseHouseTypeRv, manager) + .setGroupHeight(DensityUtil.dip2px(SyncEquipmentActivity.this, 40)) + .setDivideHeight(0) + .setGroupBackground(0xfffafafa) + .setOnClickListener(new OnGroupClickListener() { + @Override + public void onClick(int position, int id) { + + } + }) + .build(); + //---------------- ------------- + chooseHouseTypeRv.addItemDecoration(decoration); + chooseHouseTypeRv.setVisibility(View.VISIBLE); + //------------- PowerfulStickyDecoration 使用部分 ---------------- + //下面是平时的RecyclerView操作 + mAdapter = new SyncEquipmentAdapter(this, dataList, false); + chooseHouseTypeRv.setAdapter(mAdapter); + + + mAdapter.setmOnItemClickListener(new OnRecyclerListener() { + @Override + public void onClick(View view, final int position) { + deviceName = dataList.get(position); + deviceNamePosition = position; + } + + @Override + public void onLongClick(RecyclerView.ViewHolder view, int position) { + + } + }); + } + + private void initListener() { + bt_start_config.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee_20dp)); + bt_start_config.setEnabled(true); + bt_start_config.setText("同步设备"); + bt_start_config.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + switch (deviceType) { + case KUQI_PANEL: + getCode(); + break; + } + } + }); + } + + private void getCode() { + HashMap map = new HashMap<>(); +// map.put("appId", DifferConstans.APPID_S); + map.put("clientId", "cocheer"); + map.put("redirectUri", "https://svr.cocheer.cn/api/v2/third_cloud/auth/VdPKYqDbVWDXgRv0"); + NetWorkUtil net = NetWorkUtil.instans(); + net.requestPostByAsynewApi(NetWorkUrl.AUTH_GETCODE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("getCode", "UpdatePwActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { +// mHandler.sendEmptyMessage(GET_CODE_SUCCESS); + runOnUiThread(new Runnable() { + @Override + public void run() { + subsetExtend(obj.getData()); + } + }); + } else { + Message msg = mHandler.obtainMessage(GET_CODE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(GET_CODE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void subsetExtend(String code) { + if (null != mLoadingDialog && !mLoadingDialog.isShowing()) { + mLoadingDialog.show(); + } else { + initLoadDialog(); + } + String body = "{}"; + if (!code.isEmpty() && code != "1" && code != "2") { + body = "{\"code\":\"" + code + "\"}"; + } + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + if (!code.isEmpty() && code != "1" && code != "2") { + map.put("method", "sync"); + } else { + map.put("method", "getCloudDeviceList"); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_EXTEND, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetExtend", "ShareDeviceActivity onSuccess()" + respone); + if (!code.isEmpty() && code != "1" && code != "2") { + runOnUiThread(new Runnable() { + @Override + public void run() { + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + subsetExtend("2"); + } + }); + } else { + SyncEquipmentEntity obj = JSON.parseObject(respone, SyncEquipmentEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + msg.arg1 = Integer.parseInt(code); + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case HOUSE_TYPE_LIST_SUCCESS: + break; + case HOUSE_TYPE_LIST_FAIL: + case ALLOW_VOICE_CONTROLL_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + int arg1 = msg.arg1; + if (arg1 == 2) { + ToastUtil.show(this, "同步成功"); + } + SyncEquipmentEntity obj = (SyncEquipmentEntity) msg.obj; + if (null != obj.getData() && obj.getData().size() != 0) { + dataList.clear(); + List data = obj.getData(); + for (int i = 0; i < data.size(); i++) { + if (data.get(i).getRoom().isEmpty()) { + dataList.add(data.get(i).getAlias()); + } else { + dataList.add(data.get(i).getRoom() + "-" + data.get(i).getAlias()); + } + } + } + mAdapter.notifyDataSetChanged(); + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/AddLeftListAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/AddLeftListAdapter.java new file mode 100644 index 0000000..598cc97 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/AddLeftListAdapter.java @@ -0,0 +1,95 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AllDeviceTypeEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnExbandItemClickListener; + +import java.util.List; + +/** + * Created by Administrator on 2018/7/18. + */ + +public class AddLeftListAdapter extends RecyclerView.Adapter { + + private List mObjEntity; + private Context mContext; + private OnExbandItemClickListener mOnItemClickListener; + private int nowPosition = 0; + + public AddLeftListAdapter(Context mContext, List mObjEntity) { + super(); + this.mContext = mContext; + this.mObjEntity = mObjEntity; + } + + public void setNowPosition(int position) { + this.nowPosition = position; + this.notifyDataSetChanged(); + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_add_device_left, + parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(position); + } + + @Override + public int getItemCount() { + return mObjEntity == null ? 0 : mObjEntity.size(); + } + + public void setmOnItemClickListener(OnExbandItemClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private final RelativeLayout root_relativelayout; + private TextView deviceName; + + + public MessageViewHolder(View view) { + super(view); + deviceName = (TextView) view.findViewById(R.id.tv_device_name); + root_relativelayout = (RelativeLayout) view.findViewById(R.id.root_relativelayout); + } + + public void setViews(final int position) { + deviceName.setText(mObjEntity.get(position).getName()); + + if (nowPosition == position) { + deviceName.setBackgroundResource(R.drawable.btn_round_398dee); + deviceName.setTextColor(0xffffffff); + } else { + deviceName.setBackgroundResource(R.drawable.btn_round_000000); + deviceName.setTextColor(0xff333333); + } + root_relativelayout.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 0, 0, 0, "0"); + nowPosition = position; + notifyDataSetChanged(); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/AddListAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/AddListAdapter.java new file mode 100644 index 0000000..436071d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/AddListAdapter.java @@ -0,0 +1,108 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AllDeviceTypeEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnExbandItemClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.List; + +/** + * Created by Administrator on 2018/7/18. + */ + +public class AddListAdapter extends RecyclerView.Adapter { + + private List mObjEntity; + private Context mContext; + private OnExbandItemClickListener mOnItemClickListener; + + public AddListAdapter(Context mContext, List mObjEntity) { + super(); + this.mContext = mContext; + this.mObjEntity = mObjEntity; + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_add_device_list, + parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(position); + } + + @Override + public int getItemCount() { + return mObjEntity == null ? 0 : mObjEntity.size(); + } + + public void setmOnItemClickListener(OnExbandItemClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private final RelativeLayout root_relativelayout; + private TextView deviceName; + private View line2; + private RecyclerView mGridView; + private AsxAddDeviceAdapter mAdapter; + + + public MessageViewHolder(View view) { + super(view); + line2 = (View) view.findViewById(R.id.line2); + deviceName = (TextView) view.findViewById(R.id.tv_device_name); + root_relativelayout = (RelativeLayout) view.findViewById(R.id.root_relativelayout); + mGridView = (RecyclerView) view.findViewById(R.id.vertical_RecyclerView); + GridLayoutManager manager; + if (AppIdUtil.isStandard()) { + manager = new GridLayoutManager(mContext, 4); + } else { + manager = new GridLayoutManager(mContext, 3); + } + mGridView.setLayoutManager(manager); + } + + public void setViews(final int position) { + deviceName.setText(mObjEntity.get(position).getName()); + // ImageLoader.getInstance().displayImage(mObjEntity.get(position).getIcon(), devicePic, UniKongApp.getHiApp().getImageLoaderOption()); + /*if (position == mObjEntity.size() - 1) { + line2.setVisibility(View.INVISIBLE); + }*/ + mAdapter = new AsxAddDeviceAdapter(mContext, mObjEntity.get(position).getDeviceModels()); + mGridView.setAdapter(mAdapter); + mAdapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int childPosition) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(view, position, childPosition, 0, 0, "0"); + } + } + }); + root_relativelayout.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + /*if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + }*/ + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/AsxAddDeviceAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/AsxAddDeviceAdapter.java new file mode 100644 index 0000000..16ec81e --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/AsxAddDeviceAdapter.java @@ -0,0 +1,85 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.entity5.AllDeviceTypeEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class AsxAddDeviceAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerClickListener mOnItemClickListener; + + public AsxAddDeviceAdapter(Context context, List mDataBeans) { + this.mDataBeans = mDataBeans; + mContext = context; + } + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_add_asx_device, parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) { + ViewHolder holder = (ViewHolder) viewHolder; + holder.setViews(position); + } + + @Override + public int getItemCount() { + return mDataBeans.size(); + } + + + class ViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_position) + ImageView mIvPositon; + @BindView(R.id.tv_position) + TextView mTvPosition; + @BindView(R.id.rl_position) + RelativeLayout mRlPosition; + @BindView(R.id.tv_title_remark) + TextView mTitleRemark; + + ViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final int position) { + ImageLoader.getInstance().displayImage(mDataBeans.get(position).getIcon(), mIvPositon, UniKongApp.getHiApp().getImageLoaderOption()); + mTvPosition.setText(mDataBeans.get(position).getName()); + mTitleRemark.setText(mDataBeans.get(position).getTitleRemark()); + mRlPosition.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/ChooseA1Adapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/ChooseA1Adapter.java new file mode 100644 index 0000000..5547471 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/ChooseA1Adapter.java @@ -0,0 +1,170 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.entity4.DeviceSimpleEntity; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.ToastUtil; + +import java.util.List; + +import static com.yonsz.z1.net.Constans.GATE_WAY; + +/** + * Created by Administrator on 2018/9/12. + */ + +public class ChooseA1Adapter extends RecyclerView.Adapter { + private List mObjEntity; + private Context mContext; + private OnRecyclerClickListener mOnItemClickListener; + private int nowPosition = 100; + + public ChooseA1Adapter(Context mContext, List mObjEntity) { + super(); + this.mContext = mContext; + this.mObjEntity = mObjEntity; + } + + public void setNowPosition(int position) { + nowPosition = position; + notifyDataSetChanged(); + } + + public void setNowZiName(String ziName) { + for (int i = 0; i < mObjEntity.size(); i++) { + if (mObjEntity.get(i).getZiId().equals(ziName)) { + nowPosition = i; + } + } + notifyDataSetChanged(); + } + + @Override + public ChooseA1Adapter.MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_voice_manager, + parent, false); + return new ChooseA1Adapter.MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(ChooseA1Adapter.MessageViewHolder holder, int position) { + holder.setViews(position); + } + + @Override + public int getItemCount() { + return mObjEntity == null ? 0 : mObjEntity.size(); + } + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private TextView floorPosition; + private TextView homeName; + private TextView homePosition; + private ImageView iv_device_pic; + private CheckBox cb_device_choose; + private LinearLayout ll_root; + + public MessageViewHolder(View view) { + super(view); + homeName = (TextView) view.findViewById(R.id.tv_home_name); + homePosition = (TextView) view.findViewById(R.id.tv_home_position); + floorPosition = (TextView) view.findViewById(R.id.tv_floor_position); + iv_device_pic = (ImageView) view.findViewById(R.id.iv_device_pic); + cb_device_choose = (CheckBox) view.findViewById(R.id.cb_device_choose); + ll_root = (LinearLayout) view.findViewById(R.id.ll_root); + } + + public void setViews(final int position) { + // homeName.setText(mObjEntity.get(position).getName()); + if (null != mObjEntity.get(position).getDeviceType() && mObjEntity.get(position).getDeviceType().equals(GATE_WAY)) { + if (!TextUtils.isEmpty(mObjEntity.get(position).getFloorCode())) { + homeName.setText(mObjEntity.get(position).getFloorCode() + "楼" + AddressNameUtil.getAddressName(mObjEntity.get(position).getAddressId()) + "的" + mObjEntity.get(position).getDeviceName()); + } else { + homeName.setText(AddressNameUtil.getAddressName(mObjEntity.get(position).getAddressId()) + "的" + mObjEntity.get(position).getDeviceName()); + } + } else { + if (!TextUtils.isEmpty(mObjEntity.get(position).getFloor()) && !mObjEntity.get(position).getFloorCode().isEmpty()) { + homeName.setText(mObjEntity.get(position).getFloor() + "楼" + AddressNameUtil.getAddressName(mObjEntity.get(position).getAddressId()) + "的" + mObjEntity.get(position).getName()); + } else { + homeName.setText(AddressNameUtil.getAddressName(mObjEntity.get(position).getAddressId()) + "的" + mObjEntity.get(position).getName()); + } + } + /*if (mObjEntity.get(position).getDeviceVersion().equals("2")) { + iv_device_pic.setImageResource(R.drawable.pic_a2); + } else if (mObjEntity.get(position).getConnectFlag().equals("0")) { + iv_device_pic.setImageResource(R.drawable.pic_a1); + } else { + iv_device_pic.setImageResource(R.drawable.pic_z1_online); + }*/ + if (null != mObjEntity.get(position).getDeviceType() && mObjEntity.get(position).getDeviceType().equals(GATE_WAY)) { + if (mObjEntity.get(position).getDeviceModel().equals("1")) { + iv_device_pic.setImageResource(R.drawable.icon_g2); + } else { + iv_device_pic.setImageResource(R.drawable.icon_gateway_dh); + } + } else { + com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(mObjEntity.get(position).getIcon(), iv_device_pic, UniKongApp.getHiApp().getImageLoaderOption()); + } + if (null != mObjEntity.get(position).getOnline() && mObjEntity.get(position).getOnline().equals("0")) { + iv_device_pic.setAlpha(0.5f); + cb_device_choose.setAlpha(0.5f); + homeName.setAlpha(0.5f); + homePosition.setAlpha(0.5f); + cb_device_choose.setEnabled(false); + } else { + iv_device_pic.setAlpha(1.0f); + cb_device_choose.setAlpha(1.0f); + homeName.setAlpha(1.0f); + homePosition.setAlpha(1.0f); + cb_device_choose.setEnabled(true); + } + homePosition.setText(AddressNameUtil.getAddressName(mObjEntity.get(position).getAddressId())); + if (nowPosition == position) { + cb_device_choose.setChecked(true); + } else { + cb_device_choose.setChecked(false); + } + cb_device_choose.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + nowPosition = position; + notifyDataSetChanged(); + } + } + }); + ll_root.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!mObjEntity.get(position).getOnline().equals("1")) { + if (null != mObjEntity.get(position).getDeviceType()) { + if (mObjEntity.get(position).getDeviceType().equals("000")) { + ToastUtil.show(mContext, "设备已离线"); + } + } else { + ToastUtil.show(mContext, "设备已离线"); + } + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/ChooseVersionAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/ChooseVersionAdapter.java new file mode 100644 index 0000000..c5c93a3 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/ChooseVersionAdapter.java @@ -0,0 +1,109 @@ +package com.yonsz.z1.version5.adapter; + +import static com.yonsz.z1.net.Constans.GATE_WAY; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.entity4.DeviceSimpleEntity; +import com.yonsz.z1.database.entity.entity5.AllDeviceTypeEntity; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.ToastUtil; + +import java.util.List; + +/** + * Created by Administrator on 2018/9/12. + */ + +public class ChooseVersionAdapter extends RecyclerView.Adapter { + private List mObjEntity; + private Context mContext; + private OnRecyclerClickListener mOnItemClickListener; + private int nowPosition = 100; + + public ChooseVersionAdapter(Context mContext, List mObjEntity) { + super(); + this.mContext = mContext; + this.mObjEntity = mObjEntity; + } + + + @Override + public ChooseVersionAdapter.MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_voice_manager, + parent, false); + return new ChooseVersionAdapter.MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(ChooseVersionAdapter.MessageViewHolder holder, int position) { + holder.setViews(position); + } + + @Override + public int getItemCount() { + return mObjEntity == null ? 0 : mObjEntity.size(); + } + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private TextView floorPosition; + private TextView homeName; + private TextView homePosition; + private ImageView iv_device_pic; + private CheckBox cb_device_choose; + private LinearLayout ll_root; + + public MessageViewHolder(View view) { + super(view); + homeName = (TextView) view.findViewById(R.id.tv_home_name); + homePosition = (TextView) view.findViewById(R.id.tv_home_position); + floorPosition = (TextView) view.findViewById(R.id.tv_floor_position); + iv_device_pic = (ImageView) view.findViewById(R.id.iv_device_pic); + cb_device_choose = (CheckBox) view.findViewById(R.id.cb_device_choose); + ll_root = (LinearLayout) view.findViewById(R.id.ll_root); + } + + public void setViews(final int position) { + iv_device_pic.setImageResource(R.drawable.icon_multifunctional); + homeName.setText(mObjEntity.get(position).getLabel()); + homePosition.setText(""); + if (nowPosition == position) { + cb_device_choose.setChecked(true); + } else { + cb_device_choose.setChecked(false); + } + cb_device_choose.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + nowPosition = position; + notifyDataSetChanged(); + } + } + }); + ll_root.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/DeviceDetailAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/DeviceDetailAdapter.java new file mode 100644 index 0000000..fa45c87 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/DeviceDetailAdapter.java @@ -0,0 +1,1364 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.content.Intent; +import android.graphics.ColorMatrix; +import android.graphics.ColorMatrixColorFilter; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.v7.widget.CardView; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import com.alibaba.fastjson.JSON; +import com.common.openapi.DeviceListService; +import com.common.openapi.IGetDeviceInfoCallBack; +import com.common.openapi.MethodConst; +import com.common.openapi.entity.DeviceDetailListData; +import com.lechange.demo.business.Business; +import com.lechange.demo.business.entity.ChannelInfo; +import com.lechange.demo.mediaplay.MediaPlayActivity; +import com.lechange.demo.ui.DeviceOnlineMediaPlayActivity; +import com.lechange.demo.yonsz.CameraDetailActivity; +import com.lechange.pulltorefreshlistview.Mode; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.gateway.GatewayDetailActivity; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.mydevice.DeviceDetailActivity; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.panel485.Panel485Activity; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.version5.DeviceControlByRoomActivity; +import com.yonsz.z1.version5.ExecSendUtil; +import com.yonsz.z1.version5.MainFragment5; +import com.yonsz.z1.version6.MainFragment6; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.CAMERA_TAG; +import static com.yonsz.z1.net.Constans.CAT_EYE; +import static com.yonsz.z1.net.Constans.CHECK_USER_BIND_FAIL; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GATE_WAY; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.KUQI_PANEL; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.REFRESH_DATA; +import static com.yonsz.z1.net.Constans.RGB_LIGHT; +import static com.yonsz.z1.net.Constans.SAFETY_ACOUSTO_OPTIC; +import static com.yonsz.z1.net.Constans.SAFETY_DISPLACEMENT; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SAFETY_WIRELESS_REMOTE; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SEND_UPDATEVOICE_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; + +/** + * Created by Administrator on 2019/2/27. + */ + +public class DeviceDetailAdapter extends RecyclerView.Adapter { + + private List mDeviceBeans; + private Context mContext; + private OnRecyclerListener mOnItemClickListener; + private List datas = new ArrayList<>(); + + public DeviceDetailAdapter(Context mContext, List mDeviceBeans) { + super(); + this.mContext = mContext; + this.mDeviceBeans = mDeviceBeans; + } + + + public void setmOnItemClickListener(OnRecyclerListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + public void setLcDatas(List lcDatas) { + this.datas.clear(); + this.datas.addAll(lcDatas); + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view; + if (AppIdUtil.isChuangWei()) { + view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_device_detail_inroom_cw, + null); + } else { + view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_device_detail_inroom, + null); + } + return new DeviceDetailAdapter.MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(DeviceDetailAdapter.MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDeviceBeans != null ? mDeviceBeans.size() : 0; + } + + @Override + public long getItemId(int position) { + return super.getItemId(position); + } + + private void sendUpdateVoiceControl(String id, String ziId, String voiceFlag, String deviceModel, String deviceType) { + /*NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("id", id); + map.put("deviceInfrared", deviceInfrared); + map.put("voiceFlag", voiceFlag); + netWorkUtil.requestPostByAsynew(NetWorkUrl.SEND_UPDATEVOICE_CONTROL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("sendUpdateVoiceControl", "ShareDeviceActivity onSuccess()" + respone); + + } + + @Override + public void onFail(String message) { + + } + });*/ + + + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", id); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("voiceFlag", voiceFlag); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SETVOICE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subseSetVoice", "ShareDeviceActivity onSuccess()" + respone); + + } + + @Override + public void onFail(String message) { + + } + }); + } + + private void toControlPageWhenLoad(AllDeviceEntity.DataBean.DeviceBean deviceBean) { + if (deviceBean.getAddition().getLoadStatus().equals("1")) { + if (deviceBean.getAddition().getLoadErrorType().equals(deviceBean.getDeviceType())) { + startToControlPage(deviceBean); + } else { + Toast.makeText(UniKongApp.getHiApp(), R.string.date_ing, Toast.LENGTH_SHORT).show(); + return; + } + } else if (deviceBean.getAddition().getLoadStatus().equals("-1")) { + if (deviceBean.getAddition().getLoadErrorType().equals(deviceBean.getDeviceType())) { + startToControlPage(deviceBean); + } else { + Toast.makeText(UniKongApp.getHiApp(), R.string.date_fail, Toast.LENGTH_SHORT).show(); + return; + } + } else { + startToControlPage(deviceBean); + } + } + + private void startToControlPage(AllDeviceEntity.DataBean.DeviceBean deviceBean) { + Intent intent = new Intent(mContext, DeviceControlByRoomActivity.class); + /*Bundle bundle = new Bundle(); + bundle.putSerializable("parentBean", (Serializable) mDeviceBeans); + intent.putExtras(bundle);*/ + AllDeviceEntity.DataBean bean = new AllDeviceEntity.DataBean(); + bean.setDevices(mDeviceBeans); + intent.putExtra("parentBean", JSON.toJSONString(bean)); + intent.putExtra("ziId", deviceBean.getZiId()); + intent.putExtra("id", deviceBean.getId()); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private TextView deviceName; + private TextView deviceState; + private TextView redCircle; + private TextView deviceState1; + private ImageView deviceIcon; + private CheckBox deviceSwitch; + private RelativeLayout rlSwitch; + private CardView cardView; + + + public MessageViewHolder(View convertView) { + super(convertView); + deviceIcon = (ImageView) convertView.findViewById(R.id.iv_device_icon); + deviceName = (TextView) convertView.findViewById(R.id.tv_device_name); + redCircle = (TextView) convertView.findViewById(R.id.tv_red_circle); + deviceState = (TextView) convertView.findViewById(R.id.tv_device_state); + deviceState1 = (TextView) convertView.findViewById(R.id.tv_device_state1); + deviceSwitch = (CheckBox) convertView.findViewById(R.id.cb_main_device_switch); + rlSwitch = (RelativeLayout) convertView.findViewById(R.id.rl_check_box); + cardView = (CardView) convertView.findViewById(R.id.cardView); + } + + public void setViews(final MessageViewHolder holder, final int position) { + //修改数据信息(含加密标识符) + final AllDeviceEntity.DataBean.DeviceBean deviceBean = mDeviceBeans.get(position); + deviceName.setText(deviceBean.getName()); + setDeviceIcon(deviceBean.getDeviceType(), deviceBean); + + deviceSwitch.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ConfirmDialog dialog = new ConfirmDialog(mContext, new Callback() { + @Override + public void callback(int position) { + if (deviceSwitch.isChecked()) { + deviceSwitch.setChecked(false); + } else { + deviceSwitch.setChecked(true); + } + switch (position) { + case 0: + break; + case 1: + if (deviceBean.getDeviceType().equals(DOOR_LOCK_TAG) || deviceBean.getDeviceType().equals(INFRARED_TAG) || + deviceBean.getDeviceType().equals(INFRARED_CURTAIN_DETECTOR) || + deviceBean.getDeviceType().equals(SMOKE_TAG) || + deviceBean.getDeviceType().equals(GAS_TAG) || + deviceBean.getDeviceType().equals(SECURITY_MANIPULATOR) || + deviceBean.getDeviceType().equals(SECURITY_TRIGGER) || + deviceBean.getDeviceType().equals(WIRELESS_EMERGENCY_BUTTON) || + deviceBean.getDeviceType().equals(WATER_TAG)) { + if (null != deviceBean.getVoiceFlag()) { + if (deviceBean.getVoiceFlag().equals("1")) { + sendUpdateVoiceControl(deviceBean.getId(), deviceBean.getZiId(), "0", deviceBean.getDeviceModel(), deviceBean.getDeviceType()); + deviceState.setText("撤防状态"); + deviceSwitch.setChecked(false); + deviceBean.setVoiceFlag("0"); + notifyDataSetChanged(); + } else { + sendUpdateVoiceControl(deviceBean.getId(), deviceBean.getZiId(), "1", deviceBean.getDeviceModel(), deviceBean.getDeviceType()); + deviceState.setText("布防状态"); + deviceSwitch.setChecked(true); + deviceBean.setVoiceFlag("1"); + notifyDataSetChanged(); + } + } + } else if (deviceBean.getOnline().equals("0")) { + Toast.makeText(mContext, "设备已离线", Toast.LENGTH_SHORT).show(); + } else { + if (null != deviceBean.getLastInfo()) { + if (deviceBean.getLastInfo().getOpenFlag().equals("1")) { + ExecSendUtil.subsetControl(mContext, "poweroff", deviceBean.getZiId(), deviceBean); + deviceState.setText("设备关闭中"); + deviceSwitch.setChecked(false); + deviceBean.getLastInfo().setOpenFlag("0"); + notifyDataSetChanged(); + } else { + ExecSendUtil.subsetControl(mContext, "power", deviceBean.getZiId(), deviceBean); + deviceState.setText("设备开启中"); + deviceSwitch.setChecked(true); + deviceBean.getLastInfo().setOpenFlag("1"); + notifyDataSetChanged(); + } + + } else { + ExecSendUtil.subsetControl(mContext, "power", deviceBean.getZiId(), deviceBean); + deviceState.setText("设备开启中"); + deviceSwitch.setChecked(true); + AllDeviceEntity.DataBean.DeviceBean.LastInfoBean lastInfoBean = new AllDeviceEntity.DataBean.DeviceBean.LastInfoBean(); + lastInfoBean.setOpenFlag("1"); + deviceBean.setLastInfo(lastInfoBean); + notifyDataSetChanged(); + } + } + break; + } + } + }); + dialog.setContent("是否确认使用开关?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + }); + cardView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (deviceBean.getDeviceType().equals("000")) { + Intent intent = new Intent(mContext, DeviceDetailActivity.class); + intent.putExtra("isOwner", 1); + intent.putExtra("ziId", deviceBean.getZiId()); + intent.putExtra("deviceVersion", deviceBean.getAddition().getDeviceVersion()); + intent.putExtra("upgradeStatus", deviceBean.getAddition().getUpgradeStatus()); + intent.putExtra("deviceName", deviceBean.getName()); + intent.putExtra("deviceIcon", deviceBean.getIcon()); + intent.putExtra("devicePosition", AddressNameUtil.getAddressName(deviceBean.getAddressId())); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } else if (deviceBean.getDeviceType().equals(GATE_WAY)) { + Intent intent = new Intent(mContext, GatewayDetailActivity.class); + intent.putExtra("ziId", deviceBean.getZiId()); + intent.putExtra("deviceName", deviceBean.getName()); + intent.putExtra("deviceModel", deviceBean.getDeviceModel()); + intent.putExtra("deviceType", deviceBean.getDeviceType()); + intent.putExtra("deviceId", deviceBean.getDeviceId()); + intent.putExtra("addressId", deviceBean.getAddressId()); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } else if (deviceBean.getDeviceType().equals(SERVICE_PANEL_485)) { + Intent intent = new Intent(mContext, Panel485Activity.class); + intent.putExtra("ziId", deviceBean.getZiId()); + intent.putExtra("deviceName", deviceBean.getName()); + intent.putExtra("deviceModel", deviceBean.getDeviceModel()); + intent.putExtra("deviceType", deviceBean.getDeviceType()); + intent.putExtra("deviceId", deviceBean.getDeviceId()); + intent.putExtra("addressId", deviceBean.getAddressId()); + intent.putExtra("id", deviceBean.getId()); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } else if (deviceBean.getDeviceType().equals(CAMERA_TAG)) { + loadChannelList(deviceBean.getDeviceId(), deviceBean.getAddressId(), CAMERA_TAG); + } else if (deviceBean.getDeviceType().equals(CAT_EYE)) { + loadChannelList(deviceBean.getDeviceId(), deviceBean.getAddressId(), CAT_EYE); + } else if (deviceBean.getDeviceType().equals(INTELLIGENT_DOOR_LOCK) && deviceBean.getDeviceModel().equals("1")) { + loadChannelList(deviceBean.getDeviceId(), deviceBean.getAddressId(), INTELLIGENT_DOOR_LOCK); + /*ArrayList channelInfoList; + if (AppIdUtil.isChuangWei()) { + channelInfoList = MainFragment6.getChannelInfoList(); + } else { + channelInfoList = MainFragment5.getChannelInfoList(); + } + ChannelInfo mInfo = null; + for (int i = 0; i < channelInfoList.size(); i++) { + if (channelInfoList.get(i).getDeviceModel().contains("V6") || channelInfoList.get(i).getDeviceModel().contains("K5")) { + mInfo = channelInfoList.get(i); + } + } + if (null != mInfo) { + if (mInfo.getUuid().isEmpty()) { + return; + } + } else { + return; + } + Intent intent = new Intent(mContext, CameraDetailActivity.class); + intent.putExtra("UUID", mInfo.getUuid()); + intent.putExtra("alarmPlanStatus", true); + intent.putExtra("cloudMealStatus", true); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent);*/ + } else { + setCardClickState(deviceBean); + } + } + }); + + cardView.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null && !deviceBean.getDeviceType().equals("000") && !deviceBean.getDeviceType().equals(GATE_WAY) && !deviceBean.getDeviceType().equals(SERVICE_PANEL_485)) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + + + rlSwitch.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (deviceSwitch.getVisibility() == View.VISIBLE) { + ConfirmDialog dialog = new ConfirmDialog(mContext, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + break; + case 1: + if (deviceBean.getDeviceType().equals(DOOR_LOCK_TAG) || deviceBean.getDeviceType().equals(INFRARED_TAG) || + deviceBean.getDeviceType().equals(INFRARED_CURTAIN_DETECTOR) || + deviceBean.getDeviceType().equals(SMOKE_TAG) || + deviceBean.getDeviceType().equals(GAS_TAG) || + deviceBean.getDeviceType().equals(SECURITY_MANIPULATOR) || + deviceBean.getDeviceType().equals(SECURITY_TRIGGER) || + deviceBean.getDeviceType().equals(WIRELESS_EMERGENCY_BUTTON) || + deviceBean.getDeviceType().equals(WATER_TAG)) { + if (null != deviceBean.getVoiceFlag()) { + if (deviceBean.getVoiceFlag().equals("1")) { + sendUpdateVoiceControl(deviceBean.getId(), deviceBean.getZiId(), "0", deviceBean.getDeviceModel(), deviceBean.getDeviceType()); + deviceState.setText("撤防状态"); + deviceSwitch.setChecked(false); + deviceBean.setVoiceFlag("0"); + notifyDataSetChanged(); + } else { + sendUpdateVoiceControl(deviceBean.getId(), deviceBean.getZiId(), "1", deviceBean.getDeviceModel(), deviceBean.getDeviceType()); + deviceState.setText("布防状态"); + deviceSwitch.setChecked(true); + deviceBean.setVoiceFlag("1"); + notifyDataSetChanged(); + } + } + } else if (deviceBean.getOnline().equals("0")) { + Toast.makeText(mContext, "设备已离线", Toast.LENGTH_SHORT).show(); + } else { + if (null != deviceBean.getLastInfo()) { + if (deviceBean.getLastInfo().getOpenFlag().equals("1")) { + ExecSendUtil.subsetControl(mContext, "poweroff", deviceBean.getZiId(), deviceBean); + deviceState.setText("设备关闭中"); + deviceSwitch.setChecked(false); + deviceBean.getLastInfo().setOpenFlag("0"); + notifyDataSetChanged(); + } else { + ExecSendUtil.subsetControl(mContext, "power", deviceBean.getZiId(), deviceBean); + deviceState.setText("设备开启中"); + deviceSwitch.setChecked(true); + deviceBean.getLastInfo().setOpenFlag("1"); + notifyDataSetChanged(); + } + + } else { + ExecSendUtil.subsetControl(mContext, "power", deviceBean.getZiId(), deviceBean); + deviceState.setText("设备开启中"); + deviceSwitch.setChecked(true); + AllDeviceEntity.DataBean.DeviceBean.LastInfoBean lastInfoBean = new AllDeviceEntity.DataBean.DeviceBean.LastInfoBean(); + lastInfoBean.setOpenFlag("1"); + deviceBean.setLastInfo(lastInfoBean); + notifyDataSetChanged(); + } + } + break; + } + } + }); + dialog.setContent("是否确认使用开关?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + } + }); + } + + private void setDeviceIcon(String deviceType, AllDeviceEntity.DataBean.DeviceBean deviceBean) { + //设备离线全部变灰色 + if (deviceBean.getOnline().equals("0")) { + setOffLineState(deviceType); + setAllStateAndIcon(deviceType, deviceBean); + } else { + if (null != deviceBean.getAddition() && null != deviceBean.getAddition().getLoadStatus()) { + setLoadState(); + } else { + setNorMaltate(); + } + if (AppIdUtil.isWork()) { + deviceState.setTextColor(0xff24C1DA); + } else { + deviceState.setTextColor(0xff398DEE); + } + setAllStateAndIcon(deviceType, deviceBean); + } + } + + private void setAllStateAndIcon(String deviceType, AllDeviceEntity.DataBean.DeviceBean deviceBean) { + switch (deviceType) { + case "000": + com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(deviceBean.getIcon(), deviceIcon, UniKongApp.getHiApp().getImageLoaderOption()); + setXiaoAiState(deviceBean); + deviceSwitch.setVisibility(View.GONE); + break; + case Constans.AIR_TAG: + deviceIcon.setImageResource(R.drawable.icon_kt); + setRedAnd433State(deviceBean); + break; + case Constans.INDEPENDENT_CODE_AC: + deviceIcon.setImageResource(R.drawable.icon_ac); + setRedAnd433State(deviceBean); + break; + case Constans.FAN_TAG: + deviceIcon.setImageResource(R.drawable.icon_fs); + setRedAnd433State(deviceBean); + break; + case Constans.TV_TAG: + deviceIcon.setImageResource(R.drawable.icon_tv); + setRedAnd433State(deviceBean); + break; + case Constans.SKYWORTH_TV: + switch (deviceBean.getSubType()) { + case "1": + deviceIcon.setImageResource(R.drawable.icon_tv); + break; + case "8": + deviceIcon.setImageResource(R.drawable.icon_kt); + break; + } + setRedAnd433State(deviceBean); + break; + case Constans.TVONE_TAG: + deviceIcon.setImageResource(R.drawable.icon_set_top_box); + setRedAnd433State(deviceBean); + break; + case Constans.SWEEP_TAG: + deviceIcon.setImageResource(R.drawable.icon_clean); + setRedAnd433State(deviceBean); + break; + case AIR_CLEANER: + setRedAnd433State(deviceBean); + // deviceName.setText("净化器"); + deviceIcon.setImageResource(R.drawable.icon_purifier); + break; + case MOVIE_CAMERA: + setRedAnd433State(deviceBean); + // deviceName.setText("投影仪"); + deviceIcon.setImageResource(R.drawable.icon_device_projector); + break; + case RGB_LIGHT: + deviceIcon.setImageResource(R.drawable.icon_rgb_lightbelt); + setRedAnd433State(deviceBean); + break; + case Constans.LIGHT_TAG: + setRedAnd433State(deviceBean); + if (AppIdUtil.isWork()) { + deviceIcon.setImageResource(R.drawable.icon_light); + } else { + switch (deviceBean.getDeviceModel()) { + /*case "5": + // deviceName.setText("开关面板"); + String keyCount = deviceBean.getKeyCount(); + switch (keyCount) { + case "1": + deviceIcon.setImageResource(R.drawable.icon_485_panel_1); + break; + case "2": + deviceIcon.setImageResource(R.drawable.icon_485_panel_2); + break; + case "3": + deviceIcon.setImageResource(R.drawable.icon_485_panel_3); + break; + case "4": + deviceIcon.setImageResource(R.drawable.icon_485_panel_4); + break; + } + break; + case "6": + deviceIcon.setImageResource(R.drawable.icon_485_dimming_reverse); + break;*/ + case "7": + // deviceIcon.setImageResource(R.drawable.icon_485_dimming); + deviceIcon.setImageResource(R.drawable.icon_b4); + break; + default: + switch (deviceBean.getSubType()) { + case "0"://灯光 + deviceIcon.setImageResource(R.drawable.icon_light); + break; + case "1"://筒灯 + deviceIcon.setImageResource(R.drawable.icon_tubelamp); + break; + case "2"://灯带 + deviceIcon.setImageResource(R.drawable.icon_lightbelt); + break; + case "3"://射灯 + deviceIcon.setImageResource(R.drawable.icon_lamp); + break; + case "4"://壁灯 + deviceIcon.setImageResource(R.drawable.icon_walllamp); + break; + case "5"://吊灯 + deviceIcon.setImageResource(R.drawable.icon_chandelier); + break; + case "6"://廊灯 + deviceIcon.setImageResource(R.drawable.icon_porchlamp); + break; + case "7"://排气扇 + deviceIcon.setImageResource(R.drawable.icon_exhaust); + break; + default: + deviceIcon.setImageResource(R.drawable.icon_light); + break; + } + break; + } + } + break; + case Constans.CURTAINS_TAG: + setRedAnd433State(deviceBean); + if (deviceBean.getDeviceModel().equals("6")) { + deviceIcon.setImageResource(R.drawable.icon_485_double_track); + } + /*else if (deviceBean.getDeviceModel().equals("5")) { + deviceIcon.setImageResource(R.drawable.icon_485_monorail); + }*/ + else { + if (AppIdUtil.isBaseZhiKong()) { + if (deviceBean.getChildren().size() != 0) { + deviceIcon.setImageResource(R.drawable.icon_curtains); + } else { + if (deviceBean.getSubType().equals("1")) { + deviceIcon.setImageResource(R.drawable.icon_gauze); + } else { + deviceIcon.setImageResource(R.drawable.icon_curtains); + } + } + } else { + if (deviceBean.getChildren().size() != 0) { + deviceIcon.setImageResource(R.drawable.icon_curtaingauzecurtain); + } else { + if (deviceBean.getSubType().equals("1")) { + deviceIcon.setImageResource(R.drawable.icon_gauze); + } else { + deviceIcon.setImageResource(R.drawable.icon_curtains); + } + } + } + } +// deviceSwitch.setVisibility(View.GONE); + break; + case Constans.SITUATIONAL_PANEL: + setModelState(deviceBean); + if (deviceBean.getDeviceModel().equals("3")) { + String keyCount = deviceBean.getKeyCount(); + switch (keyCount) { + case "1": + deviceIcon.setImageResource(R.drawable.icon_485_panel_1); + break; + case "2": + deviceIcon.setImageResource(R.drawable.icon_485_panel_2); + break; + case "3": + deviceIcon.setImageResource(R.drawable.icon_485_panel_3); + break; + case "4": + deviceIcon.setImageResource(R.drawable.icon_485_scene_four); + break; + case "6": + deviceIcon.setImageResource(R.drawable.icon_485_scene_six); + break; + } + break; + } else { + if (AppIdUtil.isBaseZhiKong()) { + deviceIcon.setImageResource(R.drawable.icon_device_qingjing_t5); + } else { + switch (deviceBean.getKeyCount()) { + case "1": + deviceIcon.setImageResource(R.drawable.icon_scene_one); + break; + case "2": + deviceIcon.setImageResource(R.drawable.icon_scene_two); + break; + case "3": + deviceIcon.setImageResource(R.drawable.icon_scene_three); + break; + case "4": + deviceIcon.setImageResource(R.drawable.icon_scene_four); + break; + case "6": + deviceIcon.setImageResource(R.drawable.icon_scene_six); + break; + default: + deviceIcon.setImageResource(R.drawable.icon_scene_one); + break; + } + } + } + break; + case Constans.SWITCH_TAG: + setRedAnd433State(deviceBean); + if (AppIdUtil.isWork()) { + deviceIcon.setImageResource(R.drawable.icon_chazuo); + } else { + switch (deviceBean.getSubType()) { + case "0"://插座 + switch (deviceBean.getDeviceModel()) { + case "0": + deviceIcon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + deviceIcon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + deviceIcon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + deviceIcon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + deviceIcon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + case "1"://台灯 + deviceIcon.setImageResource(R.drawable.icon_desklamp); + break; + case "2"://热水器(厨电) + deviceIcon.setImageResource(R.drawable.icon_kitchenpower); + break; + case "3"://墙壁插座 + if (AppIdUtil.isZhiKong()) { + deviceIcon.setImageResource(R.drawable.icon_device_wallsocket_t2); + } else { + deviceIcon.setImageResource(R.drawable.icon_wallsocket); + } + break; + case "4"://热水壶 + deviceIcon.setImageResource(R.drawable.icon_kettle); + break; + case "5"://取暖器 + deviceIcon.setImageResource(R.drawable.icon_heater); + break; + case "6"://电蚊香 + deviceIcon.setImageResource(R.drawable.icon_dwx); + break; + case "7"://电蚊香 + deviceIcon.setImageResource(R.drawable.icon_sterilizing_lamp); + break; + default: + switch (deviceBean.getDeviceModel()) { + case "0": + deviceIcon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + deviceIcon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + deviceIcon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + deviceIcon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + deviceIcon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + } + } + break; + case DOOR_LOCK_TAG: + if (deviceBean.getDeviceModel().equals("1")) { + deviceIcon.setImageResource(R.drawable.pic_magnetism_dh); + deviceSwitch.setVisibility(View.GONE); + } else if (deviceBean.getDeviceModel().equals("2")) { + deviceIcon.setImageResource(R.drawable.icon_magnetism_jd); + deviceSwitch.setVisibility(View.GONE); + } else { + deviceIcon.setImageResource(R.drawable.icon_gatemagnetic); + } + setDefentState(deviceBean); + break; + case INFRARED_TAG: + if (deviceBean.getDeviceModel().equals("1")) { + deviceIcon.setImageResource(R.drawable.pic_infrared_dh); + deviceSwitch.setVisibility(View.GONE); + } else if (deviceBean.getDeviceModel().equals("2")) { + deviceIcon.setImageResource(R.drawable.icon_infrared_jd); + deviceSwitch.setVisibility(View.VISIBLE); + } else { + deviceIcon.setImageResource(R.drawable.icon_infrared); + deviceSwitch.setVisibility(View.VISIBLE); + } + setDefentState(deviceBean); + break; + case Constans.SMOKE_TAG: + setDefentState(deviceBean); + if (deviceBean.getDeviceModel().equals("1")) { + deviceIcon.setImageResource(R.drawable.pic_smoke_dh); + } else if (deviceBean.getDeviceModel().equals("2")) { + deviceIcon.setImageResource(R.drawable.icon_smoke_jd); + deviceSwitch.setVisibility(View.VISIBLE); + } else { + deviceIcon.setImageResource(R.drawable.icon_smoke); + deviceSwitch.setVisibility(View.VISIBLE); + } + break; + case Constans.GAS_TAG: + setDefentState(deviceBean); + if (deviceBean.getDeviceModel().equals("1")) { + deviceIcon.setImageResource(R.drawable.icon_gas_jd); + deviceSwitch.setVisibility(View.VISIBLE); + } else if (deviceBean.getDeviceModel().equals("2")) { + deviceIcon.setImageResource(R.drawable.icon_wall_hanging_gas_jd); + deviceSwitch.setVisibility(View.VISIBLE); + } else { + deviceIcon.setImageResource(R.drawable.icon_gas); + deviceSwitch.setVisibility(View.VISIBLE); + } + break; + case Constans.WATER_TAG: + setDefentState(deviceBean); + if (deviceBean.getDeviceModel().equals("1")) { + deviceIcon.setImageResource(R.drawable.pic_water_immersion_dh); + } else if (deviceBean.getDeviceModel().equals("2")) { + deviceIcon.setImageResource(R.drawable.icon_water_jd); + deviceSwitch.setVisibility(View.VISIBLE); + } else { + deviceIcon.setImageResource(R.drawable.icon_waterimmersion); + deviceSwitch.setVisibility(View.VISIBLE); + } + break; + case SAFETY_DISPLACEMENT: + setModelState(deviceBean); + deviceIcon.setImageResource(R.drawable.icon_device_shift_dh); + deviceSwitch.setVisibility(View.GONE); + break; + case SAFETY_ACOUSTO_OPTIC: + setModelState(deviceBean); + deviceIcon.setImageResource(R.drawable.icon_device_acousto_optic_dh); + deviceSwitch.setVisibility(View.GONE); + break; + case SAFETY_WIRELESS_REMOTE: + setModelState(deviceBean); + deviceIcon.setImageResource(R.drawable.icon_device_remote_control_dh); + deviceSwitch.setVisibility(View.GONE); + break; + case Constans.ZIGBEE_LIGHT: + deviceIcon.setImageResource(R.drawable.icon_light); + break; + case Constans.ZIGBEE_PLUG: + deviceIcon.setImageResource(R.drawable.icon_chazuo); + break; + case Constans.ZIGBEE_INFRARED: + deviceIcon.setImageResource(R.drawable.icon_infrared); + break; + case Constans.ZIGBEE_TEMPERATURE: + deviceIcon.setImageResource(R.drawable.icon_humiture); + break; + case Constans.ZIGBEE_DOOR: + deviceIcon.setImageResource(R.drawable.icon_gatemagnetic); + break; + case Constans.ZIGBEE_CO: + deviceIcon.setImageResource(R.drawable.icon_carbonmonoxide); + break; + case Constans.ZIGBEE_WATER: + deviceIcon.setImageResource(R.drawable.icon_waterimmersion); + break; + case Constans.ZIGBEE_SMOKE: + deviceIcon.setImageResource(R.drawable.icon_smoke); + break; + case Constans.MUSIC_TAG: + setRedAnd433State(deviceBean); + deviceIcon.setImageResource(R.drawable.icon_music); + break; + case Constans.ADD_TYPE: + deviceIcon.setImageResource(R.drawable.icon_smoke); + break; + case CLOTHES_HANGER: + setRedAnd433State(deviceBean); + deviceIcon.setImageResource(R.drawable.icon_airer); + deviceSwitch.setVisibility(View.GONE); + break; + case SAFETY_VALVE: + setRedAnd433State(deviceBean); + deviceIcon.setImageResource(R.drawable.icon_valve_controller); + deviceSwitch.setVisibility(View.VISIBLE); + break; + case SECURITY_MANIPULATOR: + setDefentState(deviceBean); + deviceIcon.setImageResource(R.drawable.icon_security_manipulator); + deviceSwitch.setVisibility(View.VISIBLE); + break; + case WINDOW_OPENER: + setRedAnd433State(deviceBean); + deviceIcon.setImageResource(R.drawable.icon_window_opener); + deviceSwitch.setVisibility(View.GONE); + break; + case MULTIFUNCTIONAL_CONTROLLER: + setRedAnd433State(deviceBean); + switch (deviceBean.getSubType()) { + case "0": + deviceIcon.setImageResource(R.drawable.icon_curtains); + break; + case "1": + deviceIcon.setImageResource(R.drawable.icon_gauze); + break; + case "2": + deviceIcon.setImageResource(R.drawable.icon_window_opener); + break; + case "3": + deviceIcon.setImageResource(R.drawable.icon_garage); + break; + case "4": + deviceIcon.setImageResource(R.drawable.icon_sunshade); + break; + case "5": + deviceIcon.setImageResource(R.drawable.icon_autogate); + break; + case "6": + deviceIcon.setImageResource(R.drawable.icon_elevator); + break; + case "7": + deviceIcon.setImageResource(R.drawable.icon_curtain_elevator); + break; + case "8": + deviceIcon.setImageResource(R.drawable.icon_spray); + break; + case "9": + deviceIcon.setImageResource(R.drawable.icon_window_opener); + break; + default: + deviceIcon.setImageResource(R.drawable.icon_multifunctional); + break; + } + deviceSwitch.setVisibility(View.VISIBLE); + break; + case GATE_WAY: + setModelState(deviceBean); + if (deviceBean.getThirdModel().contains("G1")) { + deviceIcon.setImageResource(R.drawable.icon_gateway_dh); + } else { + deviceIcon.setImageResource(R.drawable.icon_g2); + } + deviceSwitch.setVisibility(View.GONE); + break; + case WIRELESS_EMERGENCY_BUTTON: + setDefentState(deviceBean); + if (deviceBean.getDeviceModel().equals("1")) { + deviceIcon.setImageResource(R.drawable.icon_device_sos); + deviceSwitch.setVisibility(View.VISIBLE); + } else { + deviceIcon.setImageResource(R.drawable.pic_panic_button_dh); + deviceSwitch.setVisibility(View.GONE); + } + break; + case INFRARED_CURTAIN_DETECTOR: + setModelState(deviceBean); + deviceIcon.setImageResource(R.drawable.pic_curtain_dh); + deviceSwitch.setVisibility(View.GONE); + break; + case CAT_EYE: + deviceIcon.setImageResource(R.drawable.icon_cat_eye); + deviceState.setText("设备在线"); + break; + case INTELLIGENT_DOOR_LOCK: + if (deviceBean.getDeviceModel().equals("1")) { + deviceIcon.setImageResource(R.drawable.icon_device_lock_v6); + deviceState.setText("设备在线"); + } else if (deviceBean.getDeviceModel().equals("2")) { + deviceIcon.setImageResource(R.drawable.icon_lock_k2m); + deviceState.setText("设备在线"); + } else { + deviceIcon.setImageResource(R.drawable.pic_lock_dh); + } + deviceSwitch.setVisibility(View.GONE); + if (deviceBean.getVoiceFlag().equals("1")) { + if (null != deviceBean.getAddition() && deviceBean.getAddition().isModeTriggerBound()) { + deviceState.setText("场景联动开"); + deviceSwitch.setChecked(true); + } + } else { + if (null != deviceBean.getAddition() && deviceBean.getAddition().isModeTriggerBound()) { + deviceState.setText("场景联动关"); + deviceSwitch.setChecked(false); + } + } + if (deviceBean.getDeviceModel().equals("1")) { + if (deviceState.getText().toString().isEmpty()) { + deviceState.setText("设备在线"); + } + } + break; + case TEMP_CONTROL: + case FRESH_AIR: + case FLOOR_HEATING: + setRedAnd433State(deviceBean); + deviceIcon.setImageResource(R.drawable.icon_device_temperature); + deviceSwitch.setVisibility(View.VISIBLE); + break; + case SITUATIONAL_TRIGGER: + setModelState(deviceBean); + deviceIcon.setImageResource(R.drawable.icon_multifunctional); + deviceSwitch.setVisibility(View.GONE); + break; + case SERVICE_PANEL_485: + setModelState(deviceBean); + if (deviceBean.getDeviceModel().equals("1")) { + deviceIcon.setImageResource(R.drawable.icon_485_12v); + } else { + deviceIcon.setImageResource(R.drawable.icon_485); + } + deviceSwitch.setVisibility(View.GONE); + break; + case SECURITY_TRIGGER: + setDefentState(deviceBean); + switch (deviceBean.getSubType()) { + case "0": + deviceIcon.setImageResource(R.drawable.icon_trigger_gas); + break; + case "1": + deviceIcon.setImageResource(R.drawable.icon_trigger_smoke); + break; + case "2": + deviceIcon.setImageResource(R.drawable.icon_trigger_infrared); + break; + case "3": + deviceIcon.setImageResource(R.drawable.icon_trigger_magnetism); + break; + case "4": + deviceIcon.setImageResource(R.drawable.icon_trigger_sos); + break; + } + deviceSwitch.setVisibility(View.VISIBLE); + break; + case KUQI_PANEL: + setModelState(deviceBean); + deviceIcon.setImageResource(R.drawable.icon_touch_panel); + deviceSwitch.setVisibility(View.GONE); + break; + case CAMERA_TAG: + setXiaoAiState(deviceBean); + deviceIcon.setImageResource(R.drawable.icon_device_camera_tp2); + deviceSwitch.setVisibility(View.GONE); + break; + default: + break; + } + } + + private void setCardClickState(AllDeviceEntity.DataBean.DeviceBean deviceBean) { + if (!TextUtils.isEmpty(deviceBean.getOnline())) { + if (null != deviceBean.getAddition()) { + if (null != deviceBean.getAddition().getUpgradeStatus()) { + if (deviceBean.getAddition().getUpgradeStatus().equals("3")) { + Toast.makeText(UniKongApp.getHiApp(), R.string.solid_ing, Toast.LENGTH_SHORT).show(); + return; + } else if (deviceBean.getAddition().getUpgradeStatus().equals("5")) { + Toast.makeText(UniKongApp.getHiApp(), "固件下载失败,请升级成功再使用", Toast.LENGTH_SHORT).show(); + return; + } else { + if (null != deviceBean.getAddition().getLoadStatus()) { + toControlPageWhenLoad(deviceBean); + } else { + startToControlPage(deviceBean); + } + } + } else { + if (null != deviceBean.getAddition().getLoadStatus()) { + toControlPageWhenLoad(deviceBean); + } else { + startToControlPage(deviceBean); + } + } + } else { + startToControlPage(deviceBean); + } + } else { + startToControlPage(deviceBean); + } + } + + private void setXiaoAiState(AllDeviceEntity.DataBean.DeviceBean deviceBean) { + if (!TextUtils.isEmpty(deviceBean.getOnline())) { + if (null != deviceBean.getAddition()) { + if (null != deviceBean.getAddition().getHasNewVersion()) { + if (deviceBean.getAddition().getHasNewVersion().equals("1")) { + redCircle.setVisibility(View.VISIBLE); + } else { + redCircle.setVisibility(View.GONE); + } + } else { + redCircle.setVisibility(View.GONE); + } + if (null != deviceBean.getAddition().getUpgradeStatus()) { + if (deviceBean.getAddition().getUpgradeStatus().equals("3")) { + deviceState.setText("固件升级中"); + deviceState.setTextColor(0xffF79D28); + } else if (deviceBean.getAddition().getUpgradeStatus().equals("5")) { + deviceState.setText("固件升级失败"); + deviceState.setTextColor(0xffF79D28); + } else { + if (null != deviceBean.getAddition().getLoadStatus()) { + if (deviceBean.getAddition().getLoadStatus().equals("1")) { + deviceState.setText("数据下载中..."); + deviceState.setTextColor(0xffF79D28); + } else if (deviceBean.getAddition().getLoadStatus().equals("-1")) { + deviceState.setText("数据下载失败"); + deviceState.setTextColor(0xffF79D28); + } else { + if (deviceBean.getOnline().equals("1")) { + deviceState.setText("设备在线"); + } else { + deviceState.setText("设备离线"); + } + } + } else { + if (deviceBean.getOnline().equals("1")) { + deviceState.setText("设备在线"); + } else { + deviceState.setText("设备离线"); + } + } + } + } else { + if (null != deviceBean.getAddition().getLoadStatus()) { + if (deviceBean.getAddition().getLoadStatus().equals("1")) { + deviceState.setText("数据下载中..."); + deviceState.setTextColor(0xffF79D28); + } else if (deviceBean.getAddition().getLoadStatus().equals("-1")) { + deviceState.setText("数据下载失败"); + deviceState.setTextColor(0xffF79D28); + } else { + if (deviceBean.getOnline().equals("1")) { + deviceState.setText("设备在线"); + } else { + deviceState.setText("设备离线"); + } + } + } else { + if (deviceBean.getOnline().equals("1")) { + deviceState.setText("设备在线"); + } else { + deviceState.setText("设备离线"); + } + } + } + } else { + if (deviceBean.getOnline().equals("1")) { + deviceState.setText("设备在线"); + } else { + deviceState.setText("设备离线"); + } + } + } else { + deviceState.setText(""); + } + } + + private void setOffLineState(String deviceType) { + ColorMatrix matrix = new ColorMatrix(); + matrix.setSaturation(0); + ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix); + deviceIcon.setColorFilter(filter); +// deviceSwitch.setColorFilter(filter); + deviceName.setTextColor(0xff999999); + deviceState.setTextColor(0xff999999); + deviceState.setText("设备离线"); + deviceState1.setTextColor(0xff999999); + deviceState1.setText(""); + } + + private void setLoadState() { + ColorMatrix matrix = new ColorMatrix(); + matrix.setSaturation(0); + ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix); + deviceIcon.setColorFilter(filter); +// deviceSwitch.setColorFilter(filter); + deviceName.setTextColor(0xff999999); + deviceState.setTextColor(0xff999999); + deviceState1.setTextColor(0xff999999); + deviceState1.setText(""); + } + + private void setNorMaltate() { + ColorMatrix matrix = new ColorMatrix(); + matrix.setSaturation(1); + ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix); + deviceIcon.setColorFilter(filter); +// deviceSwitch.setColorFilter(filter); + deviceName.setTextColor(0xff333333); + deviceState.setTextColor(0xff333333); + deviceState1.setTextColor(0xff333333); + deviceState1.setText(""); + } + + private void setDefentState(AllDeviceEntity.DataBean.DeviceBean deviceBean) { + redCircle.setVisibility(View.GONE); + deviceSwitch.setVisibility(View.VISIBLE); + if (deviceBean.getOnline().equals("0")) { + deviceState.setText("设备离线"); + } else if (deviceBean.getVoiceFlag().equals("1")) { + if (null != deviceBean.getAddition() && deviceBean.getAddition().isModeTriggerBound()) { + deviceState.setText("场景联动开"); + deviceSwitch.setChecked(true); + } else { + deviceState.setText("布防状态"); + deviceSwitch.setChecked(true); + } + } else { + if (null != deviceBean.getAddition() && deviceBean.getAddition().isModeTriggerBound()) { + deviceState.setText("场景联动关"); + deviceSwitch.setChecked(false); + } else { + deviceState.setText("撤防状态"); + deviceSwitch.setChecked(false); + } + } + } + + private void setOnlineState(AllDeviceEntity.DataBean.DeviceBean deviceBean) { + deviceSwitch.setVisibility(View.GONE); + if (!TextUtils.isEmpty(deviceBean.getOnline())) { + if (deviceBean.getOnline().equals("1")) { + deviceState.setText("设备在线"); + } else { + deviceState.setText("设备离线"); + } + } else { + deviceState.setText(""); + } + } + + private void setModelState(AllDeviceEntity.DataBean.DeviceBean deviceBean) { + /*if (deviceBean.getControlKeys().size() == 0) { + deviceSwitch.setVisibility(View.GONE); + } else { + deviceSwitch.setVisibility(View.VISIBLE); + }*/ + redCircle.setVisibility(View.GONE); + deviceSwitch.setVisibility(View.GONE); +// deviceState.setText(""); + //情景面板根据小艾显示是否在校? + setOnlineState(deviceBean); + /*if (null != deviceBean.getLastInfo()) { + if (deviceBean.getLastInfo().getOpenFlag().equals("1")) { + deviceState.setText("设备开启中"); + } else { + deviceState.setText("设备关闭中"); + } + } else { + deviceState.setText(""); + }*/ + } + + private void setRedAnd433State(AllDeviceEntity.DataBean.DeviceBean deviceBean) { + redCircle.setVisibility(View.GONE); + deviceSwitch.setVisibility(View.VISIBLE); + if (deviceBean.getOnline().equals("0")) { + deviceState.setText("设备离线"); + } else if (null != deviceBean.getLastInfo()) { + if (deviceBean.getLastInfo().getOpenFlag().equals("1")) { + deviceState.setText("设备开启中"); + deviceSwitch.setChecked(true); + } else { + deviceState.setText("设备关闭中"); + deviceSwitch.setChecked(false); + } + } else { + deviceState.setText(""); + } + + if (null != deviceBean.getAddition() && null != deviceBean.getAddition().getLoadStatus()) { + if (deviceBean.getAddition().getLoadErrorType().equals(deviceBean.getDeviceType())) { + if (deviceBean.getAddition().getLoadStatus().equals("1")) { + deviceState.setText("数据下载中..."); + deviceState.setTextColor(0xffF79D28); + } else if (deviceBean.getAddition().getLoadStatus().equals("-1")) { + deviceState.setText("数据下载失败"); + deviceState.setTextColor(0xffF79D28); + } + } else if (!deviceBean.getAddition().getLoadErrorType().isEmpty()) { + setOffLineState(deviceBean.getDeviceType()); + } + } + } + + } + + private synchronized void loadChannelList(final String deviceId, final String addressId, final String deviceType) { + int outPosition = -1; + datas.clear(); + datas.addAll(AddressNameUtil.getDatas()); + if (this.datas.size() == 0) { + return; + } + for (int i = 0; i < datas.size(); i++) { + String name = datas.get(i).getDeviceId(); + Log.i("findDevices", "MainFragment4 handleMessage()" + name); + if (name.contains(deviceId)) { + outPosition = i; + } + } + /*if (!datas.get(outPosition).getStatus().equals("online")) { + return; + }*/ + Bundle bundle = new Bundle(); + DeviceDetailListData.ResponseData.DeviceListBean deviceListBean = datas.get(outPosition); +// deviceListBean.checkedChannel = innerPosition; + bundle.putSerializable(MethodConst.ParamConst.deviceDetail, deviceListBean); + Intent intent = new Intent(mContext, DeviceOnlineMediaPlayActivity.class); + intent.putExtra("addressId", addressId); + intent.putExtra("id", deviceListBean.getId()); + intent.putExtra("deviceId", deviceId); + intent.putExtra("deviceType", deviceType); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + /*// 初始化数据 + Business.getInstance().getChannelList(new Handler() { + @SuppressWarnings("unchecked") + @Override + public void handleMessage(Message msg) { + Business.RetObject retObject = (Business.RetObject) msg.obj; + if (msg.what == 0) { + List resp = (List) retObject.resp; + Log.i("findDevices", "MainFragment4 handleMessage()" + resp.size()); + for (int i = 0; i < resp.size(); i++) { + String name = resp.get(i).getDeviceCode(); + Log.i("findDevices", "MainFragment4 handleMessage()" + name); + if (name.contains(deviceId)) { + //resp.get(i).setDeviceName(AddressNameUtil.getAddressName(lcListEntity.getData().get(j).getAddressId()) + "的" + lcListEntity.getData().get(j).getDeviceName()); + if (startPlay(resp, i)) return; + } + } + } + } + });*/ + } + + private boolean startPlay(List resp, int i) { + Intent intent = new Intent(mContext, MediaPlayActivity.class); + if (TextUtils.isEmpty(resp.get(i).getUuid())) { + return true; + } + intent.putExtra("UUID", resp.get(i).getUuid()); + intent.putExtra("TYPE", MediaPlayActivity.IS_VIDEO_ONLINE); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + return false; + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/DeviceTagAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/DeviceTagAdapter.java new file mode 100644 index 0000000..3e76188 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/DeviceTagAdapter.java @@ -0,0 +1,92 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.database.entity.Z1DetailEntity; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + + +public class DeviceTagAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private boolean isEdit; + private OnRecyclerListener mOnItemClickListener; + private List photos = null; + private int nowPosition = 100; + private String addressId = ""; + + + public DeviceTagAdapter(Context context, List mDataBeans, boolean isEdit) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.isEdit = isEdit; + } + + public void setIsEdit(List mDataBeans, boolean isTdit) { + this.isEdit = isTdit; + // this.mDataBeans = mDataBeans; + this.notifyDataSetChanged(); + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_device_tag, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_house_type_pic) + ImageView mIvHousePic; + @BindView(R.id.tv_house_type) + TextView mTvHouseYype; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + if (position < mDataBeans.size()) { + mIvHousePic.setVisibility(View.VISIBLE); + ImageLoader.getInstance().displayImage(mDataBeans.get(position).getIcon(), mIvHousePic, UniKongApp.getHiApp().getImageLoaderOption()); + mTvHouseYype.setText(mDataBeans.get(position).getLabel()); + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/DeviceTypeChooseAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/DeviceTypeChooseAdapter.java new file mode 100644 index 0000000..095a33c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/DeviceTypeChooseAdapter.java @@ -0,0 +1,110 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.listener.OnRecyclerListener; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + + +public class DeviceTypeChooseAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private boolean isEdit; + private OnRecyclerListener mOnItemClickListener; + private List photos = null; + private int nowPosition = 100; + private String deviceName = ""; + + + public DeviceTypeChooseAdapter(Context context, List mDataBeans, boolean isEdit) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.isEdit = isEdit; + } + + public void setIsEdit(List mDataBeans, boolean isTdit) { + this.isEdit = isTdit; + // this.mDataBeans = mDataBeans; + this.notifyDataSetChanged(); + } + + public void setAddressId(String deviceName) { + this.deviceName = deviceName; + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_choose_device_type, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.tv_house_type) + TextView mTvHouseYype; + @BindView(R.id.ll_bg) + LinearLayout mLlBg; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + if (position < mDataBeans.size()) { + mTvHouseYype.setText(mDataBeans.get(position)); + if (!TextUtils.isEmpty(deviceName) && mDataBeans.get(position).equals(deviceName)) { + mLlBg.setBackgroundResource(R.drawable.corners_bg_yellow); + mTvHouseYype.setTextColor(0xffffffff); + nowPosition = position; + deviceName = ""; + } + } + + if (nowPosition == position) { + mLlBg.setBackgroundResource(R.drawable.corners_bg_yellow); + mTvHouseYype.setTextColor(0xffffffff); + } else { + mLlBg.setBackgroundResource(R.drawable.corners_bg_gray); + mTvHouseYype.setTextColor(0xffcccccc); + } + + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + nowPosition = position; + notifyDataSetChanged(); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/ExamplePagerAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/ExamplePagerAdapter.java new file mode 100644 index 0000000..1abac8b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/ExamplePagerAdapter.java @@ -0,0 +1,64 @@ +package com.yonsz.z1.version5.adapter; + +import android.graphics.Color; +import android.support.v4.view.PagerAdapter; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import java.util.List; + +/** + * Created by hackware on 2016/9/10. + */ + +public class ExamplePagerAdapter extends PagerAdapter { + private List mDataList; + + public ExamplePagerAdapter(List dataList) { + mDataList = dataList; + } + + @Override + public int getCount() { + return mDataList == null ? 0 : mDataList.size(); + } + + @Override + public boolean isViewFromObject(View view, Object object) { + return view == object; + } + + @Override + public Object instantiateItem(ViewGroup container, int position) { + TextView textView = new TextView(container.getContext()); + textView.setText(mDataList.get(position)); + textView.setGravity(Gravity.CENTER); + textView.setTextColor(Color.BLACK); + textView.setTextSize(24); + container.addView(textView); + return textView; + } + + @Override + public void destroyItem(ViewGroup container, int position, Object object) { + container.removeView((View) object); + } + + @Override + public int getItemPosition(Object object) { + TextView textView = (TextView) object; + String text = textView.getText().toString(); + int index = mDataList.indexOf(text); + if (index >= 0) { + return index; + } + return POSITION_NONE; + } + + @Override + public CharSequence getPageTitle(int position) { + return mDataList.get(position); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/FindArticleAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/FindArticleAdapter.java new file mode 100644 index 0000000..78ef89d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/FindArticleAdapter.java @@ -0,0 +1,158 @@ +package com.yonsz.z1.version5.adapter; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.lechange.demo.business.Business; +import com.lechange.demo.business.entity.ChannelInfo; +import com.lechange.demo.mediaplay.MediaPlayActivity; +import com.lechange.demo.yonsz.LechengLoginActivity; +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.createfamily.floor.ChooseRoomInFloorActivity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.CheckBindEntity; +import com.yonsz.z1.database.entity.entity5.FindEntity; +import com.yonsz.z1.fragment.person.WebViewActivity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.ChooseRoomActivity; +import com.yonsz.z1.view.RoundImageView; + +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.CAMERA_TAG; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.NetWorkUrl.CAMERA_ISADD; +import static com.yonsz.z1.net.NetWorkUrl.CHECK_USER_BIND; + +/** + * Created by Administrator on 2019/2/27. + */ + +public class FindArticleAdapter extends RecyclerView.Adapter { + + private List pdgBeans; + private List latestBeans; + private Context mContext; + private int type = 0; + private OnRecyclerClickListener mOnItemClickListener; + + + public FindArticleAdapter(Context mContext, FindEntity findEntity, int type) { + super(); + this.mContext = mContext; + this.type = type; + this.latestBeans = findEntity.getData().getLatest(); + this.pdgBeans = findEntity.getData().getPdg(); + } + + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_article, + parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + initArticle(((MessageViewHolder) holder), position);//加载头部数据源 + } + + private void initArticle(final MessageViewHolder holder, int position) { + String linkUrl = ""; + if (type == 0) { + holder.latestBean = latestBeans.get(position); + linkUrl = holder.latestBean.getLinkUrl(); + holder.titleTv.setText(holder.latestBean.getTitle()); + holder.briefTv.setText(holder.latestBean.getBrief()); + ImageLoader.getInstance().displayImage(holder.latestBean.getCoverImg(), holder.articleImage, UniKongApp.getHiApp().getImageLoaderOption()); + } else { + holder.pdgBean = pdgBeans.get(position); + linkUrl = holder.pdgBean.getLinkUrl(); + holder.titleTv.setText(holder.pdgBean.getTitle()); + holder.briefTv.setText(holder.pdgBean.getBrief()); + ImageLoader.getInstance().displayImage(holder.pdgBean.getCoverImg(), holder.articleImage, UniKongApp.getHiApp().getImageLoaderOption()); + } + String finalLinkUrl = linkUrl; + holder.relativeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View arg0) { + Intent intent = new Intent(mContext, WebViewActivity.class); + intent.putExtra("platform", "find"); + intent.putExtra("linkUrl", finalLinkUrl); + intent.putExtra("title", holder.titleTv.getText().toString()); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } + }); + } + + @Override + public int getItemCount() { + if (type == 0) { + return latestBeans != null ? latestBeans.size() : 0; + } else { + return pdgBeans != null ? pdgBeans.size() : 0; + } + } + + @Override + public long getItemId(int position) { + return super.getItemId(position); + } + + @Override + public int getItemViewType(int position) { + return 0; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private RelativeLayout relativeLayout; + private RoundImageView articleImage; + private TextView titleTv, briefTv; + private FindEntity.DataBean.LatestBean latestBean; + private FindEntity.DataBean.PdgBean pdgBean; + + public MessageViewHolder(View convertView) { + super(convertView); + relativeLayout = (RelativeLayout) convertView.findViewById(R.id.relativeLayout); + articleImage = (RoundImageView) convertView.findViewById(R.id.iv_article); + titleTv = (TextView) convertView.findViewById(R.id.tv_title); + briefTv = (TextView) convertView.findViewById(R.id.tv_brief); + } + + public void setViews(final int position) { + //修改数据信息(含加密标识符) + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/FindRecycleAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/FindRecycleAdapter.java new file mode 100644 index 0000000..847715d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/FindRecycleAdapter.java @@ -0,0 +1,372 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.content.Intent; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.StaggeredGridLayoutManager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.bumptech.glide.Glide; +import com.lechange.demo.business.entity.ChannelInfo; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.FindEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.fragment.person.WebViewActivity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.version5.find.BannerViewPager; +import com.yonsz.z1.version5.find.FindDetailActivity; +import com.yonsz.z1.version5.weidget.BaseFragmentPagerAdapter; +import com.yonsz.z1.version5.weidget.MyStaggerGrildLayoutManger; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +import static com.yonsz.z1.net.Constans.WEATHERPICURL; + +public class FindRecycleAdapter extends RecyclerView.Adapter { + + private final Context mContext; + private int count = 1; + + private int TYPE_TOP = 1;//头部循环banner + private List mHeights = new ArrayList<>(); + private int TYPE_RECOMMEND = 2;//中间推荐banner + private int TYPE_LATEST = 3;//最新发布 + private int TYPE_PDG = 4;//产品教程 + private LayoutInflater inflater; + private RecyclerView recyclerView; + private MyStaggerGrildLayoutManger mystager; + private FindEntity findEntity; + private BaseFragmentPagerAdapter mExamplePagerAdapter; + private List mHomeCategories; + private List mChannelInfoList; + private android.support.v4.app.FragmentManager manager; + + private OnRecyclerClickListener mOnItemClickListener;//情景模式点击 + private boolean isShowSafeControl = false; + private String safeSwitch = ""; + private FindArticleAdapter findArticleAdapter; + private String picUrl = SharedpreferencesUtil.get(WEATHERPICURL, ""); + private View changeHeightView; + private List mStringList = new ArrayList<>(); + + public FindRecycleAdapter(android.support.v4.app.FragmentManager supportFragmentManager, Context context) { + mContext = context; + manager = supportFragmentManager; + inflater = LayoutInflater.from(mContext); + } + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + if (viewType == TYPE_TOP) { + //头部循环banner + View viewtop = inflater.inflate(R.layout.fragment_top_banner, parent, false); + StaggeredGridLayoutManager.LayoutParams params = (StaggeredGridLayoutManager.LayoutParams) viewtop.getLayoutParams(); + params.setFullSpan(true);//最为重要的一个方法,占满全屏,以下同理 + viewtop.setLayoutParams(params); + return new TypeTopsliderHolder(viewtop); + } else if (viewType == TYPE_RECOMMEND) { + //中间推荐banner + changeHeightView = inflater.inflate(R.layout.item_recommend, parent, false); + StaggeredGridLayoutManager.LayoutParams params2 = (StaggeredGridLayoutManager.LayoutParams) changeHeightView.getLayoutParams(); + params2.setFullSpan(true); + changeHeightView.setLayoutParams(params2); + return new TypeRecommendHolder(changeHeightView); + } else if (viewType == TYPE_LATEST) { + //最新发布 + View view = inflater.inflate(R.layout.item_latest, parent, false); + StaggeredGridLayoutManager.LayoutParams params2 = (StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams(); + params2.setFullSpan(true); + view.setLayoutParams(params2); + return new TypeLatestHolder(view); + } else if (viewType == TYPE_PDG) { + //产品教程 + View view = inflater.inflate(R.layout.item_pdg, parent, false); + StaggeredGridLayoutManager.LayoutParams params2 = (StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams(); + params2.setFullSpan(true); + view.setLayoutParams(params2); + return new TypePDGHolder(view); + } else { + View viewtop = inflater.inflate(R.layout.fragment_weather, parent, false); + StaggeredGridLayoutManager.LayoutParams params = (StaggeredGridLayoutManager.LayoutParams) viewtop.getLayoutParams(); + params.setFullSpan(true); + viewtop.setLayoutParams(params); + return new TypeTopsliderHolder(viewtop); + } + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + if (holder instanceof TypeTopsliderHolder) { + //如果是TypeTopsliderHolder, 并且header有数据,并且TypeTopsliderHolder的linearLayout没有子view(因为这个布局只出现一次,如果他没有子view, + // 也就是他是第一次加载,才加载数据) + if (null != findEntity && null != findEntity.getData().getSlideshow()) { + initslider(((TypeTopsliderHolder) holder), findEntity.getData().getSlideshow());//加载头部数据源 + } + } else if (holder instanceof TypePDGHolder) { + if (null != findEntity && null != findEntity.getData().getPdg()) { + initPDG(((TypePDGHolder) holder)); + } + } else if (holder instanceof TypeRecommendHolder) { + if (null != findEntity && null != findEntity.getData().getRecommend()) { + initRecommend(((TypeRecommendHolder) holder), findEntity.getData().getRecommend()); + } + } else if (holder instanceof TypeLatestHolder) { + if (null != findEntity && null != findEntity.getData().getLatest()) { + initLatest(((TypeLatestHolder) holder)); + } + } + + } + + @Override + public int getItemViewType(int position) { + if (position == 0) + return TYPE_TOP; + else if (position == 1) + return TYPE_RECOMMEND; + else if (position == 2) + return TYPE_LATEST; + else if (position == 3) + return TYPE_PDG; + else + return TYPE_TOP; + } + + private void initPDG(TypePDGHolder holder) { + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext); + linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); + holder.rvtype.setLayoutManager(linearLayoutManager); + findArticleAdapter = new FindArticleAdapter(mContext, findEntity, 1); + holder.rvtype.setAdapter(findArticleAdapter); + findArticleAdapter.notifyDataSetChanged(); + findArticleAdapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int position) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(view, position); + } + } + }); + holder.seeAllTv.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + Intent intent = new Intent(mContext, FindDetailActivity.class); + intent.putExtra("platform", "pdg"); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } + }); + } + + private void initLatest(TypeLatestHolder holder) { + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext); + linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); + holder.rvtype.setLayoutManager(linearLayoutManager); + findArticleAdapter = new FindArticleAdapter(mContext, findEntity, 0); + holder.rvtype.setAdapter(findArticleAdapter); + findArticleAdapter.notifyDataSetChanged(); + findArticleAdapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int position) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(view, position); + } + } + }); + holder.seeAllTv.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + Intent intent = new Intent(mContext, FindDetailActivity.class); + intent.putExtra("platform", "latest"); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } + }); + } + + private void initslider(TypeTopsliderHolder holder, List data) { + RelativeLayout relativeLayout = holder.mRelativeLayout; + if (null != data && data.size() != 0) { + + List urlList = new ArrayList<>(); + urlList.clear(); + for (int i = 0; i < data.size(); i++) { + urlList.add(data.get(i).getCoverImg()); + } + holder.mTopBanner.initBanner(urlList, true)//开启3D画廊效果 + .addPageMargin(0, 0)//参数1page之间的间距,参数2中间item距离边界的间距 + .addPoint(3) + .addPointBottom(6)//指示器点间距 + .addStartTimer(8)//自动轮播5秒间隔 + .addRoundCorners(4)//圆角 + .finishConfig()//这句必须加 + .addBannerListener(new BannerViewPager.OnClickBannerListener() { + @Override + public void onBannerClick(int position) { + //点击item + Intent intent = new Intent(mContext, WebViewActivity.class); + intent.putExtra("platform", "find"); + intent.putExtra("linkUrl", data.get(position).getLinkUrl()); + intent.putExtra("title", data.get(position).getTitle()); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } + }); + /*holder.mTopBanner.setPages(new CBViewHolderCreator() { + @Override + public FindImageHolderView createHolder() { + return new FindImageHolderView(); + } + }, data).setPageIndicator(new int[]{R.drawable.kuang_corners_white_five, R.drawable.kuang_corners_red_dian_five}) + .setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.CENTER_HORIZONTAL) + .setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(int position) { + Intent intent = new Intent(mContext, WebViewActivity.class); + intent.putExtra("platform", "find"); + intent.putExtra("linkUrl", data.get(position).getLinkUrl()); + mContext.getApplicationContext().startActivity(intent); + } + }).setCanLoop(true);*/ + } + } + + private void initRecommend(final TypeRecommendHolder holder, List recommend) { + List urlList = new ArrayList<>(); + urlList.clear(); + for (int i = 0; i < recommend.size(); i++) { + urlList.add(recommend.get(i).getCoverImg()); + } + holder.tv_title.setText(recommend.get(0).getTitle()); + holder.banner.initBanner(urlList, true)//开启3D画廊效果 + .addPageMargin(10, 50)//参数1page之间的间距,参数2中间item距离边界的间距 + .addRoundCorners(4)//圆角 + .finishConfig()//这句必须加 + .addBannerListener(new BannerViewPager.OnClickBannerListener() { + @Override + public void onBannerClick(int position) { + //点击item + Intent intent = new Intent(mContext, WebViewActivity.class); + intent.putExtra("platform", "find"); + intent.putExtra("linkUrl", recommend.get(position).getLinkUrl()); + intent.putExtra("title", recommend.get(position).getTitle()); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } + }).onBannerChangeListener(new BannerViewPager.OnBannerChangeListener() { + @Override + public void onBannerChange(int position) { + holder.tv_title.setText(recommend.get(position).getTitle()); + } + }).stopTimer(); + } + + @Override + public int getItemCount() { + return 4; + } + + + @Override + public void onAttachedToRecyclerView(RecyclerView recyclerView) { + super.onAttachedToRecyclerView(recyclerView); + + this.recyclerView = recyclerView; + RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager(); + if (layoutManager instanceof MyStaggerGrildLayoutManger) { + mystager = ((MyStaggerGrildLayoutManger) layoutManager); + + } + recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState) { + + //如果快速滑动, 不加载图片 + if (newState == 2) { + Glide.with(mContext).pauseRequests(); + } else { + Glide.with(mContext).resumeRequests(); + + } + } + + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy) { + + } + }); + } + + public void setAllDevicebean(FindEntity findEntity) { + this.findEntity = findEntity; + notifyDataSetChanged(); + } + + //头部Viewpager viewholder + public class TypeTopsliderHolder extends RecyclerView.ViewHolder { + @BindView(R.id.rl_bg_pic) + RelativeLayout mRelativeLayout; + @BindView(R.id.cb_top_banner) + BannerViewPager mTopBanner; + + public TypeTopsliderHolder(View view) { + super(view); + ButterKnife.bind(this, view); + + } + } + + //所有设备按房间区分的 viewholder + public class TypeRecommendHolder extends RecyclerView.ViewHolder { + @BindView(R.id.banner) + BannerViewPager banner; + @BindView(R.id.tv_title) + TextView tv_title; + + public TypeRecommendHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + } + + //最新发布 + public class TypeLatestHolder extends RecyclerView.ViewHolder { + @BindView(R.id.rv_homepageradapter_artist) + RecyclerView rvtype; + @BindView(R.id.tv_see_all) + TextView seeAllTv; + + public TypeLatestHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + } + + //中间的四个type + public class TypePDGHolder extends RecyclerView.ViewHolder { + @BindView(R.id.rv_homepageradapter_artist) + RecyclerView rvtype; + @BindView(R.id.tv_see_all) + TextView seeAllTv; + + public TypePDGHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/HomepagerRecycleAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/HomepagerRecycleAdapter.java new file mode 100644 index 0000000..dd9970f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/HomepagerRecycleAdapter.java @@ -0,0 +1,710 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.graphics.Color; +import android.os.Bundle; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.StaggeredGridLayoutManager; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.bumptech.glide.Glide; +import com.common.openapi.entity.DeviceDetailListData; +import com.lechange.demo.business.entity.ChannelInfo; +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.entity4.WeatherNewEntity; +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.ImageLoaderUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.version4.fragment.ScrollViewPager; +import com.yonsz.z1.version5.fragment.DeviceInRoomFragment; +import com.yonsz.z1.version5.weidget.BaseFragmentPagerAdapter; +import com.yonsz.z1.version5.weidget.MyStaggerGrildLayoutManger; +import com.yonsz.z1.version5.weidget.RoomPopupWindow; +import com.yonsz.z1.view.magicindicator.MagicIndicator; +import com.yonsz.z1.view.magicindicator.ViewPagerHelper; +import com.yonsz.z1.view.magicindicator.buildins.UIUtil; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.CommonNavigator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.titles.CommonPagerTitleView; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +import static com.yonsz.z1.net.Constans.WEATHERPICURL; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.Constans.roomPosition; +import static com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator.MODE_WRAP_CONTENT; + +public class HomepagerRecycleAdapter extends RecyclerView.Adapter { + + private final Context mContext; + private int count = 1; + /*private List refreshbean; + private List centerBean;*/ + private int TYPE_TOP = 1;//头部布局 + private List mHeights = new ArrayList<>(); + private int TYPE_CENTER = 2;// + private int TYPE_CATEGORY = 3;//中间的四个快速入口 + private int TYPE_HEADER = 4;//每个分类的head + private int REFRESHPOSITION = 5;//下部head的位置 + private int CENTERPOSITION;//中间head的位置 + private int TYPE_REFRESH = 6;//最下面的布局 + private int TYPE_ROOM_POSITION = 7;//按房间位置区分的布局 + private int TYPE_SAFE_AND_CAMERA = 8;//安防和摄像头 + private LayoutInflater inflater; + private RecyclerView recyclerView; + private MyStaggerGrildLayoutManger mystager; + private WeatherNewEntity weatherEntity; + private AllDeviceEntity allDevicebean; + private BaseFragmentPagerAdapter mExamplePagerAdapter; + private List mHomeCategories; + private List mChannelInfoList; + private List fragmentList; + private android.support.v4.app.FragmentManager manager; + + private OnRecyclerClickListener mOnItemClickListener;//情景模式点击 + private boolean isShowSafeControl = false; + private boolean isRefreshCategroy = false; + private String safeSwitch = ""; + private SafeAndCameraAdapter safeAndCameraAdapter; + private TypeCategoryAdapter categoryAdapter; + private String picUrl = SharedpreferencesUtil.get(WEATHERPICURL, ""); + private View changeHeightView; + private List mStringList = new ArrayList<>(); + + public HomepagerRecycleAdapter(android.support.v4.app.FragmentManager supportFragmentManager, Context context) { + mContext = context; + manager = supportFragmentManager; + inflater = LayoutInflater.from(mContext); + //初始化各我数据源 + fragmentList = new ArrayList<>(); + mHomeCategories = new ArrayList<>(); + mChannelInfoList = new ArrayList<>(); + } + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + if (viewType == TYPE_TOP) { + //头部天气 + View viewtop = inflater.inflate(R.layout.fragment_weather5, parent, false); + StaggeredGridLayoutManager.LayoutParams params = (StaggeredGridLayoutManager.LayoutParams) viewtop.getLayoutParams(); + params.setFullSpan(true);//最为重要的一个方法,占满全屏,以下同理 + viewtop.setLayoutParams(params); + return new TypeTopsliderHolder(viewtop); + } else if (viewType == TYPE_ROOM_POSITION) { + //全部子设备按房间展示 + changeHeightView = inflater.inflate(R.layout.item_all_device_by_room, parent, false); + StaggeredGridLayoutManager.LayoutParams params2 = (StaggeredGridLayoutManager.LayoutParams) changeHeightView.getLayoutParams(); + params2.setFullSpan(true); + changeHeightView.setLayoutParams(params2); + return new TypeAllDeviceHolder(changeHeightView); + } else if (viewType == TYPE_SAFE_AND_CAMERA) { + //安防和摄像头显示 + View view = inflater.inflate(R.layout.itam_homepageradapter_rv, parent, false); + StaggeredGridLayoutManager.LayoutParams params2 = (StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams(); + params2.setFullSpan(true); + view.setLayoutParams(params2); + return new TypeSafeAndCameraHolder(view); + } else if (viewType == TYPE_CATEGORY) { + //八个情景模式 + View view = inflater.inflate(R.layout.itam_homepageradapter_rv2, parent, false); + StaggeredGridLayoutManager.LayoutParams params2 = (StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams(); + params2.setFullSpan(true); + view.setLayoutParams(params2); + return new TypetypeHolder(view); + } else { + View viewtop = inflater.inflate(R.layout.fragment_weather, parent, false); + StaggeredGridLayoutManager.LayoutParams params = (StaggeredGridLayoutManager.LayoutParams) viewtop.getLayoutParams(); + params.setFullSpan(true); + viewtop.setLayoutParams(params); + return new TypeTopsliderHolder(viewtop); + } + /*if (viewType == TYPE_REFRESH) { + return new TypeRefresh(inflater.inflate(R.layout.item_raiders2, parent, false)); + } else { + View viewtop = inflater.inflate(R.layout.adapter_slider, parent, false); + StaggeredGridLayoutManager.LayoutParams params = + (StaggeredGridLayoutManager.LayoutParams) viewtop.getLayoutParams(); + params.setFullSpan(true); + viewtop.setLayoutParams(params); + return new TypeTopsliderHolder(viewtop); + }*/ + } + + public void setLayoutParamsHeight(int height) { + changeHeightView.getLayoutParams().height = height; + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + if (holder instanceof TypeTopsliderHolder) { + //如果是TypeTopsliderHolder, 并且header有数据,并且TypeTopsliderHolder的linearLayout没有子view(因为这个布局只出现一次,如果他没有子view, + // 也就是他是第一次加载,才加载数据) + if (null != weatherEntity) { + initslider(((TypeTopsliderHolder) holder), weatherEntity);//加载头部数据源 + } + initslider(((TypeTopsliderHolder) holder));//加载头部bg + } else if (holder instanceof TypetypeHolder && isRefreshCategroy) { + initcategory(((TypetypeHolder) holder));//加载四个category数据源 + } else if (holder instanceof TypeAllDeviceHolder) { + initAllDevice(((TypeAllDeviceHolder) holder)); + } else if (holder instanceof TypeSafeAndCameraHolder) { + initSafeAndCamera(((TypeSafeAndCameraHolder) holder)); + } + // else if (holder instanceof TypetypeHolder && centerBean.size() != 0) { + // initcategory(((TypetypeHolder) holder));//加载四个category数据源 + // } else if (holder instanceof TypeheadHolder) { + // initTop(((TypeheadHolder) holder), position);//加载heade数据源(其实这里可以每个head单独设置,因为有的需求head去各式各样) + // } else if (holder instanceof TypetypeHolder2 && centerBean.size() != 0) { + // initCenterBean(((TypetypeHolder2) holder));//加载中间head下面的数据源 + // } else if (holder instanceof TypeRefresh && refreshbean.size() != 0) { + // initrefreshdata(((TypeRefresh) holder), position - REFRESHPOSITION - 1);//加载瀑布流数据源 + // } + + } + + /*private void initrefreshdata(TypeRefresh holder, int position) { + Log.e("position", "initrefreshdata: " + position); + if (mHeights.size() <= getItemCount() + 2) { + //这里只是随机数模拟瀑布流, 实际过程中, 应该根据图片高度来实现瀑布流 + mHeights.add((int) (500 + Math.random() * 400)); + } + + ViewGroup.LayoutParams layoutParams = holder.homeReadPivIv.getLayoutParams(); + if (mHeights.size() > position) + //此处取得随机数,如果mheight里面有数则取, 没有则邹走else + layoutParams.height = mHeights.get(position); + else + layoutParams.height = 589; + holder.homeReadPivIv.setLayoutParams(layoutParams); + + holder.homeReadPivIv.setScaleType(ImageView.ScaleType.FIT_XY); + *//*if (refreshbean.size() > position) { + ImageUtils.load(mContext, refreshbean.get(position).getCpOne().getImgUrl(), holder.homeReadPivIv); + } else { + ImageUtils.load(mContext, refreshbean.get(0).getCpTwo().getImgUrl(), holder.homeReadPivIv); + }*//* + + }*/ + + /*private void initTop(TypeheadHolder holder, int position) { + if (position == CENTERPOSITION) { + holder.hview.setTypeName("中间head"); + + } else if (position == REFRESHPOSITION) { + holder.hview.setTypeName("下部head"); + + } + + }*/ + + @Override + public int getItemViewType(int position) { + //此处是根据数据源有无数据来判定分类条的位置;可自行拓展,自由发挥 + /*CENTERPOSITION = mHomeCategories.size() == 0 ? 1 : 2; + REFRESHPOSITION = centerBean.size() == 0 ? 3 : 4;*/ + + Log.i("getItemViewType", "getItemViewType: " + CENTERPOSITION + ",:" + REFRESHPOSITION); + + if (position == 0) + return TYPE_TOP; + else if (position == 1) + return TYPE_CATEGORY; + else if (position == 2) + return TYPE_SAFE_AND_CAMERA; + else if (position == 3) + return TYPE_ROOM_POSITION; + /*else if (position == CENTERPOSITION || position == REFRESHPOSITION) + return TYPE_HEADER; + else if (position == CENTERPOSITION + 1) + return TYPE_CENTER;*/ + else + return TYPE_REFRESH; + } + + private void initcategory(TypetypeHolder holder) { + holder.rvtype.setLayoutManager(new GridLayoutManager(mContext, 4)); + categoryAdapter = new TypeCategoryAdapter(mContext, mHomeCategories); + holder.rvtype.setAdapter(categoryAdapter); + categoryAdapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int position) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(view, position); + } + } + }); + isRefreshCategroy = false; + } + + private void initSafeAndCamera(TypeSafeAndCameraHolder holder) { + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext); + linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); + holder.rvtype.setLayoutManager(linearLayoutManager); + safeAndCameraAdapter = new SafeAndCameraAdapter(mContext, mChannelInfoList, isShowSafeControl, safeSwitch); + holder.rvtype.setAdapter(safeAndCameraAdapter); + safeAndCameraAdapter.notifyDataSetChanged(); + safeAndCameraAdapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int position) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(view, position); + } + } + }); + } + + private void initslider(TypeTopsliderHolder holder) { + if (!TextUtils.isEmpty(picUrl)) { + ImageLoaderUtil util = new ImageLoaderUtil(); + util.setImageUrl(picUrl, holder.mvpBg); + } else { + holder.mvpBg.setImageDrawable(mContext.getResources().getDrawable(R.drawable.pic_index_banner)); + } + } + + private void initslider(TypeTopsliderHolder holder, WeatherNewEntity data) { + RelativeLayout relativeLayout = holder.mRelativeLayout; + if (null != data.getData() && null != data.getData().getCity()) { + holder.tv_cityName.setText(data.getData().getCity()); + holder.tv_warm_index.setText(data.getData().getTemperature()); + holder.tv_warm_index_c.setText("℃"); + holder.tv_weather_index.setText(data.getData().getWeather()); + holder.tv_air_index.setText(data.getData().getAir()); + holder.tv_humidity_index.setText(data.getData().getHumidity() + "%"); + } + } + + private void initAllDevice(final TypeAllDeviceHolder holder) { + if (null == allDevicebean) { + return; + } + final List dataBeans = allDevicebean.getData(); + final List dataFloor = new ArrayList<>(); + String floorList = homeListEntity.getData().get(deviceNumListPosition).getFloorList(); + int houseCategory = homeListEntity.getData().get(deviceNumListPosition).getHouseCategory(); + if (!TextUtils.isEmpty(floorList) || houseCategory == 2) { + dataFloor.clear(); + List result = Arrays.asList(floorList.split(",")); + mStringList.clear(); + for (int i = 0; i < result.size(); i++) { + mStringList.add(result.get(i)); + } + if (TextUtils.isEmpty(SharedpreferencesUtil.get(homeListEntity.getData().get(deviceNumListPosition).getId(), ""))) { + SharedpreferencesUtil.save(homeListEntity.getData().get(deviceNumListPosition).getId(), mStringList.get(0)); + } + holder.mTvMoreRoom.setText(SharedpreferencesUtil.get(homeListEntity.getData().get(deviceNumListPosition).getId(), "") + "层"); + holder.mIvRoomOrFloor.setImageDrawable(mContext.getResources().getDrawable(R.drawable.icon_floor)); + for (int i = 0; i < dataBeans.size(); i++) { + String floor = dataBeans.get(i).getAddressType().getFloor(); + if (floor.equals(SharedpreferencesUtil.get(homeListEntity.getData().get(deviceNumListPosition).getId(), ""))) { + dataFloor.add(dataBeans.get(i)); + } + } + } else { + if (homeListEntity.getData().get(deviceNumListPosition).getHouseCategory() == 3 || homeListEntity.getData().get(deviceNumListPosition).getHouseCategory() == 5) { + holder.mTvMoreRoom.setText("区域"); + holder.mIvRoomOrFloor.setImageDrawable(mContext.getResources().getDrawable(R.drawable.icon_region)); + dataFloor.clear(); + dataFloor.addAll(dataBeans); + } else { + holder.mTvMoreRoom.setText("房间"); + holder.mIvRoomOrFloor.setImageDrawable(mContext.getResources().getDrawable(R.drawable.icon_room)); + dataFloor.clear(); + dataFloor.addAll(dataBeans); + } + } + fragmentList.clear(); + Bundle bundle; + int maxSize = 6; + for (int i = 0; i < dataFloor.size(); i++) { + DeviceInRoomFragment roomFragment = DeviceInRoomFragment.getInstance(dataFloor.get(i)); + fragmentList.add(roomFragment); + int size = dataFloor.get(i).getDevices().size(); + if (size > maxSize) { + maxSize = size; + } + } + setLayoutParamsHeight(maxSize * 180); + mExamplePagerAdapter = new BaseFragmentPagerAdapter(manager, fragmentList); + holder.mViewPager.setScanScroll(true); + holder.mViewPager.setAdapter(mExamplePagerAdapter); + holder.mViewPager.setOffscreenPageLimit(fragmentList.size()); + mExamplePagerAdapter.notifyDataSetChanged(); + + holder.magicIndicator.setBackgroundColor(Color.TRANSPARENT); + CommonNavigator commonNavigator = new CommonNavigator(mContext); + /*commonNavigator.setAdjustMode(true); + commonNavigator.setSkimOver(false);*/ + commonNavigator.setAdapter(new CommonNavigatorAdapter() { + + @Override + public int getCount() { + return dataFloor == null ? 0 : dataFloor.size(); + } + + @Override + public IPagerTitleView getTitleView(Context context, final int index) { + CommonPagerTitleView commonPagerTitleView = new CommonPagerTitleView(context); + + // load custom layout + View customLayout = LayoutInflater.from(context).inflate(R.layout.simple_pager_title_layout, null); + final ImageView titleImg = (ImageView) customLayout.findViewById(R.id.title_img); + final TextView titleText = (TextView) customLayout.findViewById(R.id.title_text); + final TextView redCircle = (TextView) customLayout.findViewById(R.id.tv_red_circle); + // titleImg.setImageResource(R.mipmap.ic_launcher); + ImageLoader.getInstance().displayImage(dataFloor.get(index).getAddressType().getIcon(), titleImg, UniKongApp.getHiApp().getImageLoaderOption()); + titleText.setText(dataFloor.get(index).getAddressType().getName()); + redCircle.setVisibility(View.GONE); + List devices = dataFloor.get(index).getDevices(); + if (devices.size() != 0) { + for (int j = 0; j < devices.size(); j++) { + if (devices.get(j).getDeviceType().equals("000")) { + if (null != devices.get(j).getAddition()) { + if (null != devices.get(j).getAddition().getHasNewVersion()) { + if (devices.get(j).getAddition().getHasNewVersion().equals("1")) { + redCircle.setVisibility(View.VISIBLE); + } + } + } + } + } + } + commonPagerTitleView.setContentView(customLayout); + + commonPagerTitleView.setOnPagerTitleChangeListener(new CommonPagerTitleView.OnPagerTitleChangeListener() { + + @Override + public void onSelected(int index, int totalCount) { + if (AppIdUtil.isWork()) { + titleText.setTextColor(0xff24C1DA); + } else { + titleText.setTextColor(0xff398DEE); + } + Log.i("TAG", "HomepagerRecycleAdapter onSelected()" + index); + if (index != 0) { + roomPosition = index; + } + } + + @Override + public void onDeselected(int index, int totalCount) { + titleText.setTextColor(0xff333333); + } + + @Override + public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) { + /*titleImg.setScaleX(1.1f + (0.9f - 1.1f) * leavePercent); + titleImg.setScaleY(1.1f + (0.9f - 1.1f) * leavePercent); + titleText.setScaleX(1.1f + (0.9f - 1.1f) * leavePercent); + titleText.setScaleY(1.1f + (0.9f - 1.1f) * leavePercent);*/ + } + + @Override + public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) { + /*titleImg.setScaleX(0.9f + (1.1f - 0.9f) * enterPercent); + titleImg.setScaleY(0.9f + (1.1f - 0.9f) * enterPercent); + titleText.setScaleX(0.9f + (1.1f - 0.9f) * enterPercent); + titleText.setScaleY(0.9f + (1.1f - 0.9f) * enterPercent);*/ + Log.i("TAG", "LoadCustomLayoutExampleActivity onEnter()" + (1.1f + (0.9f - 1.1f) * enterPercent) + "===" + index); + roomPosition = index; + } + }); + + commonPagerTitleView.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + holder.mViewPager.setCurrentItem(index); + roomPosition = index; + } + }); + + return commonPagerTitleView; + } + + @Override + public IPagerIndicator getIndicator(Context context) { + LinePagerIndicator indicator = new LinePagerIndicator(context); + if (AppIdUtil.isWork()) { + indicator.setColors(Color.parseColor("#24C1DA")); + } else { + indicator.setColors(Color.parseColor("#398DEE")); + } + indicator.setLineHeight(UIUtil.dip2px(context, 2)); + indicator.setMode(MODE_WRAP_CONTENT); + indicator.setXOffset(10.0f); + return indicator; + } + }); + holder.magicIndicator.setNavigator(commonNavigator); + ViewPagerHelper.bind(holder.magicIndicator, holder.mViewPager); + holder.mViewPager.setCurrentItem(roomPosition, false); + + RoomPopupWindow.Listener listener = null; + listener = new RoomPopupWindow.Listener() { + @Override + public void onPopupWindowDismissListener() { + //消失时的操作 + } + + @Override + public void onItemClickListener(int position) { + holder.mViewPager.setCurrentItem(position, false); + roomPosition = position; + } + + @Override + public void onBottomItemClickListener(int position) { + SharedpreferencesUtil.save(homeListEntity.getData().get(deviceNumListPosition).getId(), mStringList.get(position)); + roomPosition = 0; + initAllDevice(((TypeAllDeviceHolder) holder)); + } + }; + final RoomPopupWindow.Listener finalListener = listener; + holder.mLlMoreRoom.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + List stringList = new ArrayList<>(); + List stringList1 = new ArrayList<>(); + stringList.clear(); + stringList1.clear(); + for (int i = 0; i < dataFloor.size(); i++) { + stringList.add(dataFloor.get(i).getAddressType().getName()); + stringList1.add(dataFloor.get(i).getAddressType().getIcon()); + } + if (dataFloor.size() != 0) { + initListItem(stringList, stringList1, dataFloor.get(roomPosition).getAddressType().getName(), holder, finalListener); + } else { + initListItem(stringList, stringList1, "", holder, finalListener); + } + } + }); + } + + private void initListItem(List stringList, List stringList1, String name, TypeAllDeviceHolder holder, RoomPopupWindow.Listener listener) { + RoomPopupWindow mWindow = null; + mWindow = new RoomPopupWindow(UniKongApp.getActivity(), stringList, stringList1, name, listener, holder.mTvMoreRoom, 1); + // mWindow.setBackgroundDrawable(null); + } + + @Override + public int getItemCount() { + return 4; + } + + + @Override + public void onAttachedToRecyclerView(RecyclerView recyclerView) { + super.onAttachedToRecyclerView(recyclerView); + + this.recyclerView = recyclerView; + RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager(); + if (layoutManager instanceof MyStaggerGrildLayoutManger) { + mystager = ((MyStaggerGrildLayoutManger) layoutManager); + + } + recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState) { + + //如果快速滑动, 不加载图片 + if (newState == 2) { + Glide.with(mContext).pauseRequests(); + } else { + Glide.with(mContext).resumeRequests(); + + } + } + + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy) { + + } + }); + } + + public void setBgPic(String picUrl) { + this.picUrl = picUrl; + notifyDataSetChanged(); + } + + public void setheaderbean(WeatherNewEntity weatherEntity) { + this.weatherEntity = weatherEntity; + notifyDataSetChanged(); + } + + public void setAllDevicebean(AllDeviceEntity allDevicebean, int roomPosition) { + this.allDevicebean = allDevicebean; + notifyDataSetChanged(); + /*if (mExamplePagerAdapter != null) { + mExamplePagerAdapter.notifyDataSetChanged(); + }*/ + } + + public void setSafeAndCameraBean(ArrayList mChannelInfoList, boolean isShowSafeControl, String safeSwitch) { + this.mChannelInfoList = mChannelInfoList; + this.isShowSafeControl = isShowSafeControl; + this.safeSwitch = safeSwitch; + notifyDataSetChanged(); + if (safeAndCameraAdapter != null) { + safeAndCameraAdapter.notifyDataSetChanged(); + } + } + + public void setCategoryBean(List homeCategories) { + this.mHomeCategories = homeCategories; + isRefreshCategroy = true; + notifyDataSetChanged(); + } + + /*public void setRefreshBean(RefreshBean refreshBean, boolean flagFirst) { + refreshbean.addAll(refreshBean.getData()); + int count1 = this.count; + this.count += refreshBean.getData().size(); + notifyDataSetChanged(); + if (!flagFirst) { + recyclerView.smoothScrollToPosition(count1 + 2);//加载完以后向上滚动3个条目 + } + }*/ + + /*public void setCenterBean(RefreshBean refreshBean) { + centerBean = refreshBean.getData(); + count++; + notifyDataSetChanged(); + }*/ + + /*static class TypeRefresh extends RecyclerView.ViewHolder { + @Bind(R.id.home_read_piv_iv) + ImageView homeReadPivIv; + + TypeRefresh(View view) { + super(view); + ButterKnife.bind(this, view); + } + }*/ + + //头部Viewpager viewholder + public class TypeTopsliderHolder extends RecyclerView.ViewHolder { + + @BindView(R.id.rl_bg_pic) + RelativeLayout mRelativeLayout; + @BindView(R.id.tv_warm_index) + TextView tv_warm_index; + @BindView(R.id.tv_warm_index_c) + TextView tv_warm_index_c; + @BindView(R.id.tv_weather_index) + TextView tv_weather_index; + @BindView(R.id.tv_air_index) + TextView tv_air_index; + @BindView(R.id.tv_humidity_index) + TextView tv_humidity_index; + @BindView(R.id.tv_cityName) + TextView tv_cityName; + @BindView(R.id.iv_mvp_bg) + ImageView mvpBg; + + public TypeTopsliderHolder(View view) { + super(view); + ButterKnife.bind(this, view); + + } + } + + //所有设备按房间区分的 viewholder + public class TypeAllDeviceHolder extends RecyclerView.ViewHolder { + + @BindView(R.id.magic_indicator) + MagicIndicator magicIndicator; + @BindView(R.id.view_pager) + ScrollViewPager mViewPager; + @BindView(R.id.tv_more_room) + TextView mTvMoreRoom; + @BindView(R.id.ll_more_room) + LinearLayout mLlMoreRoom; + @BindView(R.id.iv_room_or_floor) + ImageView mIvRoomOrFloor; + + public TypeAllDeviceHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + } + + // public class TypeheadHolder extends RecyclerView.ViewHolder { + // + // @Bind(R.id.ashv_homepager) + // AsHomepageHeaderView hview; + // + // public TypeheadHolder(View view) { + // super(view); + // ButterKnife.bind(this, view); + // hview.setMoreclicklistenser(new AsHomepageHeaderView.MoreclickListenser() { + // @Override + // public void setmoreclicklistenser() { + // } + // }); + // } + // } + + //安防和摄像头显示 + public class TypeSafeAndCameraHolder extends RecyclerView.ViewHolder { + @BindView(R.id.rv_homepageradapter_artist) + RecyclerView rvtype; + + public TypeSafeAndCameraHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + } + + //中间的四个type + public class TypetypeHolder extends RecyclerView.ViewHolder { + @BindView(R.id.rv_homepageradapter_artist) + RecyclerView rvtype; + + public TypetypeHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + } + + /*public class TypetypeHolder2 extends RecyclerView.ViewHolder { + @Bind(R.id.rv_homepageradapter_artist) + RecyclerView rvtype; + + + public TypetypeHolder2(View view) { + super(view); + ButterKnife.bind(this, view); + } + }*/ +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/HotelAddDeviceAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/HotelAddDeviceAdapter.java new file mode 100644 index 0000000..a8553ad --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/HotelAddDeviceAdapter.java @@ -0,0 +1,85 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.entity5.AllDeviceTypeEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class HotelAddDeviceAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerClickListener mOnItemClickListener; + + public HotelAddDeviceAdapter(Context context, List mDataBeans) { + this.mDataBeans = mDataBeans; + mContext = context; + } + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_add_asx_device, parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) { + ViewHolder holder = (ViewHolder) viewHolder; + holder.setViews(position); + } + + @Override + public int getItemCount() { + return mDataBeans.size(); + } + + + class ViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_position) + ImageView mIvPositon; + @BindView(R.id.tv_position) + TextView mTvPosition; + @BindView(R.id.rl_position) + RelativeLayout mRlPosition; + @BindView(R.id.tv_title_remark) + TextView mTitleRemark; + + ViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final int position) { + ImageLoader.getInstance().displayImage(mDataBeans.get(position).getIcon(), mIvPositon, UniKongApp.getHiApp().getImageLoaderOption()); + mTvPosition.setText(mDataBeans.get(position).getName()); + mTitleRemark.setText(mDataBeans.get(position).getTitleRemark()); + mRlPosition.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/PopAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/PopAdapter.java new file mode 100644 index 0000000..0fc6d55 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/PopAdapter.java @@ -0,0 +1,160 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.NewModelSetEntity; +import com.yonsz.z1.listener.OnExbandItemClickListener; + +import java.util.List; + +/** + * Created by Administrator on 2018/7/18. + */ + +public class PopAdapter extends RecyclerView.Adapter { + + private List mObjEntity; + private Context mContext; + private OnExbandItemClickListener mOnItemClickListener; + private int nowPosition = 0; + + public PopAdapter(Context mContext, List mObjEntity) { + super(); + this.mContext = mContext; + this.mObjEntity = mObjEntity; + } + + public void setNowPosition(int position) { + this.nowPosition = position; + this.notifyDataSetChanged(); + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_pop, + parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(position); + } + + @Override + public int getItemCount() { + return mObjEntity == null ? 0 : mObjEntity.size(); + } + + public void setmOnItemClickListener(OnExbandItemClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private final RelativeLayout root_relativelayout; + private TextView deviceName; + private CheckBox cb_device_choose, cb_device_open; + + + public MessageViewHolder(View view) { + super(view); + deviceName = (TextView) view.findViewById(R.id.tv_device_name); + root_relativelayout = (RelativeLayout) view.findViewById(R.id.root_relativelayout); + cb_device_choose = (CheckBox) view.findViewById(R.id.cb_device_choose); + cb_device_open = (CheckBox) view.findViewById(R.id.cb_device_open); + } + + public void setViews(final int position) { + switch (mObjEntity.get(position).getName()) { + case "disinfect": + deviceName.setText("消毒模式"); + if (mObjEntity.get(position).getValue().isEmpty() || mObjEntity.get(position).getValue().equals("100")) { + cb_device_choose.setChecked(false); + } else { + cb_device_choose.setChecked(true); + if (mObjEntity.get(position).getValue().equals("disinfect")) { + cb_device_open.setChecked(true); + } else { + cb_device_open.setChecked(false); + } + } + break; + case "airdrying": + deviceName.setText("风干模式"); + if (mObjEntity.get(position).getValue().isEmpty() || mObjEntity.get(position).getValue().equals("100")) { + cb_device_choose.setChecked(false); + } else { + cb_device_choose.setChecked(true); + if (mObjEntity.get(position).getValue().equals("airdrying")) { + cb_device_open.setChecked(true); + } else { + cb_device_open.setChecked(false); + } + } + break; + case "stoving": + deviceName.setText("烘干模式"); + if (mObjEntity.get(position).getValue().isEmpty() || mObjEntity.get(position).getValue().equals("100")) { + cb_device_choose.setChecked(false); + } else { + cb_device_choose.setChecked(true); + if (mObjEntity.get(position).getValue().equals("stoving")) { + cb_device_open.setChecked(true); + } else { + cb_device_open.setChecked(false); + } + } + break; + } + cb_device_choose.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + int choose, open; + if (cb_device_choose.isChecked()) { + choose = 1; + } else { + choose = 0; + } + if (cb_device_open.isChecked()) { + open = 1; + } else { + open = 0; + } + mOnItemClickListener.onClick(v, position, choose, open, 1, "1"); + notifyDataSetChanged(); + } + } + }); + cb_device_open.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + int choose, open; + if (cb_device_choose.isChecked()) { + choose = 1; + } else { + choose = 0; + } + if (cb_device_open.isChecked()) { + open = 1; + } else { + open = 0; + } + mOnItemClickListener.onClick(v, position, choose, open, 1, "1"); + notifyDataSetChanged(); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/RGBLightAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/RGBLightAdapter.java new file mode 100644 index 0000000..88e1121 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/RGBLightAdapter.java @@ -0,0 +1,462 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.listener.OnRecyclerNameClickListener; + +import java.util.HashMap; +import java.util.Map; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class RGBLightAdapter extends RecyclerView.Adapter { + private boolean isLearn; + private String deviceModel; + private Context mContext; + private OnRecyclerNameClickListener mOnItemClickListener; + private String key = ""; + private Map mMap = new HashMap(); + + public RGBLightAdapter(Context context, String deviceModel, boolean isLearn) { + this.deviceModel = deviceModel; + this.isLearn = isLearn; + mContext = context; + } + + public void setmOnItemClickListener(OnRecyclerNameClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_rgb_light, parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) { + ViewHolder holder = (ViewHolder) viewHolder; + holder.setViews(position); + } + + @Override + public int getItemCount() { + if (deviceModel.equals("1")) { + return 44; + } else { + return 24; + } + } + + + class ViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.rl_position) + RelativeLayout mRlPosition; + @BindView(R.id.tv_color) + TextView tv_color; + + + ViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final int position) { + switch (position) { + case 0: + if (deviceModel.equals("1")) { + key = "brightnessPlus"; + tv_color.setText("亮度+"); + tv_color.setTextSize(16); + } else { + key = "brightnessSpeedPlus"; + tv_color.setText("亮/速度+"); + tv_color.setTextSize(13); + } + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 1: + if (deviceModel.equals("1")) { + key = "brightnessLess"; + tv_color.setText("亮度-"); + tv_color.setTextSize(16); + } else { + key = "brightnessSpeedLess"; + tv_color.setText("亮/速度-"); + tv_color.setTextSize(13); + } + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 2: + if (deviceModel.equals("1")) { + key = "stop"; + tv_color.setText("暂停"); + } else { + key = "power"; + tv_color.setText("开"); + } + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 3: + if (deviceModel.equals("1")) { + key = "power"; + tv_color.setText("开关"); + } else { + key = "poweroff"; + tv_color.setText("关"); + } + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 4: + key = "red"; + tv_color.setText("红"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_red)); + break; + case 5: + key = "green"; + tv_color.setText("绿"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_green)); + break; + case 6: + key = "darkBlue"; + tv_color.setText("深蓝"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_darkblue)); + break; + case 7: + key = "white"; + tv_color.setText("白"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 8: + key = "vermilion"; + tv_color.setText("朱砂红"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_vermilion)); + break; + case 9: + key = "grassGreen"; + tv_color.setText("草绿"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_grassgreen)); + break; + case 10: + key = "blue"; + tv_color.setText("蓝"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_blue)); + break; + case 11: + //跳变,琥珀 + if (deviceModel.equals("1")) { + key = "amber"; + tv_color.setText("琥珀"); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_amber)); + } else { + key = "jump"; + tv_color.setText("跳变"); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + } + mMap.put(position, key); + tv_color.setTextSize(16); + break; + case 12: + key = "orange"; + tv_color.setText("橙"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_orange)); + break; + case 13: + key = "skyBlue"; + tv_color.setText("天蓝"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_skyblue)); + break; + case 14: + key = "bluishViolet"; + tv_color.setText("蓝紫"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_bluishviolet)); + break; + case 15: + //频闪,粉色 + if (deviceModel.equals("1")) { + key = "pink"; + tv_color.setText("粉色"); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_pink)); + } else { + key = "strobe"; + tv_color.setText("频闪"); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + } + mMap.put(position, key); + tv_color.setTextSize(16); + break; + case 16: + key = "orangeYellow"; + tv_color.setText("橙黄"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_orangeyellow)); + break; + case 17: + key = "acidBlue"; + tv_color.setText("湖蓝"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_acidblue)); + break; + case 18: + key = "purple"; + tv_color.setText("紫"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_purple)); + break; + case 19: + //渐变,蔚蓝 + if (deviceModel.equals("1")) { + key = "azure"; + tv_color.setText("蔚蓝"); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_azure)); + } else { + key = "gradient"; + tv_color.setText("渐变"); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + } + mMap.put(position, key); + tv_color.setTextSize(16); + break; + case 20: + key = "lemonYellow"; + tv_color.setText("柠檬黄"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_lemonyellow)); + break; + case 21: + key = "blackishgreen"; + tv_color.setText("墨绿"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_blackishgreen)); + break; + case 22: + key = "redPurple"; + tv_color.setText("红紫"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_redpurple)); + break; + case 23: + //平滑渐变,碧蓝 + if (deviceModel.equals("1")) { + key = "vividBlue"; + tv_color.setText("碧蓝"); + tv_color.setTextColor(0xffffffff); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_vividblue)); + } else { + key = "smoothGradient"; + tv_color.setText("平滑渐变"); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + } + mMap.put(position, key); + tv_color.setTextSize(16); + break; + case 24: + key = "redPlus"; + tv_color.setText("红色+"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 25: + key = "greenPlus"; + tv_color.setText("绿色+"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 26: + key = "bluePlus"; + tv_color.setText("蓝色+"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 27: + key = "speedPlus"; + tv_color.setText("速度+"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 28: + key = "redLess"; + tv_color.setText("红色-"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 29: + key = "greenLess"; + tv_color.setText("绿色-"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 30: + key = "blueLess"; + tv_color.setText("蓝色-"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 31: + key = "speedLess"; + tv_color.setText("速度-"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 32: + key = "diy1"; + tv_color.setText("DIY1"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 33: + key = "diy2"; + tv_color.setText("DIY2"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 34: + key = "diy3"; + tv_color.setText("DIY3"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 35: + key = "modelCycle"; + tv_color.setText("模式循环"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 36: + key = "diy4"; + tv_color.setText("DIY4"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 37: + key = "diy5"; + tv_color.setText("DIY5"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 38: + key = "diy6"; + tv_color.setText("DIY6"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 39: + key = "flash"; + tv_color.setText("白光屏闪"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 40: + key = "jump3"; + tv_color.setText("跳变3"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 41: + key = "jump7"; + tv_color.setText("跳变7"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 42: + key = "gradient3"; + tv_color.setText("渐变3"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + case 43: + key = "gradient7"; + tv_color.setText("渐变7"); + tv_color.setTextSize(16); + mMap.put(position, key); + tv_color.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.device_circle_press_white)); + break; + } + mRlPosition.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, String.valueOf(mMap.get(position))); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/RoomChooseAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/RoomChooseAdapter.java new file mode 100644 index 0000000..4c7b890 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/RoomChooseAdapter.java @@ -0,0 +1,129 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + + +public class RoomChooseAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private boolean isEdit; + private OnRecyclerListener mOnItemClickListener; + private List photos = null; + private int nowPosition = 100; + private String addressId = ""; + + + public RoomChooseAdapter(Context context, List mDataBeans, boolean isEdit) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.isEdit = isEdit; + } + + public void setIsEdit(List mDataBeans, boolean isTdit) { + this.isEdit = isTdit; + // this.mDataBeans = mDataBeans; + this.notifyDataSetChanged(); + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_choose_room_type, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_house_type_pic) + ImageView mIvHousePic; + @BindView(R.id.tv_house_type) + TextView mTvHouseYype; + @BindView(R.id.tv_delete) + TextView mTvDelete; + @BindView(R.id.ll_bg) + LinearLayout mLlBg; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + if (position < mDataBeans.size()) { + mIvHousePic.setVisibility(View.VISIBLE); + ImageLoader.getInstance().displayImage(mDataBeans.get(position).getIcon(), mIvHousePic, UniKongApp.getHiApp().getImageLoaderOption()); + mTvHouseYype.setText(mDataBeans.get(position).getAddressTypeName()); + if (isEdit) { + mTvDelete.setVisibility(View.VISIBLE); + } else { + mTvDelete.setVisibility(View.GONE); + } + if (!TextUtils.isEmpty(addressId) && mDataBeans.get(position).getAddressTypeCode().equals(addressId)) { + mLlBg.setBackgroundResource(R.drawable.kuang_house_type); + if (!AppIdUtil.isStandard()) { + mTvHouseYype.setTextColor(0xff1781FD); + } + nowPosition = position; + addressId = ""; + } + } + + if (nowPosition == position) { + mLlBg.setBackgroundResource(R.drawable.kuang_house_type); + if (!AppIdUtil.isStandard()) { + mTvHouseYype.setTextColor(0xff1781FD); + } + } else { + mLlBg.setBackgroundResource(R.drawable.kuang_create_house); + mTvHouseYype.setTextColor(0xff333333); + } + + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + nowPosition = position; + notifyDataSetChanged(); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/SafeAndCameraAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/SafeAndCameraAdapter.java new file mode 100644 index 0000000..cf7e6d9 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/SafeAndCameraAdapter.java @@ -0,0 +1,516 @@ +package com.yonsz.z1.version5.adapter; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.common.openapi.MethodConst; +import com.common.openapi.entity.DeviceDetailListData; +import com.lechange.demo.business.Business; +import com.lechange.demo.business.entity.ChannelInfo; +import com.lechange.demo.mediaplay.MediaPlayActivity; +import com.lechange.demo.ui.DeviceOnlineMediaPlayActivity; +import com.lechange.demo.yonsz.LechengLoginActivity; +import com.yonsz.z1.R; +import com.yonsz.z1.createfamily.floor.ChooseRoomInFloorActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.CheckBindEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.ChooseRoomActivity; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.lechange.common.configwifi.LCSmartConfig.stopConfig; +import static com.yonsz.z1.UniKongApp.getActivity; +import static com.yonsz.z1.net.Constans.CAMERA_TAG; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.NetWorkUrl.CAMERA_ISADD; +import static com.yonsz.z1.net.NetWorkUrl.CHECK_USER_BIND; + +/** + * Created by Administrator on 2019/2/27. + */ + +public class SafeAndCameraAdapter extends RecyclerView.Adapter { + + private final boolean isShowSafeControl; + private String safeSwitch; + private List mChannelInfoList; + private Context mContext; + private OnRecyclerClickListener mOnItemClickListener; + private List datas = new ArrayList<>(); + + + private Handler handler = new Handler() { + public void handleMessage(android.os.Message msg) { + switch (msg.what) { + case 555: + ToastUtil.show(mContext, "请先添加语音设备之后再进行使用"); + default: + break; + } + + } + }; + + public SafeAndCameraAdapter(Context mContext, List mChannelInfoList, boolean isShowSafeControl, String safeSwitch) { + super(); + this.mContext = mContext; + this.mChannelInfoList = mChannelInfoList; + this.isShowSafeControl = isShowSafeControl; + this.safeSwitch = safeSwitch; + } + + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + if (viewType == 0) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_safe_device_detail, + parent, false); + return new SafeDetailHolder(view); + } else if (viewType == 1) { + if (AppIdUtil.isChuangWei()) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_safe_device_detail, + parent, false); + return new VideoHolder(view); + } else { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_device_list_item, + parent, false); + return new MessageViewHolder(view); + } + } else { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_ad_pic, + parent, false); + return new SafeDetailHolder(view); + } + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + if (holder instanceof VideoHolder && null != mChannelInfoList) { + if (isShowSafeControl) { + initVideo(((VideoHolder) holder), position - 1);//加载头部数据源 + } else { + initVideo(((VideoHolder) holder), position);//加载头部数据源 + } + } else if (holder instanceof MessageViewHolder && null != mChannelInfoList) { + if (isShowSafeControl) { + initCamera(((MessageViewHolder) holder), position - 1);//加载头部数据源 + } else { + initCamera(((MessageViewHolder) holder), position);//加载头部数据源 + } + } else if (holder instanceof SafeDetailHolder && !TextUtils.isEmpty(safeSwitch)) { + initSafe(((SafeDetailHolder) holder));//加载四个category数据源 + } + } + + private void initSafe(final SafeDetailHolder holder) { + if (!TextUtils.isEmpty(safeSwitch)) { + switch (safeSwitch) { + case "0": + holder.safeDeviceStageIv.setImageResource(R.drawable.icon_security_withdrawal); + holder.safeDetailTv.setText("全部撤防中"); + holder.cb_main_device_switch.setChecked(false); + break; + case "1": + holder.safeDeviceStageIv.setImageResource(R.drawable.icon_safety_cloth); + holder.safeDetailTv.setText("全部布防中"); + holder.cb_main_device_switch.setChecked(true); + break; + case "2": + holder.safeDeviceStageIv.setImageResource(R.drawable.icon_security_withdrawal); + holder.safeDetailTv.setText("局部布防中"); + holder.cb_main_device_switch.setChecked(false); + break; + default: + holder.safeDeviceStageIv.setImageResource(R.drawable.icon_security_withdrawal); + holder.safeDetailTv.setText("全部撤防中"); + holder.cb_main_device_switch.setChecked(false); + break; + } + } else { + holder.safeDeviceStageIv.setImageResource(R.drawable.icon_security_withdrawal); + holder.safeDetailTv.setText("局部布防中"); + holder.cb_main_device_switch.setChecked(false); + } + holder.safeSwitchIv.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + ConfirmDialog dialog = new ConfirmDialog(getActivity(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + break; + case 1: + if (!safeSwitch.equals("1")) { + oneKeySwitch(true, holder); + holder.safeDeviceStageIv.setImageResource(R.drawable.icon_safety_cloth); + holder.safeDetailTv.setText("全部布防中"); + safeSwitch = "1"; + } else { + oneKeySwitch(false, holder); + holder.safeDeviceStageIv.setImageResource(R.drawable.icon_security_withdrawal); + holder.safeDetailTv.setText("全部撤防中"); + safeSwitch = "0"; + } + notifyDataSetChanged(); + break; + } + } + }); + dialog.setContent("是否确认使用开关?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + }); + + holder.cb_main_device_switch.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (holder.cb_main_device_switch.isChecked()) { + holder.cb_main_device_switch.setChecked(false); + } else { + holder.cb_main_device_switch.setChecked(true); + } + ConfirmDialog dialog = new ConfirmDialog(getActivity(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + break; + case 1: + if (!safeSwitch.equals("1")) { + oneKeySwitch(true, holder); + holder.safeDeviceStageIv.setImageResource(R.drawable.icon_safety_cloth); + holder.safeDetailTv.setText("全部布防中"); + holder.cb_main_device_switch.setChecked(true); + safeSwitch = "1"; + } else { + oneKeySwitch(false, holder); + holder.safeDeviceStageIv.setImageResource(R.drawable.icon_security_withdrawal); + holder.safeDetailTv.setText("全部撤防中"); + holder.cb_main_device_switch.setChecked(false); + safeSwitch = "0"; + } + notifyDataSetChanged(); + break; + } + } + }); + dialog.setContent("是否确认使用开关?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + }); + + holder.iv_camera_add.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + // checkUserBind(); + cameraIscCanAdd(); + } + }); + } + + private void initCamera(final MessageViewHolder holder, int position) { + holder.mInfo = mChannelInfoList.get(position); + /*if (holder.mInfo.getStatus().equals("1")) { + holder.mListShade.setVisibility(View.GONE); + } else { + holder.mListShade.setVisibility(View.VISIBLE); + }*/ + Bundle bundle = new Bundle(); + holder.mLiveVideo.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View arg0) { + bundle.putSerializable(MethodConst.ParamConst.deviceDetail, holder.mInfo); + Intent intent = new Intent(mContext, DeviceOnlineMediaPlayActivity.class); + intent.putExtra("addressId", holder.mInfo.getAddressId()); + intent.putExtra("id", holder.mInfo.getId()); + intent.putExtra("deviceId", holder.mInfo.getDeviceId()); + intent.putExtra("deviceType", holder.mInfo.getDeviceType()); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } + }); + } + + private void initVideo(final VideoHolder holder, int position) { + holder.mInfo = mChannelInfoList.get(position); + holder.nameTv.setText(mChannelInfoList.get(position).getName()); + holder.safeDeviceStageIv.setImageResource(R.drawable.icon_camera); + holder.cb_main_device_switch.setVisibility(View.INVISIBLE); + if (holder.mInfo.getStatus().equals("1")) { + holder.safeDetailTv.setText("设备在线"); + } else { + holder.safeDetailTv.setText("设备离线"); + } + Bundle bundle = new Bundle(); + holder.rl_safe_device_detail.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View arg0) { + bundle.putSerializable(MethodConst.ParamConst.deviceDetail, holder.mInfo); + Intent intent = new Intent(mContext, DeviceOnlineMediaPlayActivity.class); + intent.putExtra("addressId", holder.mInfo.getAddressId()); + intent.putExtra("id", holder.mInfo.getId()); + intent.putExtra("deviceId", holder.mInfo.getDeviceId()); + intent.putExtra("deviceType", holder.mInfo.getDeviceType()); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } + }); + } + + @Override + public int getItemCount() { + if ((isShowSafeControl && mChannelInfoList.size() == 0) || (!isShowSafeControl && mChannelInfoList.size() == 1)) { + return 2; + } else { + if (isShowSafeControl) { + return mChannelInfoList != null ? mChannelInfoList.size() + 1 : 1; + } else { + return mChannelInfoList != null ? mChannelInfoList.size() : 0; + } + } + } + + @Override + public long getItemId(int position) { + return super.getItemId(position); + } + + @Override + public int getItemViewType(int position) { + if ((isShowSafeControl && mChannelInfoList.size() == 0) || (!isShowSafeControl && mChannelInfoList.size() == 1)) { + if (position == 0) { + if (isShowSafeControl) { + return 0; + } else { + return 1; + } + } else { + return 2; + } + } else { + if (isShowSafeControl) { + if (position == 0) { + return 0; + } else { + return 1; + } + } else { + return 1; + } + } + } + + private void oneKeySwitch(final boolean openFlag, final SafeDetailHolder holder) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("openFlag", String.valueOf(openFlag)); + netWorkUtil.requestPostByAsynew(NetWorkUrl.ONE_KEY_SWITCH, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("oneKeySwitch", "onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + if (openFlag) { + safeSwitch = "1"; + } else { + safeSwitch = "0"; + } + } + } + + @Override + public void onFail(String message) { + + } + }); + } + + private void cameraIscCanAdd() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + netWorkUtil.requestGetByAsy(CAMERA_ISADD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("cameraIscCanAdd", "onSuccess()" + respone); + CheckBindEntity obj = JSON.parseObject(respone, CheckBindEntity.class); + if (1 == obj.getFlag()) { + if (obj.getData().getIsAdd().equals("1")) { + checkUserBind(); + } else { + Message message = new Message(); + message.what = 555; + handler.sendMessage(message); + } + } else { + Message message = new Message(); + message.what = 555; + handler.sendMessage(message); + } + } + + @Override + public void onFail(String message) { + } + }); + } + + private void checkUserBind() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + netWorkUtil.requestPostByAsynewApi(CHECK_USER_BIND, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("checkUserBind", "onSuccess()" + respone); + CheckBindEntity bindEntity = JSON.parseObject(respone, CheckBindEntity.class); + if (1 == bindEntity.getFlag()) { + if (bindEntity.getData().getBindStatus() == 1 || !TextUtils.isEmpty(bindEntity.getData().getUserToken())) { + Business.getInstance().setToken(bindEntity.getData().getUserToken()); + Intent intent; + if (TextUtils.isEmpty(homeListEntity.getData().get(deviceNumListPosition).getFloorList())) { + intent = new Intent(mContext, ChooseRoomActivity.class); + } else { + intent = new Intent(mContext, ChooseRoomInFloorActivity.class); + intent.putExtra("floorList", homeListEntity.getData().get(deviceNumListPosition).getFloorList()); + } + intent.putExtra("ziId", "AsxAddDeviceListActivity"); + intent.putExtra("deviceAddress", "AsxAddDeviceListActivity"); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + intent.putExtra("deviceType", CAMERA_TAG); + intent.putExtra("deviceModel", "0"); + intent.putExtra("houseTypeName", "房间选择"); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } else { + Intent intent = new Intent(mContext, LechengLoginActivity.class); + intent.putExtra("ziId", "123"); + intent.putExtra("deviceAddress", "123"); + intent.putExtra("deviceType", CAMERA_TAG); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } + } else { + + } + } + + @Override + public void onFail(String message) { + + } + }); + } + + class SafeDetailHolder extends RecyclerView.ViewHolder { + private ImageView safeDeviceStageIv; + private TextView safeDetailTv; + private ImageView safeSwitchIv; + private ImageView iv_camera_add; + private TextView tv_camera_add; + private CheckBox cb_main_device_switch; + + public SafeDetailHolder(View convertView) { + super(convertView); + safeDeviceStageIv = (ImageView) convertView.findViewById(R.id.iv_safe_device_stage); + safeDetailTv = (TextView) convertView.findViewById(R.id.tv_safe_detail); + safeSwitchIv = (ImageView) convertView.findViewById(R.id.iv_main_device_switch); + iv_camera_add = (ImageView) convertView.findViewById(R.id.iv_camera_add); + tv_camera_add = (TextView) convertView.findViewById(R.id.tv_camera_add); + cb_main_device_switch = (CheckBox) convertView.findViewById(R.id.cb_main_device_switch); + } + + public void setViews(final int position) { + + } + } + + class VideoHolder extends RecyclerView.ViewHolder { + private ImageView safeDeviceStageIv; + private TextView safeDetailTv; + private TextView nameTv; + private CheckBox cb_main_device_switch; + private RelativeLayout rl_safe_device_detail; + private DeviceDetailListData.ResponseData.DeviceListBean mInfo; + + public VideoHolder(View convertView) { + super(convertView); + safeDeviceStageIv = (ImageView) convertView.findViewById(R.id.iv_safe_device_stage); + safeDetailTv = (TextView) convertView.findViewById(R.id.tv_safe_detail); + nameTv = (TextView) convertView.findViewById(R.id.tv_name); + cb_main_device_switch = (CheckBox) convertView.findViewById(R.id.cb_main_device_switch); + rl_safe_device_detail = (RelativeLayout) convertView.findViewById(R.id.rl_safe_device_detail); + } + + public void setViews(final int position) { + } + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private ImageView mLiveVideo; + private LinearLayout mListShade; + private DeviceDetailListData.ResponseData.DeviceListBean mInfo; + private ImageView iv; + + public MessageViewHolder(View convertView) { + super(convertView); + mLiveVideo = (ImageView) convertView.findViewById(R.id.list_device_livevideo); + mListShade = (LinearLayout) convertView.findViewById(R.id.list_shade); + iv = (ImageView) itemView.findViewById(R.id.imageView); + } + + public void setViews(final int position) { + //修改数据信息(含加密标识符) + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/SyncEquipmentAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/SyncEquipmentAdapter.java new file mode 100644 index 0000000..87f1b6f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/SyncEquipmentAdapter.java @@ -0,0 +1,109 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.listener.OnRecyclerListener; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + + +public class SyncEquipmentAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private boolean isEdit; + private OnRecyclerListener mOnItemClickListener; + private List photos = null; + private int nowPosition = 100; + private String deviceName = ""; + + + public SyncEquipmentAdapter(Context context, List mDataBeans, boolean isEdit) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.isEdit = isEdit; + } + + public void setIsEdit(List mDataBeans, boolean isTdit) { + this.isEdit = isTdit; + // this.mDataBeans = mDataBeans; + this.notifyDataSetChanged(); + } + + public void setAddressId(String deviceName) { + this.deviceName = deviceName; + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_sync_equipment, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.tv_house_type) + TextView mTvHouseYype; + @BindView(R.id.ll_bg) + LinearLayout mLlBg; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + if (position < mDataBeans.size()) { + mTvHouseYype.setText(mDataBeans.get(position)); + /*if (!TextUtils.isEmpty(deviceName) && (mDataBeans.get(position).equals(deviceName) || deviceName.contains(mDataBeans.get(position)))) { + mLlBg.setBackgroundResource(R.drawable.corners_bg_yellow); + mTvHouseYype.setTextColor(0xffffffff); + nowPosition = position; + deviceName = ""; + }*/ + } + + /*if (nowPosition == position) { + mLlBg.setBackgroundResource(R.drawable.corners_bg_yellow); + mTvHouseYype.setTextColor(0xffffffff); + } else { + mLlBg.setBackgroundResource(R.drawable.corners_bg_gray); + mTvHouseYype.setTextColor(0xffcccccc); + }*/ + + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + nowPosition = position; + notifyDataSetChanged(); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/adapter/TypeCategoryAdapter.java b/app/src/main/java/com/yonsz/z1/version5/adapter/TypeCategoryAdapter.java new file mode 100644 index 0000000..6f58a98 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/adapter/TypeCategoryAdapter.java @@ -0,0 +1,157 @@ +package com.yonsz.z1.version5.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +/** + * Created by 666 on 2017/1/3. + * 首页分类 + */ +public class TypeCategoryAdapter extends RecyclerView.Adapter { + + private Context mContext; + private List mHomeCategory; + private LayoutInflater inflater; + private boolean isShowAll = false; + private OnRecyclerClickListener mOnItemClickListener; + + + public TypeCategoryAdapter(Context mContext, List mHomeCategory) { + this.mContext = mContext; + this.mHomeCategory = mHomeCategory; + inflater = LayoutInflater.from(mContext); + + if (this.mHomeCategory.size() > 7) { + this.mHomeCategory = this.mHomeCategory.subList(0, 7); + } + } + + @Override + public TypetypeHolder onCreateViewHolder(ViewGroup parent, int viewType) { + return new TypetypeHolder(inflater.inflate(R.layout.item_homepageradapter_ivtv, null)); + } + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + @Override + public void onBindViewHolder(TypetypeHolder holder, int position) { + if (mHomeCategory.size() >= 5) { + if (isShowAll) { + if (position < mHomeCategory.size()) { + TimeSetEntity.DataBean homeCategory = mHomeCategory.get(position); + ImageLoader.getInstance().displayImage(homeCategory.getIcon(), holder.iv_imagetext, UniKongApp.getHiApp().getImageLoaderOption()); + if (Integer.parseInt(homeCategory.getModelType()) >= 60) { + holder.tv_imagetext.setText(homeCategory.getModelName()); + } else + holder.tv_imagetext.setText(homeCategory.getModelName().substring(0, homeCategory.getModelName().length() - 2)); + } else { + holder.iv_imagetext.setImageResource(R.drawable.icon_pattern_hide); + holder.tv_imagetext.setText("隐藏"); + } + } else { + if (position < 3) { + TimeSetEntity.DataBean homeCategory = mHomeCategory.get(position); + ImageLoader.getInstance().displayImage(homeCategory.getIcon(), holder.iv_imagetext, UniKongApp.getHiApp().getImageLoaderOption()); + if (Integer.parseInt(homeCategory.getModelType()) >= 60) { + holder.tv_imagetext.setText(homeCategory.getModelName()); + } else + holder.tv_imagetext.setText(homeCategory.getModelName().substring(0, homeCategory.getModelName().length() - 2)); + } else { + holder.iv_imagetext.setImageResource(R.drawable.icon_pattern_more); + holder.tv_imagetext.setText("更多"); + } + } + } else { + TimeSetEntity.DataBean homeCategory = mHomeCategory.get(position); + ImageLoader.getInstance().displayImage(homeCategory.getIcon(), holder.iv_imagetext, UniKongApp.getHiApp().getImageLoaderOption()); + if (Integer.parseInt(homeCategory.getModelType()) >= 60) { + holder.tv_imagetext.setText(homeCategory.getModelName()); + } else + holder.tv_imagetext.setText(homeCategory.getModelName().substring(0, homeCategory.getModelName().length() - 2)); + } + holder.setViews(position); + } + + + @Override + public int getItemCount() { + if (mHomeCategory.size() >= 5) { + if (isShowAll) { + if (mHomeCategory.size() + 1 > 8) { + return 8; + } else { + return mHomeCategory.size() + 1; + } + } else { + return 4; + } + } else { + return mHomeCategory == null ? 0 : mHomeCategory.size(); + } + } + + //中间的四个type + public class TypetypeHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_imagetext) + ImageView iv_imagetext; + @BindView(R.id.tv_imagetext) + TextView tv_imagetext; + + public TypetypeHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final int position) { + iv_imagetext.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mHomeCategory.size() >= 5) { + if (isShowAll) { + if (position < mHomeCategory.size()) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + } + } else { + isShowAll = false; + notifyDataSetChanged(); + } + } else { + if (position < 3) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + } + } else { + isShowAll = true; + notifyDataSetChanged(); + } + } + } else { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + } + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoActionAdapter.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoActionAdapter.java new file mode 100644 index 0000000..30b5a7e --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoActionAdapter.java @@ -0,0 +1,619 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AutomationEntity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GEMSTONE_ELVES; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.Img; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_PANEL; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; + +public class AutoActionAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + private int timeType; + private boolean isEdit = false; + + + public AutoActionAdapter(Context context, List mDataBeans, int timeType) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.timeType = timeType; + } + + public void setIsEdit(boolean isTdit) { + this.isEdit = isTdit; + // this.mDataBeans = mDataBeans; + this.notifyDataSetChanged(); + } + + private void setIcon(ImageView icon, AutomationEntity.DataBean.ActionsBean dataBean) { + switch (dataBean.getAction().getDeviceType()) { + case TV_TAG: + icon.setImageResource(Img[0]); + break; + case TVONE_TAG: + icon.setImageResource(R.drawable.icon_set_top_box); + break; + case AIR_CLEANER: + icon.setImageResource(R.drawable.icon_purifier); + break; + case MOVIE_CAMERA: + icon.setImageResource(R.drawable.icon_device_projector); + break; + case AIR_TAG: + icon.setImageResource(Img[1]); + break; + case FAN_TAG: + icon.setImageResource(Img[2]); + break; + case SWEEP_TAG: + icon.setImageResource(Img[3]); + break; + case MUSIC_TAG: + icon.setImageResource(Img[13]); + break; + case LIGHT_TAG: + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_light); + } else { + switch (dataBean.getAction().getSubType()) { + case "0"://灯光 + icon.setImageResource(R.drawable.icon_light); + break; + case "1"://筒灯 + icon.setImageResource(R.drawable.icon_tubelamp); + break; + case "2"://灯带 + icon.setImageResource(R.drawable.icon_lightbelt); + break; + case "3"://射灯 + icon.setImageResource(R.drawable.icon_lamp); + break; + case "4"://壁灯 + icon.setImageResource(R.drawable.icon_walllamp); + break; + case "5"://吊灯 + icon.setImageResource(R.drawable.icon_chandelier); + break; + case "6"://廊灯 + icon.setImageResource(R.drawable.icon_porchlamp); + break; + case "7"://排气扇 + icon.setImageResource(R.drawable.icon_exhaust); + break; + default: + icon.setImageResource(R.drawable.icon_light); + break; + } + } + break; + case CURTAINS_TAG: + icon.setImageResource(R.drawable.icon_curtains); + /*if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_curtains); + } else { + if (dataBean.getRelatedStatus().equals("1")) { + icon.setImageResource(R.drawable.icon_curtaingauzecurtain); + } else { + if (dataBean.getSubType().equals("1")) { + icon.setImageResource(R.drawable.icon_gauze); + } else { + icon.setImageResource(R.drawable.icon_curtains); + } + } + }*/ + break; + case SWITCH_TAG: + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_chazuo); + } else { + switch (dataBean.getAction().getSubType()) { + case "0"://插座 + switch (dataBean.getAction().getDeviceModel()) { + case "0": + icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + case "1"://台灯 + icon.setImageResource(R.drawable.icon_desklamp); + break; + case "2"://热水器(厨电) + icon.setImageResource(R.drawable.icon_kitchenpower); + break; + case "3"://墙壁插座 + if (AppIdUtil.isZhiKong()) { + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + } else { + icon.setImageResource(R.drawable.icon_wallsocket); + } + break; + case "4"://热水壶 + icon.setImageResource(R.drawable.icon_kettle); + break; + case "5"://取暖器 + icon.setImageResource(R.drawable.icon_heater); + break; + case "6"://电蚊香 + icon.setImageResource(R.drawable.icon_dwx); + case "7":// + icon.setImageResource(R.drawable.icon_sterilizing_lamp); + break; + default: + switch (dataBean.getAction().getDeviceModel()) { + case "0": + icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + } + } + break; + case DOOR_LOCK_TAG: + /*if (deviceModel.equals("0")) { + icon.setImageResource(R.drawable.icon_gatemagnetic); + } else { + icon.setImageResource(R.drawable.pic_magnetism_dh); + }*/ + if (dataBean.getDeviceModel().equals("2")) { + icon.setImageResource(R.drawable.icon_magnetism_jd); + } else { + icon.setImageResource(R.drawable.pic_magnetism_dh); + } + break; + case INFRARED_TAG: + /*if (deviceModel.equals("0")) { + icon.setImageResource(R.drawable.icon_infrared); + } else { + icon.setImageResource(R.drawable.pic_infrared_dh); + }*/ + if (dataBean.getDeviceModel().equals("2")) { + icon.setImageResource(R.drawable.icon_infrared_jd); + } else { + icon.setImageResource(R.drawable.pic_infrared_dh); + } + break; + case WATER_TAG: + icon.setImageResource(R.drawable.icon_water_jd); + break; + case SMOKE_TAG: + icon.setImageResource(R.drawable.icon_smoke_jd); + break; + case GAS_TAG: + if (dataBean.getDeviceModel().equals("2")) { + icon.setImageResource(R.drawable.icon_wall_hanging_gas_jd); + } else { + icon.setImageResource(R.drawable.icon_gas_jd); + } + break; + case INFRARED_CURTAIN_DETECTOR: + icon.setImageResource(R.drawable.pic_curtain_dh); + break; + case INTELLIGENT_DOOR_LOCK: + icon.setImageResource(R.drawable.pic_lock_dh); + break; + case WIRELESS_EMERGENCY_BUTTON: + if (dataBean.getAction().getDeviceModel().equals("1")) { + icon.setImageResource(R.drawable.icon_device_sos); + } else { + icon.setImageResource(R.drawable.pic_panic_button_dh); + } + break; + case WINDOW_OPENER: + icon.setImageResource(R.drawable.icon_window_opener); + break; + case MULTIFUNCTIONAL_CONTROLLER: + switch (dataBean.getAction().getSubType()) { + case "0": + icon.setImageResource(R.drawable.icon_curtains); + break; + case "1": + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_curtains); + } else { + icon.setImageResource(R.drawable.icon_gauze); + } + break; + case "2": + icon.setImageResource(R.drawable.icon_window_opener); + break; + case "3"://车库门 + icon.setImageResource(R.drawable.pic_garage); + break; + case "4"://遮阳棚 + icon.setImageResource(R.drawable.pic_sunshade); + break; + case "5"://电动门 + icon.setImageResource(R.drawable.pic_autogate); + break; + case "6"://投影升降机 + icon.setImageResource(R.drawable.pic_elevator); + break; + case "7"://幕布升降机 + icon.setImageResource(R.drawable.pic_curtain_elevator); + break; + case "8"://电动喷淋 + icon.setImageResource(R.drawable.pic_spray); + break; + case "9"://卷闸门 + icon.setImageResource(R.drawable.pic_garage); + break; + default: + icon.setImageResource(R.drawable.icon_multifunctional); + break; + } + break; + case GEMSTONE_ELVES: + icon.setImageResource(R.drawable.icon_gemstone_elves); + break; + case SITUATIONAL_PANEL: + icon.setImageResource(R.drawable.icon_device_qingjing_t5); + break; + case CLOTHES_HANGER: + icon.setImageResource(R.drawable.icon_airer); + break; + case SAFETY_VALVE: + icon.setImageResource(R.drawable.icon_valve_controller); + break; + case SECURITY_MANIPULATOR: + icon.setImageResource(R.drawable.icon_security_manipulator); + break; + case SECURITY_TRIGGER: + switch (dataBean.getSubType()) { + case "0": + icon.setImageResource(R.drawable.icon_trigger_gas); + break; + case "1": + icon.setImageResource(R.drawable.icon_trigger_smoke); + break; + case "2": + icon.setImageResource(R.drawable.icon_trigger_infrared); + break; + case "3": + icon.setImageResource(R.drawable.icon_trigger_magnetism); + break; + case "4": + icon.setImageResource(R.drawable.icon_trigger_sos); + break; + } + break; + case TEMP_CONTROL: + case FRESH_AIR: + case FLOOR_HEATING: + icon.setImageResource(R.drawable.icon_device_temperature); + break; + case SERVICE_PANEL_485: + if (dataBean.getDeviceModel().equals("1")) { + icon.setImageResource(R.drawable.icon_485_12v); + } else { + icon.setImageResource(R.drawable.icon_485); + } + break; + case SITUATIONAL_TRIGGER: + icon.setImageResource(R.drawable.icon_multifunctional); + break; + + } + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_auto_device_edit, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + private void setOpers(TextView deviceState, List opers) { + String state = ""; + for (int i = 0; i < opers.size(); i++) { + switch (opers.get(i).getName()) { + case "switch": + case "key": + case "safetySwitch": + state += "开关:"; + break; + case "mode": + state += "模式:"; + break; + case "windSpeed": + state += "风速:"; + break; + case "tempSet": + String symbol = opers.get(i).getSymbol(); + String symbolName = ""; + switch (symbol) { + case "<": + symbolName = "小于"; + break; + case ">": + symbolName = "大于"; + break; + case "=": + symbolName = ""; + break; + } + state += "温度:"; + state += symbolName + opers.get(i).getValue() + "、"; + break; + case "brightness": + String symbol1 = opers.get(i).getSymbol(); + String symbolName1 = ""; + switch (symbol1) { + case "<": + symbolName1 = "小于"; + break; + case ">": + symbolName1 = "大于"; + break; + case "=": + symbolName1 = ""; + break; + } + state += "亮度:"; + state += symbolName1 + opers.get(i).getValue() + "、"; + break; + case "travelControl": + String symbol2 = opers.get(i).getSymbol(); + String symbolName2 = ""; + switch (symbol2) { + case "<": + symbolName2 = "小于"; + break; + case ">": + symbolName2 = "大于"; + break; + case "=": + symbolName2 = ""; + break; + } + state += "行程:"; + state += symbolName2 + opers.get(i).getValue() + "、"; + break; + case "safetyAlarm": + state += "安防报警:"; + break; + } + switch (opers.get(i).getValue()) { + case "power": + state += "开启、"; + break; + case "poweroff": + state += "关闭、"; + break; + case "cold": + state += "制冷、"; + break; + case "heat": + state += "制热、"; + break; + case "dehumidification": + state += "除湿、"; + break; + case "windSpeedAuto": + state += "自动风、"; + break; + case "windSpeedLow": + state += "低速风、"; + break; + case "windSpeedMedium": + state += "中速风、"; + break; + case "windSpeedHigh": + state += "高速风、"; + break; + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + state += "按键" + opers.get(i).getValue() + "、"; + break; + case "alarmTrigger": + state += "触发、"; + break; + case "up": + state += "上升、"; + break; + case "down": + state += "下降、"; + break; + case "disinfect": + state += "消毒开、"; + break; + case "disinfectoff": + state += "消毒关、"; + break; + case "airdrying": + state += "风干开、"; + break; + case "airdryingoff": + state += "风干关、"; + break; + case "stoving": + state += "烘干开、"; + break; + case "stovingoff": + state += "烘干关、"; + break; + case "anion": + state += "负离子开、"; + break; + case "anionoff": + state += "负离子关、"; + break; + case "trigger": + state += "触发、"; + break; + case "remove": + state += "解除、"; + break; + } + } + if (state.length() > 1) { + deviceState.setText(state.substring(0, state.length() - 1)); + } + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.icon) + ImageView icon; + @BindView(R.id.tv_child_device) + TextView deviceName; + @BindView(R.id.tv_child_device_state) + TextView deviceState; + @BindView(R.id.tv_position) + TextView devicePosition; + @BindView(R.id.rl_device_child) + RelativeLayout mLlBg; + @BindView(R.id.rl_delete) + RelativeLayout deleteRl; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + String devicePosition = AddressNameUtil.getDevicePosition(mDataBeans.get(position).getAction().getDeviceId()); + deviceName.setText(devicePosition + mDataBeans.get(position).getAction().getDeviceName()); + if (mDataBeans.get(position).getType().equals("delay")) { + //定时 + icon.setImageResource(R.drawable.icon_automation_interval); + deviceName.setText("延时"); + if (!mDataBeans.get(position).getAction().getDelay().isEmpty()) { + int delay = Integer.parseInt(mDataBeans.get(position).getAction().getDelay()); + deviceState.setText(delay / 1000 + "秒"); + } + } else if (mDataBeans.get(position).getType().equals("scene")) { + //定时 + icon.setImageResource(R.drawable.icon_automation_scene); + deviceName.setText("场景"); + deviceState.setText("暂不支持场景模式设置"); + } else { +// setIcon(icon, mDataBeans.get(position)); + AddressNameUtil.setdeviceIcon(icon, mDataBeans.get(position).getAction().getDeviceType(), mDataBeans.get(position).getAction().getDeviceModel(), mDataBeans.get(position).getAction().getSubType()); + setOpers(deviceState, mDataBeans.get(position).getAction().getOpers()); + } + + if (isEdit) { + deleteRl.setVisibility(View.VISIBLE); + } else { + deleteRl.setVisibility(View.GONE); + } + + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 100); + } + } + }); + + deleteRl.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, -1); + } + } + }); + mLlBg.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoAdapter.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoAdapter.java new file mode 100644 index 0000000..7cee0ff --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoAdapter.java @@ -0,0 +1,133 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AutoEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.view.SwitchView; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class AutoAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + private int timeType; + + + public AutoAdapter(Context context, List mDataBeans, int timeType) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.timeType = timeType; + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_auto, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_auto_icon) + ImageView autoIcon; + @BindView(R.id.tv_auto_name) + TextView autoName; + @BindView(R.id.ll_bg) + RelativeLayout mLlBg; + @BindView(R.id.stv_third) + SwitchView timeOpenCb; + @BindView(R.id.iv_play) + ImageView playIv; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + autoName.setText(mDataBeans.get(position).getName()); + timeOpenCb.setOpened(mDataBeans.get(position).isOpen()); + if (timeOpenCb.isOpened()) { + playIv.setVisibility(View.VISIBLE); + } else { + playIv.setVisibility(View.GONE); + } + + if (mDataBeans.get(position).getIconType().equals("timer")) { + autoIcon.setImageResource(R.drawable.pic_automation_timing_1); + } else { + autoIcon.setImageResource(R.drawable.pic_automation_device); + } + + timeOpenCb.setOnClickListener(new NoDoubleClickListener() { + @Override + public void onNoDoubleClick(View v) { + if (timeOpenCb.isOpened()) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 1); + } + } else { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 0); + } + } + + } + }); + + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 100); + } + } + }); + playIv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 200); + } + } + }); + mLlBg.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoDeviceActivity.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoDeviceActivity.java new file mode 100644 index 0000000..af0a02e --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoDeviceActivity.java @@ -0,0 +1,335 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.ActionEvent; +import com.yonsz.z1.database.entity.entity5.AutoDeviceEntity; +import com.yonsz.z1.database.entity.entity5.ExecConditionEvent; +import com.yonsz.z1.database.entity.entity5.TriggerConditionEvent; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.fragment.ScrollViewPager; +import com.yonsz.z1.version5.weidget.BaseFragmentPagerAdapter; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.magicindicator.MagicIndicator; +import com.yonsz.z1.view.magicindicator.ViewPagerHelper; +import com.yonsz.z1.view.magicindicator.buildins.UIUtil; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.CommonNavigator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.titles.CommonPagerTitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.AUTOMATION_SUBSET_LIST; +import static com.yonsz.z1.net.NetWorkUrl.AUTOMATION_SUBSET_OPERS; +import static com.yonsz.z1.net.NetWorkUrl.SCENE_SAFETYBINDLIST; +import static com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator.MODE_WRAP_CONTENT; + +/** + * Created by Administrator on 2020/2/11. + */ + +public class AutoDeviceActivity extends BaseActivity { + private TitleView titleView; + private List fragmentList; + private View changeHeightView; + private List mStringList = new ArrayList<>(); + private BaseFragmentPagerAdapter mExamplePagerAdapter; + + private MagicIndicator magicIndicator; + private ScrollViewPager mViewPager; + private String supportType; + + public void onEventMainThread(EventBusEntity event) { + finish(); + } + + public void onEventMainThread(TriggerConditionEvent event) { + finish(); + } + + public void onEventMainThread(ExecConditionEvent event) { + finish(); + } + + public void onEventMainThread(ActionEvent event) { + finish(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_auto_device); + // changeHeightView = inflater.inflate(R.layout.item_all_device_by_room, parent, false); + initView(); + } + + private void initView() { + supportType = getIntent().getExtras().get("supportType").toString(); + fragmentList = new ArrayList<>(); + magicIndicator = (MagicIndicator) findViewById(R.id.magic_indicator); + mViewPager = (ScrollViewPager) findViewById(R.id.view_pager); + titleView = (TitleView) findViewById(R.id.title_time_manager); + titleView.setHead("选择设备状态"); + titleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + if (supportType.equals("TriggerBindActivity")) { + getSafetyBindList(); + } else { + getAutomationList(); + } + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + AutoDeviceEntity autoDeviceEntity = (AutoDeviceEntity) msg.obj; + initAllDevice(autoDeviceEntity); + break; + case SELECT_MODEL_TIME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void initAllDevice(AutoDeviceEntity autoDeviceEntity) { + List data = autoDeviceEntity.getData(); + fragmentList.clear(); + mStringList.add("所有设备"); + for (int i = 0; i < data.size(); i++) { + if (!mStringList.contains(AddressNameUtil.getAddressName(data.get(i).getAddressId()))) { + mStringList.add(AddressNameUtil.getAddressName(data.get(i).getAddressId())); + } + } + AutoDeviceFragment allFragment = AutoDeviceFragment.getInstance(data, 0, supportType); + fragmentList.add(allFragment); + for (int i = 1; i < mStringList.size(); i++) { + List devicesBean = new ArrayList<>(); + for (int j = 0; j < data.size(); j++) { + if (mStringList.get(i).equals(AddressNameUtil.getAddressName(data.get(j).getAddressId()))) { + devicesBean.add(data.get(j)); + } + } + AutoDeviceFragment roomFragment = AutoDeviceFragment.getInstance(devicesBean, i, supportType); + fragmentList.add(roomFragment); + } + mExamplePagerAdapter = new BaseFragmentPagerAdapter(this.getSupportFragmentManager(), fragmentList); + mViewPager.setScanScroll(true); + mViewPager.setAdapter(mExamplePagerAdapter); + mViewPager.setOffscreenPageLimit(fragmentList.size()); + mExamplePagerAdapter.notifyDataSetChanged(); + + + magicIndicator.setBackgroundColor(Color.TRANSPARENT); + CommonNavigator commonNavigator = new CommonNavigator(this); + /*commonNavigator.setAdjustMode(true); + commonNavigator.setSkimOver(false);*/ + commonNavigator.setAdapter(new CommonNavigatorAdapter() { + + @Override + public int getCount() { + return mStringList == null ? 0 : mStringList.size(); + } + + @Override + public IPagerTitleView getTitleView(Context context, final int index) { + CommonPagerTitleView commonPagerTitleView = new CommonPagerTitleView(context); + + // load custom layout + View customLayout = LayoutInflater.from(context).inflate(R.layout.simple_pager_title_time_manager, null); + final TextView titleText = (TextView) customLayout.findViewById(R.id.title_text); + titleText.setText(mStringList.get(index)); + commonPagerTitleView.setContentView(customLayout); + + commonPagerTitleView.setOnPagerTitleChangeListener(new CommonPagerTitleView.OnPagerTitleChangeListener() { + + @Override + public void onSelected(int index, int totalCount) { + if (AppIdUtil.isWork()) { + titleText.setTextColor(0xff24C1DA); + } else { + titleText.setTextColor(0xff398DEE); + } + Log.i("TAG", "HomepagerRecycleAdapter onSelected()" + index); + } + + @Override + public void onDeselected(int index, int totalCount) { + titleText.setTextColor(0xff333333); + } + + @Override + public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) { + + } + + @Override + public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) { + Log.i("TAG", "LoadCustomLayoutExampleActivity onEnter()" + (1.1f + (0.9f - 1.1f) * enterPercent) + "===" + index); + } + }); + + commonPagerTitleView.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + mViewPager.setCurrentItem(index); + } + }); + + return commonPagerTitleView; + } + + @Override + public IPagerIndicator getIndicator(Context context) { + LinePagerIndicator indicator = new LinePagerIndicator(context); + if (AppIdUtil.isWork()) { + indicator.setColors(Color.parseColor("#24C1DA")); + } else { + indicator.setColors(Color.parseColor("#398DEE")); + } + indicator.setLineHeight(UIUtil.dip2px(context, 2)); + indicator.setMode(MODE_WRAP_CONTENT); + indicator.setXOffset(10.0f); + return indicator; + } + }); + magicIndicator.setNavigator(commonNavigator); + ViewPagerHelper.bind(magicIndicator, mViewPager); + + } + + public void setLayoutParamsHeight(int height) { + changeHeightView.getLayoutParams().height = height; + } + + private void getSafetyBindList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("deviceId").toString()); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + map.put("deviceType", getIntent().getExtras().get("deviceType").toString()); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + netWorkUtil.requestGetByAsy(SCENE_SAFETYBINDLIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("getSafetyBindList", "onSuccess()" + respone); + AutoDeviceEntity obj = JSON.parseObject(respone, AutoDeviceEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getAutomationList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("supportType", supportType); + netWorkUtil.requestGetByAsy(AUTOMATION_SUBSET_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getAutomationList", respone); + AutoDeviceEntity obj = JSON.parseObject(respone, AutoDeviceEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getAutomationOpers() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("supportType", supportType); + netWorkUtil.requestGetByAsy(AUTOMATION_SUBSET_OPERS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getAutomationList", respone); + AutoDeviceEntity obj = JSON.parseObject(respone, AutoDeviceEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoDeviceAdapter.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoDeviceAdapter.java new file mode 100644 index 0000000..6f25115 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoDeviceAdapter.java @@ -0,0 +1,438 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AutoDeviceEntity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GEMSTONE_ELVES; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.Img; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.RGB_LIGHT; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_PANEL; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SKYWORTH_TV; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; + +public class AutoDeviceAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + private int timeType; + + + public AutoDeviceAdapter(Context context, List mDataBeans, int timeType) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.timeType = timeType; + } + + public static void setIcon(ImageView icon, AutoDeviceEntity.DataBean dataBean) { + switch (dataBean.getDeviceType()) { + case TV_TAG: + icon.setImageResource(Img[0]); + break; + case TVONE_TAG: + icon.setImageResource(R.drawable.icon_set_top_box); + break; + case AIR_CLEANER: + icon.setImageResource(R.drawable.icon_purifier); + break; + case MOVIE_CAMERA: + icon.setImageResource(R.drawable.icon_device_projector); + break; + case AIR_TAG: + icon.setImageResource(Img[1]); + break; + case FAN_TAG: + icon.setImageResource(Img[2]); + break; + case SWEEP_TAG: + icon.setImageResource(Img[3]); + break; + case MUSIC_TAG: + icon.setImageResource(Img[13]); + break; + case LIGHT_TAG: + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_light); + } else { + switch (dataBean.getSubType()) { + case "0"://灯光 + icon.setImageResource(R.drawable.icon_light); + break; + case "1"://筒灯 + icon.setImageResource(R.drawable.icon_tubelamp); + break; + case "2"://灯带 + icon.setImageResource(R.drawable.icon_lightbelt); + break; + case "3"://射灯 + icon.setImageResource(R.drawable.icon_lamp); + break; + case "4"://壁灯 + icon.setImageResource(R.drawable.icon_walllamp); + break; + case "5"://吊灯 + icon.setImageResource(R.drawable.icon_chandelier); + break; + case "6"://廊灯 + icon.setImageResource(R.drawable.icon_porchlamp); + break; + case "7"://排气扇 + icon.setImageResource(R.drawable.icon_exhaust); + break; + default: + icon.setImageResource(R.drawable.icon_light); + break; + } + } + break; + case CURTAINS_TAG: + icon.setImageResource(R.drawable.icon_curtains); + /*if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_curtains); + } else { + if (dataBean.getRelatedStatus().equals("1")) { + icon.setImageResource(R.drawable.icon_curtaingauzecurtain); + } else { + if (dataBean.getSubType().equals("1")) { + icon.setImageResource(R.drawable.icon_gauze); + } else { + icon.setImageResource(R.drawable.icon_curtains); + } + } + }*/ + break; + case SWITCH_TAG: + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_chazuo); + } else { + switch (dataBean.getSubType()) { + case "0"://插座 + switch (dataBean.getDeviceModel()) { + case "0": + icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + case "1"://台灯 + icon.setImageResource(R.drawable.icon_desklamp); + break; + case "2"://热水器(厨电) + icon.setImageResource(R.drawable.icon_kitchenpower); + break; + case "3"://墙壁插座 + if (AppIdUtil.isZhiKong()) { + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + } else { + icon.setImageResource(R.drawable.icon_wallsocket); + } + break; + case "4"://热水壶 + icon.setImageResource(R.drawable.icon_kettle); + break; + case "5"://取暖器 + icon.setImageResource(R.drawable.icon_heater); + break; + case "6"://电蚊香 + icon.setImageResource(R.drawable.icon_dwx); + case "7":// + icon.setImageResource(R.drawable.icon_sterilizing_lamp); + break; + default: + switch (dataBean.getDeviceModel()) { + case "0": + icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + } + } + break; + case DOOR_LOCK_TAG: + /*if (deviceModel.equals("0")) { + icon.setImageResource(R.drawable.icon_gatemagnetic); + } else { + icon.setImageResource(R.drawable.pic_magnetism_dh); + }*/ + if (dataBean.getDeviceModel().equals("2")) { + icon.setImageResource(R.drawable.icon_magnetism_jd); + } else { + icon.setImageResource(R.drawable.pic_magnetism_dh); + } + break; + case INFRARED_TAG: + /*if (deviceModel.equals("0")) { + icon.setImageResource(R.drawable.icon_infrared); + } else { + icon.setImageResource(R.drawable.pic_infrared_dh); + }*/ + if (dataBean.getDeviceModel().equals("2")) { + icon.setImageResource(R.drawable.icon_infrared_jd); + } else { + icon.setImageResource(R.drawable.pic_infrared_dh); + } + break; + case WATER_TAG: + icon.setImageResource(R.drawable.icon_water_jd); + break; + case SMOKE_TAG: + icon.setImageResource(R.drawable.icon_smoke_jd); + break; + case GAS_TAG: + if (dataBean.getDeviceModel().equals("2")) { + icon.setImageResource(R.drawable.icon_wall_hanging_gas_jd); + } else { + icon.setImageResource(R.drawable.icon_gas_jd); + } + break; + case INFRARED_CURTAIN_DETECTOR: + icon.setImageResource(R.drawable.pic_curtain_dh); + break; + case INTELLIGENT_DOOR_LOCK: + icon.setImageResource(R.drawable.pic_lock_dh); + break; + case WIRELESS_EMERGENCY_BUTTON: + if (dataBean.getDeviceModel().equals("1")) { + icon.setImageResource(R.drawable.icon_device_sos); + } else { + icon.setImageResource(R.drawable.pic_panic_button_dh); + } + break; + case WINDOW_OPENER: + icon.setImageResource(R.drawable.icon_window_opener); + break; + case MULTIFUNCTIONAL_CONTROLLER: + switch (dataBean.getSubType()) { + case "0": + icon.setImageResource(R.drawable.icon_curtains); + break; + case "1": + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_curtains); + } else { + icon.setImageResource(R.drawable.icon_gauze); + } + break; + case "2": + icon.setImageResource(R.drawable.icon_window_opener); + break; + case "3"://车库门 + icon.setImageResource(R.drawable.pic_garage); + break; + case "4"://遮阳棚 + icon.setImageResource(R.drawable.pic_sunshade); + break; + case "5"://电动门 + icon.setImageResource(R.drawable.pic_autogate); + break; + case "6"://投影升降机 + icon.setImageResource(R.drawable.pic_elevator); + break; + case "7"://幕布升降机 + icon.setImageResource(R.drawable.pic_curtain_elevator); + break; + case "8"://电动喷淋 + icon.setImageResource(R.drawable.pic_spray); + break; + case "9"://卷闸门 + icon.setImageResource(R.drawable.pic_garage); + break; + default: + icon.setImageResource(R.drawable.icon_multifunctional); + break; + } + break; + case GEMSTONE_ELVES: + icon.setImageResource(R.drawable.icon_gemstone_elves); + break; + case SITUATIONAL_PANEL: + icon.setImageResource(R.drawable.icon_device_qingjing_t5); + break; + case CLOTHES_HANGER: + icon.setImageResource(R.drawable.icon_airer); + break; + case SAFETY_VALVE: + icon.setImageResource(R.drawable.icon_valve_controller); + break; + case SECURITY_MANIPULATOR: + icon.setImageResource(R.drawable.icon_security_manipulator); + break; + case SECURITY_TRIGGER: + switch (dataBean.getSubType()) { + case "0": + icon.setImageResource(R.drawable.icon_trigger_gas); + break; + case "1": + icon.setImageResource(R.drawable.icon_trigger_smoke); + break; + case "2": + icon.setImageResource(R.drawable.icon_trigger_infrared); + break; + case "3": + icon.setImageResource(R.drawable.icon_trigger_magnetism); + break; + case "4": + icon.setImageResource(R.drawable.icon_trigger_sos); + break; + } + break; + case TEMP_CONTROL: + case FRESH_AIR: + case FLOOR_HEATING: + icon.setImageResource(R.drawable.icon_device_temperature); + break; + case SERVICE_PANEL_485: + if (dataBean.getDeviceModel().equals("1")) { + icon.setImageResource(R.drawable.icon_485_12v); + } else { + icon.setImageResource(R.drawable.icon_485); + } + break; + case SITUATIONAL_TRIGGER: + icon.setImageResource(R.drawable.icon_multifunctional); + break; + case RGB_LIGHT: + icon.setImageResource(R.drawable.icon_rgb_lightbelt); + break; + case SKYWORTH_TV: + icon.setImageResource(R.drawable.icon_chuangwei_tv); + break; + } + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_auto_device, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.icon) + ImageView icon; + @BindView(R.id.tv_child_device) + TextView deviceName; + @BindView(R.id.tv_position) + TextView devicePosition; + @BindView(R.id.rl_device_child) + RelativeLayout mLlBg; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + deviceName.setText(mDataBeans.get(position).getName()); + if (timeType == 0) { + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getAddressId())); + } else { + devicePosition.setVisibility(View.GONE); + } +// setIcon(icon, mDataBeans.get(position)); + AddressNameUtil.setdeviceIcon(icon, mDataBeans.get(position).getDeviceType(), mDataBeans.get(position).getDeviceModel(), mDataBeans.get(position).getSubType()); + + + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 100); + } + } + }); + mLlBg.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoDeviceFragment.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoDeviceFragment.java new file mode 100644 index 0000000..225f06d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoDeviceFragment.java @@ -0,0 +1,180 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.database.entity.entity5.AutoDeviceEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; + +/** + * Created by Administrator on 2020/2/11. + */ + +public class AutoDeviceFragment extends BaseFragment { + private View fragView; + private UIHandle mHandler; + private TitleView mTitleView; + private List mDatas = new ArrayList<>(); + private RecyclerView mRecyclerView; + private AutoDeviceAdapter mAutoDeviceAdapter; + private int timeType; + private String isScene = "false", supportType; + private LinearLayout cardView_add; + + public static AutoDeviceFragment getInstance(List mDatas, int timeType, String supportType) { + AutoDeviceFragment fragment = new AutoDeviceFragment(); + fragment.mDatas = mDatas; + fragment.timeType = timeType; + fragment.supportType = supportType; + return fragment; + } + + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.fragment_time_manager, null); + initView(fragView); + return fragView; + } + + private void initView(View fragView) { + mRecyclerView = (RecyclerView) fragView.findViewById(R.id.recyclerView); + cardView_add = (LinearLayout) fragView.findViewById(R.id.cardView_add); + + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(getContext()); + manager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(manager); + mAutoDeviceAdapter = new AutoDeviceAdapter(getContext(), mDatas, timeType); + mRecyclerView.setAdapter(mAutoDeviceAdapter); + + if (mDatas.size() != 0) { + cardView_add.setVisibility(View.GONE); + } else { + cardView_add.setVisibility(View.VISIBLE); + } + + mAutoDeviceAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + @Override + public void onClick(View view, int position, int i) { + if (i == 100) { + Intent intent = new Intent(getContext(), AutoDeviceFunctionActivity.class); + intent.putExtra("gatewayId", mDatas.get(position).getZiId()); + intent.putExtra("deviceType", mDatas.get(position).getDeviceType()); + intent.putExtra("deviceId", mDatas.get(position).getId()); + intent.putExtra("deviceModel", mDatas.get(position).getDeviceModel()); + intent.putExtra("deviceName", mDatas.get(position).getName()); + intent.putExtra("subType", mDatas.get(position).getSubType()); + intent.putExtra("supportType", supportType); + intent.putExtra("isAdd", true); + startActivity(intent); + // getAutomationOpers(position); +// getActivity().finish(); + } else { + if (i == 1) { + } else { + } + } + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + } + + @Override + public void onResume() { + super.onResume(); + /*switch (timeType) { + case 0: + isScene = "true"; + getTimemanageList(""); + break; + case 1: + getTimemanageList(LIGHT_TAG); + break; + case 2: + getTimemanageList(SWITCH_TAG); + break; + case 3: + getTimemanageList(AIR_TAG); + break; + }*/ + } + + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + /*TimeSetEntity timeSetEntity = (TimeSetEntity) msg.obj; + mDatas.clear(); + mDatas.addAll(timeSetEntity.getData());*/ + + break; + case ADD_MODEL_BASIC_SUCCESS: + String obj = (String) msg.obj; + if (obj.isEmpty()) { + + } else { + mAutoDeviceAdapter.notifyDataSetChanged(); + EventBus.getDefault().post( + new ChooseHomeEvent("10")); + } + break; + case ADD_MODEL_BASIC_FAIL: + case SELECT_MODEL_TIME_FAIL: + case UPDATE_MODEL_TIME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(AutoDeviceFragment activity) { + weakReference = new WeakReference(activity); + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + AutoDeviceFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoDeviceFunctionActivity.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoDeviceFunctionActivity.java new file mode 100644 index 0000000..a79b602 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoDeviceFunctionActivity.java @@ -0,0 +1,512 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.LinearLayout; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.ActionEvent; +import com.yonsz.z1.database.entity.entity5.AutoFunctionEntity; +import com.yonsz.z1.database.entity.entity5.AutomationEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.ExecConditionEvent; +import com.yonsz.z1.database.entity.entity5.TriggerConditionEvent; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.feature.Callback3; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.YBL_SCENE_ADD_FAIL; +import static com.yonsz.z1.net.Constans.YBL_SCENE_ADD_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.AUTOMATION_SUBSET_OPERS; + +/** + * Created by Administrator on 2020/9/18. + */ + +public class AutoDeviceFunctionActivity extends BaseActivity { + private TitleView mTitleView; + private RecyclerView mRecyclerView; + private LinearLayout cardView_add; + private AutoFunctionAdapter autoFunctionAdapter; + private List mDatas = new ArrayList<>(); + private String supportType, deviceId, gatewayId = "", deviceModel, deviceType, deviceName, subType = "0"; + private boolean isAdd; + private View rootview; + private Button mButton; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.fragment_auto_function); + initView(); + } + + private void initView() { + rootview = LayoutInflater.from(AutoDeviceFunctionActivity.this).inflate(R.layout.fragment_auto_function, null); + isAdd = (boolean) getIntent().getExtras().get("isAdd"); + supportType = getIntent().getExtras().get("supportType").toString(); + if (null != getIntent().getExtras().get("gatewayId")) { + gatewayId = getIntent().getExtras().get("gatewayId").toString(); + } + deviceId = getIntent().getExtras().get("deviceId").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + deviceType = getIntent().getExtras().get("deviceType").toString(); + deviceName = getIntent().getExtras().get("deviceName").toString(); + if (null != getIntent().getExtras().get("subType")) { + subType = getIntent().getExtras().get("subType").toString(); + } + mButton = (Button) findViewById(R.id.bt_sure_config); + mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); + cardView_add = (LinearLayout) findViewById(R.id.cardView_add); + mTitleView = (TitleView) findViewById(R.id.title_auto_function); + mTitleView.setHead("选择功能"); + mTitleView.setHeadFuntionTxtAndSise16("重置"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + if (supportType.equals("TriggerBindActivity")) { + // + if (mDatas.get(0).getValue().isEmpty()) { + ToastUtil.show(AutoDeviceFunctionActivity.this, "请选择功能"); + } else { + subsetSetscene(mDatas.get(0).getValue()); + } + } else { + for (int i = 0; i < mDatas.size(); i++) { + mDatas.get(i).setValue(""); + autoFunctionAdapter.notifyDataSetChanged(); + } + } + } + + @Override + public void onFunctionText() { + + } + }); + + if (supportType.equals("TriggerBindActivity")) { + mTitleView.setHead("选择配置的设备"); + mTitleView.setHeadFuntionTxtAndSise16("保存"); + mButton.setVisibility(View.GONE); + } + + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(this); + manager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(manager); + autoFunctionAdapter = new AutoFunctionAdapter(this, mDatas, supportType); + mRecyclerView.setAdapter(autoFunctionAdapter); + + if (mDatas.size() != 0) { + cardView_add.setVisibility(View.GONE); + } else { + cardView_add.setVisibility(View.GONE); + } + getAutomationOpers(); + + + if (isAdd) { + + } else { + //不是添加就是修改 + + } + + autoFunctionAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + @Override + public void onClick(View view, int position, int i) { + //一共两种弹窗 + switch (mDatas.get(position).getName()) { + case "switch": + case "key": + case "safetySwitch": + case "mode": + case "windSpeed": + case "safetyAlarm": + case "function": + case "disinfect": + case "airdrying": + case "stoving": + case "anion": + case "triggerStatus": + AutoFunctionPopupWindow popupWindow = new AutoFunctionPopupWindow(AutoDeviceFunctionActivity.this, mDatas.get(position).getOptions(), new AutoFunctionPopupWindow.OnCompleteListener() { + + @Override + public void onComplete(AutoFunctionEntity.DataBean.OpersBean.OptionsBean condition) { + mDatas.get(position).setValue(condition.getValue()); + autoFunctionAdapter.notifyDataSetChanged(); + } + }); + popupWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0); + break; + case "tempSet": + case "brightness": + case "travelControl": + if (supportType.equals("triggerCondition") || supportType.equals("execCondition")) { + Intent intent = new Intent(AutoDeviceFunctionActivity.this, AutoSeekBarActivity.class); + intent.putExtra("deviceType", deviceType); + intent.putExtra("position", position + ""); + if (isAdd) { + intent.putExtra("symbol", "<"); + if (deviceType.equals(LIGHT_TAG)) { + intent.putExtra("value", "20"); + } else { + intent.putExtra("value", "26"); + } + } else { + switch (supportType) { + case "triggerCondition": + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("triggerCondition")) { + AutomationEntity.DataBean.TriggerConditionsBean mTriggerConditionsBean = (AutomationEntity.DataBean.TriggerConditionsBean) getIntent().getSerializableExtra("triggerCondition"); + intent.putExtra("symbol", mTriggerConditionsBean.getSymbol()); + intent.putExtra("value", mTriggerConditionsBean.getValue()); + } + break; + case "execCondition": + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("execCondition")) { + AutomationEntity.DataBean.ExecConditionsBean execConditionsBean = (AutomationEntity.DataBean.ExecConditionsBean) getIntent().getSerializableExtra("execCondition"); + intent.putExtra("symbol", execConditionsBean.getSymbol()); + intent.putExtra("value", execConditionsBean.getValue()); + } + break; + } + } + startActivityForResult(intent, MODEL_REAPEAT); + } else { + if (mDatas.get(0).getValue().equals("poweroff")) { + ToastUtil.show(AutoDeviceFunctionActivity.this, "请确保开关处于开启状态!"); + return; + } + AutoSeekBarDialog dialog = new AutoSeekBarDialog(AutoDeviceFunctionActivity.this, deviceType, mDatas.get(position).getValue(), new Callback3() { + @Override + public void callback(int position1, String progress, String mode) { + switch (position1) { + case 0: + break; + case 1: + mDatas.get(position).setValue(progress); + autoFunctionAdapter.notifyDataSetChanged(); + break; + } + } + }); + switch (deviceType) { + case LIGHT_TAG: + dialog.setTopTxt("亮度"); + dialog.setContent("亮度"); + break; + case CURTAINS_TAG: + dialog.setTopTxt("百分比"); + dialog.setContent("打开"); + break; + case AIR_TAG: + dialog.setTopTxt("温度"); + dialog.setContent("温度"); + break; + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + break; + } + } + autoFunctionAdapter.notifyDataSetChanged(); + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + + mButton.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + int modifyPosition = -1; + if (isAdd) { + modifyPosition = -1; + } else { + //不是添加就是修改 + modifyPosition = Integer.parseInt(getIntent().getExtras().get("position").toString()); + } + + boolean isEmpty = true; + for (int i = 0; i < mDatas.size(); i++) { + if (!mDatas.get(i).getValue().isEmpty()) { + isEmpty = false; + } + } + if (isEmpty) { + ToastUtil.show(AutoDeviceFunctionActivity.this, "请至少选择一个动作"); + return; + } + switch (supportType) { + case "triggerCondition": + //有几个添加几行 + for (int i = 0; i < mDatas.size(); i++) { + AutomationEntity.DataBean.TriggerConditionsBean triggerConditionsBean = new AutomationEntity.DataBean.TriggerConditionsBean(); + triggerConditionsBean.setDeviceId(deviceId); + triggerConditionsBean.setGatewayId(gatewayId); + triggerConditionsBean.setDeviceModel(deviceModel); + triggerConditionsBean.setDeviceType(deviceType); + triggerConditionsBean.setDeviceName(deviceName); + triggerConditionsBean.setSubType(subType); + triggerConditionsBean.setName(mDatas.get(i).getName()); + triggerConditionsBean.setValue(mDatas.get(i).getValue()); + triggerConditionsBean.setSymbol(mDatas.get(i).getSymbol()); + triggerConditionsBean.setType("device_change"); + if (!mDatas.get(i).getValue().isEmpty()) { + EventBus.getDefault().post( + new TriggerConditionEvent(triggerConditionsBean, modifyPosition)); + } + } + finish(); + break; + case "execCondition": + //有几个添加几行 + for (int i = 0; i < mDatas.size(); i++) { + AutomationEntity.DataBean.ExecConditionsBean execConditionsBean = new AutomationEntity.DataBean.ExecConditionsBean(); + execConditionsBean.setDeviceId(deviceId); + execConditionsBean.setGatewayId(gatewayId); + execConditionsBean.setDeviceModel(deviceModel); + execConditionsBean.setDeviceType(deviceType); + execConditionsBean.setDeviceName(deviceName); + execConditionsBean.setSubType(subType); + execConditionsBean.setName(mDatas.get(i).getName()); + execConditionsBean.setValue(mDatas.get(i).getValue()); + execConditionsBean.setSymbol(mDatas.get(i).getSymbol()); + execConditionsBean.setType("device_status"); + if (!mDatas.get(i).getValue().isEmpty()) { + EventBus.getDefault().post( + new ExecConditionEvent(execConditionsBean, modifyPosition)); + } + } + finish(); + break; + case "action": + //只添加一行 + AutomationEntity.DataBean.ActionsBean actionBean = new AutomationEntity.DataBean.ActionsBean(); + AutomationEntity.DataBean.ActionsBean.ActionBean bean = new AutomationEntity.DataBean.ActionsBean.ActionBean(); + List opersBeans = new ArrayList<>(); + bean.setDeviceId(deviceId); + bean.setGatewayId(gatewayId); + bean.setDeviceModel(deviceModel); + bean.setDeviceType(deviceType); + bean.setSubType(subType); + bean.setDeviceName(deviceName); + for (int i = 0; i < mDatas.size(); i++) { + AutomationEntity.DataBean.ActionsBean.ActionBean.OpersBean opersBean = new AutomationEntity.DataBean.ActionsBean.ActionBean.OpersBean(); + opersBean.setName(mDatas.get(i).getName()); + opersBean.setValue(mDatas.get(i).getValue()); + opersBean.setSymbol(mDatas.get(i).getSymbol()); + opersBean.setSymbol(mDatas.get(i).getSymbol()); + if (!mDatas.get(i).getValue().isEmpty()) { + opersBeans.add(opersBean); + } + } + bean.setOpers(opersBeans); + actionBean.setType("device"); + actionBean.setAction(bean); + EventBus.getDefault().post( + new ActionEvent(actionBean, modifyPosition)); + finish(); + break; + } + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + AutoFunctionEntity autoFunctionEntity = (AutoFunctionEntity) msg.obj; + List opers = autoFunctionEntity.getData().getOpers(); + if (!isAdd) { + switch (supportType) { + case "triggerCondition": + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("triggerCondition")) { + AutomationEntity.DataBean.TriggerConditionsBean mTriggerConditionsBean = (AutomationEntity.DataBean.TriggerConditionsBean) getIntent().getSerializableExtra("triggerCondition"); + opers.get(0).setValue(mTriggerConditionsBean.getValue()); + opers.get(0).setSymbol(mTriggerConditionsBean.getSymbol()); + } + break; + case "execCondition": + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("execCondition")) { + AutomationEntity.DataBean.ExecConditionsBean execConditionsBean = (AutomationEntity.DataBean.ExecConditionsBean) getIntent().getSerializableExtra("execCondition"); + opers.get(0).setValue(execConditionsBean.getValue()); + opers.get(0).setSymbol(execConditionsBean.getSymbol()); + } + break; + case "action": + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("action")) { + AutomationEntity.DataBean.ActionsBean actionsBean = (AutomationEntity.DataBean.ActionsBean) getIntent().getSerializableExtra("action"); + List opers1 = actionsBean.getAction().getOpers(); + for (int i = 0; i < opers.size(); i++) { + AutoFunctionEntity.DataBean.OpersBean opersBean = opers.get(i); + for (int j = 0; j < opers1.size(); j++) { + if (opersBean.getName().equals(opers1.get(j).getName())) { + opersBean.setValue(opers1.get(j).getValue()); + opersBean.setSymbol(opers1.get(j).getSymbol()); + } + } + } + } + break; + } + } else { + //不是添加就是修改 + + } + mDatas.clear(); + mDatas.addAll(opers); + autoFunctionAdapter.notifyDataSetChanged(); + break; + case YBL_SCENE_ADD_SUCCESS: + EventBus.getDefault().post( + new EventBusEntity("关闭")); + ToastUtil.show(this, "保存成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 2000); + break; + case YBL_SCENE_ADD_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void getAutomationOpers() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("gatewayId", gatewayId); + map.put("deviceType", deviceType); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("supportType", supportType); + map.put("supportType", supportType); + if (null != getIntent().getExtras().get("operName")) { + map.put("operName", getIntent().getExtras().get("operName").toString()); + } + netWorkUtil.requestGetByAsy(AUTOMATION_SUBSET_OPERS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getAutomationOpers", respone); + AutoFunctionEntity obj = JSON.parseObject(respone, AutoFunctionEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetSetscene(String oper) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("deviceId").toString()); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + map.put("deviceType", SECURITY_TRIGGER); + map.put("pushKey", getIntent().getExtras().get("pushKey").toString()); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + + map.put("bindDeviceId", getIntent().getExtras().get("bindDeviceId").toString()); + map.put("bindDeviceModel", getIntent().getExtras().get("bindDeviceModel").toString()); + map.put("bindDeviceType", getIntent().getExtras().get("bindDeviceType").toString()); + map.put("bindZiId", getIntent().getExtras().get("gatewayId").toString()); + + if (!oper.isEmpty()) { + map.put("oper", oper); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SETSCENE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetSetscene", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(YBL_SCENE_ADD_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(YBL_SCENE_ADD_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(YBL_SCENE_ADD_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODEL_REAPEAT: + if (data != null && data.getExtras().get("symbol") != null) { + String symbol = data.getExtras().get("symbol").toString(); + String value = data.getExtras().get("value").toString(); + int position = Integer.parseInt(data.getExtras().get("position").toString()); + mDatas.get(position).setValue(value); + mDatas.get(position).setSymbol(symbol); + autoFunctionAdapter.notifyDataSetChanged(); + } + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoExecConditionAdapter.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoExecConditionAdapter.java new file mode 100644 index 0000000..83d370b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoExecConditionAdapter.java @@ -0,0 +1,513 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AutomationEntity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GEMSTONE_ELVES; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.Img; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_PANEL; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; + +public class AutoExecConditionAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + private int timeType; + private boolean isEdit = false; + + + public AutoExecConditionAdapter(Context context, List mDataBeans, int timeType) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.timeType = timeType; + } + + public static void setIcon(ImageView icon, AutomationEntity.DataBean.ExecConditionsBean dataBean) { + switch (dataBean.getDeviceType()) { + case TV_TAG: + icon.setImageResource(Img[0]); + break; + case TVONE_TAG: + icon.setImageResource(R.drawable.icon_set_top_box); + break; + case AIR_CLEANER: + icon.setImageResource(R.drawable.icon_purifier); + break; + case MOVIE_CAMERA: + icon.setImageResource(R.drawable.icon_device_projector); + break; + case AIR_TAG: + icon.setImageResource(Img[1]); + break; + case FAN_TAG: + icon.setImageResource(Img[2]); + break; + case SWEEP_TAG: + icon.setImageResource(Img[3]); + break; + case MUSIC_TAG: + icon.setImageResource(Img[13]); + break; + case LIGHT_TAG: + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_light); + } else { + switch (dataBean.getSubType()) { + case "0"://灯光 + icon.setImageResource(R.drawable.icon_light); + break; + case "1"://筒灯 + icon.setImageResource(R.drawable.icon_tubelamp); + break; + case "2"://灯带 + icon.setImageResource(R.drawable.icon_lightbelt); + break; + case "3"://射灯 + icon.setImageResource(R.drawable.icon_lamp); + break; + case "4"://壁灯 + icon.setImageResource(R.drawable.icon_walllamp); + break; + case "5"://吊灯 + icon.setImageResource(R.drawable.icon_chandelier); + break; + case "6"://廊灯 + icon.setImageResource(R.drawable.icon_porchlamp); + break; + case "7"://排气扇 + icon.setImageResource(R.drawable.icon_exhaust); + break; + default: + icon.setImageResource(R.drawable.icon_light); + break; + } + } + break; + case CURTAINS_TAG: + icon.setImageResource(R.drawable.icon_curtains); + /*if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_curtains); + } else { + if (dataBean.getRelatedStatus().equals("1")) { + icon.setImageResource(R.drawable.icon_curtaingauzecurtain); + } else { + if (dataBean.getSubType().equals("1")) { + icon.setImageResource(R.drawable.icon_gauze); + } else { + icon.setImageResource(R.drawable.icon_curtains); + } + } + }*/ + break; + case SWITCH_TAG: + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_chazuo); + } else { + switch (dataBean.getSubType()) { + case "0"://插座 + switch (dataBean.getDeviceModel()) { + case "0": + icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + case "1"://台灯 + icon.setImageResource(R.drawable.icon_desklamp); + break; + case "2"://热水器(厨电) + icon.setImageResource(R.drawable.icon_kitchenpower); + break; + case "3"://墙壁插座 + if (AppIdUtil.isZhiKong()) { + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + } else { + icon.setImageResource(R.drawable.icon_wallsocket); + } + break; + case "4"://热水壶 + icon.setImageResource(R.drawable.icon_kettle); + break; + case "5"://取暖器 + icon.setImageResource(R.drawable.icon_heater); + break; + case "6"://电蚊香 + icon.setImageResource(R.drawable.icon_dwx); + case "7":// + icon.setImageResource(R.drawable.icon_sterilizing_lamp); + break; + default: + switch (dataBean.getDeviceModel()) { + case "0": + icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + } + } + break; + case DOOR_LOCK_TAG: + /*if (deviceModel.equals("0")) { + icon.setImageResource(R.drawable.icon_gatemagnetic); + } else { + icon.setImageResource(R.drawable.pic_magnetism_dh); + }*/ + if (dataBean.getDeviceModel().equals("2")) { + icon.setImageResource(R.drawable.icon_magnetism_jd); + } else { + icon.setImageResource(R.drawable.pic_magnetism_dh); + } + break; + case INFRARED_TAG: + /*if (deviceModel.equals("0")) { + icon.setImageResource(R.drawable.icon_infrared); + } else { + icon.setImageResource(R.drawable.pic_infrared_dh); + }*/ + if (dataBean.getDeviceModel().equals("2")) { + icon.setImageResource(R.drawable.icon_infrared_jd); + } else { + icon.setImageResource(R.drawable.pic_infrared_dh); + } + break; + case WATER_TAG: + icon.setImageResource(R.drawable.icon_water_jd); + break; + case SMOKE_TAG: + icon.setImageResource(R.drawable.icon_smoke_jd); + break; + case GAS_TAG: + if (dataBean.getDeviceModel().equals("2")) { + icon.setImageResource(R.drawable.icon_wall_hanging_gas_jd); + } else { + icon.setImageResource(R.drawable.icon_gas_jd); + } + break; + case INFRARED_CURTAIN_DETECTOR: + icon.setImageResource(R.drawable.pic_curtain_dh); + break; + case INTELLIGENT_DOOR_LOCK: + icon.setImageResource(R.drawable.pic_lock_dh); + break; + case WIRELESS_EMERGENCY_BUTTON: + if (dataBean.getDeviceModel().equals("1")) { + icon.setImageResource(R.drawable.icon_device_sos); + } else { + icon.setImageResource(R.drawable.pic_panic_button_dh); + } + break; + case WINDOW_OPENER: + icon.setImageResource(R.drawable.icon_window_opener); + break; + case MULTIFUNCTIONAL_CONTROLLER: + switch (dataBean.getSubType()) { + case "0": + icon.setImageResource(R.drawable.icon_curtains); + break; + case "1": + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_curtains); + } else { + icon.setImageResource(R.drawable.icon_gauze); + } + break; + case "2": + icon.setImageResource(R.drawable.icon_window_opener); + break; + case "3"://车库门 + icon.setImageResource(R.drawable.pic_garage); + break; + case "4"://遮阳棚 + icon.setImageResource(R.drawable.pic_sunshade); + break; + case "5"://电动门 + icon.setImageResource(R.drawable.pic_autogate); + break; + case "6"://投影升降机 + icon.setImageResource(R.drawable.pic_elevator); + break; + case "7"://幕布升降机 + icon.setImageResource(R.drawable.pic_curtain_elevator); + break; + case "8"://电动喷淋 + icon.setImageResource(R.drawable.pic_spray); + break; + case "9"://卷闸门 + icon.setImageResource(R.drawable.pic_garage); + break; + default: + icon.setImageResource(R.drawable.icon_multifunctional); + break; + } + break; + case GEMSTONE_ELVES: + icon.setImageResource(R.drawable.icon_gemstone_elves); + break; + case SITUATIONAL_PANEL: + icon.setImageResource(R.drawable.icon_device_qingjing_t5); + break; + case CLOTHES_HANGER: + icon.setImageResource(R.drawable.icon_airer); + break; + case SAFETY_VALVE: + icon.setImageResource(R.drawable.icon_valve_controller); + break; + case SECURITY_MANIPULATOR: + icon.setImageResource(R.drawable.icon_security_manipulator); + break; + case SECURITY_TRIGGER: + switch (dataBean.getSubType()) { + case "0": + icon.setImageResource(R.drawable.icon_trigger_gas); + break; + case "1": + icon.setImageResource(R.drawable.icon_trigger_smoke); + break; + case "2": + icon.setImageResource(R.drawable.icon_trigger_infrared); + break; + case "3": + icon.setImageResource(R.drawable.icon_trigger_magnetism); + break; + case "4": + icon.setImageResource(R.drawable.icon_trigger_sos); + break; + } + break; + case TEMP_CONTROL: + case FRESH_AIR: + case FLOOR_HEATING: + icon.setImageResource(R.drawable.icon_device_temperature); + break; + case SERVICE_PANEL_485: + if (dataBean.getDeviceModel().equals("1")) { + icon.setImageResource(R.drawable.icon_485_12v); + } else { + icon.setImageResource(R.drawable.icon_485); + } + break; + case SITUATIONAL_TRIGGER: + icon.setImageResource(R.drawable.icon_multifunctional); + break; + } + } + + public void setIsEdit(boolean isTdit) { + this.isEdit = isTdit; + // this.mDataBeans = mDataBeans; + this.notifyDataSetChanged(); + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_auto_device_edit, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + private void setOpers(TextView deviceState, AutomationEntity.DataBean.ExecConditionsBean opers) { + String state = AddressNameUtil.getStateString(opers); + if (state.length() > 1) { + deviceState.setText(state.substring(0, state.length() - 1)); + } + } + + private void setEffctiveTime(AutomationEntity.DataBean.TriggerConditionsBean triggerConditionsBean, TextView effectiveTimeTv) { + if (null != triggerConditionsBean) { + // repeatType:1:自定义,2:一次,3:每天,4:法定工作日,5:法定节假日,6:周一到周五 + String str = ""; + switch (triggerConditionsBean.getRepeatType()) { + case "1": + if (triggerConditionsBean.getWeek1() != null) { + if (triggerConditionsBean.getWeek1().equals("1")) { + str += "周一"; + } + if (triggerConditionsBean.getWeek2().equals("1")) { + str += "周二"; + } + if (triggerConditionsBean.getWeek3().equals("1")) { + str += "周三"; + } + if (triggerConditionsBean.getWeek4().equals("1")) { + str += "周四"; + } + if (triggerConditionsBean.getWeek5().equals("1")) { + str += "周五"; + } + if (triggerConditionsBean.getWeek6().equals("1")) { + str += "周六"; + } + if (triggerConditionsBean.getWeek7().equals("1")) { + str += "周天"; + } + } + effectiveTimeTv.setText(str + ":" + triggerConditionsBean.getTime()); + break; + case "2": + effectiveTimeTv.setText(triggerConditionsBean.getTime()); + break; + case "3": + effectiveTimeTv.setText("每天" + triggerConditionsBean.getTime()); + break; + case "4": + effectiveTimeTv.setText("法定工作日:" + triggerConditionsBean.getTime()); + break; + case "5": + effectiveTimeTv.setText("法定节假日:" + triggerConditionsBean.getTime()); + break; + case "6": + effectiveTimeTv.setText("周一到周五:" + triggerConditionsBean.getTime()); + break; + } + } + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.icon) + ImageView icon; + @BindView(R.id.tv_child_device) + TextView deviceName; + @BindView(R.id.tv_child_device_state) + TextView deviceState; + @BindView(R.id.tv_position) + TextView devicePosition; + @BindView(R.id.rl_device_child) + RelativeLayout mLlBg; + @BindView(R.id.rl_delete) + RelativeLayout deleteRl; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + String devicePosition = AddressNameUtil.getDevicePosition(mDataBeans.get(position).getDeviceId()); + deviceName.setText(devicePosition + mDataBeans.get(position).getDeviceName()); + if (mDataBeans.get(position).getType().equals("timer")) { + //定时 + icon.setImageResource(R.drawable.pic_automation_timing); + deviceName.setText("定时"); + } else { +// setIcon(icon, mDataBeans.get(position)); + AddressNameUtil.setdeviceIcon(icon, mDataBeans.get(position).getDeviceType(), mDataBeans.get(position).getDeviceModel(), mDataBeans.get(position).getSubType()); + setOpers(deviceState, mDataBeans.get(position)); + } + + if (isEdit) { + deleteRl.setVisibility(View.VISIBLE); + } else { + deleteRl.setVisibility(View.GONE); + } + + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 100); + } + } + }); + deleteRl.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, -1); + } + } + }); + mLlBg.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoFragment.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoFragment.java new file mode 100644 index 0000000..db26bc5 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoFragment.java @@ -0,0 +1,320 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.database.entity.entity5.AutoEntity; +import com.yonsz.z1.database.entity.entitya2.AddModelEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.scene.Model5DetailActivity; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.AUTOMATION_LIST; +import static com.yonsz.z1.net.NetWorkUrl.TIMEMANAGER_UPDATEOPENFLAG; + +/** + * Created by Administrator on 2020/2/11. + */ + +public class AutoFragment extends BaseFragment { + private View fragView; + private UIHandle mHandler; + private TitleView mTitleView; + private List mDatas = new ArrayList<>(); + private RecyclerView mRecyclerView; + private AutoAdapter mAutoAdapter; + private int timeType; + private String isScene = "false"; + private LinearLayout cardView_add; + + public static AutoFragment getInstance(List mDatas, int timeType) { + AutoFragment fragment = new AutoFragment(); + fragment.mDatas = mDatas; + fragment.timeType = timeType; + return fragment; + } + + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.fragment_time_manager, null); + initView(fragView); + return fragView; + } + + public void reRefrash() { + if (DensityUtil.isNetworkConnected(getActivity())) { + getAutomationList(); + } else { + ToastUtil.show(getActivity(), R.string.net_error); + } + } + + private void initView(View fragView) { + mRecyclerView = (RecyclerView) fragView.findViewById(R.id.recyclerView); + cardView_add = (LinearLayout) fragView.findViewById(R.id.cardView_add); + } + + @Override + public void onResume() { + super.onResume(); +// getAutomationList(); + } + + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + AutoEntity timeSetEntity = (AutoEntity) msg.obj; + mDatas.clear(); + mDatas.addAll(timeSetEntity.getData()); + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(getContext()); + manager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(manager); + mAutoAdapter = new AutoAdapter(getContext(), mDatas, timeType); + mRecyclerView.setAdapter(mAutoAdapter); + + if (mDatas.size() != 0) { + cardView_add.setVisibility(View.GONE); + } else { + cardView_add.setVisibility(View.VISIBLE); + } + + mAutoAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + @Override + public void onClick(View view, int position, int i) { + if (i == 100) { + Intent intent = new Intent(getContext(), AutomationActivity.class); + intent.putExtra("autoId", mDatas.get(position).getId()); + startActivityForResult(intent, MODEL_REAPEAT); + } else if (i == 200) { + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + automationExecute(mDatas.get(position).getId()); + break; + } + } + }); + dialog.setContent("是否确认执行自动化?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + if (i == 1) { + automationSetOpen(mDatas.get(position).getId(), true); + mDatas.get(position).setOpen(true); + } else { + automationSetOpen(mDatas.get(position).getId(), false); + mDatas.get(position).setOpen(false); + } + mAutoAdapter.notifyDataSetChanged(); + } + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + break; + case ADD_MODEL_BASIC_SUCCESS: + String obj = (String) msg.obj; + if (obj.isEmpty()) { + + } else { + mAutoAdapter.notifyDataSetChanged(); + EventBus.getDefault().post( + new ChooseHomeEvent("10")); + } + break; + case ADD_MODEL_BASIC_FAIL: + case SELECT_MODEL_TIME_FAIL: + case UPDATE_MODEL_TIME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void automationExecute(String autoId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", autoId); + util.requestPostByAsynewApi(NetWorkUrl.AUTOMATION_EXECUTE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("automationExecute", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getAutomationList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + netWorkUtil.requestGetByAsy(AUTOMATION_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getAutomationList", respone); + AutoEntity obj = JSON.parseObject(respone, AutoEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void automationSetOpen(String autoId, boolean open) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", autoId); + map.put("open", String.valueOf(open)); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + util.requestPostByAsynewApi(NetWorkUrl.AUTOMATION_SETOPEN, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("automationSetOpen", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void updateModelTime(String id, int openFlag, String cmdType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", id); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("openFlag", String.valueOf(openFlag)); + map.put("isScene", isScene); + map.put("cmdType", cmdType); + netWorkUtil.requestPostByAsynewApi(TIMEMANAGER_UPDATEOPENFLAG, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateModelTime", "ShareDeviceActivity onSuccess()" + respone); + AddModelEntity obj = JSON.parseObject(respone, AddModelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(AutoFragment activity) { + weakReference = new WeakReference(activity); + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + AutoFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoFunctionAdapter.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoFunctionAdapter.java new file mode 100644 index 0000000..2872945 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoFunctionAdapter.java @@ -0,0 +1,207 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AutoFunctionEntity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class AutoFunctionAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + private String timeType; + + + public AutoFunctionAdapter(Context context, List mDataBeans, String timeType) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.timeType = timeType; + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_auto_function, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.icon) + ImageView icon; + @BindView(R.id.tv_child_device) + TextView deviceName; + @BindView(R.id.tv_position) + TextView devicePosition; + @BindView(R.id.tv_option_label) + TextView optionLabel; + @BindView(R.id.rl_device_child) + RelativeLayout mLlBg; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + deviceName.setText(mDataBeans.get(position).getLabel()); + if (mDataBeans.get(position).getName().equals("tempSet") || mDataBeans.get(position).getName().equals("brightness") || mDataBeans.get(position).getName().equals("travelControl")) { + if (!mDataBeans.get(position).getValue().isEmpty()) { + String symbol = mDataBeans.get(position).getSymbol(); + String symbolName = ""; + switch (symbol) { + case "<": + symbolName = "小于"; + break; + case ">": + symbolName = "大于"; + break; + case "=": + symbolName = ""; + break; + } + optionLabel.setText(symbolName + mDataBeans.get(position).getValue()); + } else { + optionLabel.setText(""); + } + } else { + if (!mDataBeans.get(position).getValue().isEmpty()) { + String state = ""; + switch (mDataBeans.get(position).getValue()) { + case "power": + state = "开启"; + break; + case "poweroff": + state = "关闭"; + break; + case "cold": + state = "制冷"; + break; + case "heat": + state = "制热"; + break; + case "dehumidification": + state = "除湿"; + break; + case "windSpeedAuto": + state = "自动风"; + break; + case "windSpeedLow": + state = "低速风"; + break; + case "windSpeedMedium": + state = "中速风"; + break; + case "windSpeedHigh": + state = "高速风"; + break; + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + state = "按键" + mDataBeans.get(position).getValue() + ""; + break; + case "up": + state = "上升"; + break; + case "down": + state = "下降"; + break; + case "disinfect": + state = "消毒开"; + break; + case "disinfectoff": + state = "消毒关"; + break; + case "airdrying": + state = "风干开"; + break; + case "airdryingoff": + state = "风干关"; + break; + case "stoving": + state = "烘干开"; + break; + case "stovingoff": + state = "烘干关"; + break; + case "anion": + state = "负离子开"; + break; + case "anionoff": + state = "负离子关"; + break; + case "alarmTrigger": + state = "触发"; + break; + case "trigger": + state += "触发"; + break; + case "remove": + state += "解除"; + break; + default: + state = "开启"; + break; + } + optionLabel.setText(state); + } else { + optionLabel.setText(""); + } + } + /*if (timeType == 0) { + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getAddressId())); + } else { + devicePosition.setVisibility(View.GONE); + }*/ + + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 100); + } + } + }); + mLlBg.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoFunctionPopAdapter.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoFunctionPopAdapter.java new file mode 100644 index 0000000..8b2f532 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoFunctionPopAdapter.java @@ -0,0 +1,106 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AutoFunctionEntity; +import com.yonsz.z1.listener.OnRecyclerClickListener; + +import java.util.List; + +/** + * Created by Administrator on 2018/9/12. + */ + +public class AutoFunctionPopAdapter extends RecyclerView.Adapter { + private List mObjEntity; + private Context mContext; + private OnRecyclerClickListener mOnItemClickListener; + private int nowPosition = 100; + + public AutoFunctionPopAdapter(Context mContext, List mObjEntity) { + super(); + this.mContext = mContext; + this.mObjEntity = mObjEntity; + } + + public void setNowPosition(int position) { + nowPosition = position; + notifyDataSetChanged(); + } + + @Override + public AutoFunctionPopAdapter.MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_automation, + parent, false); + return new AutoFunctionPopAdapter.MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(AutoFunctionPopAdapter.MessageViewHolder holder, int position) { + holder.setViews(position); + } + + @Override + public int getItemCount() { + return mObjEntity == null ? 0 : mObjEntity.size(); + } + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private TextView typeName; + private ImageView conditionIcon; + + public MessageViewHolder(View view) { + super(view); + typeName = (TextView) view.findViewById(R.id.tv_type_name); + conditionIcon = (ImageView) view.findViewById(R.id.iv_condition_icon); + } + + public void setViews(final int position) { + + typeName.setText(mObjEntity.get(position).getLabel()); + conditionIcon.setVisibility(View.GONE); + /*switch (mObjEntity.get(position).getType()) { + case "1": + conditionIcon.setImageResource(R.drawable.icon_automation_timing); + break; + case "2": + conditionIcon.setImageResource(R.drawable.icon_automation_device); + break; + case "3": + conditionIcon.setImageResource(R.drawable.icon_automation_device); + break; + case "4": + conditionIcon.setImageResource(R.drawable.icon_automation_device); + break; + case "5": + conditionIcon.setImageResource(R.drawable.icon_automation_scene); + break; + case "6": + conditionIcon.setImageResource(R.drawable.icon_automation_interval); + break; + }*/ + + typeName.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + nowPosition = position; + notifyDataSetChanged(); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoFunctionPopupWindow.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoFunctionPopupWindow.java new file mode 100644 index 0000000..e5e37e5 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoFunctionPopupWindow.java @@ -0,0 +1,116 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.graphics.drawable.ColorDrawable; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CompoundButton; +import android.widget.PopupWindow; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AutoFunctionEntity; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; + +import java.util.List; + +public class AutoFunctionPopupWindow extends PopupWindow implements CompoundButton.OnCheckedChangeListener, View.OnClickListener { + + private Context context; + private View contentView; + private AutoFunctionEntity.DataBean.OpersBean.OptionsBean condition; + private OnCompleteListener onCompleteListener; + private RecyclerView mRecyclerView; + private List mFeedBackTypeEntities; + private AutoFunctionPopAdapter mChooseA1Adapter; + private TextView mHead; + + public AutoFunctionPopupWindow(Context context, List mFeedBackTypeEntities, OnCompleteListener onCompleteListener) { + super(context); + this.context = context; + this.onCompleteListener = onCompleteListener; + this.mFeedBackTypeEntities = mFeedBackTypeEntities; + init(); + } + + private void init() { + contentView = LayoutInflater.from(context).inflate(R.layout.pop_automation, null); + mHead = contentView.findViewById(R.id.tv_position_cancel); + + mRecyclerView = contentView.findViewById(R.id.recyclerView); + mChooseA1Adapter = new AutoFunctionPopAdapter(context, mFeedBackTypeEntities); + RecyclerViewNoBugLinearLayoutManager manage1 = new RecyclerViewNoBugLinearLayoutManager(context); + mRecyclerView.setHasFixedSize(true); + mRecyclerView.setLayoutManager(manage1); + mRecyclerView.setAdapter(mChooseA1Adapter); + + + setContentView(contentView); + this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT); + this.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); + // 设置可触 + this.setFocusable(true); + this.setOutsideTouchable(true); + + /*this.setTouchInterceptor(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_OUTSIDE) { + dismiss(); + return true; + } + return false; + } + });*/ + + ColorDrawable dw = new ColorDrawable(0x60000000); + this.setBackgroundDrawable(null); + + + + mChooseA1Adapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int position) { + if (onCompleteListener != null) { + onCompleteListener.onComplete(mFeedBackTypeEntities.get(position)); + } + dismiss(); + } + }); + } + + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_position_sure: //完成 + if (onCompleteListener != null) { + onCompleteListener.onComplete(condition); + } + dismiss(); + break; + /*case R.id.tv_position_cancel: //重置 + dismiss(); + break;*/ + } + } + + public void setOnCompleteListener(OnCompleteListener onCompleteListener) { + this.onCompleteListener = onCompleteListener; + } + + public void setHead(String text) { + mHead.setText(text); + } + + public interface OnCompleteListener { + void onComplete(AutoFunctionEntity.DataBean.OpersBean.OptionsBean condition); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoSeekBarActivity.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoSeekBarActivity.java new file mode 100644 index 0000000..948417c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoSeekBarActivity.java @@ -0,0 +1,190 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.RadioButton; +import android.widget.SeekBar; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.view.TitleView; + +import java.io.Serializable; + +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; + +/** + * Created by Administrator on 2020/9/28. + */ + +public class AutoSeekBarActivity extends BaseActivity { + private TitleView mTitleView; + private String deviceType, symbol, value, symbolName; + private RadioButton lessRb, moreRb; + private TextView nowValue; + private SeekBar brightNessSb; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_auto_seekbar); + initView(); + initListener(); + } + + private void initView() { + deviceType = getIntent().getExtras().get("deviceType").toString(); + symbol = getIntent().getExtras().get("symbol").toString(); + value = getIntent().getExtras().get("value").toString(); + nowValue = (TextView) findViewById(R.id.tv_now_value); + lessRb = (RadioButton) findViewById(R.id.rb_less); + moreRb = (RadioButton) findViewById(R.id.rb_more); + brightNessSb = (SeekBar) findViewById(R.id.sb_lightness); + mTitleView = (TitleView) findViewById(R.id.title_seek_bar); + mTitleView.setHeadFuntionTxtAndSise16("确定"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + Intent intent = new Intent(AutoSeekBarActivity.this, AutomationActivity.class); + intent.putExtra("symbol", symbol); + intent.putExtra("value", value); + intent.putExtra("position", getIntent().getExtras().get("position").toString()); + setResult(MODEL_REAPEAT, intent); + finish(); + } + + @Override + public void onFunctionText() { + + } + }); + switch (symbol) { + case "<": + symbolName = "小于"; + lessRb.setChecked(true); + moreRb.setChecked(false); + break; + case ">": + symbolName = "大于"; + lessRb.setChecked(false); + moreRb.setChecked(true); + break; + case "=": + symbol = "<"; + symbolName = "小于"; + lessRb.setChecked(true); + moreRb.setChecked(false); + break; + default: + symbol = "<"; + symbolName = "小于"; + break; + } + switch (deviceType) { + case LIGHT_TAG: + brightNessSb.setProgress(Integer.parseInt(value)); + break; + case CURTAINS_TAG: + brightNessSb.setProgress(Integer.parseInt(value)); + break; + case AIR_TAG: + brightNessSb.setProgress((Integer.parseInt(value) - 16) * 7143 / 1000); + break; + } + setViewDate(); + + brightNessSb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + Log.i("LightA1Fragment", "onProgressChanged()" + progress); + if (deviceType.equals(Constans.AIR_TAG)) { + if (progress == 100) { + value = 30 + ""; + } else { + value = (progress * 1000 / 7143 + 16) + ""; + } + } else { + if (deviceType.equals(LIGHT_TAG)) { + if (progress < 20) { + brightNessSb.setProgress(20); + progress = 20; + } + } + value = progress + ""; + } + setViewDate(); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + Log.i("LightA1Fragment", "onStopTrackingTouch()" + seekBar.getProgress()); + } + }); + } + + private void setViewDate() { + switch (deviceType) { + case LIGHT_TAG: + mTitleView.setHead("亮度"); + nowValue.setText("当亮度" + symbolName + value + "%时"); + break; + case CURTAINS_TAG: + mTitleView.setHead("百分比"); + nowValue.setText("当百分比" + symbolName + value + "%时"); + break; + case AIR_TAG: + mTitleView.setHead("温度"); + nowValue.setText("当温度" + symbolName + value + "℃时"); + break; + } + } + + private void initListener() { + lessRb.setOnClickListener(this); + moreRb.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.rb_less: + symbol = "<"; + symbolName = "小于"; + lessRb.setChecked(true); + moreRb.setChecked(false); + setViewDate(); + break; + case R.id.rb_more: + symbol = ">"; + symbolName = "大于"; + lessRb.setChecked(false); + moreRb.setChecked(true); + setViewDate(); + break; + } + } + + @Override + public void callBackUiThread(Message msg) { + + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoSeekBarDialog.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoSeekBarDialog.java new file mode 100644 index 0000000..c7d18ac --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoSeekBarDialog.java @@ -0,0 +1,183 @@ +package com.yonsz.z1.version5.auto; + +import android.app.Activity; +import android.app.Dialog; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.SeekBar; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.mine.aboutversion.feature.Callback3; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.view.listpopupwindow.RankingPopupWindow; + +import java.util.List; + +import static com.yonsz.z1.net.Constans.LIGHT_TAG; + +/** + * Created by Teprinciple on 2016/10/13. + */ +public class AutoSeekBarDialog extends Dialog { + + private final Activity context; + Callback3 callback; + private TextView content; + private TextView sureBtn; + private TextView cancleBtn; + private View line_view; + private TextView topTxt; + private TextView dialog_seek_progress, tv_model_name; + private SeekBar brightNessSb; + private String thisProgress = "26"; + private String thisMode = ""; + private String deviceType; + private RankingPopupWindow mWindow; + private RankingPopupWindow.Listener listener; + + public AutoSeekBarDialog(Activity context, String deviceType, String progress, Callback3 callback) { + super(context, R.style.CustomDialog); + this.context = context; + this.callback = callback; + this.deviceType = deviceType; + if (!progress.isEmpty()) { + this.thisProgress = progress; + } + setCustomDialog(); + } + + private void setCustomDialog() { + View mView = LayoutInflater.from(getContext()).inflate(R.layout.dialog_auto_seekbar, null); + sureBtn = (TextView) mView.findViewById(R.id.dialog_confirm_sure); + cancleBtn = (TextView) mView.findViewById(R.id.dialog_confirm_cancle); + topTxt = (TextView) mView.findViewById(R.id.dialog_confirm_top); + line_view = (View) mView.findViewById(R.id.line_view); + content = (TextView) mView.findViewById(R.id.dialog_confirm_title); + brightNessSb = (SeekBar) mView.findViewById(R.id.sb_lightness); + dialog_seek_progress = (TextView) mView.findViewById(R.id.dialog_seek_progress); + tv_model_name = (TextView) mView.findViewById(R.id.tv_model_name); + + if (deviceType.equals(Constans.AIR_TAG)) { + dialog_seek_progress.setText(thisProgress + "℃"); + brightNessSb.setProgress((Integer.parseInt(thisProgress) - 16) * 7143 / 1000); + } else { + dialog_seek_progress.setText(thisProgress + "%"); + brightNessSb.setProgress(Integer.parseInt(thisProgress)); + } + sureBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!thisProgress.isEmpty()) { + callback.callback(1, thisProgress, thisMode); + } + AutoSeekBarDialog.this.cancel(); + } + }); + cancleBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + callback.callback(0, thisProgress, thisMode); + AutoSeekBarDialog.this.cancel(); + } + }); + + brightNessSb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + Log.i("LightA1Fragment", "onProgressChanged()" + progress); + if (deviceType.equals(Constans.AIR_TAG)) { + if (progress == 100) { + thisProgress = 30 + ""; + } else { + thisProgress = (progress * 1000 / 7143 + 16) + ""; + } + dialog_seek_progress.setText(thisProgress + "℃"); + } else { + if (deviceType.equals(LIGHT_TAG)) { + if (progress < 20) { + brightNessSb.setProgress(20); + progress = 20; + } + } + dialog_seek_progress.setText(progress + "%"); + thisProgress = progress + ""; + } + + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + Log.i("LightA1Fragment", "onStopTrackingTouch()" + seekBar.getProgress()); + } + }); + super.setContentView(mView); + } + + private void setPopupWindowListener(final int flag) { + listener = null; + listener = new RankingPopupWindow.Listener() { + @Override + public void onPopupWindowDismissListener() { + //消失时的操作 + } + + @Override + public void onItemClickListener(int position) { + //点击Item时的操作 + + } + }; + } + + public void setCancleGone() { + cancleBtn.setVisibility(View.GONE); + line_view.setVisibility(View.GONE); + } + + public AutoSeekBarDialog setContent(String s) { + content.setText(s); + return this; + } + + public AutoSeekBarDialog setSureBtn(String s) { + sureBtn.setText(s); + return this; + } + + public AutoSeekBarDialog setCancleBtn(String s) { + cancleBtn.setText(s); + return this; + } + + public AutoSeekBarDialog setTopTxt(String s) { + topTxt.setText(s); + return this; + } + + public AutoSeekBarDialog setContent(int s) { + content.setText(s); + return this; + } + + public AutoSeekBarDialog setSureBtn(int s) { + sureBtn.setText(s); + return this; + } + + public AutoSeekBarDialog setCancleBtn(int s) { + cancleBtn.setText(s); + return this; + } + + public AutoSeekBarDialog setTopTxt(int s) { + topTxt.setText(s); + return this; + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoTimePickerDialog.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoTimePickerDialog.java new file mode 100644 index 0000000..f0aacef --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoTimePickerDialog.java @@ -0,0 +1,230 @@ +package com.yonsz.z1.version5.auto; + +import android.app.Dialog; +import android.content.Context; +import android.content.res.Resources; +import android.graphics.drawable.ColorDrawable; +import android.os.Build; +import android.os.Bundle; +import android.util.DisplayMetrics; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.NumberPicker; +import android.widget.TextView; +import android.widget.TimePicker; + +import com.yonsz.z1.R; +import com.yonsz.z1.utils.CommonUtils; + +import java.lang.reflect.Field; +import java.util.List; + +/** + * Created by zhxh on 2018/4/28. + */ + +public class AutoTimePickerDialog extends Dialog { + private Context context; + + private String startTime; + private String endTime; + + private int screenWidth; + + private TimePicker timePickerStart; + private TimePicker timePickerEnd; + + private View cancelBtn, submitBtn; + private TextView chooseStart, chooseEnd,nowDay; + + private ConfirmAction confirmAction; + + public AutoTimePickerDialog(Context context) { + + super(context); + + this.context = context; + } + + public AutoTimePickerDialog(Context context, boolean cancelable, OnCancelListener cancelListener) { + super(context, cancelable, cancelListener); + + this.context = context; + } + + public AutoTimePickerDialog(Context context, int theme) { + + super(context, theme); + + this.context = context; + } + + public AutoTimePickerDialog(Context context, String startAndEndTime, ConfirmAction confirmAction) { + super(context, R.style.dialog); + + this.context = context; + + List strings = CommonUtils.getRegEx(startAndEndTime, "\\d+:\\d+"); + if (!CommonUtils.isNull(strings) && strings.size() >= 2) { + this.startTime = CommonUtils.getRegEx(startAndEndTime, "\\d+:\\d+").get(0); + this.endTime = CommonUtils.getRegEx(startAndEndTime, "\\d+:\\d+").get(1); + } + + this.confirmAction = confirmAction; + + DisplayMetrics metrics = context.getResources().getDisplayMetrics(); + screenWidth = metrics.widthPixels - getDensityValue(80, context); + + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + View view = LayoutInflater.from(context).inflate(R.layout.dialog_auto_time_picker, null); + setContentView(view); + getWindow().setLayout(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); + + initView(); + initData(); + setEvent(); + + } + + private void initView() { + + timePickerStart = (TimePicker) findViewById(R.id.timePickerStart); + timePickerEnd = (TimePicker) findViewById(R.id.timePickerEnd); + cancelBtn = findViewById(R.id.cancelBtn); + submitBtn = findViewById(R.id.submitBtn); + chooseStart = findViewById(R.id.tv_start_time); + chooseEnd = findViewById(R.id.tv_end_time); + nowDay = findViewById(R.id.tv_day); + + } + + private void initData() { + + timePickerStart.setIs24HourView(true); + timePickerEnd.setIs24HourView(true); + timePickerStart.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS); + timePickerEnd.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS); + + setTimePickerDividerColor(timePickerStart); + setTimePickerDividerColor(timePickerEnd); + + if (!CommonUtils.isNull(startTime) && !CommonUtils.isNull(endTime)) { + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + timePickerStart.setHour(Integer.parseInt(startTime.substring(0, startTime.indexOf(":")))); + timePickerStart.setMinute(Integer.parseInt(startTime.substring(startTime.indexOf(":") + 1))); + + timePickerEnd.setHour(Integer.parseInt(endTime.substring(0, endTime.indexOf(":")))); + timePickerEnd.setMinute(Integer.parseInt(endTime.substring(endTime.indexOf(":") + 1))); + } else { + timePickerStart.setCurrentHour(Integer.parseInt(startTime.substring(0, startTime.indexOf(":")))); + timePickerStart.setCurrentMinute(Integer.parseInt(startTime.substring(startTime.indexOf(":") + 1))); + + timePickerEnd.setCurrentHour(Integer.parseInt(endTime.substring(0, endTime.indexOf(":")))); + timePickerEnd.setCurrentMinute(Integer.parseInt(endTime.substring(endTime.indexOf(":") + 1))); + } + + } + + timePickerStart.setOnTimeChangedListener((timePicker, hourOfDay, minute) -> { + + String h = hourOfDay < 10 ? "0" + hourOfDay : "" + hourOfDay; + String m = minute < 10 ? "0" + minute : "" + minute; + startTime = h + ":" + m; + chooseStart.setText(startTime); + if(startTime.compareTo(endTime)>0) { + nowDay.setText("明日"); + }else { + nowDay.setText("当日"); + } + }); + timePickerEnd.setOnTimeChangedListener((timePicker, hourOfDay, minute) -> { + String h = hourOfDay < 10 ? "0" + hourOfDay : "" + hourOfDay; + String m = minute < 10 ? "0" + minute : "" + minute; + endTime = h + ":" + m; + chooseEnd.setText(endTime); + if(startTime.compareTo(endTime)>0) { + nowDay.setText("明日"); + }else { + nowDay.setText("当日"); + } + }); + } + + private void setEvent() { + + cancelBtn.setOnClickListener(v -> { + + confirmAction.onLeftClick(); + dismiss(); + }); + + submitBtn.setOnClickListener(v -> { + + confirmAction.onRightClick(startTime + " - " + endTime); + dismiss(); + }); + + this.setCanceledOnTouchOutside(true); + + } + + private void setTimePickerDividerColor(TimePicker timePicker) { + LinearLayout llFirst = (LinearLayout) timePicker.getChildAt(0); + LinearLayout mSpinners = (LinearLayout) llFirst.getChildAt(1); + for (int i = 0; i < mSpinners.getChildCount(); i++) { + if (mSpinners.getChildAt(i) instanceof NumberPicker) { + Field[] pickerFields = NumberPicker.class.getDeclaredFields(); + setPickerMargin((NumberPicker) mSpinners.getChildAt(i)); + for (Field pf : pickerFields) { + if (pf.getName().equals("mSelectionDivider")) { + pf.setAccessible(true); + try { + pf.set(mSpinners.getChildAt(i), new ColorDrawable()); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (Resources.NotFoundException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + break; + } + } + } + } + } + + /** + * 设置picker之间的间距 + */ + private void setPickerMargin(NumberPicker picker) { + LinearLayout.LayoutParams p = (LinearLayout.LayoutParams) picker.getLayoutParams(); + p.setMargins(-getDensityValue(16, context), 0, -getDensityValue(16, context), 0); + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN_MR1) { + p.setMarginStart(-getDensityValue(16, context)); + p.setMarginEnd(-getDensityValue(16, context)); + } + } + + + public interface ConfirmAction { + + void onLeftClick(); + + void onRightClick(String startAndEndTime); + } + + public static int getDensityValue(float value, Context activity) { + + DisplayMetrics displayMetrics = activity.getResources().getDisplayMetrics(); + + return (int) Math.ceil(value * displayMetrics.density); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutoTimeSetActivity.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutoTimeSetActivity.java new file mode 100644 index 0000000..3f05735 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutoTimeSetActivity.java @@ -0,0 +1,245 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.view.View; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.bigkoo.pickerview.TimePickerView; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.entity5.AutomationEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.io.Serializable; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; + +/** + * Created by Administrator on 2018/9/13. + */ + +public class AutoTimeSetActivity extends BaseActivity { + private TitleView mTitleView; + private RelativeLayout modelSelectRl, repeatTimeRl, timeSetRl; + private TextView timeSetTv, onceTimeTv; + private boolean isModify = false; + private String useId; + private TimeSetEntity.DataBean mObjEntity; + private String week = ""; + private LoadingDialog mLoadingDialog; + private String repeatType; + private AutomationEntity.DataBean.TriggerConditionsBean mTriggerConditionsBean = new AutomationEntity.DataBean.TriggerConditionsBean(); + private Date lastDate; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_auto_time_set); + initView(); + } + + private void initView() { + mTitleView = (TitleView) findViewById(R.id.title_time_set); + mTitleView.setHead("定时"); + mTitleView.setHeadFuntionTxt(R.string.ok); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + isModify = true; + if (isModify) { + /*AutomationEntity.DataBean.TriggerConditionsBean triggerConditionsBean = new AutomationEntity.DataBean.TriggerConditionsBean(); + triggerConditionsBean.setTime(timeSetTv.getText().toString()); + triggerConditionsBean.setRepeatType(onceTimeTv.getText().toString());*/ + Intent intent = new Intent(AutoTimeSetActivity.this, AutomationActivity.class); + intent.putExtra("triggerConditionsBean", (Serializable) mTriggerConditionsBean); + setResult(MODEL_REAPEAT, intent); + finish(); + } + } + + @Override + public void onFunctionText() { + + } + }); + + modelSelectRl = (RelativeLayout) findViewById(R.id.rl_model_select); + repeatTimeRl = (RelativeLayout) findViewById(R.id.rl_repeat_time); + onceTimeTv = (TextView) findViewById(R.id.tv_once_time); + timeSetRl = (RelativeLayout) findViewById(R.id.rl_time_set); + timeSetTv = (TextView) findViewById(R.id.tv_time_set); + modelSelectRl.setOnClickListener(this); + repeatTimeRl.setOnClickListener(this); + timeSetRl.setOnClickListener(this); + + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("triggerCondition")) { + mTriggerConditionsBean = (AutomationEntity.DataBean.TriggerConditionsBean) getIntent().getSerializableExtra("triggerCondition"); + setViewDate(mTriggerConditionsBean); + } else { + mTriggerConditionsBean.setRepeatType("2"); + mTriggerConditionsBean.setTime("18:00"); + setViewDate(mTriggerConditionsBean); + } + } + + public void setViewDate(AutomationEntity.DataBean.TriggerConditionsBean mObjEntity) { + timeSetTv.setText(mObjEntity.getTime()); + repeatType = mObjEntity.getRepeatType(); + if (mObjEntity != null) { + switch (repeatType) { + case "1": + String str = ""; + if (mObjEntity.getWeek1().equals("1")) { + str += getString(R.string.Monday); + week += "1"; + } else { + week += "0"; + } + if (mObjEntity.getWeek2().equals("1")) { + str += getString(R.string.Tuesday); + week += "1"; + } else { + week += "0"; + } + if (mObjEntity.getWeek3().equals("1")) { + str += getString(R.string.Wednesday); + week += "1"; + } else { + week += "0"; + } + if (mObjEntity.getWeek4().equals("1")) { + str += getString(R.string.Thursday); + week += "1"; + } else { + week += "0"; + } + if (mObjEntity.getWeek5().equals("1")) { + str += getString(R.string.Friday); + week += "1"; + } else { + week += "0"; + } + if (mObjEntity.getWeek6().equals("1")) { + str += getString(R.string.Saturday); + week += "1"; + } else { + week += "0"; + } + if (mObjEntity.getWeek7().equals("1")) { + str += getString(R.string.Sunday); + week += "1"; + } else { + week += "0"; + } + onceTimeTv.setText(str); + break; + case "2": + onceTimeTv.setText("单次"); + break; + case "3": + onceTimeTv.setText("每天"); + break; + case "4": + onceTimeTv.setText("法定工作日"); + break; + case "5": + onceTimeTv.setText("法定节假日"); + break; + case "6": + onceTimeTv.setText("周一到周五"); + break; + } + } + } + + @Override + public void onClick(View v) { + Intent intent; + switch (v.getId()) { + case R.id.rl_repeat_time: + intent = new Intent(AutoTimeSetActivity.this, RepeatTypeActivity.class); + intent.putExtra("triggerConditionsBean", (Serializable) mTriggerConditionsBean); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.rl_time_set: + setTime(timeSetTv); + break; + } + } + + private void setTime(final TextView textView) { + TimePickerView pvTime = new TimePickerView.Builder(AutoTimeSetActivity.this, new TimePickerView.OnTimeSelectListener() { + @Override + public void onTimeSelect(Date date, View v) {//选中事件回调 + textView.setText(getTime(date)); + mTriggerConditionsBean.setTime(getTime(date)); + // updateOnceTimer(id, "1", textView); + } + })//年月日时分秒 的显示与否,不设置则默认全部显示 + .setType(new boolean[]{false, false, false, true, true, false}) + .setLabel("", "", "", getString(R.string.hour), getString(R.string.Minute), "") + .isCenterLabel(false) + .setDividerColor(Color.DKGRAY) + .setContentSize(21) + .setBackgroundId(0x00FFFFFF) //设置外部遮罩颜色 + .setDecorView(null) + .build(); + if (null != lastDate) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(lastDate); + pvTime.setDate(calendar);//注:根据需求来决定是否使用该方法(一般是精确到秒的情况),此项可以在弹出选择器的时候重新设置当前时间,避免在初始化之后由于时间已经设定,导致选中时间与当前时间不匹配的问题。 + } else { + pvTime.setDate(Calendar.getInstance());//注:根据需求来决定是否使用该方法(一般是精确到秒的情况),此项可以在弹出选择器的时候重新设置当前时间,避免在初始化之后由于时间已经设定,导致选中时间与当前时间不匹配的问题。 + } + pvTime.show(); + } + + private String getTime(Date date) {//可根据需要自行截取数据显示 + lastDate = date; + SimpleDateFormat format = new SimpleDateFormat("HH:mm"); + return format.format(date); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODEL_REAPEAT: + if (data != null && data.getExtras().get("triggerConditionsBean") != null) { + AutomationEntity.DataBean.TriggerConditionsBean triggerConditionsBean = (AutomationEntity.DataBean.TriggerConditionsBean) data.getExtras().getSerializable("triggerConditionsBean"); + mTriggerConditionsBean.setType("timer"); + mTriggerConditionsBean.setRepeatType(triggerConditionsBean.getRepeatType()); + if (triggerConditionsBean.getRepeatType().equals("1")) { + mTriggerConditionsBean.setWeek1(triggerConditionsBean.getWeek1()); + mTriggerConditionsBean.setWeek2(triggerConditionsBean.getWeek2()); + mTriggerConditionsBean.setWeek3(triggerConditionsBean.getWeek3()); + mTriggerConditionsBean.setWeek4(triggerConditionsBean.getWeek4()); + mTriggerConditionsBean.setWeek5(triggerConditionsBean.getWeek5()); + mTriggerConditionsBean.setWeek6(triggerConditionsBean.getWeek6()); + mTriggerConditionsBean.setWeek7(triggerConditionsBean.getWeek7()); + } + setViewDate(mTriggerConditionsBean); + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutomationActivity.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutomationActivity.java new file mode 100644 index 0000000..162f6fa --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutomationActivity.java @@ -0,0 +1,1083 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Intent; +import android.graphics.drawable.BitmapDrawable; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.helper.ItemTouchHelper; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity5.ActionEvent; +import com.yonsz.z1.database.entity.entity5.AutomationEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.ExecConditionEvent; +import com.yonsz.z1.database.entity.entity5.FeedBackTypeEntity; +import com.yonsz.z1.database.entity.entity5.TriggerConditionEvent; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +import static android.support.v7.widget.helper.ItemTouchHelper.ACTION_STATE_DRAG; +import static android.support.v7.widget.helper.ItemTouchHelper.ACTION_STATE_IDLE; +import static com.yonsz.z1.net.Constans.DELETE_DEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.AUTOMATION_INFO; + +/** + * Created by Administrator on 2020/9/17. + */ + +public class AutomationActivity extends BaseActivity { + private TitleView mTitleView; + private RelativeLayout automationNameRl; + private TextView automationNameTv, tv_delete_device; + private RelativeLayout conditionOneAdd, conditionTwoAdd, conditionThreeAdd, conditionTwoMore; + private List feedBackTypeEntityData = new ArrayList<>(); + private View rootview; + private Button saveButton; + private RelativeLayout effectiveTimeRl; + private TextView effectiveTimeTv; + private String autoId = ""; + private List triggerConditions = new ArrayList<>(); + private List execConditions = new ArrayList<>(); + private List actions = new ArrayList<>(); + private RecyclerView conditionOneRc, conditionTwoRc, conditionThreeRc; + private TextView conditionOneNo, conditionTwoNo, conditionThreeNo, conditionTwoTv; + private AutoActionAdapter mAutoActionAdapter; + private AutoExecConditionAdapter mAutoExecConditionAdapter; + private TriggerConditionAdapter mTriggerConditionAdapter; + private AutomationEntity automationEntity; + private LinearLayout conditionTwoLl; + private String conditionSatisfyType = "all"; + private AutomationEntity.DataBean.EffectiveTimeBean effectiveTimeBean; + private LoadingDialog mLoadingDialog; + private ItemTouchHelper itemTouchHelper; + private RecyclerView.ViewHolder lastDragViewHolder; + private CheckBox messageOpenCb; + private int fromPosition; + private int toPosition; + + public void onEventMainThread(TriggerConditionEvent event) { + int posotion = event.getPosotion(); + if (posotion == -1) { + triggerConditions.add(event.getMsg()); + } else { + //修改 + triggerConditions.get(posotion).setValue(event.getMsg().getValue()); + triggerConditions.get(posotion).setSymbol(event.getMsg().getSymbol()); + triggerConditions.get(posotion).setSubType(event.getMsg().getSubType()); + } + if (triggerConditions.size() > 0) { + conditionOneNo.setVisibility(View.GONE); + } else { + conditionOneNo.setVisibility(View.VISIBLE); + } + mTriggerConditionAdapter.notifyDataSetChanged(); + } + + public void onEventMainThread(ExecConditionEvent event) { + int posotion = event.getPosotion(); + if (posotion == -1) { + execConditions.add(event.getMsg()); + } else { + //修改 + execConditions.get(posotion).setValue(event.getMsg().getValue()); + execConditions.get(posotion).setSymbol(event.getMsg().getSymbol()); + execConditions.get(posotion).setSubType(event.getMsg().getSubType()); + } + if (execConditions.size() > 0) { + conditionTwoNo.setVisibility(View.GONE); + } else { + conditionTwoNo.setVisibility(View.VISIBLE); + } + mAutoExecConditionAdapter.notifyDataSetChanged(); + } + + public void onEventMainThread(ActionEvent event) { + int posotion = event.getPosotion(); + if (posotion == -1) { + actions.add(event.getMsg()); + } else { + //修改 + actions.get(posotion).getAction().getOpers().clear(); + actions.get(posotion).getAction().getOpers().addAll(event.getMsg().getAction().getOpers()); + actions.get(posotion).setSubType(event.getMsg().getSubType()); + // actions.get(posotion).getAction().setOpers(event.getMsg().getAction().getOpers()); + } + if (actions.size() > 0) { + conditionThreeNo.setVisibility(View.GONE); + } else { + conditionThreeNo.setVisibility(View.VISIBLE); + } + mAutoActionAdapter.notifyDataSetChanged(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_automation); + initView(); + initListener(); + } + + private void initView() { + if (null != getIntent().getExtras()) { + autoId = getIntent().getExtras().get("autoId").toString(); + } + rootview = LayoutInflater.from(AutomationActivity.this).inflate(R.layout.activity_automation, null); + saveButton = (Button) findViewById(R.id.bt_commit); + conditionTwoLl = (LinearLayout) findViewById(R.id.ll_condition_two); + conditionOneRc = (RecyclerView) findViewById(R.id.rc_condition_one); + conditionTwoRc = (RecyclerView) findViewById(R.id.rc_condition_two); + conditionThreeRc = (RecyclerView) findViewById(R.id.rc_condition_three); + conditionOneNo = (TextView) findViewById(R.id.rc_condition_one_no); + conditionTwoNo = (TextView) findViewById(R.id.rc_condition_two_no); + conditionTwoTv = (TextView) findViewById(R.id.tv_condition_two_add); + conditionThreeNo = (TextView) findViewById(R.id.rc_condition_three_no); + tv_delete_device = (TextView) findViewById(R.id.tv_delete_device); + effectiveTimeRl = (RelativeLayout) findViewById(R.id.rl_effective_time); + effectiveTimeTv = (TextView) findViewById(R.id.tv_effective_time); + automationNameRl = (RelativeLayout) findViewById(R.id.rl_automation_name); + automationNameTv = (TextView) findViewById(R.id.tv_automation_name); + conditionOneAdd = (RelativeLayout) findViewById(R.id.iv_condition_one_add); + conditionTwoAdd = (RelativeLayout) findViewById(R.id.iv_condition_two_add); + conditionThreeAdd = (RelativeLayout) findViewById(R.id.iv_condition_three_add); + conditionTwoMore = (RelativeLayout) findViewById(R.id.iv_condition_two_more); + messageOpenCb = (CheckBox) findViewById(R.id.cb_message_open); + mTitleView = (TitleView) findViewById(R.id.title_automation); + mTitleView.setHead("添加自动化"); + mTitleView.setHeadFuntionTxtAndSise16("编辑"); + mTitleView.setHeadFuntionTxtColor(false); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + if (mTitleView.getHeadFuntionTxt().equals("编辑")) { + mTitleView.setHeadFuntionTxtAndSise16("完成"); + saveButton.setVisibility(View.GONE); + if (!autoId.isEmpty()) { + tv_delete_device.setVisibility(View.VISIBLE); + } + mAutoExecConditionAdapter.setIsEdit(true); + mTriggerConditionAdapter.setIsEdit(true); + mAutoActionAdapter.setIsEdit(true); + } else { + mTitleView.setHeadFuntionTxtAndSise16("编辑"); + saveButton.setVisibility(View.VISIBLE); + tv_delete_device.setVisibility(View.GONE); + mAutoExecConditionAdapter.setIsEdit(false); + mTriggerConditionAdapter.setIsEdit(false); + mAutoActionAdapter.setIsEdit(false); + } + } + + @Override + public void onFunctionText() { + + } + }); + if (!autoId.isEmpty()) { + getAutomationInfo(); + } else { + effectiveTimeBean = new AutomationEntity.DataBean.EffectiveTimeBean(); + effectiveTimeBean.setRepeatType("3"); + effectiveTimeBean.setTime("00:00-23:59"); + } + + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(getApplicationContext()); + manager.setOrientation(LinearLayoutManager.VERTICAL); + conditionOneRc.setLayoutManager(manager); + mTriggerConditionAdapter = new TriggerConditionAdapter(getApplicationContext(), triggerConditions, 1); + conditionOneRc.setAdapter(mTriggerConditionAdapter); + + RecyclerViewNoBugLinearLayoutManager manager1 = new RecyclerViewNoBugLinearLayoutManager(getApplicationContext()); + manager1.setOrientation(LinearLayoutManager.VERTICAL); + conditionTwoRc.setLayoutManager(manager1); + mAutoExecConditionAdapter = new AutoExecConditionAdapter(getApplicationContext(), execConditions, 1); + conditionTwoRc.setAdapter(mAutoExecConditionAdapter); + + RecyclerViewNoBugLinearLayoutManager manager2 = new RecyclerViewNoBugLinearLayoutManager(getApplicationContext()); + manager2.setOrientation(LinearLayoutManager.VERTICAL); + conditionThreeRc.setLayoutManager(manager2); + mAutoActionAdapter = new AutoActionAdapter(getApplicationContext(), actions, 1); + conditionThreeRc.setAdapter(mAutoActionAdapter); + setCanDragAuto(); + + mTriggerConditionAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + Intent intent; + + @Override + public void onClick(View view, int position, int i) { + if (i == -1) { + triggerConditions.remove(position); + mTriggerConditionAdapter.notifyDataSetChanged(); + } else { + if (triggerConditions.get(position).getType().equals("timer")) { + intent = new Intent(AutomationActivity.this, AutoTimeSetActivity.class); + intent.putExtra("isAdd", false); + intent.putExtra("triggerCondition", (Serializable) triggerConditions.get(position)); + startActivityForResult(intent, MODEL_REAPEAT); + } else { + intent = new Intent(AutomationActivity.this, AutoDeviceFunctionActivity.class); + if (position < triggerConditions.size()) { + intent.putExtra("gatewayId", triggerConditions.get(position).getGatewayId()); + intent.putExtra("deviceType", triggerConditions.get(position).getDeviceType()); + intent.putExtra("deviceId", triggerConditions.get(position).getDeviceId()); + intent.putExtra("deviceModel", triggerConditions.get(position).getDeviceModel()); + intent.putExtra("deviceName", triggerConditions.get(position).getDeviceName()); + intent.putExtra("subType", triggerConditions.get(position).getSubType()); + intent.putExtra("operName", triggerConditions.get(position).getName()); + intent.putExtra("triggerCondition", (Serializable) triggerConditions.get(position)); + } + intent.putExtra("supportType", "triggerCondition"); + intent.putExtra("position", position); + intent.putExtra("isAdd", false); + startActivity(intent); + } + } + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + + mAutoExecConditionAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + Intent intent; + + @Override + public void onClick(View view, int position, int i) { + if (i == -1) { + execConditions.remove(position); + mAutoExecConditionAdapter.notifyDataSetChanged(); + } else { + if (execConditions.get(position).getType().equals("timer")) { + + } else { + intent = new Intent(AutomationActivity.this, AutoDeviceFunctionActivity.class); + if (position < execConditions.size()) { + intent.putExtra("gatewayId", execConditions.get(position).getGatewayId()); + intent.putExtra("deviceType", execConditions.get(position).getDeviceType()); + intent.putExtra("deviceId", execConditions.get(position).getDeviceId()); + intent.putExtra("deviceModel", execConditions.get(position).getDeviceModel()); + intent.putExtra("deviceName", execConditions.get(position).getDeviceName()); + intent.putExtra("operName", execConditions.get(position).getName()); + intent.putExtra("execCondition", (Serializable) execConditions.get(position)); + } + if (position < triggerConditions.size()) { + intent.putExtra("subType", triggerConditions.get(position).getSubType()); + } + intent.putExtra("supportType", "execCondition"); + intent.putExtra("position", position); + intent.putExtra("isAdd", false); + startActivity(intent); + } + } + + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + + + mAutoActionAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + Intent intent; + + @Override + public void onClick(View view, int position, int i) { + if (i == -1) { + actions.remove(position); + mAutoActionAdapter.notifyDataSetChanged(); + } else { + if (actions.get(position).getType().equals("delay")) { + intent = new Intent(AutomationActivity.this, DelayTimeActivity.class); + intent.putExtra("supportType", "action"); + intent.putExtra("isAdd", false); + intent.putExtra("id", position + ""); + startActivityForResult(intent, MODEL_REAPEAT); + } else if (actions.get(position).getType().equals("scene")) { + + } else { + intent = new Intent(AutomationActivity.this, AutoDeviceFunctionActivity.class); + if (position < actions.size()) { + intent.putExtra("gatewayId", actions.get(position).getAction().getGatewayId()); + intent.putExtra("deviceType", actions.get(position).getAction().getDeviceType()); + intent.putExtra("deviceId", actions.get(position).getAction().getDeviceId()); + intent.putExtra("deviceModel", actions.get(position).getAction().getDeviceModel()); + intent.putExtra("deviceName", actions.get(position).getAction().getDeviceName()); + intent.putExtra("operName", actions.get(position).getAction().getName()); + intent.putExtra("action", (Serializable) actions.get(position)); + } + if (position < triggerConditions.size()) { + intent.putExtra("subType", triggerConditions.get(position).getSubType()); + } + intent.putExtra("supportType", "action"); + intent.putExtra("position", position); + intent.putExtra("isAdd", false); + startActivity(intent); + } + } + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + /*if (position != actions.size()) { + itemTouchHelper.startDrag(viewHolder); + }*/ + } + }); + } + + private void setCanDragAuto() { + itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.Callback() { + @Override + public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { + Log.i("getMovementFlags", "getMovementFlags: "); + int dragFlags; + int swipeFlags; + if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { + dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | + ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; + swipeFlags = 0; + } else { + dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN; + swipeFlags = 0; + } + return makeMovementFlags(dragFlags, swipeFlags); + } + + @Override + public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { + fromPosition = viewHolder.getAdapterPosition(); + toPosition = target.getAdapterPosition(); + Log.i("onMove", "onMove: " + fromPosition + "===" + toPosition + "===" + actions.size()); + if (fromPosition == actions.size() || toPosition == actions.size()) { + return false; + } + if (fromPosition < toPosition) { + for (int i = fromPosition; i < toPosition; i++) { + Collections.swap(actions, i, i + 1); + } + } else { + for (int i = fromPosition; i > toPosition; i--) { + Collections.swap(actions, i, i - 1); + } + } + mAutoActionAdapter.notifyItemMoved(fromPosition, toPosition); + // modelAdapter.notifyDataSetChanged(); + return true; + } + + @Override + public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { + Log.i("onSwiped", "onSwiped: "); + + } + + @Override + public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { + super.onSelectedChanged(viewHolder, actionState); + if (viewHolder != null && actionState == ACTION_STATE_DRAG) { + lastDragViewHolder = viewHolder; + } + //ACTION_STATE_IDLE就是松开了,把大小改为原状 + if (lastDragViewHolder != null && actionState == ACTION_STATE_IDLE) { + lastDragViewHolder = null; + // sortModel(); + } + } + + @Override + public boolean isLongPressDragEnabled() { + return false; + } + }); + itemTouchHelper.attachToRecyclerView(conditionThreeRc); + } + + private void initListener() { + automationNameRl.setOnClickListener(this); + conditionOneAdd.setOnClickListener(this); + conditionTwoAdd.setOnClickListener(this); + conditionThreeAdd.setOnClickListener(this); + conditionTwoMore.setOnClickListener(this); + saveButton.setOnClickListener(this); + effectiveTimeRl.setOnClickListener(this); + tv_delete_device.setOnClickListener(this); + conditionTwoLl.setOnClickListener(this); + messageOpenCb.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.rl_automation_name: + RenameNameDialog dialog1 = new RenameNameDialog(AutomationActivity.this, new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + automationNameTv.setText(positioName.trim()); + break; + } + } + }); + dialog1.setHintName(""); + dialog1.setOldName(automationNameTv.getText().toString()); + dialog1.setContent("编辑名称"); + dialog1.setMaxEms(10); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.save); + dialog1.setCancelable(false); + dialog1.show(); + break; + case R.id.iv_condition_one_add: + feedBackTypeEntityData.clear(); + FeedBackTypeEntity.DataBean dataBean1 = new FeedBackTypeEntity.DataBean(); + dataBean1.setName("定时"); + dataBean1.setType("1"); + FeedBackTypeEntity.DataBean dataBean2 = new FeedBackTypeEntity.DataBean(); + dataBean2.setName("设备状态变化时"); + dataBean2.setType("2"); + feedBackTypeEntityData.add(dataBean1); + feedBackTypeEntityData.add(dataBean2); + AutomationPopupWindow popupWindow = new AutomationPopupWindow(this, feedBackTypeEntityData, new AutomationPopupWindow.OnCompleteListener() { + @Override + public void onComplete(FeedBackTypeEntity.DataBean condition) { + Intent intent; + switch (condition.getType()) { + case "1": + intent = new Intent(AutomationActivity.this, AutoTimeSetActivity.class); + intent.putExtra("isAdd", true); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case "2"://选设备 + intent = new Intent(AutomationActivity.this, AutoDeviceActivity.class); + intent.putExtra("supportType", "triggerCondition"); + startActivityForResult(intent, MODEL_REAPEAT); + break; + } + } + }); + popupWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0); + break; + case R.id.iv_condition_two_add: + feedBackTypeEntityData.clear(); + FeedBackTypeEntity.DataBean dataBean3 = new FeedBackTypeEntity.DataBean(); + dataBean3.setName("设备处于指定状态时"); + dataBean3.setType("3"); + feedBackTypeEntityData.add(dataBean3); + AutomationPopupWindow popupWindow1 = new AutomationPopupWindow(this, feedBackTypeEntityData, new AutomationPopupWindow.OnCompleteListener() { + @Override + public void onComplete(FeedBackTypeEntity.DataBean condition) { + //选设备 + Intent intent = new Intent(AutomationActivity.this, AutoDeviceActivity.class); + intent.putExtra("supportType", "execCondition"); + startActivityForResult(intent, MODEL_REAPEAT); + } + }); + popupWindow1.setHead("添加执行条件"); + popupWindow1.showAtLocation(rootview, Gravity.BOTTOM, 0, 0); + break; + case R.id.iv_condition_two_more: + + break; + case R.id.iv_condition_three_add: + feedBackTypeEntityData.clear(); + FeedBackTypeEntity.DataBean dataBean4 = new FeedBackTypeEntity.DataBean(); + dataBean4.setName("选择执行设备功能"); + dataBean4.setType("4"); + feedBackTypeEntityData.add(dataBean4); + /*FeedBackTypeEntity.DataBean dataBean5 = new FeedBackTypeEntity.DataBean(); + dataBean5.setName("选择执行场景模式"); + dataBean5.setType("5"); + feedBackTypeEntityData.add(dataBean5);*/ + FeedBackTypeEntity.DataBean dataBean6 = new FeedBackTypeEntity.DataBean(); + dataBean6.setName("执行动作间隔时间"); + dataBean6.setType("6"); + feedBackTypeEntityData.add(dataBean6); + AutomationPopupWindow popupWindow2 = new AutomationPopupWindow(this, feedBackTypeEntityData, new AutomationPopupWindow.OnCompleteListener() { + @Override + public void onComplete(FeedBackTypeEntity.DataBean condition) { + Intent intent; + switch (condition.getType()) { + case "4"://选设备 + intent = new Intent(AutomationActivity.this, AutoDeviceActivity.class); + intent.putExtra("supportType", "action"); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case "5": + + break; + case "6"://执行间隔时间 + intent = new Intent(AutomationActivity.this, DelayTimeActivity.class); + intent.putExtra("supportType", "action"); + intent.putExtra("isAdd", true); + startActivityForResult(intent, MODEL_REAPEAT); + break; + } + } + }); + popupWindow2.setHead("执行动作"); + popupWindow2.showAtLocation(rootview, Gravity.BOTTOM, 0, 0); + break; + case R.id.bt_commit: + automationAdd(); + break; + case R.id.rl_effective_time: + Intent intent = new Intent(AutomationActivity.this, EffectiveTimeActivity.class); + intent.putExtra("supportType", "action"); + if (null != automationEntity && null != automationEntity.getData() && null != automationEntity.getData().getEffectiveTime()) { + intent.putExtra("mEffectiveTimeBean", (Serializable) effectiveTimeBean); + } + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.tv_delete_device: + ConfirmDialog dialog = new ConfirmDialog(AutomationActivity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (!autoId.isEmpty()) { + automationDelete(autoId); + } + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.ll_condition_two: + DeviceBottomDialog dialog2 = new DeviceBottomDialog(this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //无条件 + conditionSatisfyType = "none"; + break; + case 2: + conditionSatisfyType = "any"; + break; + case 3: + conditionSatisfyType = "all"; + break; + case 4: + break; + } + setConditionSatisfyType(conditionSatisfyType); + } + }); + dialog2.setTop("且满足所有条件时"); + dialog2.setContent("且满足任一条件时"); + dialog2.setLearn(); + dialog2.setModifyName(); + dialog2.setOtherNameGone(); + dialog2.setBottom("无需选择判断条件"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + break; + case R.id.cb_message_open: + if (autoId.isEmpty()) { + + } else { + if (messageOpenCb.isChecked()) { + automationsetNotify("true"); + } else { + automationsetNotify("false"); + } + } + break; + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + private void automationAdd() { + AutomationEntity.DataBean automation = new AutomationEntity.DataBean(); + if (automationNameTv.getText().toString().isEmpty()) { + ToastUtil.show(this, "请输入自动化场景名称"); + return; + } + automation.setName(automationNameTv.getText().toString()); + automation.setHouseId(SharedpreferencesUtil.get(Constans.HOUSEID, "")); + automation.setOpen(true); + automation.setConditionSatisfyType(conditionSatisfyType); + for (int i = 0; i < actions.size(); i++) { + // BeanUtil.copyProperties(actions.get(i).getAction(), actions.get(i), true); + AutomationEntity.DataBean.ActionsBean.ActionBean action = actions.get(i).getAction(); + List opers = action.getOpers(); + List opersBeans = new ArrayList<>(); + for (int j = 0; j < opers.size(); j++) { + AutomationEntity.DataBean.ActionsBean.OpersBean opersBean = new AutomationEntity.DataBean.ActionsBean.OpersBean(); + opersBean.setName(opers.get(j).getName()); + opersBean.setValue(opers.get(j).getValue()); + opersBeans.add(opersBean); + } + actions.get(i).setOpers(opersBeans); + actions.get(i).setDeviceId(action.getDeviceId()); + actions.get(i).setDeviceModel(action.getDeviceModel()); + actions.get(i).setDeviceType(action.getDeviceType()); + actions.get(i).setGatewayId(action.getGatewayId()); + actions.get(i).setDeviceName(action.getDeviceName()); + actions.get(i).setDelay(action.getDelay()); + // actions.get(i).setSort(i + 1); + } + if (null != automationEntity && null != automationEntity.getData() && !automationEntity.getData().getId().isEmpty()) { + automation.setId(automationEntity.getData().getId()); + } else { + automation.setId(""); + } + automation.setEffectiveTime(effectiveTimeBean); + automation.setExecConditions(execConditions); + automation.setTriggerConditions(triggerConditions); + automation.setActions(actions); + if (automation.getTriggerConditions().size() == 0) { + ToastUtil.show(this, "请添加触发条件!"); + return; + } + if (messageOpenCb.isChecked()) { + automation.setIsNotify("true"); + } else { + automation.setIsNotify("false"); + } + /*if (automation.getActions().size() == 0) { + ToastUtil.show(this, "请添加执行动作!"); + return; + }*/ + initLoadDialog(); + String body = JSONObject.toJSONString(automation); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + util.requestPostByAsyBody(NetWorkUrl.AUTOMATION_ADD, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("automationAdd", "ShareDeviceActivity onSuccess()" + respone); + AutomationEntity obj = JSON.parseObject(respone, AutomationEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void automationDelete(String autoId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", autoId); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + util.requestPostByAsynewApi(NetWorkUrl.AUTOMATION_DELETE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("automationDelete", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_DEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + automationEntity = (AutomationEntity) msg.obj; + automationNameTv.setText(automationEntity.getData().getName()); + mTitleView.setHead(automationEntity.getData().getName()); + setTriggerConditions(automationEntity); + setExecConditions(automationEntity); + setActions(automationEntity); + if (null != automationEntity.getData().getEffectiveTime()) { + effectiveTimeBean = automationEntity.getData().getEffectiveTime(); + setEffctiveTime(); + } + conditionSatisfyType = automationEntity.getData().getConditionSatisfyType(); + setConditionSatisfyType(conditionSatisfyType); + String isNotify = automationEntity.getData().getIsNotify(); + if (isNotify.equals("true")) { + messageOpenCb.setChecked(true); + } else { + messageOpenCb.setChecked(false); + } + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + case UPDATE_MODEL_TIME_FAIL: + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + ToastUtil.show(AutomationActivity.this, (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + mTitleView.setHead(automationNameTv.getText().toString()); + ToastUtil.show(AutomationActivity.this, "保存成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + break; + case DELETE_DEVICE_SUCCESS: + finish(); + break; + } + } + + private void setConditionSatisfyType(String conditionSatisfyType) { + switch (conditionSatisfyType) { + case "none": + //无条件 + conditionTwoTv.setText("无需选择判断条件"); + conditionTwoRc.setVisibility(View.GONE); + conditionTwoNo.setVisibility(View.GONE); + break; + case "any": + conditionTwoTv.setText("且满足任一条件时"); + conditionTwoRc.setVisibility(View.VISIBLE); + if (execConditions.size() > 0) { + conditionTwoNo.setVisibility(View.GONE); + } else { + conditionTwoNo.setVisibility(View.VISIBLE); + } + break; + case "all": + conditionTwoTv.setText("且满足所有条件时"); + conditionTwoRc.setVisibility(View.VISIBLE); + if (execConditions.size() > 0) { + conditionTwoNo.setVisibility(View.GONE); + } else { + conditionTwoNo.setVisibility(View.VISIBLE); + } + break; + } + } + + private void setTriggerConditions(AutomationEntity automationEntity) { + triggerConditions.clear(); + triggerConditions.addAll(automationEntity.getData().getTriggerConditions()); + if (triggerConditions.size() > 0) { + conditionOneNo.setVisibility(View.GONE); + } else { + conditionOneNo.setVisibility(View.VISIBLE); + } + mTriggerConditionAdapter.notifyDataSetChanged(); + } + + private void setExecConditions(AutomationEntity automationEntity) { + execConditions.clear(); + execConditions.addAll(automationEntity.getData().getExecConditions()); + if (execConditions.size() > 0) { + conditionTwoNo.setVisibility(View.GONE); + } else { + conditionTwoNo.setVisibility(View.VISIBLE); + } + mAutoExecConditionAdapter.notifyDataSetChanged(); + } + + private void setActions(AutomationEntity automationEntity) { + actions.clear(); + actions.addAll(automationEntity.getData().getActions()); + if (actions.size() > 0) { + conditionThreeNo.setVisibility(View.GONE); + } else { + conditionThreeNo.setVisibility(View.VISIBLE); + } + mAutoActionAdapter.notifyDataSetChanged(); + } + + private void setEffctiveTime() { + // repeatType:1:自定义,2:一次,3:每天,4:法定工作日,5:法定节假日,6:周一到周五 + String str = ""; + switch (effectiveTimeBean.getRepeatType()) { + case "1": + if (effectiveTimeBean.getWeek1() != null) { + if (effectiveTimeBean.getWeek1().equals("1")) { + str += "周一"; + } + if (effectiveTimeBean.getWeek2().equals("1")) { + str += "周二"; + } + if (effectiveTimeBean.getWeek3().equals("1")) { + str += "周三"; + } + if (effectiveTimeBean.getWeek4().equals("1")) { + str += "周四"; + } + if (effectiveTimeBean.getWeek5().equals("1")) { + str += "周五"; + } + if (effectiveTimeBean.getWeek6().equals("1")) { + str += "周六"; + } + if (effectiveTimeBean.getWeek7().equals("1")) { + str += "周天"; + } + } + effectiveTimeTv.setText(str + ":" + effectiveTimeBean.getTime()); + break; + case "2": + effectiveTimeTv.setText(effectiveTimeBean.getTime()); + break; + case "3": + effectiveTimeTv.setText("每天" + effectiveTimeBean.getTime()); + break; + case "4": + effectiveTimeTv.setText("法定工作日:" + effectiveTimeBean.getTime()); + break; + case "5": + effectiveTimeTv.setText("法定节假日:" + effectiveTimeBean.getTime()); + break; + case "6": + effectiveTimeTv.setText("周一到周五:" + effectiveTimeBean.getTime()); + break; + } + } + + private void automationsetNotify(String open) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", autoId); + map.put("isOpen", open); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + util.requestPostByAsynewApi(NetWorkUrl.AUTOMATION_SETNOTIFY, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("automationsetNotify", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void getAutomationInfo() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", autoId); + netWorkUtil.requestGetByAsy(AUTOMATION_INFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getAutomationInfo", respone); + AutomationEntity obj = JSON.parseObject(respone, AutomationEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODEL_REAPEAT: + if (data != null && data.getExtras().get("triggerConditionsBean") != null) { + AutomationEntity.DataBean.TriggerConditionsBean triggerConditionsBean = (AutomationEntity.DataBean.TriggerConditionsBean) data.getExtras().getSerializable("triggerConditionsBean"); + triggerConditionsBean.setType("timer"); + if (!triggerConditions.contains(triggerConditionsBean)) { + triggerConditions.add(triggerConditionsBean); + } else { + for (int i = 0; i < triggerConditions.size(); i++) { + if (triggerConditions.get(i).getId().equals(triggerConditionsBean.getId())) { + triggerConditions.get(i).setRepeatType(triggerConditionsBean.getRepeatType()); + triggerConditions.get(i).setTime(triggerConditionsBean.getTime()); + if (triggerConditionsBean.getRepeatType().equals("1")) { + triggerConditions.get(i).setWeek1(triggerConditionsBean.getWeek1()); + triggerConditions.get(i).setWeek2(triggerConditionsBean.getWeek2()); + triggerConditions.get(i).setWeek3(triggerConditionsBean.getWeek3()); + triggerConditions.get(i).setWeek4(triggerConditionsBean.getWeek4()); + triggerConditions.get(i).setWeek5(triggerConditionsBean.getWeek5()); + triggerConditions.get(i).setWeek6(triggerConditionsBean.getWeek6()); + triggerConditions.get(i).setWeek7(triggerConditionsBean.getWeek7()); + } + } + } + } + if (triggerConditions.size() > 0) { + conditionOneNo.setVisibility(View.GONE); + } else { + conditionOneNo.setVisibility(View.VISIBLE); + } + mTriggerConditionAdapter.notifyDataSetChanged(); + } + if (data != null && data.getExtras().get("mEffectiveTimeBean") != null) { + AutomationEntity.DataBean.EffectiveTimeBean bean = (AutomationEntity.DataBean.EffectiveTimeBean) data.getExtras().getSerializable("mEffectiveTimeBean"); + effectiveTimeBean.setRepeatType(bean.getRepeatType()); + effectiveTimeBean.setTime(bean.getTime()); + if (effectiveTimeBean.getRepeatType().equals("1")) { + effectiveTimeBean.setWeek1(bean.getWeek1()); + effectiveTimeBean.setWeek2(bean.getWeek2()); + effectiveTimeBean.setWeek3(bean.getWeek3()); + effectiveTimeBean.setWeek4(bean.getWeek4()); + effectiveTimeBean.setWeek5(bean.getWeek5()); + effectiveTimeBean.setWeek6(bean.getWeek6()); + effectiveTimeBean.setWeek7(bean.getWeek7()); + } + setEffctiveTime(); + } + if (data != null && data.getExtras().get("delayTime") != null) { + String delayTime = (String) data.getExtras().get("delayTime"); + boolean isAdd = (Boolean) data.getExtras().get("isAdd"); + AutomationEntity.DataBean.ActionsBean actionsBean = new AutomationEntity.DataBean.ActionsBean(); + AutomationEntity.DataBean.ActionsBean.ActionBean bean = new AutomationEntity.DataBean.ActionsBean.ActionBean(); + bean.setDelay((Integer.parseInt(delayTime.substring(0, delayTime.length() - 1)) * 1000) + ""); + actionsBean.setType("delay"); + actionsBean.setAction(bean); + if (isAdd) { + actions.add(actionsBean); + } else { + for (int i = 0; i < actions.size(); i++) { + if (String.valueOf(i).equals(data.getExtras().get("id").toString())) { + actions.get(i).setAction(bean); + } + } + /* if (actions.contains(actionsBean)) { + + } else { + actions.add(actionsBean); + }*/ + } + if (actions.size() > 0) { + conditionThreeNo.setVisibility(View.GONE); + } else { + conditionThreeNo.setVisibility(View.VISIBLE); + } + mAutoActionAdapter.notifyDataSetChanged(); + } + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutomationPopAdapter.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutomationPopAdapter.java new file mode 100644 index 0000000..2c5fc0c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutomationPopAdapter.java @@ -0,0 +1,105 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.FeedBackTypeEntity; +import com.yonsz.z1.listener.OnRecyclerClickListener; + +import java.util.List; + +/** + * Created by Administrator on 2018/9/12. + */ + +public class AutomationPopAdapter extends RecyclerView.Adapter { + private List mObjEntity; + private Context mContext; + private OnRecyclerClickListener mOnItemClickListener; + private int nowPosition = 100; + + public AutomationPopAdapter(Context mContext, List mObjEntity) { + super(); + this.mContext = mContext; + this.mObjEntity = mObjEntity; + } + + public void setNowPosition(int position) { + nowPosition = position; + notifyDataSetChanged(); + } + + @Override + public AutomationPopAdapter.MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_automation, + parent, false); + return new AutomationPopAdapter.MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(AutomationPopAdapter.MessageViewHolder holder, int position) { + holder.setViews(position); + } + + @Override + public int getItemCount() { + return mObjEntity == null ? 0 : mObjEntity.size(); + } + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private TextView typeName; + private ImageView conditionIcon; + + public MessageViewHolder(View view) { + super(view); + typeName = (TextView) view.findViewById(R.id.tv_type_name); + conditionIcon = (ImageView) view.findViewById(R.id.iv_condition_icon); + } + + public void setViews(final int position) { + + typeName.setText(mObjEntity.get(position).getName()); + switch (mObjEntity.get(position).getType()) { + case "1": + conditionIcon.setImageResource(R.drawable.icon_automation_timing); + break; + case "2": + conditionIcon.setImageResource(R.drawable.icon_automation_device); + break; + case "3": + conditionIcon.setImageResource(R.drawable.icon_automation_device); + break; + case "4": + conditionIcon.setImageResource(R.drawable.icon_automation_device); + break; + case "5": + conditionIcon.setImageResource(R.drawable.icon_automation_scene); + break; + case "6": + conditionIcon.setImageResource(R.drawable.icon_automation_interval); + break; + } + + typeName.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + nowPosition = position; + notifyDataSetChanged(); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/AutomationPopupWindow.java b/app/src/main/java/com/yonsz/z1/version5/auto/AutomationPopupWindow.java new file mode 100644 index 0000000..19d0d15 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/AutomationPopupWindow.java @@ -0,0 +1,124 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.graphics.drawable.ColorDrawable; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CompoundButton; +import android.widget.PopupWindow; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.FeedBackTypeEntity; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; + +import java.util.List; + +public class AutomationPopupWindow extends PopupWindow implements CompoundButton.OnCheckedChangeListener, View.OnClickListener { + + private Context context; + private View contentView; + private FeedBackTypeEntity.DataBean condition; + private OnCompleteListener onCompleteListener; + private RecyclerView mRecyclerView; + private List mFeedBackTypeEntities; + private AutomationPopAdapter mChooseA1Adapter; + private TextView mHead; + private RelativeLayout rl_bg; + + public AutomationPopupWindow(Context context, List mFeedBackTypeEntities, OnCompleteListener onCompleteListener) { + super(context); + this.context = context; + this.onCompleteListener = onCompleteListener; + this.mFeedBackTypeEntities = mFeedBackTypeEntities; + init(); + } + + private void init() { + contentView = LayoutInflater.from(context).inflate(R.layout.pop_automation, null); + mHead = contentView.findViewById(R.id.tv_position_cancel); + rl_bg = contentView.findViewById(R.id.rl_bg); + + mRecyclerView = contentView.findViewById(R.id.recyclerView); + mChooseA1Adapter = new AutomationPopAdapter(context, mFeedBackTypeEntities); + RecyclerViewNoBugLinearLayoutManager manage1 = new RecyclerViewNoBugLinearLayoutManager(context); + mRecyclerView.setHasFixedSize(true); + mRecyclerView.setLayoutManager(manage1); + mRecyclerView.setAdapter(mChooseA1Adapter); + + + setContentView(contentView); + this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT); + this.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); + // 设置可触 + this.setOutsideTouchable(true); + this.setFocusable(true); + + /* this.setTouchInterceptor(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_OUTSIDE) { + dismiss(); + return true; + } + return false; + } + });*/ + + ColorDrawable dw = new ColorDrawable(0x60000000); + this.setBackgroundDrawable(null); + + rl_bg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + dismiss(); + } + }); + mChooseA1Adapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int position) { + if (onCompleteListener != null) { + onCompleteListener.onComplete(mFeedBackTypeEntities.get(position)); + } + dismiss(); + } + }); + } + + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_position_sure: //完成 + if (onCompleteListener != null) { + onCompleteListener.onComplete(condition); + } + dismiss(); + break; + /*case R.id.tv_position_cancel: //重置 + dismiss(); + break;*/ + } + } + + public void setOnCompleteListener(OnCompleteListener onCompleteListener) { + this.onCompleteListener = onCompleteListener; + } + + public interface OnCompleteListener { + void onComplete(FeedBackTypeEntity.DataBean condition); + } + + public void setHead(String text) { + mHead.setText(text); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/DelayTimeActivity.java b/app/src/main/java/com/yonsz/z1/version5/auto/DelayTimeActivity.java new file mode 100644 index 0000000..7112687 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/DelayTimeActivity.java @@ -0,0 +1,106 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.view.View; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.bigkoo.pickerview.OptionsPickerView; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.List; + +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; + +/** + * Created by Administrator on 2020/9/21. + */ + +public class DelayTimeActivity extends BaseActivity { + private static final List options1Items = new ArrayList<>(); + private TitleView mTitleView; + private String delayTime = ""; + private RelativeLayout delayTimeRl; + private TextView delayTimeTv; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_delay_time); + initView(); + } + + private void initView() { + delayTimeRl = (RelativeLayout) findViewById(R.id.rl_effective_time); + delayTimeRl.setOnClickListener(this); + delayTimeTv = (TextView) findViewById(R.id.tv_effective_time); + mTitleView = (TitleView) findViewById(R.id.title_delay_time); + mTitleView.setHead("执行动作间隔时间"); + mTitleView.setHeadFuntionTxtAndSise16("确定"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + Intent intent = new Intent(DelayTimeActivity.this, AutomationActivity.class); + intent.putExtra("delayTime", delayTimeTv.getText().toString()); + intent.putExtra("isAdd", (boolean) getIntent().getExtras().get("isAdd")); + if (null != getIntent().getExtras().get("id")) { + intent.putExtra("id", (String) getIntent().getExtras().get("id")); + } + setResult(MODEL_REAPEAT, intent); + finish(); + } + + @Override + public void onFunctionText() { + + } + }); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.rl_effective_time: + setTime(delayTimeTv); + break; + } + } + + private void setTime(final TextView textView) { + options1Items.clear(); + for (int i = 1; i < 61; i++) { + options1Items.add(i + ""); + } + OptionsPickerView pvOptions = new OptionsPickerView.Builder(DelayTimeActivity.this, new OptionsPickerView.OnOptionsSelectListener() { + @Override + public void onOptionsSelect(int options1, int option2, int options3, View v) { + //返回的分别是三个级别的选中位置 + String s = options1Items.get(options1); + textView.setVisibility(View.VISIBLE); + textView.setText(s + "秒"); + } + }) + + .setTextColorCenter(Color.BLACK)//设置选中项的颜色 + .build(); + pvOptions.setPicker(options1Items); + pvOptions.show(); + } + + @Override + public void callBackUiThread(Message msg) { + + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/EffectiveTimeActivity.java b/app/src/main/java/com/yonsz/z1/version5/auto/EffectiveTimeActivity.java new file mode 100644 index 0000000..d4d2c6b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/EffectiveTimeActivity.java @@ -0,0 +1,301 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.RequiresApi; +import android.support.v4.app.FragmentActivity; +import android.view.Gravity; +import android.view.View; +import android.widget.CheckBox; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AutomationEntity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.io.Serializable; +import java.lang.ref.WeakReference; + +import static com.yonsz.z1.net.Constans.CHILD_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.VOLUME_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.VOLUME_SWITCH_FAIL; + +/** + * Created by Administrator on 2017/10/10. + */ +public class EffectiveTimeActivity extends FragmentActivity implements View.OnClickListener { + private TitleView mTitleView; + private RelativeLayout setTimeLayout, repeatTimeRl; + private LoadingDialog mLoadingDialog; + private UIHandle mHandler; + private TextView tvPushTime, onceTimeTv; + private CheckBox allDayCb, lightDayCb, nightCb, defaultCb; + private AutomationEntity.DataBean.EffectiveTimeBean mEffectiveTimeBean = new AutomationEntity.DataBean.EffectiveTimeBean(); + private String pushTime = "00:00 - 23:59"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mHandler = new UIHandle(this); + setContentView(R.layout.activity_effective_time); + initView(); + initListener(); + } + + private void initView() { + setTimeLayout = (RelativeLayout) findViewById(R.id.setTimeLayout); + tvPushTime = (TextView) findViewById(R.id.tvPushTime); + allDayCb = (CheckBox) findViewById(R.id.cb_all_day); + lightDayCb = (CheckBox) findViewById(R.id.cb_light_day); + nightCb = (CheckBox) findViewById(R.id.cb_night); + defaultCb = (CheckBox) findViewById(R.id.cb_default); + repeatTimeRl = (RelativeLayout) findViewById(R.id.rl_repeat_time); + onceTimeTv = (TextView) findViewById(R.id.tv_once_time); + mTitleView = (TitleView) findViewById(R.id.title_device_voice); + mTitleView.setHead("生效时段"); + mTitleView.setHeadFuntionTxtAndSise16("确定"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + Intent intent = new Intent(EffectiveTimeActivity.this, AutomationActivity.class); + mEffectiveTimeBean.setTime(pushTime); + intent.putExtra("mEffectiveTimeBean", (Serializable) mEffectiveTimeBean); + setResult(MODEL_REAPEAT, intent); + finish(); + } + + @Override + public void onFunctionText() { + + } + }); + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("mEffectiveTimeBean")) { + mEffectiveTimeBean = (AutomationEntity.DataBean.EffectiveTimeBean) getIntent().getSerializableExtra("mEffectiveTimeBean"); + setViewDate(mEffectiveTimeBean); + } else { + mEffectiveTimeBean.setRepeatType("3"); + mEffectiveTimeBean.setTime("00:00 - 23:59"); + setViewDate(mEffectiveTimeBean); + } + } + + private void setViewDate(AutomationEntity.DataBean.EffectiveTimeBean effectiveTimeBean) { + switch (effectiveTimeBean.getRepeatType()) { + case "1": + String str = ""; + if (effectiveTimeBean.getWeek1().equals("1")) { + str += getString(R.string.Monday); + } + if (effectiveTimeBean.getWeek2().equals("1")) { + str += getString(R.string.Tuesday); + } + if (effectiveTimeBean.getWeek3().equals("1")) { + str += getString(R.string.Wednesday); + } + if (effectiveTimeBean.getWeek4().equals("1")) { + str += getString(R.string.Thursday); + } + if (effectiveTimeBean.getWeek5().equals("1")) { + str += getString(R.string.Friday); + } + if (effectiveTimeBean.getWeek6().equals("1")) { + str += getString(R.string.Saturday); + } + if (effectiveTimeBean.getWeek7().equals("1")) { + str += getString(R.string.Sunday); + } + onceTimeTv.setText(str); + break; + case "2": + onceTimeTv.setText("单次"); + break; + case "3": + onceTimeTv.setText("每天"); + break; + case "4": + onceTimeTv.setText("法定工作日"); + break; + case "5": + onceTimeTv.setText("法定节假日"); + break; + case "6": + onceTimeTv.setText("周一到周五"); + break; + } + switch (effectiveTimeBean.getTime()) { + case "00:00 - 23:59": + allDayCb.setChecked(true); + lightDayCb.setChecked(false); + nightCb.setChecked(false); + defaultCb.setChecked(false); + pushTime = "00:00 - 23:59"; + break; + case "06:00 - 18:00": + allDayCb.setChecked(false); + lightDayCb.setChecked(true); + nightCb.setChecked(false); + defaultCb.setChecked(false); + pushTime = "06:00 - 18:00"; + break; + case "18:00 - 06:00": + allDayCb.setChecked(false); + lightDayCb.setChecked(false); + nightCb.setChecked(true); + defaultCb.setChecked(false); + pushTime = "18:00 - 06:00"; + break; + default: + allDayCb.setChecked(false); + lightDayCb.setChecked(false); + nightCb.setChecked(false); + defaultCb.setChecked(true); + if (!effectiveTimeBean.getTime().isEmpty()) { + pushTime = effectiveTimeBean.getTime(); + } + break; + } + tvPushTime.setText(pushTime); + } + + private void initListener() { + setTimeLayout.setOnClickListener(this); + allDayCb.setOnClickListener(this); + lightDayCb.setOnClickListener(this); + nightCb.setOnClickListener(this); + defaultCb.setOnClickListener(this); + repeatTimeRl.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.setTimeLayout: + if (defaultCb.isChecked()) { + showTime(); + } + break; + case R.id.cb_all_day: + allDayCb.setChecked(true); + lightDayCb.setChecked(false); + nightCb.setChecked(false); + defaultCb.setChecked(false); + pushTime = "00:00 - 23:59"; + break; + case R.id.cb_light_day: + allDayCb.setChecked(false); + lightDayCb.setChecked(true); + nightCb.setChecked(false); + defaultCb.setChecked(false); + pushTime = "06:00 - 18:00"; + break; + case R.id.cb_night: + allDayCb.setChecked(false); + lightDayCb.setChecked(false); + nightCb.setChecked(true); + defaultCb.setChecked(false); + pushTime = "18:00 - 06:00"; + break; + case R.id.cb_default: + allDayCb.setChecked(false); + lightDayCb.setChecked(false); + nightCb.setChecked(false); + defaultCb.setChecked(true); + showTime(); + break; + case R.id.rl_repeat_time: + Intent intent = new Intent(EffectiveTimeActivity.this, RepeatTypeActivity.class); + intent.putExtra("mEffectiveTimeBean", (Serializable) mEffectiveTimeBean); + startActivityForResult(intent, MODEL_REAPEAT); + break; + } + } + + private void showTime() { + if (!tvPushTime.getText().toString().equals("手动设定时间段")) { + pushTime = tvPushTime.getText().toString(); + } + AutoTimePickerDialog timeRangePickerDialog = new AutoTimePickerDialog(EffectiveTimeActivity.this, pushTime, new AutoTimePickerDialog.ConfirmAction() { + @Override + public void onLeftClick() { + } + + @Override + public void onRightClick(String startAndEndTime) { + tvPushTime.setText(startAndEndTime); + pushTime = startAndEndTime; + } + }); + timeRangePickerDialog.getWindow().setGravity(Gravity.BOTTOM); + timeRangePickerDialog.show(); + } + + + public void callBackUiThread(Message msg) { + switch (msg.what) { + case VOLUME_SWITCH_FAIL: + case CHILD_CONTROL_FAIL: + if (mLoadingDialog != null) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case VOLUME_CONTROL_SUCCESS: + if (null != mLoadingDialog) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, "保存成功"); + break; + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODEL_REAPEAT: + if (data != null && data.getExtras().get("triggerConditionsBean") != null) { + AutomationEntity.DataBean.TriggerConditionsBean triggerConditionsBean = (AutomationEntity.DataBean.TriggerConditionsBean) data.getExtras().getSerializable("triggerConditionsBean"); + mEffectiveTimeBean.setRepeatType(triggerConditionsBean.getRepeatType()); + if (triggerConditionsBean.getRepeatType().equals("1")) { + mEffectiveTimeBean.setWeek1(triggerConditionsBean.getWeek1()); + mEffectiveTimeBean.setWeek2(triggerConditionsBean.getWeek2()); + mEffectiveTimeBean.setWeek3(triggerConditionsBean.getWeek3()); + mEffectiveTimeBean.setWeek4(triggerConditionsBean.getWeek4()); + mEffectiveTimeBean.setWeek5(triggerConditionsBean.getWeek5()); + mEffectiveTimeBean.setWeek6(triggerConditionsBean.getWeek6()); + mEffectiveTimeBean.setWeek7(triggerConditionsBean.getWeek7()); + } + setViewDate(mEffectiveTimeBean); + } + } + } + + //handler + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(EffectiveTimeActivity activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + EffectiveTimeActivity activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/RepeatTypeActivity.java b/app/src/main/java/com/yonsz/z1/version5/auto/RepeatTypeActivity.java new file mode 100644 index 0000000..c373218 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/RepeatTypeActivity.java @@ -0,0 +1,332 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.text.TextUtils; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; + +import com.gavin.com.library.listener.OnGroupClickListener; +import com.gavin.com.library.listener.PowerGroupListener; +import com.lechange.demo.localvideo.PowerfulStickyDecoration; +import com.yanzhenjie.recyclerview.swipe.SwipeItemClickListener; +import com.yanzhenjie.recyclerview.swipe.SwipeMenu; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuBridge; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuCreator; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuItemClickListener; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.entity5.AutomationEntity; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.TitleView; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import static com.yonsz.z1.net.Constans.DEL_MODEL_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; + + +/** + * Created by Administrator on 2019/1/9. + */ + +public class RepeatTypeActivity extends BaseActivity implements SwipeItemClickListener { + private TitleView mTitleView; + private SwipeMenuRecyclerView myPanelModelListView; + private List customList = new ArrayList<>(); + private RepeatTypeAdapter mAdapter; + private String modelId = ""; + private String chooseModelId = ""; + private PowerfulStickyDecoration decoration; + + + /** + * 菜单创建器,在Item要创建菜单的时候调用。 + */ + private SwipeMenuCreator swipeMenuCreator = new SwipeMenuCreator() { + @Override + public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) { + } + }; + /** + * RecyclerView的Item的Menu点击监听。 + */ + private SwipeMenuItemClickListener mMenuItemClickListener = new SwipeMenuItemClickListener() { + @Override + public void onItemClick(SwipeMenuBridge menuBridge) { + } + }; + private AutomationEntity.DataBean.TriggerConditionsBean mTriggerConditionsBean; + private View rootview; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_panel_model_select); + initView(); + } + + @Override + public void onBackPressed() { + Intent intent = new Intent(RepeatTypeActivity.this, AutoTimeSetActivity.class); + intent.putExtra("triggerConditionsBean", (Serializable) mTriggerConditionsBean); + setResult(MODEL_REAPEAT, intent); + finish(); + } + + @Override + public void onResume() { + super.onResume(); + // selectModelTime(); + } + + private void initView() { + rootview = LayoutInflater.from(RepeatTypeActivity.this).inflate(R.layout.activity_panel_model_select, null); + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("triggerConditionsBean")) { + mTriggerConditionsBean = (AutomationEntity.DataBean.TriggerConditionsBean) getIntent().getSerializableExtra("triggerConditionsBean"); + chooseModelId = mTriggerConditionsBean.getRepeatType(); + } else if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("mEffectiveTimeBean")) { + AutomationEntity.DataBean.EffectiveTimeBean mEffectiveTimeBean = (AutomationEntity.DataBean.EffectiveTimeBean) getIntent().getSerializableExtra("mEffectiveTimeBean"); + mTriggerConditionsBean = new AutomationEntity.DataBean.TriggerConditionsBean(); + mTriggerConditionsBean.setRepeatType(mEffectiveTimeBean.getRepeatType()); + mTriggerConditionsBean.setWeek1(mEffectiveTimeBean.getWeek1()); + mTriggerConditionsBean.setWeek2(mEffectiveTimeBean.getWeek2()); + mTriggerConditionsBean.setWeek3(mEffectiveTimeBean.getWeek3()); + mTriggerConditionsBean.setWeek4(mEffectiveTimeBean.getWeek4()); + mTriggerConditionsBean.setWeek5(mEffectiveTimeBean.getWeek5()); + mTriggerConditionsBean.setWeek6(mEffectiveTimeBean.getWeek6()); + mTriggerConditionsBean.setWeek7(mEffectiveTimeBean.getWeek7()); + } + myPanelModelListView = (SwipeMenuRecyclerView) findViewById(R.id.my_share_list); + mTitleView = (TitleView) findViewById(R.id.title_model_select); + mTitleView.setHead("重复时间设置"); + mTitleView.setHeadFuntionGone(); + // mTitleView.setHeadFuntionTxtColor(false); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + Intent intent = new Intent(RepeatTypeActivity.this, AutoTimeSetActivity.class); + intent.putExtra("triggerConditionsBean", (Serializable) mTriggerConditionsBean); + setResult(MODEL_REAPEAT, intent); + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + setRecycleView(); + } + + private void setRecycleView() { + //模拟数据 + AutomationEntity.DataBean.TriggerConditionsBean bean1 = new AutomationEntity.DataBean.TriggerConditionsBean(); + bean1.setRepeatType("1"); + if (null != mTriggerConditionsBean) { + bean1.setWeek1(mTriggerConditionsBean.getWeek1()); + bean1.setWeek2(mTriggerConditionsBean.getWeek2()); + bean1.setWeek3(mTriggerConditionsBean.getWeek3()); + bean1.setWeek4(mTriggerConditionsBean.getWeek4()); + bean1.setWeek5(mTriggerConditionsBean.getWeek5()); + bean1.setWeek6(mTriggerConditionsBean.getWeek6()); + bean1.setWeek7(mTriggerConditionsBean.getWeek7()); + } + AutomationEntity.DataBean.TriggerConditionsBean bean2 = new AutomationEntity.DataBean.TriggerConditionsBean(); + bean2.setRepeatType("2"); + AutomationEntity.DataBean.TriggerConditionsBean bean3 = new AutomationEntity.DataBean.TriggerConditionsBean(); + bean3.setRepeatType("3"); + AutomationEntity.DataBean.TriggerConditionsBean bean4 = new AutomationEntity.DataBean.TriggerConditionsBean(); + bean4.setRepeatType("4"); + AutomationEntity.DataBean.TriggerConditionsBean bean5 = new AutomationEntity.DataBean.TriggerConditionsBean(); + bean5.setRepeatType("5"); + AutomationEntity.DataBean.TriggerConditionsBean bean6 = new AutomationEntity.DataBean.TriggerConditionsBean(); + bean6.setRepeatType("6"); + customList.add(bean3); + customList.add(bean2); + customList.add(bean4); + customList.add(bean5); +// customList.add(bean6); + customList.add(bean1); + + + GridLayoutManager manager = new GridLayoutManager(this, 1); + myPanelModelListView.setLayoutManager(manager); + decoration = PowerfulStickyDecoration.Builder + .init(new PowerGroupListener() { + @Override + public String getGroupName(int position) { + //获取组名,用于判断是否是同一组 + return null; + } + + @Override + public View getGroupView(int position) { + //获取自定定义的组View + return null; + } + }) + .setCacheEnable(true) + .resetSpan(myPanelModelListView, manager) + .setGroupHeight(DensityUtil.dip2px(RepeatTypeActivity.this, 0)) + .setDivideHeight(0) + .setGroupBackground(0xfffafafa) + .setOnClickListener(new OnGroupClickListener() { + @Override + public void onClick(int position, int id) { + // ToastUtil.show(PanelModelSelectActivity.this, position + "---"+id); + if (customList.size() > position) { + } + } + }) + .build(); + //---------------- ------------- + myPanelModelListView.addItemDecoration(decoration); + myPanelModelListView.setVisibility(View.VISIBLE); + //------------- PowerfulStickyDecoration 使用部分 ---------------- + //下面是平时的RecyclerView操作 + mAdapter = new RepeatTypeAdapter(customList, this, 100, chooseModelId); + myPanelModelListView.setAdapter(mAdapter); + + mAdapter.setmOnItemClickListener(new OnRecyclerClickListener() { + + @Override + public void onClick(View view, int position) { + //勾选哪一个 + if (customList.get(position).getRepeatType().equals("1")) { + //弹出选择周几的弹窗 + WeekPopWindow weekPopWindow = new WeekPopWindow(RepeatTypeActivity.this, mTriggerConditionsBean, new WeekPopWindow.OnCompleteListener() { + + @Override + public void onComplete(AutomationEntity.DataBean.TriggerConditionsBean condition) { + if (null != condition.getWeek1() && !condition.getWeek1().isEmpty()) { + mTriggerConditionsBean.setWeek1(condition.getWeek1()); + } else { + mTriggerConditionsBean.setWeek1("0"); + } + if (null != condition.getWeek2() && !condition.getWeek2().isEmpty()) { + mTriggerConditionsBean.setWeek2(condition.getWeek2()); + } else { + mTriggerConditionsBean.setWeek2("0"); + } + if (null != condition.getWeek3() && !condition.getWeek3().isEmpty()) { + mTriggerConditionsBean.setWeek3(condition.getWeek3()); + } else { + mTriggerConditionsBean.setWeek3("0"); + } + if (null != condition.getWeek4() && !condition.getWeek4().isEmpty()) { + mTriggerConditionsBean.setWeek4(condition.getWeek4()); + } else { + mTriggerConditionsBean.setWeek4("0"); + } + if (null != condition.getWeek5() && !condition.getWeek5().isEmpty()) { + mTriggerConditionsBean.setWeek5(condition.getWeek5()); + } else { + mTriggerConditionsBean.setWeek5("0"); + } + if (null != condition.getWeek6() && !condition.getWeek6().isEmpty()) { + mTriggerConditionsBean.setWeek6(condition.getWeek6()); + } else { + mTriggerConditionsBean.setWeek6("0"); + } + if (null != condition.getWeek7() && !condition.getWeek7().isEmpty()) { + mTriggerConditionsBean.setWeek7(condition.getWeek7()); + } else { + mTriggerConditionsBean.setWeek7("0"); + } + customList.get(4).setWeek1(mTriggerConditionsBean.getWeek1()); + customList.get(4).setWeek2(mTriggerConditionsBean.getWeek2()); + customList.get(4).setWeek3(mTriggerConditionsBean.getWeek3()); + customList.get(4).setWeek4(mTriggerConditionsBean.getWeek4()); + customList.get(4).setWeek5(mTriggerConditionsBean.getWeek5()); + customList.get(4).setWeek6(mTriggerConditionsBean.getWeek6()); + customList.get(4).setWeek7(mTriggerConditionsBean.getWeek7()); + mAdapter.notifyDataSetChanged(); + } + }); + weekPopWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0); + } + mTriggerConditionsBean.setRepeatType(customList.get(position).getRepeatType()); + modelId = customList.get(position).getRepeatType(); + mAdapter.setIsShowSelcet(position, modelId); + mAdapter.notifyDataSetChanged(); + } + }); + } + + @Override + public void onClick(View v) { + super.onClick(v); + switch (v.getId()) { + case R.id.rl_user_defined: + showModifyPop(); + break; + } + } + + public void showModifyPop() { + RenameNameDialog dialog = new RenameNameDialog(RepeatTypeActivity.this, new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + break; + } + } + }); + dialog.setMaxEms(12); + dialog.setHintName(""); + dialog.setContent("设置情景模式名称"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + + break; + case DEL_MODEL_CONTROL_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + @Override + public void onItemClick(View itemView, int position) { + //勾选哪一个 + if (customList.get(position).getRepeatType().equals("1")) { + //弹出选择周几的弹窗 + + } + mTriggerConditionsBean.setRepeatType(customList.get(position).getRepeatType()); + modelId = customList.get(position).getRepeatType(); + mAdapter.setIsShowSelcet(position, modelId); + mAdapter.notifyDataSetChanged(); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/RepeatTypeAdapter.java b/app/src/main/java/com/yonsz/z1/version5/auto/RepeatTypeAdapter.java new file mode 100644 index 0000000..26a9be3 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/RepeatTypeAdapter.java @@ -0,0 +1,157 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AutomationEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; + +import java.util.List; + +/** + * Created by Administrator on 2017/7/26. + */ + +public class RepeatTypeAdapter extends RecyclerView.Adapter { + private List mDatas; + private Context mContext; + private int isShowSelcet; + private String chooseModelId; + private String modelId = ""; + private OnRecyclerClickListener mOnItemClickListener; + + public RepeatTypeAdapter(List datas, Context context, int isShowSelcet, String chooseModelId) { + mDatas = datas; + mContext = context; + this.chooseModelId = chooseModelId; + this.isShowSelcet = isShowSelcet; + } + + public void setIsShowSelcet(int isShowSelcet, String chooseModelId) { + this.isShowSelcet = isShowSelcet; + this.chooseModelId = chooseModelId; + } + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_repeat_type, + parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public int getItemCount() { + return mDatas.size(); + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private TextView modelNameTv,weekTv; + private ImageView modelSelectIv; + private RelativeLayout modelRl; + + + public MessageViewHolder(View view) { + super(view); + modelNameTv = (TextView) itemView.findViewById(R.id.tv_model_name); + weekTv = (TextView) itemView.findViewById(R.id.tv_time_set); + modelSelectIv = (ImageView) itemView.findViewById(R.id.iv_model_select); + modelRl = (RelativeLayout) itemView.findViewById(R.id.rl_model_select); + } + + public void setViews(final int position) { + switch (mDatas.get(position).getRepeatType()) { + case "1": + String str = ""; + modelNameTv.setText("自定义设置"); + if (mDatas.get(position).getWeek1() != null) { + if (mDatas.get(position).getWeek1().equals("1")) { + str += "周一"; + } + if (mDatas.get(position).getWeek2().equals("1")) { + str += "周二"; + } + if (mDatas.get(position).getWeek3().equals("1")) { + str += "周三"; + } + if (mDatas.get(position).getWeek4().equals("1")) { + str += "周四"; + } + if (mDatas.get(position).getWeek5().equals("1")) { + str += "周五"; + } + if (mDatas.get(position).getWeek6().equals("1")) { + str += "周六"; + } + if (mDatas.get(position).getWeek7().equals("1")) { + str += "周天"; + } + } + weekTv.setText(str); + break; + case "2": + modelNameTv.setText("仅此一次"); + break; + case "3": + modelNameTv.setText("每天"); + break; + case "4": + modelNameTv.setText("法定工作日"); + break; + case "5": + modelNameTv.setText("法定节假日"); + break; + case "6": + modelNameTv.setText("周一到周五"); + break; + } + if (chooseModelId.equals(mDatas.get(position).getRepeatType())) { + modelSelectIv.setVisibility(View.VISIBLE); + } else { + modelSelectIv.setVisibility(View.GONE); + } + /*if (position == isShowSelcet) { + modelSelectIv.setVisibility(View.VISIBLE); + chooseModelId = mDatas.get(position).getModelName(); + } else { + //没点击的情况 + if (chooseModelId.equals(mDatas.get(position).getModelId())) { + modelSelectIv.setVisibility(View.VISIBLE); + } else { + modelSelectIv.setVisibility(View.GONE); + } + }*/ + + modelRl.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + // Log.i("PanelDefaultAdapter", "MessageViewHolder onNoDoubleClick()" + position); + if (null != mOnItemClickListener) { + mOnItemClickListener.onClick(v, position); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/TriggerConditionAdapter.java b/app/src/main/java/com/yonsz/z1/version5/auto/TriggerConditionAdapter.java new file mode 100644 index 0000000..e6ac8a5 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/TriggerConditionAdapter.java @@ -0,0 +1,658 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AutomationEntity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GEMSTONE_ELVES; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.Img; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_PANEL; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; + +public class TriggerConditionAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + private int timeType; + private boolean isEdit = false; + + + public TriggerConditionAdapter(Context context, List mDataBeans, int timeType) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.timeType = timeType; + } + + public void setIsEdit(boolean isTdit) { + this.isEdit = isTdit; + // this.mDataBeans = mDataBeans; + this.notifyDataSetChanged(); + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_auto_device_edit, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + private void setIcon(ImageView icon, AutomationEntity.DataBean.TriggerConditionsBean dataBean) { + switch (dataBean.getDeviceType()) { + case TV_TAG: + icon.setImageResource(Img[0]); + break; + case TVONE_TAG: + icon.setImageResource(R.drawable.icon_set_top_box); + break; + case AIR_CLEANER: + icon.setImageResource(R.drawable.icon_purifier); + break; + case MOVIE_CAMERA: + icon.setImageResource(R.drawable.icon_device_projector); + break; + case AIR_TAG: + icon.setImageResource(Img[1]); + break; + case FAN_TAG: + icon.setImageResource(Img[2]); + break; + case SWEEP_TAG: + icon.setImageResource(Img[3]); + break; + case MUSIC_TAG: + icon.setImageResource(Img[13]); + break; + case LIGHT_TAG: + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_light); + } else { + switch (dataBean.getSubType()) { + case "0"://灯光 + icon.setImageResource(R.drawable.icon_light); + break; + case "1"://筒灯 + icon.setImageResource(R.drawable.icon_tubelamp); + break; + case "2"://灯带 + icon.setImageResource(R.drawable.icon_lightbelt); + break; + case "3"://射灯 + icon.setImageResource(R.drawable.icon_lamp); + break; + case "4"://壁灯 + icon.setImageResource(R.drawable.icon_walllamp); + break; + case "5"://吊灯 + icon.setImageResource(R.drawable.icon_chandelier); + break; + case "6"://廊灯 + icon.setImageResource(R.drawable.icon_porchlamp); + break; + case "7"://排气扇 + icon.setImageResource(R.drawable.icon_exhaust); + break; + default: + icon.setImageResource(R.drawable.icon_light); + break; + } + } + break; + case CURTAINS_TAG: + icon.setImageResource(R.drawable.icon_curtains); + /*if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_curtains); + } else { + if (dataBean.getRelatedStatus().equals("1")) { + icon.setImageResource(R.drawable.icon_curtaingauzecurtain); + } else { + if (dataBean.getSubType().equals("1")) { + icon.setImageResource(R.drawable.icon_gauze); + } else { + icon.setImageResource(R.drawable.icon_curtains); + } + } + }*/ + break; + case SWITCH_TAG: + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_chazuo); + } else { + switch (dataBean.getSubType()) { + case "0"://插座 + switch (dataBean.getDeviceModel()) { + case "0": + icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + case "1"://台灯 + icon.setImageResource(R.drawable.icon_desklamp); + break; + case "2"://热水器(厨电) + icon.setImageResource(R.drawable.icon_kitchenpower); + break; + case "3"://墙壁插座 + if (AppIdUtil.isZhiKong()) { + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + } else { + icon.setImageResource(R.drawable.icon_wallsocket); + } + break; + case "4"://热水壶 + icon.setImageResource(R.drawable.icon_kettle); + break; + case "5"://取暖器 + icon.setImageResource(R.drawable.icon_heater); + break; + case "6"://电蚊香 + icon.setImageResource(R.drawable.icon_dwx); + case "7":// + icon.setImageResource(R.drawable.icon_sterilizing_lamp); + break; + default: + switch (dataBean.getDeviceModel()) { + case "0": + icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + } + } + break; + case DOOR_LOCK_TAG: + /*if (deviceModel.equals("0")) { + icon.setImageResource(R.drawable.icon_gatemagnetic); + } else { + icon.setImageResource(R.drawable.pic_magnetism_dh); + }*/ + if (dataBean.getDeviceModel().equals("2")) { + icon.setImageResource(R.drawable.icon_magnetism_jd); + } else { + icon.setImageResource(R.drawable.pic_magnetism_dh); + } + break; + case INFRARED_TAG: + /*if (deviceModel.equals("0")) { + icon.setImageResource(R.drawable.icon_infrared); + } else { + icon.setImageResource(R.drawable.pic_infrared_dh); + }*/ + if (dataBean.getDeviceModel().equals("2")) { + icon.setImageResource(R.drawable.icon_infrared_jd); + } else { + icon.setImageResource(R.drawable.pic_infrared_dh); + } + break; + case WATER_TAG: + icon.setImageResource(R.drawable.icon_water_jd); + break; + case SMOKE_TAG: + icon.setImageResource(R.drawable.icon_smoke_jd); + break; + case GAS_TAG: + if (dataBean.getDeviceModel().equals("2")) { + icon.setImageResource(R.drawable.icon_wall_hanging_gas_jd); + } else { + icon.setImageResource(R.drawable.icon_gas_jd); + } + break; + case INFRARED_CURTAIN_DETECTOR: + icon.setImageResource(R.drawable.pic_curtain_dh); + break; + case INTELLIGENT_DOOR_LOCK: + icon.setImageResource(R.drawable.pic_lock_dh); + break; + case WIRELESS_EMERGENCY_BUTTON: + if (dataBean.getDeviceModel().equals("1")) { + icon.setImageResource(R.drawable.icon_device_sos); + } else { + icon.setImageResource(R.drawable.pic_panic_button_dh); + } + break; + case WINDOW_OPENER: + icon.setImageResource(R.drawable.icon_window_opener); + break; + case MULTIFUNCTIONAL_CONTROLLER: + switch (dataBean.getSubType()) { + case "0": + icon.setImageResource(R.drawable.icon_curtains); + break; + case "1": + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_curtains); + } else { + icon.setImageResource(R.drawable.icon_gauze); + } + break; + case "2": + icon.setImageResource(R.drawable.icon_window_opener); + break; + case "3"://车库门 + icon.setImageResource(R.drawable.pic_garage); + break; + case "4"://遮阳棚 + icon.setImageResource(R.drawable.pic_sunshade); + break; + case "5"://电动门 + icon.setImageResource(R.drawable.pic_autogate); + break; + case "6"://投影升降机 + icon.setImageResource(R.drawable.pic_elevator); + break; + case "7"://幕布升降机 + icon.setImageResource(R.drawable.pic_curtain_elevator); + break; + case "8"://电动喷淋 + icon.setImageResource(R.drawable.pic_spray); + break; + case "9"://卷闸门 + icon.setImageResource(R.drawable.pic_garage); + break; + default: + icon.setImageResource(R.drawable.icon_multifunctional); + break; + } + break; + case GEMSTONE_ELVES: + icon.setImageResource(R.drawable.icon_gemstone_elves); + break; + case SITUATIONAL_PANEL: + icon.setImageResource(R.drawable.icon_device_qingjing_t5); + break; + case CLOTHES_HANGER: + icon.setImageResource(R.drawable.icon_airer); + break; + case SAFETY_VALVE: + icon.setImageResource(R.drawable.icon_valve_controller); + break; + case SECURITY_MANIPULATOR: + icon.setImageResource(R.drawable.icon_security_manipulator); + break; + case SECURITY_TRIGGER: + switch (dataBean.getSubType()) { + case "0": + icon.setImageResource(R.drawable.icon_trigger_gas); + break; + case "1": + icon.setImageResource(R.drawable.icon_trigger_smoke); + break; + case "2": + icon.setImageResource(R.drawable.icon_trigger_infrared); + break; + case "3": + icon.setImageResource(R.drawable.icon_trigger_magnetism); + break; + case "4": + icon.setImageResource(R.drawable.icon_trigger_sos); + break; + } + break; + case TEMP_CONTROL: + case FRESH_AIR: + case FLOOR_HEATING: + icon.setImageResource(R.drawable.icon_device_temperature); + break; + case SERVICE_PANEL_485: + if (dataBean.getDeviceModel().equals("1")) { + icon.setImageResource(R.drawable.icon_485_12v); + } else { + icon.setImageResource(R.drawable.icon_485); + } + break; + case SITUATIONAL_TRIGGER: + icon.setImageResource(R.drawable.icon_multifunctional); + break; + } + } + + private void setEffctiveTime(AutomationEntity.DataBean.TriggerConditionsBean triggerConditionsBean, TextView effectiveTimeTv) { + if (null != triggerConditionsBean) { + // repeatType:1:自定义,2:一次,3:每天,4:法定工作日,5:法定节假日,6:周一到周五 + String str = ""; + switch (triggerConditionsBean.getRepeatType()) { + case "1": + if (triggerConditionsBean.getWeek1() != null) { + if (triggerConditionsBean.getWeek1().equals("1")) { + str += "周一"; + } + if (triggerConditionsBean.getWeek2().equals("1")) { + str += "周二"; + } + if (triggerConditionsBean.getWeek3().equals("1")) { + str += "周三"; + } + if (triggerConditionsBean.getWeek4().equals("1")) { + str += "周四"; + } + if (triggerConditionsBean.getWeek5().equals("1")) { + str += "周五"; + } + if (triggerConditionsBean.getWeek6().equals("1")) { + str += "周六"; + } + if (triggerConditionsBean.getWeek7().equals("1")) { + str += "周天"; + } + } + effectiveTimeTv.setText(str + ":" + triggerConditionsBean.getTime()); + break; + case "2": + effectiveTimeTv.setText(triggerConditionsBean.getTime()); + break; + case "3": + effectiveTimeTv.setText("每天" + triggerConditionsBean.getTime()); + break; + case "4": + effectiveTimeTv.setText("法定工作日:" + triggerConditionsBean.getTime()); + break; + case "5": + effectiveTimeTv.setText("法定节假日:" + triggerConditionsBean.getTime()); + break; + case "6": + effectiveTimeTv.setText("周一到周五:" + triggerConditionsBean.getTime()); + break; + } + } + } + + private void setOpers(TextView deviceState, AutomationEntity.DataBean.TriggerConditionsBean opers) { + String state = ""; + + switch (opers.getName()) { + case "switch": + case "key": + case "safetySwitch": + state += "开关:"; + break; + case "mode": + state += "模式:"; + break; + case "windSpeed": + state += "风速:"; + break; + case "tempSet": + String symbol = opers.getSymbol(); + String symbolName = ""; + switch (symbol) { + case "<": + symbolName = "小于"; + break; + case ">": + symbolName = "大于"; + break; + case "=": + symbolName = ""; + break; + } + state += "温度:"; + state += symbolName + opers.getValue() + "、"; + break; + case "brightness": + String symbol1 = opers.getSymbol(); + String symbolName1 = ""; + switch (symbol1) { + case "<": + symbolName1 = "小于"; + break; + case ">": + symbolName1 = "大于"; + break; + case "=": + symbolName1 = ""; + break; + } + state += "亮度:"; + state += symbol1 + opers.getValue() + "、"; + break; + case "travelControl": + String symbol2 = opers.getSymbol(); + String symbolName2 = ""; + switch (symbol2) { + case "<": + symbolName2 = "小于"; + break; + case ">": + symbolName2 = "大于"; + break; + case "=": + symbolName2 = ""; + break; + } + state += "行程:"; + state += symbolName2 + opers.getValue() + "、"; + break; + case "safetyAlarm": + state += "安防报警:"; + break; + } + switch (opers.getValue()) { + case "power": + state += "开启、"; + break; + case "poweroff": + state += "关闭、"; + break; + case "cold": + state += "制冷、"; + break; + case "heat": + state += "制热、"; + break; + case "dehumidification": + state += "除湿、"; + break; + case "windSpeedAuto": + state += "自动风、"; + break; + case "windSpeedLow": + state += "低速风、"; + break; + case "windSpeedMedium": + state += "中速风、"; + break; + case "windSpeedHigh": + state += "高速风、"; + break; + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + state += "按键" + opers.getValue() + "、"; + break; + case "alarmTrigger": + state += "触发、"; + break; + case "up": + state += "上升、"; + break; + case "down": + state += "下降、"; + break; + case "disinfect": + state += "消毒开、"; + break; + case "disinfectoff": + state += "消毒关、"; + break; + case "airdrying": + state += "风干开、"; + break; + case "airdryingoff": + state += "风干关、"; + break; + case "stoving": + state += "烘干开、"; + break; + case "stovingoff": + state += "烘干关、"; + break; + case "anion": + state += "负离子开、"; + break; + case "anionoff": + state += "负离子关、"; + break; + case "trigger": + state += "触发、"; + break; + case "remove": + state += "解除、"; + break; + } + if (state.length() > 1) { + deviceState.setText(state.substring(0, state.length() - 1)); + } + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.icon) + ImageView icon; + @BindView(R.id.tv_child_device) + TextView deviceName; + @BindView(R.id.tv_child_device_state) + TextView deviceState; + @BindView(R.id.tv_position) + TextView devicePosition; + @BindView(R.id.rl_device_child) + RelativeLayout mLlBg; + @BindView(R.id.rl_delete) + RelativeLayout deleteRl; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + String devicePosition = AddressNameUtil.getDevicePosition(mDataBeans.get(position).getDeviceId()); + deviceName.setText(devicePosition + mDataBeans.get(position).getDeviceName()); + if (mDataBeans.get(position).getType().equals("timer")) { + //定时 + icon.setImageResource(R.drawable.pic_automation_timing); + deviceName.setText("定时"); + setEffctiveTime(mDataBeans.get(position), deviceState); + } else { +// setIcon(icon, mDataBeans.get(position)); + AddressNameUtil.setdeviceIcon(icon, mDataBeans.get(position).getDeviceType(), mDataBeans.get(position).getDeviceModel(), mDataBeans.get(position).getSubType()); + setOpers(deviceState, mDataBeans.get(position)); + } + + if (isEdit) { + deleteRl.setVisibility(View.VISIBLE); + } else { + deleteRl.setVisibility(View.GONE); + } + + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 100); + } + } + }); + deleteRl.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, -1); + } + } + }); + mLlBg.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/auto/WeekPopWindow.java b/app/src/main/java/com/yonsz/z1/version5/auto/WeekPopWindow.java new file mode 100644 index 0000000..888ff34 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/auto/WeekPopWindow.java @@ -0,0 +1,218 @@ +package com.yonsz.z1.version5.auto; + +import android.content.Context; +import android.graphics.drawable.ColorDrawable; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CompoundButton; +import android.widget.ImageView; +import android.widget.PopupWindow; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.AutomationEntity; + +public class WeekPopWindow extends PopupWindow implements CompoundButton.OnCheckedChangeListener, View.OnClickListener { + + private Context context; + private View contentView; + private OnCompleteListener onCompleteListener; + private RecyclerView mRecyclerView; + private AutomationEntity.DataBean.TriggerConditionsBean mFeedBackTypeEntities; + private AutomationPopAdapter mChooseA1Adapter; + private TextView mHead; + private RelativeLayout oneRl, twoRl, threeRl, fourRl, fiveRl, sixRl, sevenRl; + private ImageView oneIv, twoIv, threeIv, fourIv, fiveIv, sixIv, sevenIv; + private String week = ""; + private TextView sureBtn; + private TextView cancleBtn; + + public WeekPopWindow(Context context, AutomationEntity.DataBean.TriggerConditionsBean mFeedBackTypeEntities, OnCompleteListener onCompleteListener) { + super(context); + this.context = context; + this.onCompleteListener = onCompleteListener; + this.mFeedBackTypeEntities = mFeedBackTypeEntities; + init(); + initListener(); + } + + private void init() { + contentView = LayoutInflater.from(context).inflate(R.layout.pop_week, null); + sureBtn = (TextView) contentView.findViewById(R.id.dialog_confirm_sure); + cancleBtn = (TextView) contentView.findViewById(R.id.dialog_confirm_cancle); + oneRl = (RelativeLayout) contentView.findViewById(R.id.rl_one); + twoRl = (RelativeLayout) contentView.findViewById(R.id.rl_two); + threeRl = (RelativeLayout) contentView.findViewById(R.id.rl_three); + fourRl = (RelativeLayout) contentView.findViewById(R.id.rl_four); + fiveRl = (RelativeLayout) contentView.findViewById(R.id.rl_five); + sixRl = (RelativeLayout) contentView.findViewById(R.id.rl_six); + sevenRl = (RelativeLayout) contentView.findViewById(R.id.rl_seven); + + oneIv = (ImageView) contentView.findViewById(R.id.iv_one); + twoIv = (ImageView) contentView.findViewById(R.id.iv_two); + threeIv = (ImageView) contentView.findViewById(R.id.iv_three); + fourIv = (ImageView) contentView.findViewById(R.id.iv_four); + fiveIv = (ImageView) contentView.findViewById(R.id.iv_five); + sixIv = (ImageView) contentView.findViewById(R.id.iv_six); + sevenIv = (ImageView) contentView.findViewById(R.id.iv_seven); + + + setContentView(contentView); + this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT); + this.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); + // 设置可触 + this.setFocusable(true); + ColorDrawable dw = new ColorDrawable(0x60000000); + this.setBackgroundDrawable(dw); + + + if (mFeedBackTypeEntities.getRepeatType().equals("1")) { + if (mFeedBackTypeEntities.getWeek1().equals("1")) { + oneIv.setVisibility(View.VISIBLE); + } else { + oneIv.setVisibility(View.INVISIBLE); + } + if (mFeedBackTypeEntities.getWeek2().equals("1")) { + twoIv.setVisibility(View.VISIBLE); + } else { + twoIv.setVisibility(View.INVISIBLE); + } + if (mFeedBackTypeEntities.getWeek3().equals("1")) { + threeIv.setVisibility(View.VISIBLE); + } else { + threeIv.setVisibility(View.INVISIBLE); + } + if (mFeedBackTypeEntities.getWeek4().equals("1")) { + fourIv.setVisibility(View.VISIBLE); + } else { + fourIv.setVisibility(View.INVISIBLE); + } + if (mFeedBackTypeEntities.getWeek5().equals("1")) { + fiveIv.setVisibility(View.VISIBLE); + } else { + fiveIv.setVisibility(View.INVISIBLE); + } + if (mFeedBackTypeEntities.getWeek6().equals("1")) { + sixIv.setVisibility(View.VISIBLE); + } else { + sixIv.setVisibility(View.INVISIBLE); + } + if (mFeedBackTypeEntities.getWeek7().equals("1")) { + sevenIv.setVisibility(View.VISIBLE); + } else { + sevenIv.setVisibility(View.INVISIBLE); + } + } + } + + private void initListener() { + sureBtn.setOnClickListener(this); + cancleBtn.setOnClickListener(this); + oneRl.setOnClickListener(this); + twoRl.setOnClickListener(this); + threeRl.setOnClickListener(this); + fourRl.setOnClickListener(this); + fiveRl.setOnClickListener(this); + sixRl.setOnClickListener(this); + sevenRl.setOnClickListener(this); + } + + + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.dialog_confirm_sure: //完成 + if (onCompleteListener != null) { + onCompleteListener.onComplete(mFeedBackTypeEntities); + } + dismiss(); + break; + case R.id.dialog_confirm_cancle: //取消 + dismiss(); + break; + case R.id.rl_one: + if (oneIv.getVisibility() == View.VISIBLE) { + oneIv.setVisibility(View.INVISIBLE); + mFeedBackTypeEntities.setWeek1("0"); + } else { + oneIv.setVisibility(View.VISIBLE); + mFeedBackTypeEntities.setWeek1("1"); + } + break; + case R.id.rl_two: + if (twoIv.getVisibility() == View.VISIBLE) { + twoIv.setVisibility(View.INVISIBLE); + mFeedBackTypeEntities.setWeek2("0"); + } else { + twoIv.setVisibility(View.VISIBLE); + mFeedBackTypeEntities.setWeek2("1"); + } + break; + case R.id.rl_three: + if (threeIv.getVisibility() == View.VISIBLE) { + threeIv.setVisibility(View.INVISIBLE); + mFeedBackTypeEntities.setWeek3("0"); + } else { + threeIv.setVisibility(View.VISIBLE); + mFeedBackTypeEntities.setWeek3("1"); + } + break; + case R.id.rl_four: + if (fourIv.getVisibility() == View.VISIBLE) { + fourIv.setVisibility(View.INVISIBLE); + mFeedBackTypeEntities.setWeek4("0"); + } else { + fourIv.setVisibility(View.VISIBLE); + mFeedBackTypeEntities.setWeek4("1"); + } + break; + case R.id.rl_five: + if (fiveIv.getVisibility() == View.VISIBLE) { + fiveIv.setVisibility(View.INVISIBLE); + mFeedBackTypeEntities.setWeek5("0"); + } else { + fiveIv.setVisibility(View.VISIBLE); + mFeedBackTypeEntities.setWeek5("1"); + } + break; + case R.id.rl_six: + if (sixIv.getVisibility() == View.VISIBLE) { + sixIv.setVisibility(View.INVISIBLE); + mFeedBackTypeEntities.setWeek6("0"); + } else { + sixIv.setVisibility(View.VISIBLE); + mFeedBackTypeEntities.setWeek6("1"); + } + break; + case R.id.rl_seven: + if (sevenIv.getVisibility() == View.VISIBLE) { + sevenIv.setVisibility(View.INVISIBLE); + mFeedBackTypeEntities.setWeek7("0"); + } else { + sevenIv.setVisibility(View.VISIBLE); + mFeedBackTypeEntities.setWeek7("1"); + } + break; + } + } + + public void setOnCompleteListener(OnCompleteListener onCompleteListener) { + this.onCompleteListener = onCompleteListener; + } + + public void setHead(String text) { + mHead.setText(text); + } + + public interface OnCompleteListener { + void onComplete(AutomationEntity.DataBean.TriggerConditionsBean condition); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/clotheshanger/ClothesHangerStepOneActivity.java b/app/src/main/java/com/yonsz/z1/version5/clotheshanger/ClothesHangerStepOneActivity.java new file mode 100644 index 0000000..7fa9849 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/clotheshanger/ClothesHangerStepOneActivity.java @@ -0,0 +1,205 @@ +package com.yonsz.z1.version5.clotheshanger; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.io.Serializable; +import java.util.HashMap; + +import static com.yonsz.z1.net.Constans.CANCEL_ADD_LIGHT_FAIL; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; + + +public class ClothesHangerStepOneActivity extends BaseActivity { + private TitleView mTitleView; + private Button nextConfig; + private CheckBox selectUnnorReveal; + private LoadingDialog mLoadingDialog; + private String addressTypeCode; + private String ziId; + private String deviceModel; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_clothes_step_one); + initView(); + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + } + + @Override + public void onResume() { + super.onResume(); + if (null != nextConfig && null != selectUnnorReveal) { + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextConfig.setClickable(false); + nextConfig.setEnabled(false); + selectUnnorReveal.setChecked(false); + } + } + + private void initView() { + addressTypeCode = getIntent().getExtras().get("addressTypeCode").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + ziId = getIntent().getExtras().get("ziId").toString(); + selectUnnorReveal = (CheckBox) findViewById(R.id.iv_select_unnor_reveal); + selectUnnorReveal.setOnClickListener(this); + nextConfig = (Button) findViewById(R.id.bt_start_config); + nextConfig.setOnClickListener(this); + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextConfig.setClickable(false); + nextConfig.setEnabled(false); + nextConfig.setOnClickListener(new NoDoubleClickListener() { + @Override + public void onNoDoubleClick(View view) { + subsetStudy(); + /*Intent intent = new Intent(ClothesHangerStepOneActivity.this, ClothesHangerStepTwoActivity.class); + startActivity(intent);*/ + } + }); + mTitleView = (TitleView) findViewById(R.id.title_light_learn); + mTitleView.setHead("添加智能晾衣机"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.iv_select_unnor_reveal: + if (selectUnnorReveal.isChecked()) { + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_5dp)); + nextConfig.setClickable(true); + nextConfig.setEnabled(true); + } else { + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextConfig.setClickable(false); + nextConfig.setEnabled(false); + } + break; + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case CANCEL_ADD_LIGHT_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + Intent intent = new Intent(ClothesHangerStepOneActivity.this, ClothesHangerStepTwoActivity.class); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", CLOTHES_HANGER); + intent.putExtra("ziId", ziId); + intent.putExtra("addressTypeCode", addressTypeCode); + Bundle bundle = new Bundle(); + bundle.putSerializable("body", (Serializable) entity.getData()); + intent.putExtras(bundle); + startActivity(intent); + break; + } + + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + private void subsetStudy() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", CLOTHES_HANGER); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_STUDY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetStudy", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/clotheshanger/ClothesHangerStepTwoActivity.java b/app/src/main/java/com/yonsz/z1/version5/clotheshanger/ClothesHangerStepTwoActivity.java new file mode 100644 index 0000000..282f27b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/clotheshanger/ClothesHangerStepTwoActivity.java @@ -0,0 +1,233 @@ +package com.yonsz.z1.version5.clotheshanger; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.DeviceControlActivity; +import com.yonsz.z1.version5.DeviceControlByRoomActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.bt_sure_config; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; + +public class ClothesHangerStepTwoActivity extends BaseActivity { + private TitleView mTitleView; + private Button sureBtn; + private RelativeLayout closeRl, opneRl, stopRl; + private LoadingDialog mLoadingDialog; + private LinearLayout ll_try_again; + private String ziId; + private String deviceModel; + private String deviceType; + private String addressTypeCode; + private String body; + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_sure_clothes_hanger); + initView(); + initListener(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + + private void initView() { + body = JSONObject.toJSONString(getIntent().getSerializableExtra("body")); + ziId = getIntent().getExtras().get("ziId").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + deviceType = getIntent().getExtras().get("deviceType").toString(); + addressTypeCode = getIntent().getExtras().get("addressTypeCode").toString(); + ll_try_again = (LinearLayout) findViewById(R.id.ll_try_again); + closeRl = (RelativeLayout) findViewById(R.id.tv_close_curtains); + opneRl = (RelativeLayout) findViewById(R.id.tv_open_curtains); + stopRl = (RelativeLayout) findViewById(R.id.tv_stop_curtains); + sureBtn = (Button) findViewById(bt_sure_config); + mTitleView = (TitleView) findViewById(R.id.title_sure_light); + mTitleView.setHead("添加智能晾衣机"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + } + + private void initListener() { + closeRl.setOnClickListener(this); + opneRl.setOnClickListener(this); + stopRl.setOnClickListener(this); + ll_try_again.setOnClickListener(this); + sureBtn.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + subsetAdd(); + } + }); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_close_curtains: + //上升 + ShakeUtil.setShake(this); + subsetTest("up"); + break; + case R.id.tv_open_curtains: + //照明 + ShakeUtil.setShake(this); + subsetTest("light"); + break; + case R.id.tv_stop_curtains: + //下降 + ShakeUtil.setShake(this); + subsetTest("down"); + break; + case R.id.ll_try_again: + finish(); + break; + } + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case UPDATE_BLINDENTITY_NAME_SUCCESS: + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + EventBus.getDefault().post( + new EventBusEntity("关闭")); + Intent intent; + if (AppIdUtil.isBaseZhiKong()) { + intent = new Intent(this, DeviceControlByRoomActivity.class); + } else { + intent = new Intent(this, DeviceControlActivity.class); + } + intent.putExtra("ziId", ziId); + intent.putExtra("id", entity.getData().getId()); + intent.putExtra("addressId", addressTypeCode); + startActivity(intent); + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void subsetAdd() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", CLOTHES_HANGER); + map.put("ziId", ziId); + map.put("addressId", addressTypeCode); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_ADD, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetAdd", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetTest(String key) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", CLOTHES_HANGER); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_TEST, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetTest", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/clotheshanger/FSKSearchActivity.java b/app/src/main/java/com/yonsz/z1/version5/clotheshanger/FSKSearchActivity.java new file mode 100644 index 0000000..fc60285 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/clotheshanger/FSKSearchActivity.java @@ -0,0 +1,454 @@ +package com.yonsz.z1.version5.clotheshanger; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.view.animation.AlphaAnimation; +import android.view.animation.AnimationUtils; +import android.view.animation.RotateAnimation; +import android.widget.ImageView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.YblEntity; +import com.yonsz.z1.database.entity.entity4.YblLightEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.view.StateButton; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.ybl.light.YblLightSearchFailActivity; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; + +import static com.yonsz.z1.UniKongApp.getActivity; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.EXECUTE_PHONE_FAIL; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATE_SEC; + +public class FSKSearchActivity extends BaseActivity { + private static final int SEARCH_YBL_LIGHT_CIRCLE = 1; + private static final int SEARCH_YBL_LIGHT_MARK = 2; + private List mNettyEntities = new ArrayList<>(); + private TitleView mTitleView; + private StateButton mStateButton; + private int sec = 20; + private ImageView mScanTop; + private RotateAnimation rotateAnimation; + private AlphaAnimation alphaAnimation; + private ImageView mImageView01, mImageView02, mImageView03, mImageView04, mImageView05; + private ImageView markIv01, markIv02, markIv03, markIv04, markIv05; + private ImageView circleIv01, circleIv02, circleIv03, circleIv04, circleIv05; + private boolean isOne = true, isTwo = true, isThree = true, isFour = true, isFive = true; + private boolean isSearchEnd = false; + private BaseVersion5Entity.DataBean body; + private String deviceType = ""; + + public void onEventMainThread(YblLightEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg + msg.length()); + if (msg.equals("搜索完成")) { + isSearchEnd = true; + } else { + if (msg.length() < 188) { + YblEntity nettyEntity = JSON.parseObject(msg, YblEntity.class); +// mNettyEntities.add(nettyEntity); + if (!TextUtils.isEmpty(deviceType) && deviceType.equals(CURTAINS_TAG)) { + if (nettyEntity.getYblType().equals("04")) { + mNettyEntities.add(nettyEntity); + } + } else { + if (!nettyEntity.getYblType().equals("04")) { + mNettyEntities.add(nettyEntity); + } + } + Log.e("nettyUtil", mNettyEntities.size() + ""); + switch (mNettyEntities.size()) { + case 1: + if (isOne) { + isOne = false; + Message message = mHandler.obtainMessage(SEARCH_YBL_LIGHT_CIRCLE); + message.arg1 = 1; + mHandler.sendMessage(message); + } + break; + case 2: + if (isTwo) { + isTwo = false; + Message message = mHandler.obtainMessage(SEARCH_YBL_LIGHT_CIRCLE); + message.arg1 = 2; + mHandler.sendMessage(message); + } + break; + case 3: + if (isThree) { + isThree = false; + Message message = mHandler.obtainMessage(SEARCH_YBL_LIGHT_CIRCLE); + message.arg1 = 3; + mHandler.sendMessage(message); + } + break; + case 4: + if (isFour) { + isFour = false; + Message message = mHandler.obtainMessage(SEARCH_YBL_LIGHT_CIRCLE); + message.arg1 = 4; + mHandler.sendMessage(message); + } + break; + case 5: + if (isFive) { + isFive = false; + Message message = mHandler.obtainMessage(SEARCH_YBL_LIGHT_CIRCLE); + message.arg1 = 5; + mHandler.sendMessage(message); + } + break; + default: + break; + } + } + } + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_ybl_search); + initView(); + initListener(); + NettyHandlerUtil.getInstance(); + } + + @Override + public void onResume() { + super.onResume(); + mHandler.sendEmptyMessageDelayed(UPDATE_SEC, 1000); + } + + private void initView() { + if (null != getIntent().getExtras().get("deviceType")) { + deviceType = getIntent().getExtras().get("deviceType").toString(); + } + mStateButton = (StateButton) findViewById(R.id.bt_sec); + mScanTop = (ImageView) findViewById(R.id.iv_scan_top); + rotateAnimation = (RotateAnimation) AnimationUtils.loadAnimation(FSKSearchActivity.this, R.anim.rotate360_anim); + alphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(FSKSearchActivity.this, R.anim.alpha_anim); + mScanTop.startAnimation(rotateAnimation); + mTitleView = (TitleView) findViewById(R.id.title_wifi_search); + switch (getIntent().getExtras().get("deviceType").toString()) { + case CURTAINS_TAG: + mTitleView.setHead("添加窗帘"); + break; + case CLOTHES_HANGER: + mTitleView.setHead("添加智能晾衣机"); + break; + case TEMP_CONTROL: + case FRESH_AIR: + case FLOOR_HEATING: + case LIGHT_TAG: + case SAFETY_VALVE: + case SECURITY_MANIPULATOR: + mTitleView.setHead("添加设备"); + break; + default: + break; + } + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setHeadFuntionTxt(""); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (sec > 0) { + showIsFinishThis(); + } else { + finish(); + } + } + + @Override + public void onFunction() { + } + + @Override + public void onFunctionText() { + + } + }); + + mImageView01 = (ImageView) findViewById(R.id.imageView01); + mImageView02 = (ImageView) findViewById(R.id.imageView02); + mImageView03 = (ImageView) findViewById(R.id.imageView03); + mImageView04 = (ImageView) findViewById(R.id.imageView04); + mImageView05 = (ImageView) findViewById(R.id.imageView05); + markIv01 = (ImageView) findViewById(R.id.iv_mark01); + markIv02 = (ImageView) findViewById(R.id.iv_mark02); + markIv03 = (ImageView) findViewById(R.id.iv_mark03); + markIv04 = (ImageView) findViewById(R.id.iv_mark04); + markIv05 = (ImageView) findViewById(R.id.iv_mark05); + circleIv01 = (ImageView) findViewById(R.id.iv_circle_search01); + circleIv02 = (ImageView) findViewById(R.id.iv_circle_search02); + circleIv03 = (ImageView) findViewById(R.id.iv_circle_search03); + circleIv04 = (ImageView) findViewById(R.id.iv_circle_search04); + circleIv05 = (ImageView) findViewById(R.id.iv_circle_search05); + + + switch (getIntent().getExtras().get("deviceType").toString()) { + case CURTAINS_TAG: + mTitleView.setHead("添加窗帘"); + break; + case CLOTHES_HANGER: + setImg(R.drawable.icon_search_airer); + break; + case TEMP_CONTROL: + setImg(R.drawable.icon_device_temperature); + break; + case FRESH_AIR: + setImg(R.drawable.icon_device_fresh_air); + break; + case FLOOR_HEATING: + setImg(R.drawable.icon_device_heating); + break; + case LIGHT_TAG: + setImg(R.drawable.icon_search_illuminance_controller); + break; + case SAFETY_VALVE: + setImg(R.drawable.icon_valve_controller); + break; + case SECURITY_MANIPULATOR: + setImg(R.drawable.icon_security_manipulator); + break; + default: + break; + } + subsetSearch(); + } + + private void setImg(int p) { + mImageView01.setImageDrawable(getResources().getDrawable(p)); + mImageView02.setImageDrawable(getResources().getDrawable(p)); + mImageView03.setImageDrawable(getResources().getDrawable(p)); + mImageView04.setImageDrawable(getResources().getDrawable(p)); + mImageView05.setImageDrawable(getResources().getDrawable(p)); + } + + @Override + public void onBackPressed() { + // super.onBackPressed(); + if (sec > 0) { + showIsFinishThis(); + } else { + finish(); + } + } + + private void showIsFinishThis() { + ConfirmDialog dialog = new ConfirmDialog(getActivity(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + break; + case 1: + finish(); + break; + } + } + }); + dialog.setContent("您正在搜索设备中请勿退出,如有退出可能在接下来的20秒期间无法再次添加设备"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + + private void initListener() { + + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mScanTop.clearAnimation(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SEARCH_YBL_LIGHT_CIRCLE: + int obj = msg.arg1; + switch (obj) { + case 1: + circleIv01.setVisibility(View.VISIBLE); + setPicAnimate(circleIv01, mImageView01, obj); + break; + case 2: + circleIv02.setVisibility(View.VISIBLE); + setPicAnimate(circleIv02, mImageView02, obj); + break; + case 3: + circleIv03.setVisibility(View.VISIBLE); + setPicAnimate(circleIv03, mImageView03, obj); + break; + case 4: + circleIv04.setVisibility(View.VISIBLE); + setPicAnimate(circleIv04, mImageView04, obj); + break; + case 5: + circleIv05.setVisibility(View.VISIBLE); + setPicAnimate(circleIv05, mImageView05, obj); + break; + } + break; + case SEARCH_YBL_LIGHT_MARK: + int obj3 = (int) msg.obj; + switch (obj3) { + case 1: + markIv01.startAnimation(alphaAnimation); + break; + case 2: + markIv02.startAnimation(alphaAnimation); + break; + case 3: + markIv03.startAnimation(alphaAnimation); + break; + case 4: + markIv04.startAnimation(alphaAnimation); + break; + case 5: + markIv05.startAnimation(alphaAnimation); + break; + } + break; + case UPDATE_SEC: + if (sec > 1) { + if (isSearchEnd && mNettyEntities.size() > 0) { + Intent intent = new Intent(FSKSearchActivity.this, FskListActivity.class); + intent.putExtra("mNettyEntities", (Serializable) mNettyEntities); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceAddress", getIntent().getExtras().get("deviceAddress").toString()); + intent.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + if (null != getIntent().getExtras().get("deviceType")) { + intent.putExtra("deviceType", deviceType); + } + if (null != getIntent().getExtras().get("floor")) { + intent.putExtra("floor", getIntent().getExtras().get("floor").toString()); + } + Bundle bundle = new Bundle(); + bundle.putSerializable("body", (Serializable) body); + intent.putExtras(bundle); + startActivity(intent); + finish(); + } else { + sec--; + mHandler.sendEmptyMessageDelayed(UPDATE_SEC, 1000); + mStateButton.setText(getResources().getString(R.string.sec_30, sec)); + } + } else { + if (mNettyEntities.size() > 0) { + Intent intent = new Intent(FSKSearchActivity.this, FskListActivity.class); + intent.putExtra("mNettyEntities", (Serializable) mNettyEntities); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceAddress", getIntent().getExtras().get("deviceAddress").toString()); + intent.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + if (null != getIntent().getExtras().get("deviceType")) { + intent.putExtra("deviceType", deviceType); + } + if (null != getIntent().getExtras().get("floor")) { + intent.putExtra("floor", getIntent().getExtras().get("floor").toString()); + } + Bundle bundle = new Bundle(); + bundle.putSerializable("body", (Serializable) body); + intent.putExtras(bundle); + startActivity(intent); + finish(); + } else { + Intent intent = new Intent(FSKSearchActivity.this, YblLightSearchFailActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceAddress", getIntent().getExtras().get("deviceAddress").toString()); + intent.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + intent.putExtra("deviceType", getIntent().getExtras().get("deviceType").toString()); + if (null != getIntent().getExtras().get("floor")) { + intent.putExtra("floor", getIntent().getExtras().get("floor").toString()); + } + intent.putExtra("from", "FskListActivity"); + startActivity(intent); + finish(); + } + } + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + BaseVersion5Entity baseVersion5Entity = (BaseVersion5Entity) msg.obj; + body = baseVersion5Entity.getData(); + break; + } + } + + private void setPicAnimate(ImageView circleIv, ImageView mImageView, int obj2) { + Message message1 = mHandler.obtainMessage(SEARCH_YBL_LIGHT_MARK); + message1.obj = obj2; + mHandler.sendMessage(message1); + circleIv.setVisibility(View.INVISIBLE); + mImageView.startAnimation(alphaAnimation); + } + + + private void subsetSearch() { + String body = "{}"; + if (deviceType.equals(CURTAINS_TAG)) { + body = "{\"type\":\"" + 3 + "\"}"; + } + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + map.put("deviceType", getIntent().getExtras().get("deviceType").toString()); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SEARCH, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetSearch", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(EXECUTE_PHONE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(EXECUTE_PHONE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/clotheshanger/FskClothesAdapter.java b/app/src/main/java/com/yonsz/z1/version5/clotheshanger/FskClothesAdapter.java new file mode 100644 index 0000000..a5347a3 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/clotheshanger/FskClothesAdapter.java @@ -0,0 +1,276 @@ +package com.yonsz.z1.version5.clotheshanger; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.YblEntity; +import com.yonsz.z1.utils.AddressNameUtil; + +import java.util.List; + +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; + + +public class FskClothesAdapter extends RecyclerView.Adapter { + private final String deviceType; + private Context mContext; + private List mObjEntity; + private boolean isLearn; + private OnItemLightClickListener mLightClickListener; + private boolean isDeleteChild; + private int nowPosition = 100; + + public FskClothesAdapter(Context mContext, List mObjEntity, boolean isLearn, String deviceType) { + super(); + this.mContext = mContext; + this.mObjEntity = mObjEntity; + this.isLearn = isLearn; + this.deviceType = deviceType; + } + + public void setIsLearn(boolean isLearn1) { + isLearn = isLearn1; + } + + public void setIsDelete(boolean isDelete1) { + isDeleteChild = isDelete1; + } + + @Override + public FskClothesAdapter.MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = null; + switch (viewType) { + case 1: + view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_fsk_clothes, + parent, false); + break; + case 2: + view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_light_ybl_two, + parent, false); + break; + /*case 3: + view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_light_three, + parent, false); + break;*/ + default: + view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_fsk_clothes, + parent, false); + break; + } + + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(FskClothesAdapter.MessageViewHolder holder, int position) { + holder.setViews(position); + } + + @Override + public int getItemViewType(int position) { + if (mObjEntity != null && mObjEntity.get(position).getLightCount() == 1) { + return 1; + } else if (mObjEntity != null && mObjEntity.get(position).getLightCount() == 2) { + return 2; + } else { + return 6; + } + } + + @Override + public int getItemCount() { + return mObjEntity.size(); + } + + public void setOnItemLightClickListener(OnItemLightClickListener listener) { + this.mLightClickListener = listener; + } + + public interface OnItemLightClickListener { + + public void onLearnLightClick(int position, int i, int j); + + public void onLightOpenCloseClick(int position, int i); + + public void onVoiceClick(int position, int voiceControlTag, int childPosition); + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private TextView yblNameOne; + private CheckBox lightChooseOne; + private ImageView yblOneIcon; + private TextView positionOne, mLightOpenOne, mLightCloseOne; + private RelativeLayout yblOneTop; + private ImageView positionIcon; + + private TextView yblNameTWo; + private CheckBox lightChooseTWo; + private ImageView yblIconTwo1; + private ImageView yblIconTwo2; + private TextView positionTwo1, mLightOpenTwo1, mLightCloseTwo1; + private TextView positionTwo2, mLightOpenTwo2, mLightCloseTwo2; + private RelativeLayout yblTwoTop; + + + public MessageViewHolder(View view) { + super(view); + yblNameOne = (TextView) itemView.findViewById(R.id.tv_ybl_name_one); + lightChooseOne = (CheckBox) itemView.findViewById(R.id.cb_device_choose_one); + yblOneIcon = (ImageView) itemView.findViewById(R.id.tv_one_ybl_icon); + positionOne = (TextView) itemView.findViewById(R.id.tv_one_position); + mLightOpenOne = (TextView) itemView.findViewById(R.id.tv_one_open); + mLightCloseOne = (TextView) itemView.findViewById(R.id.tv_one_close); + yblOneTop = (RelativeLayout) itemView.findViewById(R.id.ll_ybl_one_top); + positionIcon = (ImageView) itemView.findViewById(R.id.tv_one_position_icon); + + + yblNameTWo = (TextView) itemView.findViewById(R.id.tv_ybl_name_two); + lightChooseTWo = (CheckBox) itemView.findViewById(R.id.cb_device_choose2); + yblIconTwo1 = (ImageView) itemView.findViewById(R.id.tv_two_ybl_icon1); + yblIconTwo2 = (ImageView) itemView.findViewById(R.id.tv_two_ybl_icon2); + positionTwo1 = (TextView) itemView.findViewById(R.id.tv_two_position1); + mLightOpenTwo1 = (TextView) itemView.findViewById(R.id.tv_two_open1); + mLightCloseTwo1 = (TextView) itemView.findViewById(R.id.tv_two_close1); + positionTwo2 = (TextView) itemView.findViewById(R.id.tv_two_position2); + mLightOpenTwo2 = (TextView) itemView.findViewById(R.id.tv_two_open2); + mLightCloseTwo2 = (TextView) itemView.findViewById(R.id.tv_two_close2); + yblTwoTop = (RelativeLayout) itemView.findViewById(R.id.ll_ybl_two_top); + } + + private void setLightIcon(ImageView yblLightIcon, int lightType) { + switch (String.valueOf(lightType)) { + case "0"://灯光 + yblLightIcon.setImageResource(R.drawable.icon_light); + break; + case "1"://筒灯 + yblLightIcon.setImageResource(R.drawable.icon_tubelamp); + break; + case "2"://灯带 + yblLightIcon.setImageResource(R.drawable.icon_lightbelt); + break; + case "3"://射灯 + yblLightIcon.setImageResource(R.drawable.icon_lamp); + break; + case "4"://壁灯 + yblLightIcon.setImageResource(R.drawable.icon_walllamp); + break; + case "5"://吊灯 + yblLightIcon.setImageResource(R.drawable.icon_chandelier); + break; + case "6"://廊灯 + yblLightIcon.setImageResource(R.drawable.icon_porchlamp); + break; + case "7"://排气扇 + yblLightIcon.setImageResource(R.drawable.icon_exhaust); + break; + default: + yblLightIcon.setImageResource(R.drawable.icon_light); + break; + } + } + + public void setViews(final int position) { + final YblEntity detaiEntity = mObjEntity.get(position); + /*String addressName = AddressNameUtil.getAddressName(detaiEntity.getLights().get(0).getAddressId()); + positionOne.setText(addressName);*/ + if (deviceType.equals(TEMP_CONTROL) || deviceType.equals(FRESH_AIR) || deviceType.equals(FLOOR_HEATING) || deviceType.equals(LIGHT_TAG)) { + yblOneIcon.setImageResource(R.drawable.icon_device_temperature); + mLightOpenOne.setText("开"); + mLightCloseOne.setText("关"); + } + if (deviceType.equals(LIGHT_TAG)) { +// yblOneIcon.setImageResource(R.drawable.icon_light); + setLightIcon(yblOneIcon, detaiEntity.getLights().get(0).getLightType()); + mLightOpenOne.setText("开"); + mLightCloseOne.setText("关"); + } + if (deviceType.equals(SAFETY_VALVE)) { + yblOneIcon.setImageResource(R.drawable.icon_valve_controller); + mLightOpenOne.setText("开"); + mLightCloseOne.setText("关"); + } + if (deviceType.equals(SECURITY_MANIPULATOR)) { + yblOneIcon.setImageResource(R.drawable.icon_security_manipulator); + mLightOpenOne.setText("开"); + mLightCloseOne.setText("关"); + } + AddressNameUtil.setAddressIcon(mContext, positionIcon, detaiEntity.getLights().get(0).getAddressId()); + + if (nowPosition == position) { + lightChooseOne.setChecked(true); + } else { + lightChooseOne.setChecked(false); + } + + mLightOpenOne.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mLightClickListener != null) { + mLightClickListener.onLearnLightClick(position, 1, 0); + } + } + }); + mLightCloseOne.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mLightClickListener != null) { + mLightClickListener.onLearnLightClick(position, 0, 0); + } + } + }); + + lightChooseOne.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mLightClickListener != null) { + if (lightChooseOne.isChecked()) { + mLightClickListener.onLightOpenCloseClick(position, 0); + } else { + mLightClickListener.onLightOpenCloseClick(position, 1); + } + nowPosition = position; + notifyDataSetChanged(); + } + } + }); + + positionIcon.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mLightClickListener != null) { + mLightClickListener.onVoiceClick(position, 3, 0); + } + } + }); + yblOneIcon.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mLightClickListener != null) { + mLightClickListener.onVoiceClick(position, 2, 0); + } + } + }); + yblOneTop.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + } + }); + } + } + + +} diff --git a/app/src/main/java/com/yonsz/z1/version5/clotheshanger/FskListActivity.java b/app/src/main/java/com/yonsz/z1/version5/clotheshanger/FskListActivity.java new file mode 100644 index 0000000..cca1644 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/clotheshanger/FskListActivity.java @@ -0,0 +1,435 @@ +package com.yonsz.z1.version5.clotheshanger; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.YblEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.light.LightModifyActivity; +import com.yonsz.z1.panel485.Light485ListActivity; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.DeviceControlActivity; +import com.yonsz.z1.version5.DeviceControlByRoomActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.version5.light.ModifyLightTypeActivity; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; +import com.yonsz.z1.ybl.light.YblLightModifyActivity; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GET_SWITCHER_CHANGE_INFO; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.YBL_ADD_FAIL; +import static com.yonsz.z1.net.Constans.YBL_ADD_SUCCESS; + +public class FskListActivity extends BaseActivity { + private TitleView mTitleView; + private SwipeMenuRecyclerView mRecyclerView; + private List mNettyEntities = new ArrayList<>(); + private List yblDevices = new ArrayList<>(); + private FskClothesAdapter mLightAdapter; + private String deviceAddress; + private int modifyPosition, modifyChildPosition; + private LoadingDialog mLoadingDialog; + private Button nextButton; + private BaseVersion5Entity.DataBean body; + private BaseVersion5Entity.DataBean bodyTest; + private String deviceType = "CLOTHES_HANGER"; + private TextView tv_air_declare; + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_ybl_light_list); + NettyHandlerUtil.getInstance(); + initView(); + initListener(); + } + + private void initView() { + if (null != getIntent().getExtras().get("deviceType")) { + deviceType = getIntent().getExtras().get("deviceType").toString(); + } + body = (BaseVersion5Entity.DataBean) getIntent().getSerializableExtra("body"); + bodyTest = (BaseVersion5Entity.DataBean) getIntent().getSerializableExtra("body"); + nextButton = (Button) findViewById(R.id.bt_restart_config); + tv_air_declare = (TextView) findViewById(R.id.tv_air_declare); + tv_air_declare.setText("尝试以下按钮是否可用,并选择位置"); + deviceAddress = getIntent().getExtras().get("deviceAddress").toString(); + List yblEntities = (ArrayList) getIntent().getSerializableExtra("mNettyEntities"); + mNettyEntities = new ArrayList<>(yblEntities); + setInitAddressAndType(mNettyEntities); + mTitleView = (TitleView) findViewById(R.id.title_air_list); + if (deviceType.equals(TEMP_CONTROL)) { + mTitleView.setHead("添加温控系统"); + } else if (deviceType.equals(FRESH_AIR)) { + mTitleView.setHead("添加新风系统"); + } else if (deviceType.equals(FLOOR_HEATING)) { + mTitleView.setHead("添加地暖系统"); + } else if (deviceType.equals(LIGHT_TAG)) { + mTitleView.setHead("添加设备"); + } else if (deviceType.equals(SAFETY_VALVE)) { + mTitleView.setHead("添加阀门控制器"); + } else if (deviceType.equals(SECURITY_MANIPULATOR)) { + mTitleView.setHead("添加安防机械手"); + } else { + mTitleView.setHead("添加智能晾衣机"); + } + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setHeadFuntionTxtAndSise16("确定"); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + if (yblDevices.size() > 0) { + // yblAdd(); + subsetAdd(); + } else { + if (deviceType.equals(TEMP_CONTROL)) { + ToastUtil.show(FskListActivity.this, "请选择温控系统"); + } else if (deviceType.equals(FRESH_AIR)) { + ToastUtil.show(FskListActivity.this, "请选择新风系统"); + } else if (deviceType.equals(FLOOR_HEATING)) { + ToastUtil.show(FskListActivity.this, "请选择地暖系统"); + } else { + ToastUtil.show(FskListActivity.this, "请选择设备"); + } + } + } + + @Override + public void onFunctionText() { + + } + }); + + mLightAdapter = new FskClothesAdapter(this, mNettyEntities, false, deviceType); + mRecyclerView = (SwipeMenuRecyclerView) findViewById(R.id.smr_child_device_list); + RecyclerViewNoBugLinearLayoutManager manage = new RecyclerViewNoBugLinearLayoutManager(this); + manage.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setHasFixedSize(true); + mRecyclerView.setItemViewCacheSize(0);//试图解决复用的问题 + mRecyclerView.setLayoutManager(manage); + mRecyclerView.setAdapter(mLightAdapter); + + nextButton.setVisibility(View.GONE); + nextButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextButton.setClickable(false); + nextButton.setEnabled(false); + } + + private void setInitAddressAndType(List nettyEntities) { + for (int i = 0; i < nettyEntities.size(); i++) { + List lights = new ArrayList<>(); + if (nettyEntities.get(i).getLightCount() == 2) { + YblEntity.LightsBean lightsBean1 = new YblEntity.LightsBean(); + lightsBean1.setAddressId(deviceAddress); + lightsBean1.setLightType(0); + lights.add(lightsBean1); + YblEntity.LightsBean lightsBean2 = new YblEntity.LightsBean(); + lightsBean2.setAddressId(deviceAddress); + lightsBean2.setLightType(0); + lights.add(lightsBean2); + } else { + YblEntity.LightsBean lightsBean = new YblEntity.LightsBean(); + lightsBean.setAddressId(deviceAddress); + lightsBean.setLightType(0); + lights.add(lightsBean); + } + mNettyEntities.get(i).setLights(lights); + } + } + + private void initListener() { + nextButton.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (yblDevices.size() > 0) { + // yblAdd(); + subsetAdd(); + } else { + if (deviceType.equals(TEMP_CONTROL)) { + ToastUtil.show(FskListActivity.this, "请选择温控系统"); + } else if (deviceType.equals(FRESH_AIR)) { + ToastUtil.show(FskListActivity.this, "请选择新风系统"); + } else if (deviceType.equals(FLOOR_HEATING)) { + ToastUtil.show(FskListActivity.this, "请选择地暖系统"); + } else { + ToastUtil.show(FskListActivity.this, "请选择设备"); + } + } + } + }); + mLightAdapter.setOnItemLightClickListener(new FskClothesAdapter.OnItemLightClickListener() { + @Override + public void onLearnLightClick(int position, int i, int j) { + bodyTest.setTmpId(mNettyEntities.get(position).getTmpId()); + switch (i) { + case 0: + ShakeUtil.setShake(getApplicationContext()); + //上升 + // + // yblControl(mNettyEntities.get(position), i, j); + if (deviceType.equals(TEMP_CONTROL) || deviceType.equals(FRESH_AIR) || deviceType.equals(FLOOR_HEATING) || deviceType.equals(SAFETY_VALVE) || deviceType.equals(SECURITY_MANIPULATOR)) { + subsetTest("poweroff"); + } else { + subsetTest("up"); + } + break; + case 1: + ShakeUtil.setShake(getApplicationContext()); + //下降 + // yblControl(mNettyEntities.get(position), i, j); + if (deviceType.equals(TEMP_CONTROL) || deviceType.equals(FRESH_AIR) || deviceType.equals(FLOOR_HEATING) || deviceType.equals(SAFETY_VALVE) || deviceType.equals(SECURITY_MANIPULATOR)) { + subsetTest("power"); + } else { + subsetTest("down"); + } + break; + } + } + + @Override + public void onLightOpenCloseClick(int position, int i) { + if (null != mNettyEntities.get(position).getTmpId()) { + body.setTmpId(mNettyEntities.get(position).getTmpId()); + //是否选择了这一个 + yblDevices.add(mNettyEntities.get(position)); + } + /*if (i == 0) { + yblDevices.add(mNettyEntities.get(position)); + } else { + yblDevices.remove(mNettyEntities.get(position)); + } + if (yblDevices.size() > 0) { + nextButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_5dp)); + nextButton.setClickable(true); + nextButton.setEnabled(true); + } else { + nextButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextButton.setClickable(false); + nextButton.setEnabled(false); + }*/ + } + + @Override + public void onVoiceClick(int position, int voiceControlTag, int childPosition) { + //修改位置和图标 + modifyPosition = position; + modifyChildPosition = childPosition; + if (voiceControlTag == 2) { + if (!deviceType.equals(LIGHT_TAG)) { + return; + } + Intent intent1 = new Intent(FskListActivity.this, ModifyLightTypeActivity.class); + if (mNettyEntities.get(position).getLights().get(childPosition).getDeviceName().isEmpty()) { + intent1.putExtra("deviceName", "灯光"); + } else { + intent1.putExtra("deviceName", mNettyEntities.get(position).getLights().get(childPosition).getDeviceName()); + } + intent1.putExtra("lightType", mNettyEntities.get(position).getLights().get(childPosition).getLightType()); + intent1.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent1.putExtra("deviceType", LIGHT_TAG); + intent1.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + } else { + Intent intent1 = new Intent(FskListActivity.this, ModifyRoomActivity.class); + intent1.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent1.putExtra("deviceType", deviceType); + intent1.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + intent1.putExtra("addressId", deviceAddress); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + } + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case YBL_ADD_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + EventBus.getDefault().post( + new EventBusEntity("关闭")); + Intent intent; + if (AppIdUtil.isBaseZhiKong()) { + intent = new Intent(this, DeviceControlByRoomActivity.class); + } else { + intent = new Intent(this, DeviceControlActivity.class); + } + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("id", entity.getData().getId()); + intent.putExtra("addressId", entity.getData().getAddressId()); + startActivity(intent); + finish(); + break; + case YBL_ADD_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case GET_SWITCHER_CHANGE_INFO: + if (data != null && data.getExtras().get("lightType") != null) { + int lightType = Integer.parseInt(data.getExtras().get("lightType").toString()); + String addressId = data.getExtras().get("addressId").toString(); + mNettyEntities.get(modifyPosition).getLights().get(modifyChildPosition).setLightType(lightType); + mNettyEntities.get(modifyPosition).getLights().get(modifyChildPosition).setAddressId(addressId); + mLightAdapter.notifyDataSetChanged(); + } + break; + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("addressId") != null) { + deviceAddress = data.getExtras().get("addressId").toString(); + mNettyEntities.get(modifyPosition).getLights().get(modifyChildPosition).setAddressId(data.getExtras().get("addressId").toString()); + mLightAdapter.notifyDataSetChanged(); + } + if (data != null && data.getExtras().get("lightType") != null) { + int lightType = Integer.parseInt(data.getExtras().get("lightType").toString()); + mNettyEntities.get(modifyPosition).getLights().get(modifyChildPosition).setLightType(lightType); + if (null != data.getExtras().get("lightName")) { + mNettyEntities.get(modifyPosition).getLights().get(modifyChildPosition).setDeviceName(data.getExtras().get("lightName").toString()); + } + mLightAdapter.notifyDataSetChanged(); + } + if (data != null && data.getExtras().get("deviceName") != null) { + String deviceName = data.getExtras().get("deviceName").toString(); + int deviceNamePosition = (int) data.getExtras().get("deviceNamePosition"); + mNettyEntities.get(modifyPosition).getLights().get(modifyChildPosition).setDeviceName(deviceName); + mNettyEntities.get(modifyPosition).getLights().get(modifyChildPosition).setLightType(deviceNamePosition); + mNettyEntities.get(modifyPosition).getLights().get(modifyChildPosition).setSubType(String.valueOf(deviceNamePosition)); + mNettyEntities.get(modifyPosition).setSubType(String.valueOf(deviceNamePosition)); + if (deviceType.equals(MULTIFUNCTIONAL_CONTROLLER)) { + mNettyEntities.get(modifyPosition).setYblLabel(deviceName); + } + mLightAdapter.notifyDataSetChanged(); + } + break; + } + } + + + private void subsetAdd() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + map.put("deviceType", deviceType); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + map.put("addressId", deviceAddress); + if (null != getIntent().getExtras().get("floor")) { + map.put("floor", getIntent().getExtras().get("floor").toString()); + } + if (deviceType.equals(LIGHT_TAG)) { + map.put("subtype", mNettyEntities.get(modifyPosition).getLights().get(modifyChildPosition).getLightType()); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_ADD, map, JSONObject.toJSONString(body), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetAdd", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(YBL_ADD_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(YBL_ADD_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(YBL_ADD_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetTest(String key) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + map.put("deviceType", deviceType); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_TEST, map, JSONObject.toJSONString(bodyTest), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetTest", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/code/ChooseA1ByCodeActivity.java b/app/src/main/java/com/yonsz/z1/version5/code/ChooseA1ByCodeActivity.java new file mode 100644 index 0000000..120c17d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/code/ChooseA1ByCodeActivity.java @@ -0,0 +1,213 @@ +package com.yonsz.z1.version5.code; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.View; +import android.widget.Button; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity4.DeviceSimpleEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.adapter.ChooseA1Adapter; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.ADD_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.GETZIINFO_FAIL; +import static com.yonsz.z1.net.Constans.INDEX_APPLICANCE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.localAddAddressId; + +/** + * Created by Administrator on 2019/4/1. + */ + +public class ChooseA1ByCodeActivity extends BaseActivity { + private TitleView mTitleView; + private RecyclerView deviceNumberRv; + private ChooseA1Adapter mChooseA1Adapter; + private List dataBeanList = new ArrayList<>(); + private Button bt_next; + private String codeId = "", ziId = "", rid, brand, deviceType; + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_choose_a1_add_device); + initView(); + } + + private void initView() { + codeId = getIntent().getExtras().get("codeId").toString(); + rid = getIntent().getExtras().get("rid").toString(); + brand = getIntent().getExtras().get("brand").toString(); + deviceType = getIntent().getExtras().get("deviceType").toString(); + bt_next = (Button) findViewById(R.id.bt_next); + bt_next.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6)); + bt_next.setClickable(false); + bt_next.setEnabled(false); + deviceNumberRv = (RecyclerView) findViewById(R.id.rv_device_number); + mTitleView = (TitleView) findViewById(R.id.title_device_number); + mTitleView.setHead(R.string.add_device); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.clearBackGroud(); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + mChooseA1Adapter = new ChooseA1Adapter(this, dataBeanList); + GridLayoutManager manage1 = new GridLayoutManager(this, 3); + deviceNumberRv.setHasFixedSize(true); + deviceNumberRv.setLayoutManager(manage1); + deviceNumberRv.setAdapter(mChooseA1Adapter); + + mChooseA1Adapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int position) { + bt_next.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee)); + bt_next.setClickable(true); + bt_next.setEnabled(true); + ziId = dataBeanList.get(position).getZiId(); + localAddAddressId = dataBeanList.get(position).getAddressId(); + } + }); + + bt_next.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + subsetAdd(ziId, deviceType, brand); + } + }); + getInfraredAidevicelist(); + } + + private void subsetAdd(String ziId, String deviceType, String deviceBrand) { + BaseVersion5Entity.DataBean body = new BaseVersion5Entity.DataBean(); + body.setRid(rid); + body.setDeviceBrand(deviceBrand); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", "0"); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("addressId", localAddAddressId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_ADD, map, JSONObject.toJSONString(body), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetAdd", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getInfraredAidevicelist() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("id", codeId); + util.requestGetByAsy(NetWorkUrl.INFRARED_HISTORY_AIDEVICE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getInfraredAidevicelist", respone); + DeviceSimpleEntity entity = JSON.parseObject(respone, DeviceSimpleEntity.class); + if (1 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(INDEX_APPLICANCE_LIST_SUCCESS); + msg.obj = entity; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GETZIINFO_FAIL); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(); + msg.what = GETZIINFO_FAIL; + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case ADD_CHILDDEVICE_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case INDEX_APPLICANCE_LIST_SUCCESS: + DeviceSimpleEntity allDeviceEntity = (DeviceSimpleEntity) msg.obj; + dataBeanList.addAll(allDeviceEntity.getData()); + mChooseA1Adapter.notifyDataSetChanged(); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + Intent intent = new Intent(ChooseA1ByCodeActivity.this, MyCodeActivity.class); + intent.putExtra("ziId", ziId); + setResult(LEARN_RESULT, intent); + finish(); + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/code/MyCodeActivity.java b/app/src/main/java/com/yonsz/z1/version5/code/MyCodeActivity.java new file mode 100644 index 0000000..9111bd5 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/code/MyCodeActivity.java @@ -0,0 +1,529 @@ +package com.yonsz.z1.version5.code; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.Log; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.DeviceSimpleEntity; +import com.yonsz.z1.database.entity.entity5.MyCodeEntity; +import com.yonsz.z1.device.DeviceExpandableListView; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnExbandItemClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.PingYinUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_FAIL; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS; +import static com.yonsz.z1.net.Constans.GETZIINFO_FAIL; +import static com.yonsz.z1.net.Constans.INDEX_APPLICANCE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATEBLIND_ENTITYNAME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.INFRARED_HISTORY_LIST; +import static com.yonsz.z1.new433.light.LightNewActivity.removeDuplicate; + +public class MyCodeActivity extends BaseActivity { + private TitleView mTitleView; + private DeviceExpandableListView mListView; + private EditText searchEt; + Handler myhandler = new Handler(); + private List> dataBeans = new ArrayList<>(); + private List deleteDataBeans = new ArrayList<>(); + private List searchDataBeans = new ArrayList<>(); + private MyCodeAdapter myCodeAdapter; + private RelativeLayout rl_edit_delete; + private TextView tv_choose_all, tv_delete; + private MyCodeEntity myCodeEntity; + private int parentPositionModify, childPositionModify; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_my_code); + initView(); + initListener(); + } + + private void initView() { + rl_edit_delete = (RelativeLayout) findViewById(R.id.rl_edit_delete); + tv_choose_all = (TextView) findViewById(R.id.tv_choose_all); + tv_delete = (TextView) findViewById(R.id.tv_delete); + searchEt = (EditText) findViewById(R.id.et_search); + mListView = (DeviceExpandableListView) findViewById(R.id.expandablelist); + mTitleView = (TitleView) findViewById(R.id.title_my_code); + mTitleView.setHead("我的码库"); +// mTitleView.setHeadFuntionTxtAndSise16("编辑"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + if (mTitleView.getHeadFuntionTxt().equals("编辑")) { + mTitleView.setHeadFuntionTxtAndSise16("完成"); + rl_edit_delete.setVisibility(View.VISIBLE); + myCodeAdapter.setIsEdit(true); + } else { + mTitleView.setHeadFuntionTxtAndSise16("编辑"); + rl_edit_delete.setVisibility(View.GONE); + myCodeAdapter.setIsEdit(false); + } + } + + @Override + public void onFunctionText() { + + } + }); + myCodeAdapter = new MyCodeAdapter(getBaseContext(), dataBeans); + mListView.setAdapter(myCodeAdapter); + getInfraredHistoryList(); + } + + private void initListener() { + searchEt.addTextChangedListener(new TextWatcher() { + + @Override + public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { + } + + @Override + public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { + } + + @Override + public void afterTextChanged(Editable s) { + /**这是文本框改变之后 会执行的动作 + * 因为我们要做的就是,在文本框改变的同时,我们的listview的数据也进行相应的变动,并且如一的显示在界面上。 + * 所以这里我们就需要加上数据的修改的动作了。 + */ + myhandler.post(eChanged); + } + }); + + tv_choose_all.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (tv_choose_all.getText().toString().equals("全选")) { + tv_choose_all.setText("取消全选"); + myCodeAdapter.setIsChooseAll(true); + tv_delete.setText("删除(" + myCodeEntity.getData().size() + ")"); + tv_delete.setAlpha(1.0f); + tv_delete.setEnabled(true); + deleteDataBeans.clear(); + deleteDataBeans.addAll(myCodeEntity.getData()); + } else { + deleteDataBeans.clear(); + tv_choose_all.setText("全选"); + myCodeAdapter.setIsChooseAll(false); + tv_delete.setText("删除(0)"); + tv_delete.setAlpha(0.5f); + tv_delete.setEnabled(false); + } + } + }); + tv_delete.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (deleteDataBeans.size() == 0) { + return; + } + ConfirmDialog dialog = new ConfirmDialog(MyCodeActivity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + infraredHistoryBatchDelete(); + break; + } + } + }); + dialog.setContent("确定删除该红外码?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + }); + + myCodeAdapter.setmOnExpandItemClickListener(new OnExbandItemClickListener() { + @Override + public void onClick(View view, int parentPosition, int childPosition, int i, int j, String id) { + switch (i) { + case 0: + parentPositionModify = parentPosition; + childPositionModify = childPosition; + getInfraredAidevicelist(); + break; + case 1: + if (j == 0) { + deleteDataBeans.add(dataBeans.get(parentPosition).get(childPosition)); + } else { + deleteDataBeans.remove(dataBeans.get(parentPosition).get(childPosition)); + } + if (deleteDataBeans.size() != 0) { + tv_delete.setText("删除(" + deleteDataBeans.size() + ")"); + tv_delete.setAlpha(1.0f); + tv_delete.setEnabled(true); + } else { + tv_delete.setText("删除(0)"); + tv_delete.setAlpha(0.5f); + tv_delete.setEnabled(false); + } + break; + case 2: + parentPositionModify = parentPosition; + childPositionModify = childPosition; + showModifyPop(); + break; + } + } + }); + } + + private void showModifyPop() { + RenameNameDialog dialog = new RenameNameDialog(MyCodeActivity.this, new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + infraredHistoryModify(positioName); + break; + } + } + }); + dialog.setMaxEms(20); + dialog.setOldName(dataBeans.get(parentPositionModify).get(childPositionModify).getName()); + dialog.setContent("修改我的码库名称"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + } + + /** + * 关于界面UI的更新,可以使用Handler,通过Post一个Runnable去更新,Runnable会去根据搜索框的文本对mData里的数据进行更新。 + */ + Runnable eChanged = new Runnable() { + @Override + public void run() { + String data = searchEt.getText().toString(); + searchDataBeans.clear(); + getmDataSub(myCodeEntity.getData(), data); + myCodeAdapter.notifyDataSetChanged(); + for (int i = 0; i < myCodeAdapter.getGroupCount(); i++) { + mListView.expandGroup(i); + } + } + }; + + /** + * 可能对mData的理解会有点问题,因为数据更新完后,每一次的筛选数据都是放在mData里,那么原本的数据呢,当然就是在mListTitle和mListText里。根据获得数据的getmDataSub的代码即可知。 + */ + + private void getmDataSub(List mDataSubs, String data) { + int length = mDataSubs.size(); + for (int i = 0; i < length; ++i) { + if (mDataSubs.get(i).getName().contains(data) || PingYinUtil.getPingYin(mDataSubs.get(i).getName()).contains(data)) { + searchDataBeans.add(mDataSubs.get(i)); + } + } + convertList(searchDataBeans); + } + + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + myCodeEntity = (MyCodeEntity) msg.obj; + List data = myCodeEntity.getData(); + if (data.size() == 0) { + mTitleView.setHeadFuntionTxtGone(); + } else { + if (mTitleView.getHeadFuntionTxt().equals("完成")) { + mTitleView.setHeadFuntionTxtAndSise16("完成"); + } else { + mTitleView.setHeadFuntionTxtAndSise16("编辑"); + } + } + convertList(data); + myCodeAdapter.notifyDataSetChanged(); + for (int i = 0; i < myCodeAdapter.getGroupCount(); i++) { + mListView.expandGroup(i); + } + break; + case UPDATEBLIND_ENTITYNAME_SUCCESS: + String positioName = (String) msg.obj; + dataBeans.get(parentPositionModify).get(childPositionModify).setName(positioName); + myCodeAdapter.notifyDataSetChanged(); + break; + case DELLIGHT_ENTITY_SUCCESS: + getInfraredHistoryList(); + deleteDataBeans.clear(); + tv_delete.setText("删除(0)"); + tv_delete.setAlpha(0.5f); + tv_delete.setEnabled(false); + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS: + getInfraredHistoryList(); + ToastUtil.show(this, "下载完成"); + break; + case SELECT_MODEL_TIME_FAIL: + case UPDATEBLIND_ENTITYNAME_FAIL: + case DELLIGHT_ENTITY_FAIL: + case DOWNLOAD_INFRARED_BYRID_FAIL: + case GETZIINFO_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case INDEX_APPLICANCE_LIST_SUCCESS: + DeviceSimpleEntity allDeviceEntity = (DeviceSimpleEntity) msg.obj; + if (allDeviceEntity.getData().size() > 0) { + Intent intent = new Intent(MyCodeActivity.this, ChooseA1ByCodeActivity.class); + intent.putExtra("codeId", dataBeans.get(parentPositionModify).get(childPositionModify).getId()); + intent.putExtra("rid", dataBeans.get(parentPositionModify).get(childPositionModify).getRid()); + intent.putExtra("brand", dataBeans.get(parentPositionModify).get(childPositionModify).getBrand()); + intent.putExtra("deviceType", dataBeans.get(parentPositionModify).get(childPositionModify).getDeviceType()); + startActivityForResult(intent, LEARN_RESULT); + } else { + ToastUtil.show(this, "暂无语音管家可以下载该红外码"); + } + break; + } + } + + private List> convertList(List mObjEntity) { + if (mObjEntity != null && mObjEntity.size() > 0) { + List mChildData = null; + List ziIdStrings = new ArrayList<>(); + for (int i = 0; i < mObjEntity.size(); i++) { + ziIdStrings.add(mObjEntity.get(i).getDeviceType()); + } + List list = removeDuplicate(ziIdStrings); + dataBeans.clear(); + for (int i = 0; i < list.size(); i++) { + mChildData = new ArrayList<>(); + for (int j = 0; j < mObjEntity.size(); j++) { + if (mObjEntity.get(j).getDeviceType().equals(list.get(i))) { + mChildData.add(mObjEntity.get(j)); + } + } + if (mChildData.size() > 0) { + dataBeans.add(mChildData); + } + } + } else { + dataBeans.clear(); + } + return dataBeans; + } + + private void getInfraredHistoryList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); +// map.put("companyId", id); + netWorkUtil.requestGetByAsy(INFRARED_HISTORY_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getInfraredHistoryList", respone); + MyCodeEntity obj = JSON.parseObject(respone, MyCodeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void infraredHistoryModify(String name) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", dataBeans.get(parentPositionModify).get(childPositionModify).getId()); + map.put("brand", dataBeans.get(parentPositionModify).get(childPositionModify).getBrand()); + map.put("model", dataBeans.get(parentPositionModify).get(childPositionModify).getModel()); + map.put("name", name); + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.INFRARED_HISTORY_MODIFY, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("infraredHistoryModify", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_SUCCESS); + msg.obj = name; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATEBLIND_ENTITYNAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void infraredHistoryBatchDelete() { + List stringList = new ArrayList<>(); + for (int i = 0; i < deleteDataBeans.size(); i++) { + stringList.add(deleteDataBeans.get(i).getId()); + } + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + netWorkUtil.requestPostByAsyBody(NetWorkUrl.INFRARED_HISTORY_BATCHDELETE, map, JSONObject.toJSONString(stringList), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("infraredHistoryBatchDe", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void infraredHistoryDownload(String ziId) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", dataBeans.get(parentPositionModify).get(childPositionModify).getId()); + map.put("deviceType", dataBeans.get(parentPositionModify).get(childPositionModify).getDeviceType()); + map.put("ziId", ziId); + netWorkUtil.requestPostByAsynewApi(NetWorkUrl.INFRARED_HISTORY_DOWNLOAD, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("infraredHistoryDownload", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DOWNLOAD_INFRARED_BYRID_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getInfraredAidevicelist() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("id", dataBeans.get(parentPositionModify).get(childPositionModify).getId()); + util.requestGetByAsy(NetWorkUrl.INFRARED_HISTORY_AIDEVICE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getInfraredAidevicelist", respone); + DeviceSimpleEntity entity = JSON.parseObject(respone, DeviceSimpleEntity.class); + if (1 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(INDEX_APPLICANCE_LIST_SUCCESS); + msg.obj = entity; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GETZIINFO_FAIL); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(); + msg.what = GETZIINFO_FAIL; + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case LEARN_RESULT: + if (data != null && data.getExtras().get("ziId") != null) { + String ziId = (String) data.getExtras().get("ziId"); + infraredHistoryDownload(ziId); + } + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/code/MyCodeAdapter.java b/app/src/main/java/com/yonsz/z1/version5/code/MyCodeAdapter.java new file mode 100644 index 0000000..f74dc5f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/code/MyCodeAdapter.java @@ -0,0 +1,258 @@ +package com.yonsz.z1.version5.code; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseExpandableListAdapter; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.database.entity.entity5.MyCodeEntity; +import com.yonsz.z1.database.entity.entitya2.ModelSetEntity; +import com.yonsz.z1.device.SlideView; +import com.yonsz.z1.difference.DifferConstans; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnExbandItemClickListener; +import com.yonsz.z1.utils.AddressNameUtil; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.GEMSTONE_ELVES; +import static com.yonsz.z1.net.Constans.INDEPENDENT_CODE_AC; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.Img; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; + +/** + * Created by Administrator on 2017/11/13. + */ + +public class MyCodeAdapter extends BaseExpandableListAdapter { + private Context mContext; + private List> mDatas = new ArrayList<>(); + private int groupCount = 0; + private String ziId; + private OnExbandItemClickListener mExbandItemClickListener; + private boolean isEdit = false, isChooseAll = false; + + + public MyCodeAdapter(Context mContext, List> mDatas) { + super(); + this.mContext = mContext; + this.mDatas = mDatas; + } + + public void setIsEdit(boolean isTdit) { + this.isEdit = isTdit; + // this.mDataBeans = mDataBeans; + this.notifyDataSetChanged(); + } + + public void setIsChooseAll(boolean isChooseAll) { + this.isChooseAll = isChooseAll; + // this.mDataBeans = mDataBeans; + this.notifyDataSetChanged(); + } + + @Override + public int getGroupCount() { + return mDatas.size(); + } + + @Override + public int getChildrenCount(int groupPosition) { + return mDatas.get(groupPosition).size(); + } + + @Override + public Object getGroup(int groupPosition) { + return mDatas.get(groupPosition); + } + + @Override + public Object getChild(int groupPosition, int childPosition) { + return childPosition; + } + + @Override + public long getGroupId(int groupPosition) { + return groupPosition; + } + + @Override + public long getChildId(int groupPosition, int childPosition) { + return childPosition; + } + + @Override + public boolean hasStableIds() { + return true; + } + + @Override + public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { + ParentHolder parentHolder; + SlideView slideView = (SlideView) convertView; + if (slideView == null) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_choose_new_group, null); + slideView = new SlideView(mContext, false, false); + slideView.setContentView(itemView); + parentHolder = new ParentHolder(slideView); + slideView.setTag(parentHolder); + } else { + parentHolder = (ParentHolder) slideView.getTag(); + } + slideView.shrink(); + switch (mDatas.get(groupPosition).get(0).getDeviceType()) { + case FAN_TAG: + parentHolder.devicePosition.setText("电风扇"); + break; + case TV_TAG: + parentHolder.devicePosition.setText("电视"); + break; + case TVONE_TAG: + parentHolder.devicePosition.setText("机顶盒"); + break; + case SWEEP_TAG: + parentHolder.devicePosition.setText("扫地机"); + break; + case AIR_CLEANER: + parentHolder.devicePosition.setText("净化器"); + break; + case MOVIE_CAMERA: + parentHolder.devicePosition.setText("投影仪"); + break; + case INDEPENDENT_CODE_AC: + parentHolder.devicePosition.setText("独立空调"); + break; + } + if (isExpanded) { + parentHolder.arrowIv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrow_down)); + } else { + parentHolder.arrowIv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrow_up)); + } + return slideView; + } + + @Override + public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { + final ChildHolder childHolder; + SlideView slideView = (SlideView) convertView; + if (slideView == null) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_my_code_child, null); + slideView = new SlideView(mContext, false, false); + slideView.setContentView(itemView); + childHolder = new ChildHolder(slideView); + slideView.setTag(childHolder); + } else { + childHolder = (ChildHolder) slideView.getTag(); + } + slideView.shrink(); + + childHolder.title.setText(mDatas.get(groupPosition).get(childPosition).getName()); + if (isEdit) { + childHolder.mControlOpen.setVisibility(View.VISIBLE); + childHolder.editCode.setVisibility(View.VISIBLE); + childHolder.downloadCode.setVisibility(View.GONE); + } else { + childHolder.mControlOpen.setVisibility(View.GONE); + childHolder.editCode.setVisibility(View.GONE); + childHolder.downloadCode.setVisibility(View.VISIBLE); + } + + if (isChooseAll) { + childHolder.mControlOpen.setChecked(true); + } else { + childHolder.mControlOpen.setChecked(false); + } + + final SlideView finalSlideView = slideView; + childHolder.downloadCode.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mExbandItemClickListener != null) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 0, 0, mDatas.get(groupPosition).get(childPosition).getId()); + } + } + }); + + childHolder.mControlOpen.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mExbandItemClickListener != null) { + if (childHolder.mControlOpen.isChecked()) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 1, 0, mDatas.get(groupPosition).get(childPosition).getId()); + } else { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 1, 1, mDatas.get(groupPosition).get(childPosition).getId()); + } + } + } + }); + childHolder.editCode.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mExbandItemClickListener != null) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 2, 0, mDatas.get(groupPosition).get(childPosition).getId()); + } + } + }); + return slideView; + } + + @Override + public boolean isChildSelectable(int groupPosition, int childPosition) { + return true; + } + + //点击事件 + public void setmOnExpandItemClickListener(OnExbandItemClickListener mExbandItemClickListener) { + this.mExbandItemClickListener = mExbandItemClickListener; + } + + private static class ParentHolder { + public TextView devicePosition; + private ImageView arrowIv; + + ParentHolder(View view) { + devicePosition = (TextView) view.findViewById(R.id.tv_device_position); + arrowIv = (ImageView) view.findViewById(R.id.iv_arrow_down_up); + } + } + + private static class ChildHolder { + public TextView title; + public TextView downloadCode, editCode; + private CheckBox mControlOpen; + + ChildHolder(View view) { + title = (TextView) view.findViewById(R.id.tv_child_device); + mControlOpen = (CheckBox) view.findViewById(R.id.cb_device_choose); + downloadCode = (TextView) view.findViewById(R.id.tv_download_code); + editCode = (TextView) view.findViewById(R.id.tv_edit_code); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/Curtain5Fragment.java b/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/Curtain5Fragment.java new file mode 100644 index 0000000..c0feea3 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/Curtain5Fragment.java @@ -0,0 +1,1127 @@ +package com.yonsz.z1.version5.curtainandWindow; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.SeekBar; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AdditionEntity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.LightListEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.BlindTestEntity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNextDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.new433.curtain.CurtainsStepOneActivity; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.view.PositionPopupWindow; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DELBLIND_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELBLIND_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_FAIL; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_FAIL; +import static com.yonsz.z1.net.Constans.SENDVOICE_BLINDMSG_FAIL; +import static com.yonsz.z1.net.Constans.SENDVOICE_BLINDMSG_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class Curtain5Fragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition, aiNameAndState, aiModelName; + private CheckBox childVoiceCb; + private CheckBox childPicture; + private TextView firstControl, secondControl, thirdControl, tv_state; + private ImageView firstControlIv, thirdControlIv; + private FrameLayout secondControlFl; + private String ziId; + private String curtainId; + private String relatedId; + private String addressName; + private String addressId; + private String voiceFlag; + private ImageView localControlIv; + private String blindType; + private String relatedStatus; + private LinearLayout ll_show_one; + private RelativeLayout rl_show_all; + private TextView chuangControlOne, chuangControlTwo, chuangControlThree; + private TextView shaControlOne, shaControlTwo, shaControlThree; + private TextView allControlOne, allControlTwo, allControlThree; + private String blindState; + private String openFlag = ""; + private String openFlag1 = ""; + private String deviceModel; + private String deviceName = "窗帘"; + private TextView tv_brightness; + private LinearLayout ll_light_control; + private SeekBar brightNessSb; + + public static Curtain5Fragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + Curtain5Fragment fragment = new Curtain5Fragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("Curtai4Activity")) { + getActivity().finish(); + } + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_curtain4, null); + initView(fragView); + return fragView; + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + ziId = devicesBean.getZiId(); + curtainId = devicesBean.getId(); + addressId = devicesBean.getAddressId(); + deviceModel = devicesBean.getDeviceModel(); + addressName = AddressNameUtil.getAddressName(addressId); + voiceFlag = devicesBean.getVoiceFlag(); + blindType = devicesBean.getBlindType(); + if (null != getArguments().get("relatedStatus")) { + relatedStatus = getArguments().get("relatedStatus").toString(); + } else { + relatedStatus = devicesBean.getRelatedStatus(); + } + tv_state = (TextView) fragView.findViewById(R.id.tv_state); + childPosition = (TextView) fragView.findViewById(R.id.tv_child_position); + brightNessSb = (SeekBar) fragView.findViewById(R.id.sb_lightness); + tv_brightness = (TextView) fragView.findViewById(R.id.tv_brightness); + ll_light_control = (LinearLayout) fragView.findViewById(R.id.ll_light_control); + aiNameAndState = (TextView) fragView.findViewById(R.id.tv_ai_state); + aiModelName = (TextView) fragView.findViewById(R.id.tv_ai_modelname); + childVoiceCb = (CheckBox) fragView.findViewById(R.id.tv_child_voice); + childPicture = (CheckBox) fragView.findViewById(R.id.iv_child_picture); + firstControl = (TextView) fragView.findViewById(R.id.tv_first_control); + secondControl = (TextView) fragView.findViewById(R.id.tv_second_control); + thirdControl = (TextView) fragView.findViewById(R.id.tv_third_control); + chuangControlOne = (TextView) fragView.findViewById(R.id.tv_first_control_chuanglian); + chuangControlTwo = (TextView) fragView.findViewById(R.id.tv_second_control_chuanglian); + chuangControlThree = (TextView) fragView.findViewById(R.id.tv_third_control_chuanglian); + shaControlOne = (TextView) fragView.findViewById(R.id.tv_first_control_shalian); + shaControlTwo = (TextView) fragView.findViewById(R.id.tv_second_control_shalian); + shaControlThree = (TextView) fragView.findViewById(R.id.tv_third_control_shalian); + allControlOne = (TextView) fragView.findViewById(R.id.tv_first_control_all); + allControlTwo = (TextView) fragView.findViewById(R.id.tv_second_control_all); + allControlThree = (TextView) fragView.findViewById(R.id.tv_third_control_all); + firstControlIv = (ImageView) fragView.findViewById(R.id.iv_first_control); + thirdControlIv = (ImageView) fragView.findViewById(R.id.iv_third_control); + secondControlFl = (FrameLayout) fragView.findViewById(R.id.fl_second_control); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + ll_show_one = (LinearLayout) fragView.findViewById(R.id.ll_show_one); + rl_show_all = (RelativeLayout) fragView.findViewById(R.id.rl_show_all); + childVoiceCb.setOnClickListener(this); + firstControl.setOnClickListener(this); + secondControl.setOnClickListener(this); + thirdControl.setOnClickListener(this); + chuangControlOne.setOnClickListener(this); + chuangControlTwo.setOnClickListener(this); + chuangControlThree.setOnClickListener(this); + shaControlOne.setOnClickListener(this); + shaControlTwo.setOnClickListener(this); + shaControlThree.setOnClickListener(this); + allControlOne.setOnClickListener(this); + allControlTwo.setOnClickListener(this); + allControlThree.setOnClickListener(this); + + + mTitleView = (TitleView) fragView.findViewById(R.id.title_light4); + if (devicesBean.getDeviceName().isEmpty()) { + deviceName = "窗帘"; + mTitleView.setHead(deviceName); + } else { + deviceName = devicesBean.getDeviceName(); + mTitleView.setHead(deviceName); + } + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除窗帘 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + Intent intent1 = new Intent(getActivity(), ModifyRoomActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("deviceType", CURTAINS_TAG); + intent1.putExtra("deviceModel", deviceModel); + intent1.putExtra("addressId", addressId); + intent1.putExtra("deviceId", curtainId); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", CURTAINS_TAG); + intent.putExtra("blindType", blindType); + intent.putExtra("relatedStatus", relatedStatus); + startActivity(intent); + break; + case 4: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + gotoReAddCurtain(); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + + if (relatedStatus.equals("1")) { + dialog2.setContent(R.string.modify_curtains); + dialog2.setLearn(); + dialog2.setSureBtnTxt(R.string.delete_curtains); + } else { + if (blindType.equals("1")) { + dialog2.setContent(R.string.modify_shalian); + dialog2.setLearnTxt(R.string.add_chuanglian); + dialog2.setSureBtnTxt(R.string.delete_shalian); + } else { + dialog2.setContent(R.string.modify_chuanglian); + dialog2.setLearnTxt(R.string.add_shalian); + dialog2.setSureBtnTxt(R.string.delete_chuanglian); + } + } + if (deviceModel.equals("2") || deviceModel.equals("5")) { + dialog2.setLearn(); + } + dialog2.setModifyName("修改设备名称"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + if (deviceModel.equals("5") || deviceModel.equals("6")) { + childVoiceCb.setVisibility(View.GONE); + ll_light_control.setVisibility(View.GONE); + tv_brightness.setVisibility(View.GONE); + } else if (deviceModel.equals("2")) { + ll_light_control.setVisibility(View.VISIBLE); + tv_brightness.setVisibility(View.VISIBLE); + } else { + ll_light_control.setVisibility(View.GONE); + tv_brightness.setVisibility(View.GONE); + } + childPosition.setText(addressName); + aiNameAndState.setText(AddressNameUtil.getAiNameAndState(ziId)); + aiModelName.setText(devicesBean.getModelName()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + tv_state.setVisibility(View.VISIBLE); + setPicState(); + + brightNessSb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, final int progress, boolean fromUser) { + Log.i("Curtain5Fragment", "onProgressChanged()" + progress); + tv_brightness.setText(progress + "%"); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + Log.i("Curtain5Fragment", "onStopTrackingTouch()" + seekBar.getProgress()); + subsetControl("travelControl", curtainId, seekBar.getProgress()); + } + }); + } + + private void gotoReAddCurtain() { + Intent intent; + if (deviceModel.equals("1") || deviceModel.equals("3")) { + intent = new Intent(getContext(), CurtainAndWindowClickActivity.class); + } else { + intent = new Intent(getContext(), CurtainsStepOneActivity.class); + } + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", CURTAINS_TAG); + if (blindType.equals("1")) { + intent.putExtra("subtype", "0"); + intent.putExtra("largeClass", "0"); + } else { + intent.putExtra("subtype", "1"); + intent.putExtra("largeClass", "1"); + } + intent.putExtra("addressId", addressId); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("isReAddCurtain", true); + intent.putExtra("relatedId", curtainId); + startActivity(intent); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setPicState() { + if (relatedStatus.equals("-1") && !deviceModel.equals("5")) { + ll_show_one.setVisibility(View.VISIBLE); + rl_show_all.setVisibility(View.GONE); + if (AppIdUtil.isBaseZhiKong()) { + if (blindType.equals("1")) { + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_gauze)); + } else { + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain)); + } + } else { + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain_open_close)); + } + ConfirmNextDialog dialog = new ConfirmNextDialog(getContext(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + relatedStatus = "0"; + break; + case 1: + relatedStatus = "0"; + gotoReAddCurtain(); + break; + } + } + }); + if (mTitleView.getHead().equals("纱帘")) { + dialog.setContent(R.string.is_add_chuanglian); + } else { + dialog.setContent(R.string.is_add_shalian); + } + dialog.setTopTxt(R.string.same_window); + dialog.setCancleBtn(R.string.no_add); + dialog.setSureBtn(R.string.rec_add); + dialog.setCancelable(false); + dialog.show(); + } else if (relatedStatus.equals("1")) { + ll_show_one.setVisibility(View.GONE); + rl_show_all.setVisibility(View.VISIBLE); + } else { + ll_show_one.setVisibility(View.VISIBLE); + rl_show_all.setVisibility(View.GONE); + if (AppIdUtil.isBaseZhiKong()) { + if (blindType.equals("1")) { + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_gauze)); + } else { + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain)); + } + } else { + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain_open_close)); + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(curtainId, CURTAINS_TAG); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetDelete() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", curtainId); + map.put("deviceModel", deviceModel); + map.put("deviceType", CURTAINS_TAG); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + ShakeUtil.setShake(getContext()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (voiceFlag.equals("1")) { + // allowVoiceControll(0, "id"); + subseSetVoice("0"); + } else { + // allowVoiceControll(1, "id"); + subseSetVoice("1"); + } + break; + } + } + }); + if (!voiceFlag.equals("1")) { + dialog.setContent(R.string.open_voice); + } else { + dialog.setContent(R.string.close_voice); + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_first_control: + ShakeUtil.setShake(getContext()); + subsetControl("open", curtainId, 0); + break; + case R.id.tv_second_control: + ShakeUtil.setShake(getContext()); + subsetControl("stop", curtainId, 0); + break; + case R.id.tv_third_control: + ShakeUtil.setShake(getContext()); + subsetControl("close", curtainId, 0); + break; + case R.id.tv_first_control_chuanglian: + ShakeUtil.setShake(getContext()); + if (blindType.equals("0")) { + subsetControl("open", curtainId, 0); + } else { + subsetControl("open", relatedId, 0); + } + break; + case R.id.tv_second_control_chuanglian: + ShakeUtil.setShake(getContext()); + if (blindType.equals("0")) { + subsetControl("stop", curtainId, 0); + } else { + subsetControl("stop", relatedId, 0); + } + break; + case R.id.tv_third_control_chuanglian: + ShakeUtil.setShake(getContext()); + if (blindType.equals("0")) { + subsetControl("close", curtainId, 0); + } else { + subsetControl("close", relatedId, 0); + } + break; + case R.id.tv_first_control_shalian: + ShakeUtil.setShake(getContext()); + if (blindType.equals("1")) { + subsetControl("open", curtainId, 0); + } else { + subsetControl("open", relatedId, 0); + } + break; + case R.id.tv_second_control_shalian: + ShakeUtil.setShake(getContext()); + if (blindType.equals("1")) { + subsetControl("stop", curtainId, 0); + } else { + subsetControl("stop", relatedId, 0); + } + break; + case R.id.tv_third_control_shalian: + ShakeUtil.setShake(getContext()); + if (blindType.equals("1")) { + subsetControl("close", curtainId, 0); + } else { + subsetControl("close", relatedId, 0); + } + break; + case R.id.tv_first_control_all: + ShakeUtil.setShake(getContext()); + if (deviceModel.equals("4")) { + subsetControl("allOpen", curtainId, 0); + } else { + subsetControl("open", curtainId, 0); + subsetControl("open", relatedId, 0); + } + break; + case R.id.tv_second_control_all: + ShakeUtil.setShake(getContext()); + if (deviceModel.equals("4")) { + subsetControl("allStop", curtainId, 0); + } else { + subsetControl("stop", curtainId, 0); + subsetControl("stop", relatedId, 0); + } + break; + case R.id.tv_third_control_all: + ShakeUtil.setShake(getContext()); + if (deviceModel.equals("4")) { + subsetControl("allClose", curtainId, 0); + } else { + subsetControl("close", curtainId, 0); + subsetControl("close", relatedId, 0); + } + break; + /*default: + super.registerOnClick(v.getId());*/ + + } + } + + private void subsetControl(String key, String deviceId, int brightness) { + // initLoadDialog(); + String body = "{}"; + AdditionEntity additionEntity = new AdditionEntity(); + /*if (key.equals("dimming")) { + key = "open"; + AdditionEntity.AdditionBean addition = new AdditionEntity.AdditionBean(); + addition.setTravelControl(String.valueOf(brightness)); + additionEntity.setAddition(addition); + body = JSONObject.toJSONString(additionEntity); + }*/ + if (key.equals("travelControl")) { + body = "{\"value\":\"" + String.valueOf(brightness) + "\"}"; + } + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", CURTAINS_TAG); + map.put("ziId", ziId); + map.put("oper", key); + map.put("waitReturn", "true"); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + /*if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + }*/ + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subseSetVoice(final String flag) { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", curtainId); + map.put("deviceModel", deviceModel); + map.put("deviceType", CURTAINS_TAG); + map.put("ziId", ziId); + map.put("voiceFlag", flag); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SETVOICE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subseSetVoice", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SENDVOICE_BLINDMSG_SUCCESS); + msg.obj = flag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SENDVOICE_BLINDMSG_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SENDVOICE_BLINDMSG_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case DELLIGHT_ENTITY_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), R.string.Delete_successful); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 1000); + break; + case SELECTBLIND_BYZI_SUCCESS: + LightListEntity obj = (LightListEntity) msg.obj; + break; + case SELECTBLIND_BYZI_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + getActivity().finish(); + break; + case DELBLIND_ENTITY_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + getActivity().finish(); + break; + case DELBLIND_ENTITY_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BlindTestEntity blindTestEntity = (BlindTestEntity) msg.obj; + addressId = blindTestEntity.getObj().getAddressId(); + childPosition.setText(blindTestEntity.getObj().getAddressName()); + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + /* if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + }*/ + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SENDVOICE_BLINDMSG_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + int obj1 = Integer.parseInt((String) msg.obj); + if (obj1 == 0) { + voiceFlag = "0"; + ToastUtil.show(getContext(), "关闭语音成功"); + childVoiceCb.setChecked(false); + } else { + voiceFlag = "1"; + ToastUtil.show(getContext(), "开启语音成功"); + childVoiceCb.setChecked(true); + } + break; + case SENDPID_STUDYBLIND_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + String infrared = nettyEntity.getInfrared(); + String cmdType = nettyEntity.getCmdType(); + String deviceIds = nettyEntity.getDeviceIds(); + List result = Arrays.asList(deviceIds.split(",")); + if (null != nettyEntity.getDeviceType() && nettyEntity.getDeviceType().equals(CURTAINS_TAG)) { + if (relatedStatus.equals("1")) { + relatedId = devicesBean.getRelatedId(); + if (result.contains(curtainId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + openFlag = "1"; + } else if (nettyEntity.getOpenFlag().equals("0")) { + openFlag = "0"; + } + } + if (result.contains(relatedId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + openFlag1 = "1"; + } else if (nettyEntity.getOpenFlag().equals("0")) { + openFlag1 = "0"; + } + } + setBlindDateChanged(); + } else { + if (result.contains(curtainId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_state.setText(deviceName + "已开启"); + } else if (nettyEntity.getOpenFlag().equals("0")) { + childPicture.setChecked(false); + tv_state.setText(deviceName + "已关闭"); + } + } + } + + if (nettyEntity.getTravelControl().isEmpty()) { + brightNessSb.setProgress(100); + tv_brightness.setText(100 + "%"); + } else { + brightNessSb.setProgress(Integer.parseInt(nettyEntity.getTravelControl())); + tv_brightness.setText(nettyEntity.getTravelControl() + "%"); + } + } else { + + } + break; + case QUERY_DEVICE_LASTINFO_FAIL: + if (relatedStatus.equals("1")) { + setBlindState("3"); + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (relatedStatus.equals("1")) { + openFlag = parseObject.getData().getOpenFlag(); + if (null != parseObject.getData().getRelatedLastInfo()) { + openFlag1 = parseObject.getData().getRelatedLastInfo().getOpenFlag(); + } else { + if (null != devicesBean.getRelatedBlind() && null != devicesBean.getRelatedBlind().getOpenFlag()) { + openFlag1 = devicesBean.getRelatedBlind().getOpenFlag(); + } + } + setBlindDateChanged(); + } else { + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_state.setText(deviceName + "已开启"); + } else { + childPicture.setChecked(false); + tv_state.setText(deviceName + "已关闭"); + } + } + + if (parseObject.getData().getTravelControl().isEmpty()) { + brightNessSb.setProgress(100); + tv_brightness.setText(100 + "%"); + } else { + brightNessSb.setProgress(Integer.parseInt(parseObject.getData().getTravelControl())); + tv_brightness.setText(parseObject.getData().getTravelControl() + "%"); + } + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", curtainId); + map.put("deviceModel", deviceModel); + map.put("deviceType", CURTAINS_TAG); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setBlindDateChanged() { + if (blindType.equals("0")) { + if (openFlag.equals("1")) { + if (openFlag1.equals("1")) { + setBlindState("1"); + } else { + setBlindState("3"); + } + } else { + if (openFlag1.equals("1")) { + setBlindState("4"); + } else { + setBlindState("2"); + } + } + } else { + if (openFlag.equals("1")) { + if (openFlag1.equals("1")) { + setBlindState("1"); + } else { + setBlindState("4"); + } + } else { + if (openFlag1.equals("1")) { + setBlindState("3"); + } else { + setBlindState("2"); + } + } + } + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void setBlindState(String state) { + blindState = state; + if (AppIdUtil.isBaseZhiKong()) { + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain)); + switch (blindState) { + case "1": + tv_state.setText("窗帘纱帘已开启"); + break; + case "2": + tv_state.setText("窗帘纱帘已关闭"); + break; + case "3": + tv_state.setText("窗帘开启纱帘关闭"); + break; + case "4": + tv_state.setText("窗帘关闭纱帘开启"); + break; + default: + tv_state.setText(""); + break; + } + } else { + switch (blindState) { + case "1": + tv_state.setText("窗帘纱帘已开启"); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain)); + break; + case "2": + tv_state.setText("窗帘纱帘已关闭"); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain_close)); + break; + case "3": + tv_state.setText("窗帘开启纱帘关闭"); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain)); + break; + case "4": + tv_state.setText("窗帘关闭纱帘开启"); + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain)); + break; + default: + childPicture.setBackground(getResources().getDrawable(R.drawable.pic_curtain)); + tv_state.setText(""); + break; + } + } + } + + private void initLoadDialog() { + if (null != mLoadingDialog) { + mLoadingDialog.show(); + } else { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("devicePosition") != null) { + childPosition.setText(data.getExtras().get("devicePosition").toString()); + addressId = data.getExtras().get("addressId").toString(); + } + break; + } + } + + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(Curtain5Fragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + Curtain5Fragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/CurtainAndWindowClickActivity.java b/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/CurtainAndWindowClickActivity.java new file mode 100644 index 0000000..86629f6 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/CurtainAndWindowClickActivity.java @@ -0,0 +1,325 @@ +package com.yonsz.z1.version5.curtainandWindow; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.io.Serializable; +import java.util.HashMap; + +import static com.yonsz.z1.net.Constans.CANCEL_ADD_LIGHT_FAIL; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.SITUATIONAL_PANEL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; + + +public class CurtainAndWindowClickActivity extends BaseActivity { + private TitleView mTitleView; + private Button nextConfig; + private CheckBox selectUnnorReveal; + private ImageView lightClickPic; + private TextView lightClickDeclare; + private LoadingDialog mLoadingDialog; + private String addressTypeCode; + private String ziId; + private String deviceModel; + private String bodyMap = "{}"; + private String deviceType; + private String subtype = ""; + private String relatedId; + private boolean isReAddCurtain = false; + private TextView tv_first_declare, tv_second_declare; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_curtain_window_click); + initView(); + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + } + + @Override + public void onResume() { + super.onResume(); + if (null != nextConfig && null != selectUnnorReveal) { + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextConfig.setClickable(false); + nextConfig.setEnabled(false); + selectUnnorReveal.setChecked(false); + } + } + + private void initView() { + if (null != getIntent().getExtras().get("isReAddCurtain")) { + isReAddCurtain = true; + relatedId = getIntent().getExtras().get("relatedId").toString(); + } + addressTypeCode = getIntent().getExtras().get("addressId").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + deviceType = getIntent().getExtras().get("deviceType").toString(); + ziId = getIntent().getExtras().get("ziId").toString(); + lightClickPic = (ImageView) findViewById(R.id.iv_click_light_pic); + tv_first_declare = (TextView) findViewById(R.id.tv_first_declare); + tv_second_declare = (TextView) findViewById(R.id.tv_second_declare); + lightClickDeclare = (TextView) findViewById(R.id.tv_click_light_three); + selectUnnorReveal = (CheckBox) findViewById(R.id.iv_select_unnor_reveal); + selectUnnorReveal.setOnClickListener(this); + nextConfig = (Button) findViewById(R.id.bt_start_config); + nextConfig.setOnClickListener(this); + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextConfig.setClickable(false); + nextConfig.setEnabled(false); + nextConfig.setOnClickListener(new NoDoubleClickListener() { + @Override + public void onNoDoubleClick(View view) { + subsetStudy(); + /*Intent intent = new Intent(ClothesHangerStepOneActivity.this, ClothesHangerStepTwoActivity.class); + startActivity(intent);*/ + } + }); + mTitleView = (TitleView) findViewById(R.id.title_light_learn); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + switch (deviceType) { + case CURTAINS_TAG: + subtype = getIntent().getExtras().get("subtype").toString(); + mTitleView.setHead("添加智能面板"); + tv_first_declare.setText("请选择要添加的智能面板"); + tv_second_declare.setText("长按智能面板的任意按钮约3秒"); + switch (deviceModel) { + case "3": + tv_second_declare.setText("3秒内快速点击面板的任意按钮三次以上,然后长按面板约3秒;"); + lightClickPic.setImageResource(R.drawable.pic_t5_three); + break; + case "4": + tv_second_declare.setText("3秒内快速点击面板的任意按钮三次以上,然后长按面板约3秒;"); + lightClickPic.setImageResource(R.drawable.icon_t5_four); + break; + default: + break; + } +// tv_second_declare.setText("3秒内快速点击面板的任意按钮三次以上,然后长按面板约3秒;"); + /*switch (subtype) { + case "0": + mTitleView.setHead("添加窗帘面板"); + tv_first_declare.setText("请选择要添加的窗帘面板"); + tv_second_declare.setText("长按窗帘面板上的任意按钮约3秒"); + break; + case "1": + mTitleView.setHead("添加纱帘面板"); + tv_first_declare.setText("请选择要添加的纱帘面板"); + tv_second_declare.setText("长按纱帘面板上的任意按钮约3秒"); + break; + case "2": + mTitleView.setHead("添加双轨窗帘面板"); + tv_first_declare.setText("请选择要添加的智能面板"); + tv_second_declare.setText("长按智能面板上的任意按钮约3秒"); + break; + }*/ + break; + case WINDOW_OPENER: + subtype = "2"; + mTitleView.setHead("添加智能面板"); + tv_first_declare.setText("请选择要添加的智能面板"); + tv_second_declare.setText("长按智能面板上的任意按钮约3秒"); + switch (deviceModel) { + case "1": + lightClickPic.setImageResource(R.drawable.pic_t5_three); + break; + default: + break; + } + break; + case SITUATIONAL_PANEL: + mTitleView.setHead("添加情景面板"); + tv_first_declare.setText("请选择要添加的情景面板"); + tv_second_declare.setText("长按情景面板上的任意按钮约3秒"); + subtype = getIntent().getExtras().get("subtype").toString(); + switch (getIntent().getExtras().get("deviceModel").toString()) { + case "2"://T5 + tv_second_declare.setText("3秒内快速点击面板的任意按钮三次以上,然后长按面板约3秒;"); + switch (subtype) { + case "0": + //四位 + lightClickPic.setImageResource(R.drawable.pic_t5_four); + bodyMap = " {\"deviceCount\":4}"; + break; + case "1": + //六位 + lightClickPic.setImageResource(R.drawable.pic_t5_six); + bodyMap = " {\"deviceCount\":6}"; + break; + } + break; + case "1"://T3 + switch (subtype) { + case "0": + //四位 + lightClickPic.setImageResource(R.drawable.pic_add_t3_four); + bodyMap = " {\"deviceCount\":4}"; + break; + case "1": + //六位 + lightClickPic.setImageResource(R.drawable.pic_add_t3_six); + bodyMap = " {\"deviceCount\":6}"; + break; + } + break; + default: + break; + } + break; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.iv_select_unnor_reveal: + if (selectUnnorReveal.isChecked()) { + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_5dp)); + nextConfig.setClickable(true); + nextConfig.setEnabled(true); + } else { + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextConfig.setClickable(false); + nextConfig.setEnabled(false); + } + break; + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case CANCEL_ADD_LIGHT_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + Intent intent; + if (deviceType.equals(SITUATIONAL_PANEL)) { + intent = new Intent(CurtainAndWindowClickActivity.this, PanelTestAndAddActivity.class); + } else { + intent = new Intent(CurtainAndWindowClickActivity.this, CurtainAndWindowTestActivity.class); + } + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", deviceType); + intent.putExtra("ziId", ziId); + intent.putExtra("subtype", subtype); + intent.putExtra("addressTypeCode", addressTypeCode); + intent.putExtra("isReAddCurtain", isReAddCurtain); + if (isReAddCurtain) { + intent.putExtra("relatedId", relatedId); + } + Bundle bundle = new Bundle(); + bundle.putSerializable("body", (Serializable) entity.getData()); + intent.putExtras(bundle); + startActivity(intent); + break; + } + + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + private void subsetStudy() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_STUDY, map, bodyMap, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetStudy", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/CurtainAndWindowTestActivity.java b/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/CurtainAndWindowTestActivity.java new file mode 100644 index 0000000..5db8535 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/CurtainAndWindowTestActivity.java @@ -0,0 +1,345 @@ +package com.yonsz.z1.version5.curtainandWindow; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.DeviceControlActivity; +import com.yonsz.z1.version5.DeviceControlByRoomActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.bt_sure_config; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; + +public class CurtainAndWindowTestActivity extends BaseActivity { + private TitleView mTitleView; + private Button sureBtn; + private RelativeLayout closeRl, opneRl, stopRl; + private RelativeLayout closeScreenRl, opneScreenRl, stopScreenRl; + private TextView tvOpenCurtains, tvStopCurtains, tvCloseCurtains; + private LoadingDialog mLoadingDialog; + private LinearLayout ll_try_again; + private String ziId; + private String deviceModel; + private String deviceType; + private String addressTypeCode; + private String body; + private String subtype = ""; + private boolean isReAddCurtain; + private CheckBox selectUnnorReveal; + private LinearLayout ll_top, ll_screen_curtain; + private TextView tv_null; + private BaseVersion5Entity.DataBean dataBean; + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_sure_curtains_window); + initView(); + initListener(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + + private void initView() { + isReAddCurtain = (boolean) getIntent().getExtras().get("isReAddCurtain"); + if (isReAddCurtain) { + dataBean = (BaseVersion5Entity.DataBean) getIntent().getSerializableExtra("body"); + dataBean.setRelatedId(getIntent().getExtras().get("relatedId").toString()); + body = JSONObject.toJSONString(dataBean); + } else { + dataBean = (BaseVersion5Entity.DataBean) getIntent().getSerializableExtra("body"); + body = JSONObject.toJSONString(dataBean); + } + ziId = getIntent().getExtras().get("ziId").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + deviceType = getIntent().getExtras().get("deviceType").toString(); + addressTypeCode = getIntent().getExtras().get("addressTypeCode").toString(); + tv_null = (TextView) findViewById(R.id.tv_null); + ll_screen_curtain = (LinearLayout) findViewById(R.id.ll_screen_curtain); + selectUnnorReveal = (CheckBox) findViewById(R.id.iv_select_unnor_reveal); + ll_top = (LinearLayout) findViewById(R.id.ll_top); + ll_try_again = (LinearLayout) findViewById(R.id.ll_try_again); + closeRl = (RelativeLayout) findViewById(R.id.tv_close_curtains); + opneRl = (RelativeLayout) findViewById(R.id.tv_open_curtains); + stopRl = (RelativeLayout) findViewById(R.id.tv_stop_curtains); + tvOpenCurtains = (TextView) findViewById(R.id.tv_open_curtains_below); + tvStopCurtains = (TextView) findViewById(R.id.tv_stop_curtains_below); + tvCloseCurtains = (TextView) findViewById(R.id.tv_close_curtains_below); + sureBtn = (Button) findViewById(bt_sure_config); + mTitleView = (TitleView) findViewById(R.id.title_sure_light); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + switch (deviceType) { + case CURTAINS_TAG: + subtype = getIntent().getExtras().get("subtype").toString(); + switch (subtype) { + case "0": + mTitleView.setHead("添加窗帘面板"); + break; + case "1": + mTitleView.setHead("添加纱帘面板"); + tvOpenCurtains.setText("打开纱帘"); + tvStopCurtains.setText("停止纱帘"); + tvCloseCurtains.setText("关闭纱帘"); + break; + case "2": + closeScreenRl = (RelativeLayout) findViewById(R.id.tv_close_screen_curtain); + opneScreenRl = (RelativeLayout) findViewById(R.id.tv_open_screen_curtain); + stopScreenRl = (RelativeLayout) findViewById(R.id.tv_stop_screen_curtain); + closeScreenRl.setOnClickListener(this); + opneScreenRl.setOnClickListener(this); + stopScreenRl.setOnClickListener(this); + tv_null.setVisibility(View.GONE); + ll_screen_curtain.setVisibility(View.VISIBLE); + mTitleView.setHead("添加双轨窗帘面板"); + break; + } + if (deviceModel.equals("0")) { + ll_top.setVisibility(View.VISIBLE); + switch (subtype) { + case "0": + mTitleView.setHead("添加智能窗帘"); + break; + case "1": + mTitleView.setHead("添加智能纱帘"); + break; + } + } else { + ll_top.setVisibility(View.GONE); + } + break; + case WINDOW_OPENER: + subtype = "2"; + mTitleView.setHead("添加开窗器面板"); + tvOpenCurtains.setText("开窗"); + tvStopCurtains.setText("停止"); + tvCloseCurtains.setText("关窗"); + ll_top.setVisibility(View.GONE); + break; + } + } + + private void initListener() { + closeRl.setOnClickListener(this); + opneRl.setOnClickListener(this); + stopRl.setOnClickListener(this); + ll_try_again.setOnClickListener(this); + selectUnnorReveal.setOnClickListener(this); + sureBtn.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + subsetAdd(); + } + }); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_close_curtains: + subsetTest("stop", 1); + break; + case R.id.tv_open_curtains: + subsetTest("open", 1); + break; + case R.id.tv_stop_curtains: + subsetTest("close", 1); + break; + case R.id.tv_close_screen_curtain: + subsetTest("stop", 2); + break; + case R.id.tv_open_screen_curtain: + subsetTest("open", 2); + break; + case R.id.tv_stop_screen_curtain: + subsetTest("close", 2); + break; + case R.id.ll_try_again: + finish(); + break; + } + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + EventBus.getDefault().post( + new EventBusEntity("关闭")); + if (isReAddCurtain) { + EventBus.getDefault().post( + new EventBusEntity("Curtai4Activity")); + } + Intent intent; + if (AppIdUtil.isBaseZhiKong()) { + intent = new Intent(this, DeviceControlByRoomActivity.class); + } else { + intent = new Intent(this, DeviceControlActivity.class); + } + intent.putExtra("ziId", ziId); + intent.putExtra("addressId", addressTypeCode); + if (isReAddCurtain) { + intent.putExtra("relatedStatus", "1"); + intent.putExtra("id", entity.getData().getRelatedId()); + } else if (subtype.equals("2") || deviceModel.equals("4")) { + intent.putExtra("id", entity.getData().getId()); + } else { + intent.putExtra("relatedStatus", "-1"); + intent.putExtra("id", entity.getData().getId()); + } + startActivity(intent); + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void subsetAdd() { + if (selectUnnorReveal.isChecked()) { + BaseVersion5Entity.DataBean entity = JSON.parseObject(body, BaseVersion5Entity.DataBean.class); + String closeCode = entity.getAddition().getCloseCode(); + String openCode = entity.getAddition().getOpenCode(); + entity.getAddition().setCloseCode(openCode); + entity.getAddition().setOpenCode(closeCode); + body = JSONObject.toJSONString(entity); + } + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("subtype", subtype); + map.put("addressId", addressTypeCode); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_ADD, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetAdd", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetTest(String key, int order) { + ShakeUtil.setShake(this); + if (subtype.equals("2") || deviceModel.equals("4")) { + dataBean.setOrder(order); + body = JSONObject.toJSONString(dataBean); + } + Log.i("subsetTest", body); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_TEST, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetTest", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/CurtainTypeActivity.java b/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/CurtainTypeActivity.java new file mode 100644 index 0000000..c155a63 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/CurtainTypeActivity.java @@ -0,0 +1,176 @@ +package com.yonsz.z1.version5.curtainandWindow; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.ybl.panel.YblPanelStepTwoActivity; + +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.SITUATIONAL_PANEL; + +/** + * Created by Administrator on 2018/7/9. + */ + +public class CurtainTypeActivity extends BaseActivity { + private TitleView mTitleView; + private CheckBox cb_position0, cb_position1; + private Button nextConfig; + private String subtype, deviceType, panelType; + private ImageView curtainPic, sheerPic; + private TextView tv_choose_position, tv_panel_six, tv_panel_four; + private LinearLayout ll_second_position; + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_curtain_type); + initView(); + initListener(); + } + + private void initListener() { + cb_position0.setOnClickListener(this); + cb_position1.setOnClickListener(this); + } + + private void initView() { + deviceType = getIntent().getExtras().get("deviceType").toString(); + ll_second_position = (LinearLayout) findViewById(R.id.ll_second_position); + tv_choose_position = (TextView) findViewById(R.id.tv_choose_position); + curtainPic = (ImageView) findViewById(R.id.iv_t_curtain); + sheerPic = (ImageView) findViewById(R.id.iv_t_sheer); + cb_position0 = (CheckBox) findViewById(R.id.cb_position0); + cb_position1 = (CheckBox) findViewById(R.id.cb_position1); + nextConfig = (Button) findViewById(R.id.bt_start_config); + nextConfig.setOnClickListener(this); + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextConfig.setClickable(false); + nextConfig.setEnabled(false); + nextConfig.setOnClickListener(new NoDoubleClickListener() { + @Override + public void onNoDoubleClick(View view) { + Intent intent; + if (deviceType.equals(SITUATIONAL_PANEL) && getIntent().getExtras().get("deviceModel").toString().equals("4")) { + intent = new Intent(CurtainTypeActivity.this, YblPanelStepTwoActivity.class); + intent.putExtra("panelType", panelType); + } else { + intent = new Intent(CurtainTypeActivity.this, CurtainAndWindowClickActivity.class); + } + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("deviceType", deviceType); + intent.putExtra("subtype", subtype); + intent.putExtra("addressId", getIntent().getExtras().get("addressId").toString()); + intent.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + startActivity(intent); + } + }); + mTitleView = (TitleView) findViewById(R.id.title_switcher_one); + if (deviceType.equals(CURTAINS_TAG)) { + mTitleView.setHead("选择窗帘面板类型"); + } else if (deviceType.equals(SITUATIONAL_PANEL)) { + tv_panel_four = (TextView) findViewById(R.id.tv_panel_four); + tv_panel_six = (TextView) findViewById(R.id.tv_panel_six); + mTitleView.setHead("选择情景面板"); + tv_choose_position.setText("选择添加的情景面板类型"); + tv_panel_four.setText("四位"); + tv_panel_six.setText("六位"); + switch (getIntent().getExtras().get("deviceModel").toString()) { + case "2": + curtainPic.setImageResource(R.drawable.icon_t5_four); + sheerPic.setImageResource(R.drawable.icon_t5_scene_six); + break; + case "1": + ll_second_position.setVisibility(View.GONE); + curtainPic.setImageResource(R.drawable.icon_t3_four); + sheerPic.setImageResource(R.drawable.icon_add_t3_six); + break; + case "4": + curtainPic.setImageResource(R.drawable.icon_t6_scene_four); + sheerPic.setImageResource(R.drawable.icon_t6_scene_six); + break; + default: + break; + } + + } + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + switch (getIntent().getExtras().get("deviceModel").toString()) { + case "3": + curtainPic.setImageResource(R.drawable.icon_t5_three); + sheerPic.setImageResource(R.drawable.icon_t5_three); + break; + default: + break; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.cb_position0: + subtype = "0"; + panelType = "0"; + cb_position0.setChecked(true); + cb_position1.setChecked(false); + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_5dp)); + nextConfig.setClickable(true); + nextConfig.setEnabled(true); + break; + case R.id.cb_position1: + subtype = "1"; + panelType = "6"; + cb_position1.setChecked(true); + cb_position0.setChecked(false); + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_5dp)); + nextConfig.setClickable(true); + nextConfig.setEnabled(true); + break; + } + } + + @Override + public void callBackUiThread(Message msg) { + + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/PanelTestAndAddActivity.java b/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/PanelTestAndAddActivity.java new file mode 100644 index 0000000..1814fef --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/PanelTestAndAddActivity.java @@ -0,0 +1,226 @@ +package com.yonsz.z1.version5.curtainandWindow; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.LinearLayout; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; +import com.yonsz.z1.ybl.panel.YblPanelDetailActivity; + +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.bt_sure_config; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; + +public class PanelTestAndAddActivity extends BaseActivity { + private TitleView mTitleView; + private Button sureBtn; + private LoadingDialog mLoadingDialog; + private LinearLayout ll_try_again; + private String ziId; + private String deviceModel; + private String deviceType; + private String addressTypeCode; + private String body; + private String subtype = ""; + private ImageView lightClickPic; + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_sure_add_panel); + initView(); + initListener(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + + private void initView() { + BaseVersion5Entity.DataBean dataBean = (BaseVersion5Entity.DataBean) getIntent().getSerializableExtra("body"); + ziId = getIntent().getExtras().get("ziId").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + deviceType = getIntent().getExtras().get("deviceType").toString(); + addressTypeCode = getIntent().getExtras().get("addressTypeCode").toString(); + lightClickPic = (ImageView) findViewById(R.id.iv_click_light_pic); + ll_try_again = (LinearLayout) findViewById(R.id.ll_try_again); + sureBtn = (Button) findViewById(bt_sure_config); + mTitleView = (TitleView) findViewById(R.id.title_sure_light); + mTitleView.setHead("添加情景面板"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + + subtype = getIntent().getExtras().get("subtype").toString(); + switch (getIntent().getExtras().get("deviceModel").toString()) { + case "2": + switch (subtype) { + case "0": + subtype = "4"; + lightClickPic.setImageResource(R.drawable.icon_t5_four); + dataBean.setDeviceCount("4"); + body = JSONObject.toJSONString(dataBean); + break; + case "1": + subtype = "6"; + lightClickPic.setImageResource(R.drawable.icon_t5_scene_six); + dataBean.setDeviceCount("6"); + body = JSONObject.toJSONString(dataBean); + break; + } + break; + case "1": + switch (subtype) { + case "0": + subtype = "4"; + lightClickPic.setImageResource(R.drawable.icon_t3_four); + dataBean.setDeviceCount("4"); + body = JSONObject.toJSONString(dataBean); + break; + case "1": + subtype = "6"; + lightClickPic.setImageResource(R.drawable.icon_add_t3_six); + dataBean.setDeviceCount("6"); + body = JSONObject.toJSONString(dataBean); + break; + } + break; + default: + break; + } + } + + private void initListener() { + ll_try_again.setOnClickListener(this); + sureBtn.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + subsetAdd(); + } + }); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.ll_try_again: + finish(); + break; + } + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + EventBus.getDefault().post( + new EventBusEntity("关闭")); + Intent intent = new Intent(this, YblPanelDetailActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", addressTypeCode); + intent.putExtra("id", entity.getData().getId()); + intent.putExtra("panelType", subtype); + intent.putExtra("deviceAddress", addressTypeCode); + intent.putExtra("from", "PanelTestAndAddActivity"); + startActivity(intent); + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void subsetAdd() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("subtype", subtype); + map.put("addressId", addressTypeCode); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_ADD, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetAdd", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/Window2TestActivity.java b/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/Window2TestActivity.java new file mode 100644 index 0000000..c00799c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/curtainandWindow/Window2TestActivity.java @@ -0,0 +1,585 @@ +package com.yonsz.z1.version5.curtainandWindow; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.BaseVersionMultiEntity; +import com.yonsz.z1.database.entity.entity5.YBLBodyEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.DeviceControlActivity; +import com.yonsz.z1.version5.DeviceControlByRoomActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.version5.MulitiControlModifyActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.bt_sure_config; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.YBL_ADD_SUCCESS; + +public class Window2TestActivity extends BaseActivity { + private TitleView mTitleView; + private Button sureBtn; + private RelativeLayout closeRl, opneRl, stopRl; + private RelativeLayout closeScreenRl, opneScreenRl, stopScreenRl; + private TextView tvOpenCurtains, tvStopCurtains, tvCloseCurtains; + private LoadingDialog mLoadingDialog; + private LinearLayout ll_try_again; + private String ziId; + private String deviceModel; + private String deviceType; + private String addressTypeCode; + private String body; + private String subtype = ""; + private boolean isReAddCurtain; + private CheckBox selectUnnorReveal; + private LinearLayout ll_top, ll_screen_curtain; + private TextView tv_null; + private BaseVersion5Entity.DataBean dataBean; + private ImageView tv_shalian_type, tv_curtains_type; + private ImageView tv_shalian_position, tv_curtains_position; + private String clSubtype = "0", slSubtype = "1"; + private String clPosition = "1", slPosition = "1"; + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_sure_curtains_2); + initView(); + initListener(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + + private void initView() { + isReAddCurtain = (boolean) getIntent().getExtras().get("isReAddCurtain"); + if (isReAddCurtain) { + dataBean = (BaseVersion5Entity.DataBean) getIntent().getSerializableExtra("body"); + dataBean.setRelatedId(getIntent().getExtras().get("relatedId").toString()); + body = JSONObject.toJSONString(dataBean); + } else { + dataBean = (BaseVersion5Entity.DataBean) getIntent().getSerializableExtra("body"); + body = JSONObject.toJSONString(dataBean); + } + ziId = getIntent().getExtras().get("ziId").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + deviceType = getIntent().getExtras().get("deviceType").toString(); + addressTypeCode = getIntent().getExtras().get("addressTypeCode").toString(); + clPosition = addressTypeCode; + slPosition = addressTypeCode; + tv_null = (TextView) findViewById(R.id.tv_null); + ll_screen_curtain = (LinearLayout) findViewById(R.id.ll_screen_curtain); + selectUnnorReveal = (CheckBox) findViewById(R.id.iv_select_unnor_reveal); + ll_top = (LinearLayout) findViewById(R.id.ll_top); + ll_try_again = (LinearLayout) findViewById(R.id.ll_try_again); + closeRl = (RelativeLayout) findViewById(R.id.tv_close_curtains); + opneRl = (RelativeLayout) findViewById(R.id.tv_open_curtains); + stopRl = (RelativeLayout) findViewById(R.id.tv_stop_curtains); + tvOpenCurtains = (TextView) findViewById(R.id.tv_open_curtains_below); + tvStopCurtains = (TextView) findViewById(R.id.tv_stop_curtains_below); + tvCloseCurtains = (TextView) findViewById(R.id.tv_close_curtains_below); + tv_shalian_type = (ImageView) findViewById(R.id.tv_shalian_type); + tv_curtains_type = (ImageView) findViewById(R.id.tv_curtains_type); + tv_curtains_position = (ImageView) findViewById(R.id.tv_curtains_position); + tv_shalian_position = (ImageView) findViewById(R.id.tv_shalian_position); + sureBtn = (Button) findViewById(bt_sure_config); + mTitleView = (TitleView) findViewById(R.id.title_sure_light); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + switch (deviceType) { + case CURTAINS_TAG: + subtype = getIntent().getExtras().get("subtype").toString(); + switch (subtype) { + case "0": + mTitleView.setHead("添加窗帘面板"); + break; + case "1": + mTitleView.setHead("添加纱帘面板"); + tvOpenCurtains.setText("打开纱帘"); + tvStopCurtains.setText("停止纱帘"); + tvCloseCurtains.setText("关闭纱帘"); + break; + case "10": + if (deviceModel.equals("5")) { + mTitleView.setHead("添加单轨窗帘面板"); + ll_screen_curtain.setVisibility(View.GONE); + } else { + closeScreenRl = (RelativeLayout) findViewById(R.id.tv_close_screen_curtain); + opneScreenRl = (RelativeLayout) findViewById(R.id.tv_open_screen_curtain); + stopScreenRl = (RelativeLayout) findViewById(R.id.tv_stop_screen_curtain); + closeScreenRl.setOnClickListener(this); + opneScreenRl.setOnClickListener(this); + stopScreenRl.setOnClickListener(this); + tv_null.setVisibility(View.GONE); + ll_screen_curtain.setVisibility(View.VISIBLE); + mTitleView.setHead("添加双轨窗帘面板"); + } + + break; + default: + if (null != getIntent().getExtras().get("deviceName")) { + String deviceName = getIntent().getExtras().get("deviceName").toString(); + mTitleView.setHead("添加" + deviceName + "面板"); + tvOpenCurtains.setText("打开" + deviceName); + tvStopCurtains.setText("停止" + deviceName); + tvCloseCurtains.setText("关闭" + deviceName); + } + break; + } + if (deviceModel.equals("0")) { + ll_top.setVisibility(View.VISIBLE); + switch (subtype) { + case "0": + mTitleView.setHead("添加智能窗帘"); + break; + case "1": + mTitleView.setHead("添加智能纱帘"); + break; + } + } else { + ll_top.setVisibility(View.GONE); + } + if (deviceModel.equals("5") || deviceModel.equals("6")) { + ll_try_again.setVisibility(View.GONE); + } + break; + case WINDOW_OPENER: + subtype = "2"; + mTitleView.setHead("添加开窗器面板"); + tvOpenCurtains.setText("开窗"); + tvStopCurtains.setText("停止"); + tvCloseCurtains.setText("关窗"); + ll_top.setVisibility(View.GONE); + break; + } + } + + private void initListener() { + tv_curtains_type.setOnClickListener(this); + tv_shalian_type.setOnClickListener(this); + tv_shalian_position.setOnClickListener(this); + tv_curtains_position.setOnClickListener(this); + closeRl.setOnClickListener(this); + opneRl.setOnClickListener(this); + stopRl.setOnClickListener(this); + ll_try_again.setOnClickListener(this); + selectUnnorReveal.setOnClickListener(this); + sureBtn.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (subtype.equals("10") && deviceModel.equals("6")) { + subsetAddmulti(); + } else { + subsetAdd(); + } + } + }); + } + + @Override + public void onClick(View v) { + Intent intent; + switch (v.getId()) { + case R.id.tv_close_curtains: + subsetTest("stop", 1); + break; + case R.id.tv_open_curtains: + subsetTest("open", 1); + break; + case R.id.tv_stop_curtains: + subsetTest("close", 1); + break; + case R.id.tv_close_screen_curtain: + subsetTest("stop", 2); + break; + case R.id.tv_open_screen_curtain: + subsetTest("open", 2); + break; + case R.id.tv_stop_screen_curtain: + subsetTest("close", 2); + break; + case R.id.ll_try_again: + finish(); + break; + case R.id.tv_curtains_type: + intent = new Intent(this, MulitiControlModifyActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("addressId", "1"); + intent.putExtra("icon", "1"); + intent.putExtra("subtype", clSubtype); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", CURTAINS_TAG); + // intent.putExtra("deviceName", tv_curtains_type.getText().toString()); + startActivityForResult(intent, MODIFY_DEVICE_NAME); + break; + case R.id.tv_shalian_type: + intent = new Intent(this, MulitiControlModifyActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("addressId", "1"); + intent.putExtra("icon", "2"); + intent.putExtra("subtype", slSubtype); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", CURTAINS_TAG); + // intent1.putExtra("deviceName", tv_shalian_type.getText().toString()); + startActivityForResult(intent, MODIFY_DEVICE_NAME); + break; + case R.id.tv_curtains_position: + intent = new Intent(this, ModifyRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", CURTAINS_TAG); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", "1"); + intent.putExtra("icon", "1"); + intent.putExtra("subtype", clSubtype); + startActivityForResult(intent, MODIFY_DEVICE_NAME); + break; + case R.id.tv_shalian_position: + intent = new Intent(this, ModifyRoomActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", CURTAINS_TAG); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("addressId", "1"); + intent.putExtra("icon", "2"); + intent.putExtra("subtype", slSubtype); + startActivityForResult(intent, MODIFY_DEVICE_NAME); + break; + } + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case YBL_ADD_SUCCESS: + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BaseVersionMultiEntity entity1 = (BaseVersionMultiEntity) msg.obj; + EventBus.getDefault().post( + new EventBusEntity("关闭")); + if (isReAddCurtain) { + EventBus.getDefault().post( + new EventBusEntity("Curtai4Activity")); + } + Intent intent1; + if (AppIdUtil.isBaseZhiKong()) { + intent1 = new Intent(this, DeviceControlByRoomActivity.class); + } else { + intent1 = new Intent(this, DeviceControlActivity.class); + } + intent1.putExtra("ziId", ziId); + intent1.putExtra("addressId", clPosition); + if (isReAddCurtain || deviceModel.equals("6")) { + intent1.putExtra("relatedStatus", "1"); + intent1.putExtra("id", entity1.getData().get(0)); + } else if (subtype.equals("2") || deviceModel.equals("4")) { + intent1.putExtra("id", entity1.getData().get(0)); + } else { + intent1.putExtra("relatedStatus", "-1"); + intent1.putExtra("id", entity1.getData().get(0)); + } + startActivity(intent1); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + EventBus.getDefault().post( + new EventBusEntity("关闭")); + if (isReAddCurtain) { + EventBus.getDefault().post( + new EventBusEntity("Curtai4Activity")); + } + Intent intent; + if (AppIdUtil.isBaseZhiKong()) { + intent = new Intent(this, DeviceControlByRoomActivity.class); + } else { + intent = new Intent(this, DeviceControlActivity.class); + } + intent.putExtra("ziId", ziId); + intent.putExtra("addressId", clPosition); + if (isReAddCurtain) { + intent.putExtra("relatedStatus", "1"); + intent.putExtra("id", entity.getData().getParentId()); + } else if (subtype.equals("2") || deviceModel.equals("4")) { + intent.putExtra("id", entity.getData().getId()); + } else { + intent.putExtra("relatedStatus", "-1"); + intent.putExtra("id", entity.getData().getId()); + } + startActivity(intent); + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + if (mLoadingDialog != null && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void subsetAddmulti() { + initLoadDialog(); + YBLBodyEntity yblBodyEntity = new YBLBodyEntity(); + List itemsBeans = new ArrayList<>(); + for (int i = 0; i < 2; i++) { + YBLBodyEntity.ItemsBean itemsBean = new YBLBodyEntity.ItemsBean(); + if (i == 0) { + itemsBean.setSubtype(clSubtype); + itemsBean.setAddressId(clPosition); + } + if (i == 1) { + itemsBean.setSubtype(slSubtype); + itemsBean.setAddressId(slPosition); + } + itemsBeans.add(itemsBean); + } + yblBodyEntity.setParentId(dataBean.getParentId()); + yblBodyEntity.setAddressNo(dataBean.getAddressNo()); + yblBodyEntity.setCode(dataBean.getCode()); + yblBodyEntity.setItems(itemsBeans); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("addressId", addressTypeCode); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_ADDMULTI, map, JSONObject.toJSONString(yblBodyEntity), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetAddmulti", "ShareDeviceActivity onSuccess()" + respone); + BaseVersionMultiEntity obj = JSON.parseObject(respone, BaseVersionMultiEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(YBL_ADD_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetAdd() { + BaseVersion5Entity.DataBean entity = JSON.parseObject(body, BaseVersion5Entity.DataBean.class); + if (selectUnnorReveal.isChecked()) { + String closeCode = entity.getAddition().getCloseCode(); + String openCode = entity.getAddition().getOpenCode(); + entity.getAddition().setCloseCode(openCode); + entity.getAddition().setOpenCode(closeCode); + } + if (subtype.equals("10")) { + List itemsBeans = new ArrayList<>(); + BaseVersion5Entity.DataBean.ItemsBean itemsBean = new BaseVersion5Entity.DataBean.ItemsBean(); + itemsBean.setSubtype(clSubtype); + itemsBean.setAddressId(clPosition); + BaseVersion5Entity.DataBean.ItemsBean itemsBean1 = new BaseVersion5Entity.DataBean.ItemsBean(); + itemsBean1.setSubtype(slSubtype); + itemsBean1.setAddressId(slPosition); + itemsBeans.add(itemsBean); + itemsBeans.add(itemsBean1); + entity.setItems(itemsBeans); + } + body = JSONObject.toJSONString(entity); + + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + if (deviceType.equals(CURTAINS_TAG) && deviceModel.equals("5")) { + map.put("subtype", clSubtype); + } else { + map.put("subtype", subtype); + } + map.put("addressId", addressTypeCode); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_ADD, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetAdd", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetTest(String key, int order) { + ShakeUtil.setShake(this); + if (subtype.equals("2") || deviceModel.equals("4") || subtype.equals("10")) { + dataBean.setOrder(order); + // dataBean.setAddressNo("02"); + body = JSONObject.toJSONString(dataBean); + } + // Log.i("subsetTest", body); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_TEST, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetTest", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("plugName") != null) { + String deviceName = data.getExtras().get("plugName").toString(); + String plugType = (String) data.getExtras().get("plugType"); + String icon = data.getExtras().get("icon").toString(); + if (icon.equals("1")) { + // tv_curtains_type.setText(deviceName); + clSubtype = String.valueOf(plugType); + if (clSubtype.equals("0")) { + tv_curtains_type.setImageResource(R.drawable.icon_curtains); + slSubtype = "1"; + tv_shalian_type.setImageResource(R.drawable.icon_gauze); + } else { + tv_curtains_type.setImageResource(R.drawable.icon_gauze); + slSubtype = "0"; + tv_shalian_type.setImageResource(R.drawable.icon_curtains); + } + } else { + // tv_shalian_type.setText(deviceName); + slSubtype = String.valueOf(plugType); + if (slSubtype.equals("0")) { + tv_shalian_type.setImageResource(R.drawable.icon_curtains); + clSubtype = "1"; + tv_curtains_type.setImageResource(R.drawable.icon_gauze); + } else { + tv_shalian_type.setImageResource(R.drawable.icon_gauze); + clSubtype = "0"; + tv_curtains_type.setImageResource(R.drawable.icon_curtains); + } + } + } + + if (data != null && data.getExtras().get("addressId") != null) { + String addressId = data.getExtras().get("addressId").toString(); + // String icon = data.getExtras().get("icon").toString(); + clPosition = addressId; + slPosition = addressId; + AddressNameUtil.setAddressIcon(this, tv_curtains_position, addressId); + AddressNameUtil.setAddressIcon(this, tv_shalian_position, addressId); + /*if (icon.equals("1")) { + + } else { + slPosition = addressId; + }*/ + } + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/find/BannerViewPager.java b/app/src/main/java/com/yonsz/z1/version5/find/BannerViewPager.java new file mode 100644 index 0000000..c15db8b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/find/BannerViewPager.java @@ -0,0 +1,406 @@ +package com.yonsz.z1.version5.find; + +import android.app.Activity; +import android.content.Context; +import android.os.Handler; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; + +import com.lzj.gallery.library.adapter.BannerPagerAdapter; +import com.lzj.gallery.library.transformer.ZoomPageTransformer; + +import java.util.List; + +public class BannerViewPager extends RelativeLayout implements ViewPager.OnPageChangeListener { + private View mLayout;//布局 + private Activity mContext;//上下文 + private ViewPager mViewPager;//viewpager + private BannerPagerAdapter mPagerAdapter;//adapter + private LinearLayout mLineIndicator;//指示器集合容器 + private ImageView[] mImageView;//小圆点imageview对象 + private List mList;//url数组 + private int currentIndex = 0;//当前实际page + private int startCurrentIndex = 2000;//当前page + private long secondTime = 0, firstTime = 0; + + //private Timer mTimer=null;//定时器 + //private MyTimerTask mTimerTask=null; + + private Handler mHandler = null; + private BannerViewPager.AutoRollRunnable mAutoRollRunnable = null; + private int mRollTime = 5000; + + private int resId_piont_press = com.lzj.gallery.library.R.mipmap.ic_banner_point_press; + private int resId_piont = com.lzj.gallery.library.R.mipmap.ic_banner_point; + private boolean isPoint = false;//开启指示器 + + public static interface OnClickBannerListener { + void onBannerClick(int position); + } + + public static interface OnBannerChangeListener { + void onBannerChange(int position); + } + + private BannerViewPager.OnClickBannerListener mBannerListener; + private BannerViewPager.OnBannerChangeListener onBannerChangeListener; + + public BannerViewPager addBannerListener(BannerViewPager.OnClickBannerListener listener) { + mBannerListener = listener; + return this; + } + + public BannerViewPager onBannerChangeListener(BannerViewPager.OnBannerChangeListener listener) { + onBannerChangeListener = listener; + return this; + } + + //ui更新 +// Handler mHandler=mHandler= new Handler(){ +// public void handleMessage(Message msg) { +// int index = mViewPager.getCurrentItem()+1;//下一个页 +// mViewPager.setCurrentItem(index);//设置此次要显示的pager +// currentIndex=index%mList.size(); +// setImageBackground(currentIndex); +// } +// }; + public BannerViewPager(Context context) { + super(context); + } + + public BannerViewPager(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + public BannerViewPager(Context context, AttributeSet attrs) { + super(context, attrs); + this.mContext = (Activity) context; + + } + + /** + * 初始化viewpager + * + * @param list url集合 + * @param isGallery 是否使用3D画廊效果 + */ + public BannerViewPager initBanner(List list, boolean isGallery) { + mList = list; + //引入布局 + mLayout = LayoutInflater.from(mContext).inflate(com.lzj.gallery.library.R.layout.banner_view_layout, null); + mViewPager = (ViewPager) mLayout.findViewById(com.lzj.gallery.library.R.id.viewPager);//关闭 + mLineIndicator = (LinearLayout) mLayout.findViewById(com.lzj.gallery.library.R.id.lineIndicator); + //初始化位置 + currentIndex = startCurrentIndex % mList.size(); + + mPagerAdapter = new BannerPagerAdapter(mList, mContext); + mPagerAdapter.setOnClickImagesListener(new BannerPagerAdapter.OnClickImagesListener() { + @Override + public void onImagesClick(int position) { + if (mBannerListener != null) { + mBannerListener.onBannerClick(position); + } + } + }); + + mViewPager.setAdapter(mPagerAdapter); + if (isGallery) { + mViewPager.setPageTransformer(true, new ZoomPageTransformer()); + } + + mViewPager.setCurrentItem(startCurrentIndex); + mViewPager.setOffscreenPageLimit(2);//设置预加载的数量,这里设置了2,会预加载中心item左边两个Item和右边两个Item + mViewPager.addOnPageChangeListener(this); + return this; + } + + + /** + * 初始化viewpager + * + * @param list url集合 + * @param isGallery 是否使用3D画廊效果 + * @param alpha 滑动透明度变化 + */ + public BannerViewPager initBanner(List list, boolean isGallery, float alpha) { + mList = list; + + //引入布局 + mLayout = LayoutInflater.from(mContext).inflate(com.lzj.gallery.library.R.layout.banner_view_layout, null); + mViewPager = (ViewPager) mLayout.findViewById(com.lzj.gallery.library.R.id.viewPager);//关闭 + mLineIndicator = (LinearLayout) mLayout.findViewById(com.lzj.gallery.library.R.id.lineIndicator); + //初始化位置 + currentIndex = startCurrentIndex % mList.size(); + + mPagerAdapter = new BannerPagerAdapter(mList, mContext); + mPagerAdapter.setOnClickImagesListener(new BannerPagerAdapter.OnClickImagesListener() { + @Override + public void onImagesClick(int position) { + if (mBannerListener != null) { + mBannerListener.onBannerClick(position); + } + } + }); + + mViewPager.setAdapter(mPagerAdapter); + if (isGallery) { + mViewPager.setPageTransformer(true, new ZoomPageTransformer(alpha)); + } + + mViewPager.setCurrentItem(startCurrentIndex); + mViewPager.setOffscreenPageLimit(2);//设置预加载的数量,这里设置了2,会预加载中心item左边两个Item和右边两个Item + mViewPager.addOnPageChangeListener(this); + return this; + } + + /** + * 添加默认图片,当加载失败后显示 + * + * @param resId_img + * @return + */ + public BannerViewPager addDefaultImg(int resId_img) { + mPagerAdapter.setDefaultImg(resId_img); + return this; + } + + /** + * 添加圆角 + * + * @param corners + * @return + */ + public BannerViewPager addRoundCorners(int corners) { + mPagerAdapter.setmRoundCorners(corners); + return this; + } + + /** + * @param columnMargin 两个Page之间的距离 + * @param rowMargin page的外边距 + * 注意当添加了3D画廊效果时,columnMargin尽量设小。应该本是已经进行了x、y的缩放 + */ + public BannerViewPager addPageMargin(int columnMargin, int rowMargin) { + + mViewPager.setPageMargin(dip2px(columnMargin)); + RelativeLayout.LayoutParams layout = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, + RelativeLayout.LayoutParams.WRAP_CONTENT); + layout.setMargins(dip2px(rowMargin), 0, dip2px(rowMargin), 0); + mViewPager.setLayoutParams(layout); + return this; + } + + /** + * 添加小圆点 + * + * @param distance 间距 + */ + public BannerViewPager addPoint(int distance) { + isPoint = true; + mImageView = new ImageView[mList.size()]; + for (int i = 0; i < mList.size(); i++) { + ImageView imageView = new ImageView(mContext); + + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); + params.setMargins(dip2px(distance) / 2, 0, dip2px(distance) / 2, 0); + imageView.setLayoutParams(params); + if (i == currentIndex) { + imageView.setImageResource(resId_piont_press); + } else { + imageView.setImageResource(resId_piont); + } + mImageView[i] = imageView; + mLineIndicator.addView(imageView); + } + + return this; + } + + /** + * 添加小圆点 + * + * @param distance 间距 + * @param piont_press 替换选中图标 + * @param piont 替换未选中图片 + */ + public BannerViewPager addPoint(int distance, int piont_press, int piont) { + isPoint = true; + resId_piont_press = piont_press; + resId_piont = piont; + mImageView = new ImageView[mList.size()]; + for (int i = 0; i < mList.size(); i++) { + ImageView imageView = new ImageView(mContext); + + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); + params.setMargins(dip2px(distance) / 2, 0, dip2px(distance) / 2, 0); + imageView.setLayoutParams(params); + if (i == currentIndex) { + imageView.setImageResource(resId_piont_press); + } else { + imageView.setImageResource(resId_piont); + } + mImageView[i] = imageView; + mLineIndicator.addView(imageView); + } + + return this; + } + + /** + * 添加小圆点底部间距 + * + * @param paddBottom + */ + public BannerViewPager addPointBottom(int paddBottom) { + mLineIndicator.setPadding(0, 0, 0, dip2px(paddBottom)); + return this; + } + + /** + * 配置完成,将布局添加到父容器 + */ + public BannerViewPager finishConfig() { + this.addView(mLayout); + return this; + } + + //开始轮播 + public BannerViewPager addStartTimer(int time) { + mRollTime = time; + if (mHandler == null) { + mHandler = new Handler(); + } + if (mAutoRollRunnable == null) { + mAutoRollRunnable = new BannerViewPager.AutoRollRunnable(); + } + + mAutoRollRunnable.start(); + return this; + } + + // 停止轮播 + public void stopTimer() { + if (mAutoRollRunnable != null) { + mAutoRollRunnable.stop(); + } + } + + private class AutoRollRunnable implements Runnable { + //是否在轮播的标志 + boolean isRunning = false; + + @Override + public void run() { + if (isRunning) { + int index = mViewPager.getCurrentItem() + 1;//下一个页 + mViewPager.setCurrentItem(index);//设置此次要显示的pager + currentIndex = index % mList.size(); + setImageBackground(currentIndex); + mHandler.postDelayed(this, 1000 * mRollTime); + } + } + + public void start() { + if (!isRunning) { + isRunning = true; + mHandler.removeCallbacks(this); + mHandler.postDelayed(this, 1000 * mRollTime); + } + } + + public void stop() { + if (isRunning) { + mHandler.removeCallbacks(this); + isRunning = false; + } + } + } +// /** +// * 开启定时器 +// * @param time +// */ +// public BannerViewPager addStartTimer(int time) { +// if (mTimer == null) { +// mTimer = new Timer(); +// } +// if(mTimerTask==null){ +// mTimerTask=new MyTimerTask(); +// } +// mTimer.schedule(mTimerTask, 3000, 1000*time); +// return this; +// } +// /** +// * 停止定时器 +// */ +// public void stopTimer(){ +// if(mTimer!=null){ +// mTimer.cancel(); +// mTimer = null; +// } +// if(mTimerTask!=null){ +// mTimerTask.cancel(); +// mTimerTask = null; +// } +// } +// class MyTimerTask extends TimerTask { +// @Override +// public void run() { +// mHandler.sendEmptyMessage(1001);//在此线程中,不能操作ui主线程 +// } +// } + + /** + * 根据手机的分辨率从 dp 的单位 转成为 px(像素) + */ + public int dip2px(float dpValue) { + final float scale = mContext.getResources().getDisplayMetrics().density; + return (int) (dpValue * scale + 0.5f); + } + + //---------------viewpager滑动事件----------------- + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + + /** + * 滑动时同步改变底部小圆点 + * + * @param position + */ + @Override + public void onPageSelected(int position) { + currentIndex = position % mList.size(); + setImageBackground(currentIndex); + if (onBannerChangeListener != null) { + onBannerChangeListener.onBannerChange(currentIndex); + } + } + + /** + * 改变指示器 + * + * @param selectItemsIndex + */ + private void setImageBackground(int selectItemsIndex) { + if (isPoint) { + for (int i = 0; i < mImageView.length; i++) { + if (i == selectItemsIndex) { + mImageView[i].setImageResource(resId_piont_press); + + } else { + mImageView[i].setImageResource(resId_piont); + } + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/find/FindDetailActivity.java b/app/src/main/java/com/yonsz/z1/version5/find/FindDetailActivity.java new file mode 100644 index 0000000..a07fb66 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/find/FindDetailActivity.java @@ -0,0 +1,172 @@ +package com.yonsz.z1.version5.find; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.View; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.entity5.FindEntity; +import com.yonsz.z1.fragment.person.WebViewActivity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.GET_WEATHER_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.CMS_ARTICLE_MORE_LATEST; +import static com.yonsz.z1.net.NetWorkUrl.CMS_ARTICLE_MORE_PDG; + +public class FindDetailActivity extends BaseActivity { + private TitleView mTitleView; + private RecyclerView mRecyclerView; + private FindDetailAdapter findDetailAdapter; + private String platform; + private List records = new ArrayList<>(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_find_detail); + initView(); + } + + private void initView() { + platform = getIntent().getExtras().get("platform").toString(); + mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); + mTitleView = (TitleView) findViewById(R.id.title_find_detail); + if (platform.equals("latest")) { + mTitleView.setHead("最新发布"); + getLatest(); + } else if (platform.equals("pdg")) { + mTitleView.setHead("产品教程"); + getPdg(); + } + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(this); + manager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(manager); + findDetailAdapter = new FindDetailAdapter(this, records); + mRecyclerView.setAdapter(findDetailAdapter); + + findDetailAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + @Override + public void onClick(View view, int position, int i) { + Intent intent = new Intent(FindDetailActivity.this, WebViewActivity.class); + intent.putExtra("platform", "find"); + intent.putExtra("linkUrl", records.get(position).getLinkUrl()); + intent.putExtra("title", records.get(position).getTitle()); + startActivity(intent); + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case GET_WEATHER_SUCCESS: + FindEntity findEntity = (FindEntity) msg.obj; + records.clear(); + records.addAll(findEntity.getData().getRecords()); + findDetailAdapter.notifyDataSetChanged(); + break; + case SELECT_MODEL_TIME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + + private void getLatest() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("current", "0"); + map.put("size", "20"); + netWorkUtil.requestGetByAsy(CMS_ARTICLE_MORE_LATEST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getLatest", respone); + FindEntity obj = JSON.parseObject(respone, FindEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(GET_WEATHER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getPdg() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("current", "0"); + map.put("size", "20"); + netWorkUtil.requestGetByAsy(CMS_ARTICLE_MORE_PDG, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getPdg", respone); + FindEntity obj = JSON.parseObject(respone, FindEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(GET_WEATHER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/find/FindDetailAdapter.java b/app/src/main/java/com/yonsz/z1/version5/find/FindDetailAdapter.java new file mode 100644 index 0000000..500a84d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/find/FindDetailAdapter.java @@ -0,0 +1,90 @@ +package com.yonsz.z1.version5.find; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.entity5.FindEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.view.RoundImageView; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class FindDetailAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + + + public FindDetailAdapter(Context context, List mDataBeans) { + this.mDataBeans = mDataBeans; + this.mContext = context; + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_find_detail, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_model_type_pic) + RoundImageView mIvModelPic; + @BindView(R.id.tv_title) + TextView mTitleTv; + @BindView(R.id.tv_pageview) + TextView mPageviewTv; + @BindView(R.id.tv_likes) + TextView mLikesTv; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + ImageLoader.getInstance().displayImage(mDataBeans.get(position).getCoverImg(), mIvModelPic, UniKongApp.getHiApp().getImageLoaderOption()); + mTitleTv.setText(mDataBeans.get(position).getTitle()); + mPageviewTv.setText(mDataBeans.get(position).getPageview()); + mLikesTv.setText(mDataBeans.get(position).getLikes()); + + mIvModelPic.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 1); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/fragment/ClothesHangerFragment.java b/app/src/main/java/com/yonsz/z1/version5/fragment/ClothesHangerFragment.java new file mode 100644 index 0000000..ceada0c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/fragment/ClothesHangerFragment.java @@ -0,0 +1,822 @@ +package com.yonsz.z1.version5.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.LightListEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_FAIL; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_FAIL; + +public class ClothesHangerFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition, aiNameAndState, aiModelName; + private CheckBox childVoiceCb; + private String ziId; + private String deviceId; + private String addressName; + private String voiceFlag; + private String addressId; + private ImageView localControlIv; + private TextView lightTv, disinfectionTv, airDryingTv, stovingTv, upTv, stopTv, downTv, tv_model_disinfection, tv_model_dry; + private String openFlag = ""; //1:上升 0:下降 2:停止 + private String airdrying = ""; //1:风干开 0:风干关 + private String anion = ""; //1:负离子开 0:负离子关 + private String disinfect = ""; //1:消毒开 0:消毒关 + private String light = ""; //1:照明开 0:照明关 + private String stoving = ""; //1:烘干开 0:烘干关 + private String voice = ""; //1:语音开 0:语音关 + private String deviceModel = ""; + private ImageView iv_clothes_position, iv_clothes_disinfect, iv_clothes_dry, iv_clothes_lighting; + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + public static ClothesHangerFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + ClothesHangerFragment fragment = new ClothesHangerFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.frgment_clothes_hanger, null); + initView(fragView); + return fragView; + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView(View fragView) { +// devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); +// devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + ziId = devicesBean.getZiId(); + deviceId = devicesBean.getId(); + addressId = devicesBean.getAddressId(); + deviceModel = devicesBean.getDeviceModel(); + if (null != devicesBean.getLastInfo()) { + openFlag = devicesBean.getLastInfo().getOpenFlag(); + airdrying = devicesBean.getLastInfo().getAirdrying(); + anion = devicesBean.getLastInfo().getAnion(); + disinfect = devicesBean.getLastInfo().getDisinfect(); + light = devicesBean.getLastInfo().getLight(); + stoving = devicesBean.getLastInfo().getStoving(); + voice = devicesBean.getLastInfo().getVoice(); + } + addressName = AddressNameUtil.getAddressName(addressId); + voiceFlag = devicesBean.getVoiceFlag(); + iv_clothes_position = (ImageView) fragView.findViewById(R.id.iv_clothes_position); + iv_clothes_disinfect = (ImageView) fragView.findViewById(R.id.iv_clothes_disinfect); + iv_clothes_dry = (ImageView) fragView.findViewById(R.id.iv_clothes_dry); + iv_clothes_lighting = (ImageView) fragView.findViewById(R.id.iv_clothes_lighting); + tv_model_dry = (TextView) fragView.findViewById(R.id.tv_model_dry); + tv_model_disinfection = (TextView) fragView.findViewById(R.id.tv_model_disinfection); + lightTv = (TextView) fragView.findViewById(R.id.tv_light); + disinfectionTv = (TextView) fragView.findViewById(R.id.tv_disinfection); + airDryingTv = (TextView) fragView.findViewById(R.id.tv_air_drying); + stovingTv = (TextView) fragView.findViewById(R.id.tv_stoving); + upTv = (TextView) fragView.findViewById(R.id.tv_up); + stopTv = (TextView) fragView.findViewById(R.id.tv_stop); + downTv = (TextView) fragView.findViewById(R.id.tv_down); + + lightTv.setOnClickListener(this); + disinfectionTv.setOnClickListener(this); + airDryingTv.setOnClickListener(this); + stovingTv.setOnClickListener(this); + upTv.setOnClickListener(this); + stopTv.setOnClickListener(this); + downTv.setOnClickListener(this); + + childPosition = (TextView) fragView.findViewById(R.id.tv_child_position); + aiNameAndState = (TextView) fragView.findViewById(R.id.tv_ai_state); + aiModelName = (TextView) fragView.findViewById(R.id.tv_ai_modelname); + childVoiceCb = (CheckBox) fragView.findViewById(R.id.tv_child_voice); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + childVoiceCb.setOnClickListener(this); + mTitleView = (TitleView) fragView.findViewById(R.id.title_light4); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + mTitleView.setHead(devicesBean.getDeviceName()); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //删除面板,现在是没法删除的 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //修改位置信息 + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", CLOTHES_HANGER); + startActivity(intent); + break; + case 4: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + Intent intent1 = new Intent(getActivity(), ModifyRoomActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("deviceType", CLOTHES_HANGER); + intent1.putExtra("deviceModel", deviceModel); + intent1.putExtra("deviceId", deviceId); + intent1.putExtra("addressId", addressId); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent(); + dialog2.setLearnTxt("修改设备位置"); + dialog2.setSureBtnTxt("删除智能晾衣机"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + + childPosition.setText(addressName); + aiNameAndState.setText(AddressNameUtil.getAiNameAndState(ziId)); + aiModelName.setText(devicesBean.getModelName()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + + + setClothesModel(); + } + + private void setClothesModel() { + if (AppIdUtil.isZhiKong()) { + iv_clothes_position.setImageDrawable(getResources().getDrawable(R.drawable.pic_airer_decline)); + switch (airdrying) { + case "0": + iv_clothes_dry.setVisibility(View.GONE); + tv_model_dry.setVisibility(View.GONE); + break; + case "1": + tv_model_dry.setVisibility(View.VISIBLE); + break; + default: + iv_clothes_dry.setVisibility(View.GONE); + tv_model_dry.setVisibility(View.GONE); + break; + } + switch (anion) { + case "0": + + break; + case "1": + + break; + default: + break; + } + switch (disinfect) { + case "0": + iv_clothes_disinfect.setVisibility(View.GONE); + tv_model_disinfection.setVisibility(View.GONE); + break; + case "1": + tv_model_disinfection.setVisibility(View.VISIBLE); + break; + default: + iv_clothes_disinfect.setVisibility(View.GONE); + tv_model_disinfection.setVisibility(View.GONE); + break; + } + switch (light) { + case "0": + iv_clothes_lighting.setVisibility(View.GONE); + break; + case "1": + break; + default: + iv_clothes_lighting.setVisibility(View.GONE); + break; + } + switch (stoving) { + case "0": + tv_model_dry.setText("风干模式"); + break; + case "1": + tv_model_dry.setText("烘干模式·风干模式"); + break; + default: + tv_model_dry.setText("风干模式"); + break; + } + switch (voice) { + case "0": + + break; + case "1": + + break; + default: + break; + } + } else { + iv_clothes_position.setImageDrawable(getResources().getDrawable(R.drawable.pic_airer_decline)); + /*switch (openFlag) { + case "0": + iv_clothes_position.setImageDrawable(getResources().getDrawable(R.drawable.pic_airer_decline)); + break; + case "1": + iv_clothes_position.setImageDrawable(getResources().getDrawable(R.drawable.pic_airer_rise)); + break; + case "2": + iv_clothes_position.setImageDrawable(getResources().getDrawable(R.drawable.pic_airer_suspend)); + break; + default: + iv_clothes_position.setImageDrawable(getResources().getDrawable(R.drawable.pic_airer_decline)); + break; + } + switch (airdrying) { + case "0": + iv_clothes_dry.setVisibility(View.GONE); + tv_model_dry.setVisibility(View.GONE); + break; + case "1": + iv_clothes_dry.setVisibility(View.VISIBLE); + tv_model_dry.setVisibility(View.VISIBLE); + break; + default: + iv_clothes_dry.setVisibility(View.GONE); + tv_model_dry.setVisibility(View.GONE); + break; + } + switch (anion) { + case "0": + + break; + case "1": + + break; + default: + break; + } + switch (disinfect) { + case "0": + iv_clothes_disinfect.setVisibility(View.GONE); + tv_model_disinfection.setVisibility(View.GONE); + break; + case "1": + iv_clothes_disinfect.setVisibility(View.VISIBLE); + tv_model_disinfection.setVisibility(View.VISIBLE); + break; + default: + iv_clothes_disinfect.setVisibility(View.GONE); + tv_model_disinfection.setVisibility(View.GONE); + break; + } + switch (light) { + case "0": + iv_clothes_lighting.setVisibility(View.GONE); + break; + case "1": + iv_clothes_lighting.setVisibility(View.VISIBLE); + break; + default: + iv_clothes_lighting.setVisibility(View.GONE); + break; + }*/ + switch (stoving) { + case "0": + tv_model_dry.setText("风干模式"); + break; + case "1": + tv_model_dry.setText("烘干模式·风干模式"); + break; + default: + tv_model_dry.setText("风干模式"); + break; + } + /*switch (voice) { + case "0": + + break; + case "1": + + break; + default: + break; + }*/ + } + } + + @Override + public void onResume() { + super.onResume(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + ShakeUtil.setShake(getContext()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (voiceFlag.equals("1")) { + subseSetVoice("0"); + } else { + subseSetVoice("1"); + } + break; + } + } + }); + if (!voiceFlag.equals("1")) { + dialog.setContent("开启语音控制?"); + } else { + dialog.setContent("关闭语音控制?"); + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_light: + if (light.equals("1")) { + subsetControl("lightoff"); + } else { + subsetControl("light"); + } + break; + case R.id.tv_disinfection: + if (disinfect.equals("1")) { + subsetControl("disinfectoff"); + } else { + subsetControl("disinfect"); + } + break; + case R.id.tv_air_drying: + if (airdrying.equals("1")) { + subsetControl("airdryingoff"); + } else { + subsetControl("airdrying"); + } + break; + case R.id.tv_stoving: + if (stoving.equals("1")) { + subsetControl("stovingoff"); + } else { + subsetControl("stoving"); + } + break; + case R.id.tv_up: + subsetControl("up"); + break; + case R.id.tv_stop: + subsetControl("stop"); + break; + case R.id.tv_down: + subsetControl("down"); + break; + } + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case STUDY_ANDCONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SELECTBLIND_BYZI_SUCCESS: + LightListEntity obj = (LightListEntity) msg.obj; + break; + case SELECTBLIND_BYZI_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + getActivity().finish(); + break; + case DELLIGHT_ENTITY_SUCCESS: + ToastUtil.show(getContext(), R.string.Delete_successful); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 1000); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + int obj1 = Integer.parseInt((String) msg.obj); + if (obj1 == 0) { + voiceFlag = "0"; + ToastUtil.show(getContext(), "关闭语音成功"); + childVoiceCb.setChecked(false); + } else { + voiceFlag = "1"; + ToastUtil.show(getContext(), "开启语音成功"); + childVoiceCb.setChecked(true); + } + break; + case SENDPID_STUDYBLIND_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELLIGHT_ENTITY_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_LIGHT_TYPE_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity1.getDeviceIds().equals(deviceId) && nettyEntity1.getDeviceType().equals(CLOTHES_HANGER)) { + openFlag = nettyEntity1.getOpenFlag(); + airdrying = nettyEntity1.getAirdrying(); + anion = nettyEntity1.getAnion(); + disinfect = nettyEntity1.getDisinfect(); + light = nettyEntity1.getLight(); + stoving = nettyEntity1.getStoving(); + voice = nettyEntity1.getVoice(); + setClothesModel(); + } + break; + case MODIFY_NAME_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case MODIFY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(MODIFY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subseSetVoice(final String flag) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", CLOTHES_HANGER); + map.put("ziId", ziId); + map.put("voiceFlag", flag); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SETVOICE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subseSetVoice", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = flag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetDelete() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", CLOTHES_HANGER); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", CLOTHES_HANGER); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("devicePosition") != null) { + childPosition.setText(data.getExtras().get("devicePosition").toString()); + addressId = data.getExtras().get("addressId").toString(); + } + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(ClothesHangerFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + ClothesHangerFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/fragment/DeviceInRoomFragment.java b/app/src/main/java/com/yonsz/z1/version5/fragment/DeviceInRoomFragment.java new file mode 100644 index 0000000..9cc0866 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/fragment/DeviceInRoomFragment.java @@ -0,0 +1,290 @@ +package com.yonsz.z1.version5.fragment; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.v7.widget.CardView; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.helper.ItemTouchHelper; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.AsxAddDeviceListActivity; +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.version5.adapter.DeviceDetailAdapter; + +import java.lang.ref.WeakReference; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +import static android.support.v7.widget.helper.ItemTouchHelper.ACTION_STATE_DRAG; +import static android.support.v7.widget.helper.ItemTouchHelper.ACTION_STATE_IDLE; +import static com.yonsz.z1.net.Constans.GATE_WAY; +import static com.yonsz.z1.net.Constans.GET_WEATHER_SUCCESS; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; + +public class DeviceInRoomFragment extends BaseFragment { + private View fragView; + private UIHandle mHandler; + private AllDeviceEntity.DataBean devicesBean; + private List devices; + private DeviceDetailAdapter mAdapter; + private RecyclerView recyclerView; + private CardView cardView_add; + private RelativeLayout cw_add; + private TextView addDeviceTv; + private ItemTouchHelper itemTouchHelper; + private RecyclerView.ViewHolder lastDragViewHolder; + private int xiaoAiNum = 0; + + public static DeviceInRoomFragment getInstance(AllDeviceEntity.DataBean devicesBean) { + DeviceInRoomFragment fragment = new DeviceInRoomFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.fragment_device_in_room, null); + initView(fragView); + return fragView; + } + + private void initView(View fragView) { + addDeviceTv = (TextView) fragView.findViewById(R.id.tv_add_device); + cardView_add = (CardView) fragView.findViewById(R.id.cardView_add); + cw_add = (RelativeLayout) fragView.findViewById(R.id.cw_add); + recyclerView = (RecyclerView) fragView.findViewById(R.id.recyclerView); + // if (null != (AllDeviceEntity.DataBean) getArguments().get("DATA")) { + if (null != devicesBean) { + cardView_add.setVisibility(View.GONE); + cw_add.setVisibility(View.GONE); + devices = devicesBean.getDevices(); + for (int i = 0; i < devices.size(); i++) { + if (devices.get(i).getDeviceType().equals("000") || devices.get(i).getDeviceType().equals(GATE_WAY) || devices.get(i).getDeviceType().equals(SERVICE_PANEL_485)) { + xiaoAiNum++; + } + } + if (devices.size() == 0) { + if (AppIdUtil.isChuangWei()) { + cardView_add.setVisibility(View.GONE); + cw_add.setVisibility(View.VISIBLE); + } else { + cardView_add.setVisibility(View.VISIBLE); + cw_add.setVisibility(View.GONE); + } + recyclerView.setVisibility(View.GONE); + } else { + recyclerView.setVisibility(View.VISIBLE); + } + AllDeviceEntity.DataBean.AddressTypeBean addressType = devicesBean.getAddressType(); + + mAdapter = new DeviceDetailAdapter(getContext(), devices); + GridLayoutManager manage = new GridLayoutManager(getContext(), 2); + recyclerView.setHasFixedSize(true); + recyclerView.setLayoutManager(manage); + recyclerView.setAdapter(mAdapter); + mAdapter.notifyDataSetChanged(); + + itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.Callback() { + @Override + public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { + Log.i("getMovementFlags", "getMovementFlags: "); + int dragFlags; + int swipeFlags; + if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { + dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | + ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; + swipeFlags = 0; + } else { + dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN; + swipeFlags = 0; + } + return makeMovementFlags(dragFlags, swipeFlags); + } + + @Override + public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { + int fromPosition = viewHolder.getAdapterPosition(); + int toPosition = target.getAdapterPosition(); + Log.i("onMove", "onMove: " + fromPosition + "===" + toPosition + "===" + devices.size()); + if (fromPosition == devices.size() || toPosition == devices.size()) { + return false; + } + if (fromPosition < xiaoAiNum || toPosition < xiaoAiNum) { + return false; + } + if (fromPosition < toPosition) { + for (int i = fromPosition; i < toPosition; i++) { + Collections.swap(devices, i, i + 1); + } + } else { + for (int i = fromPosition; i > toPosition; i--) { + Collections.swap(devices, i, i - 1); + } + } + mAdapter.notifyItemMoved(fromPosition, toPosition); + return true; + } + + @Override + public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { + Log.i("onSwiped", "onSwiped: "); + } + + @Override + public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { + super.onSelectedChanged(viewHolder, actionState); + if (viewHolder != null && actionState == ACTION_STATE_DRAG) { + lastDragViewHolder = viewHolder; + } + //ACTION_STATE_IDLE就是松开了,把大小改为原状 + if (lastDragViewHolder != null && actionState == ACTION_STATE_IDLE) { + lastDragViewHolder = null; + updateSort(); + } + } + + @Override + public boolean isLongPressDragEnabled() { + return false; + } + }); + itemTouchHelper.attachToRecyclerView(recyclerView); + + mAdapter.setmOnItemClickListener(new OnRecyclerListener() { + @Override + public void onClick(View view, final int position) { + + } + + @Override + public void onLongClick(RecyclerView.ViewHolder view, int position) { + if (position != devices.size()) { + itemTouchHelper.startDrag(view); + } + } + }); + } else { + if (AppIdUtil.isChuangWei()) { + cardView_add.setVisibility(View.GONE); + cw_add.setVisibility(View.VISIBLE); + } else { + cardView_add.setVisibility(View.VISIBLE); + cw_add.setVisibility(View.GONE); + } + recyclerView.setVisibility(View.GONE); + } + addDeviceTv.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + Intent intent = new Intent(getActivity(), AsxAddDeviceListActivity.class); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + intent.putExtra("floorList", homeListEntity.getData().get(deviceNumListPosition).getFloorList()); + getActivity().startActivity(intent); + } + }); + cw_add.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + Intent intent = new Intent(getActivity(), AsxAddDeviceListActivity.class); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + intent.putExtra("floorList", homeListEntity.getData().get(deviceNumListPosition).getFloorList()); + getActivity().startActivity(intent); + } + }); + + + recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy) { + super.onScrolled(recyclerView, dx, dy); + // Log.i("TAG", "DeviceInRoomFragment onScrolled()" + dy + "===" + recyclerView.getBottom() + "===" + recyclerView.getScrollState()); + // recyclerView.smoothScrollToPosition(devices.size() - 1); + } + }); + } + + private void updateSort() { + String body = JSONObject.toJSONString(devices); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + util.requestPostByAsyBody(NetWorkUrl.INDEX_APPLICANCE_UPDATESORT, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateSort", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case GET_WEATHER_SUCCESS: + + break; + } + } + + //handler + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(DeviceInRoomFragment activity) { + weakReference = new WeakReference(activity); + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + DeviceInRoomFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/fragment/FindFragment.java b/app/src/main/java/com/yonsz/z1/version5/fragment/FindFragment.java new file mode 100644 index 0000000..b51e16e --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/fragment/FindFragment.java @@ -0,0 +1,165 @@ +package com.yonsz.z1.version5.fragment; + +import android.content.Context; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.StaggeredGridLayoutManager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.FindEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.adapter.FindRecycleAdapter; +import com.yonsz.z1.version5.weidget.MyStaggerGrildLayoutManger; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.lang.ref.WeakReference; +import java.util.HashMap; + +import static com.yonsz.z1.net.Constans.FIND_DEVICES_FAIL; +import static com.yonsz.z1.net.Constans.GET_WEATHER_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.CMS_ARTICLE_HOMEPAGE; + +/** + * Created by Administrator on 2018/4/23. + */ + +public class FindFragment extends BaseFragment implements View.OnClickListener { + private TitleView mTitleView; + private RecyclerView recyclerView; + private View fragView; + private UIHandle mHandler; + private FindRecycleAdapter findRecycleAdapter; + private Context mContext; +// private MySwipeRefreshLayout swipeRefreshLayout; + + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mContext = this.getActivity(); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.M) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.fragment_find, null); + initView(); + return fragView; + } + + @Override + public void onResume() { + super.onResume(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + } + + @RequiresApi(api = Build.VERSION_CODES.M) + private void initView() { +// swipeRefreshLayout = (MySwipeRefreshLayout) fragView.findViewById(R.id.swipe_refresh); + mTitleView = (TitleView) fragView.findViewById(R.id.title_version5); + mTitleView.clearBackGroud(); + mTitleView.setHead("发现"); + mTitleView.setHeadHomeVisible(); + mTitleView.setHeadFuntionGone(); + recyclerView = (RecyclerView) fragView.findViewById(R.id.rv_content); + findRecycleAdapter = new FindRecycleAdapter(getActivity().getSupportFragmentManager(), mContext); + recyclerView.setAdapter(findRecycleAdapter); + final MyStaggerGrildLayoutManger myStaggerGrildLayoutManger = new MyStaggerGrildLayoutManger(mContext, 1, StaggeredGridLayoutManager.VERTICAL); + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(mContext); + recyclerView.setLayoutManager(myStaggerGrildLayoutManger); + + /*swipeRefreshLayout.setTouchSlop(200); + swipeRefreshLayout.setProgressViewEndTarget(true, 200); + swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { + @Override + public void onRefresh() { + getCmsArticleHomepage(); + } + });*/ + + getCmsArticleHomepage(); + } + + private void getCmsArticleHomepage() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + netWorkUtil.requestGetByAsy(CMS_ARTICLE_HOMEPAGE, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getCmsArticleHomepage", respone); + FindEntity obj = JSON.parseObject(respone, FindEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(GET_WEATHER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case GET_WEATHER_SUCCESS: +// swipeRefreshLayout.setRefreshing(false); + FindEntity findEntity = (FindEntity) msg.obj; + findRecycleAdapter.setAllDevicebean(findEntity); + break; + case FIND_DEVICES_FAIL: + case SELECT_MODEL_TIME_FAIL: + ToastUtil.show(getActivity(), (String) msg.obj); + break; + } + } + + + @Override + public void onClick(View v) { + + } + + //handler + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(FindFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + FindFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/fragment/FloorHeatingFragment.java b/app/src/main/java/com/yonsz/z1/version5/fragment/FloorHeatingFragment.java new file mode 100644 index 0000000..671f8d8 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/fragment/FloorHeatingFragment.java @@ -0,0 +1,699 @@ +package com.yonsz.z1.version5.fragment; + +import android.content.Context; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.SeekBar; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.AIR_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS_AIR; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.QUERY_AIR_LASTSTATUS_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_AIR_LASTSTATUS_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_FAIL; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +/** + * Created by Administrator on 2018/8/8. + */ +public class FloorHeatingFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private String ziId; + private TextView mOpenClose, mCloseAir; + private TextView airTempicon, airTempoC, tv_next_time, tv_next_time_state, tv_next_week, tv_seek; + private String airName; + private TextView mTiming; + private boolean isOpen = false; + private NettyEntity nettyEntity; + private LoadingDialog mLoadingDialog; + private String deviceIp = ""; + private RelativeLayout airTopBg; + private boolean isInit = false; + private Context context; + private SeekBar brightNessSb; + private String thisProgress = "16"; + + public static FloorHeatingFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + FloorHeatingFragment fragment = new FloorHeatingFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + // Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); + nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (nettyEntity.getZiId().equals(ziId)) { + Message message = new Message(); + message.what = AIR_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_floor_heating, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + } + + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + isInit = true; + airName = devicesBean.getDeviceBrand(); + ziId = devicesBean.getZiId(); + airTopBg = (RelativeLayout) fragView.findViewById(R.id.rl_air_top_bg); + brightNessSb = (SeekBar) fragView.findViewById(R.id.sb_lightness); + + airTempicon = (TextView) fragView.findViewById(R.id.tv_air_temp_icon); + airTempoC = (TextView) fragView.findViewById(R.id.tv_air_temp_oc); + + mOpenClose = (TextView) fragView.findViewById(R.id.tv_first_control); + mCloseAir = (TextView) fragView.findViewById(R.id.tv_third_control); + mTiming = (TextView) fragView.findViewById(R.id.tv_timing); + tv_next_time = (TextView) fragView.findViewById(R.id.tv_next_time); + tv_next_time_state = (TextView) fragView.findViewById(R.id.tv_next_time_state); + tv_next_week = (TextView) fragView.findViewById(R.id.tv_next_week); + tv_seek = (TextView) fragView.findViewById(R.id.tv_seek); + + mTitleView = (TitleView) fragView.findViewById(R.id.title_aircondition); + mTitleView.clearBackGroud(); + if (devicesBean.getDeviceName().isEmpty()) { + mTitleView.setHead("地暖"); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + } + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //重新命名 + break; + case 3: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + //语令说明 + /*Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", FLOOR_HEATING); + startActivity(intent);*/ + /*RenameNameDialog dialog1 = new RenameNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show();*/ + break; + case 4: + break; + case 5: + break; + case 7: + Intent intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setTop("修改设备名称"); + dialog2.setModifyName(); + dialog2.setContent(); + dialog2.setLearn(); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + + brightNessSb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, final int progress, boolean fromUser) { + Log.i("LightA1Fragment", "onProgressChanged()" + progress); + tv_seek.setVisibility(View.VISIBLE); + if (progress == 100) { + thisProgress = 35 + ""; + } else { + thisProgress = (progress * 1000 / 5263 + 16) + ""; + } + tv_seek.setText(thisProgress + "℃"); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + tv_seek.setVisibility(View.VISIBLE); + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + Log.i("LightA1Fragment", "onStopTrackingTouch()" + seekBar.getProgress()); + tv_seek.setVisibility(View.INVISIBLE); + subsetControl("tempSet" + thisProgress); + } + }); + } + + private void subsetModify(String deviceName) { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", FLOOR_HEATING); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mCloseAir.setOnClickListener(this); + mTiming.setOnClickListener(this); + } + + private void subsetDelete() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", FLOOR_HEATING); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case DELETE_CHILDDEVICE_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case QUERY_NEXT_TIMER_SUCCESS: + Z1TimeEntity entity12 = (Z1TimeEntity) msg.obj; + if (entity12.getData() != null && !TextUtils.isEmpty(entity12.getData().getMin())) { + String cmdType = entity12.getData().getCmdType(); + int restMin = Integer.parseInt(entity12.getData().getMin()); + if (restMin < 60) { + if (cmdType.equals("1")) { + tv_next_time.setText(restMin + "分钟后开启"); + } else { + tv_next_time.setText(restMin + "分钟后关闭"); + } + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + if (cmdType.equals("1")) { + tv_next_time.setText(hour + "小时后开启"); + } else { + tv_next_time.setText(hour + "小时后关闭"); + } + } else { + if (cmdType.equals("1")) { + tv_next_time.setText(hour + "小时" + minite + "分钟后开启"); + } else { + tv_next_time.setText(hour + "小时" + minite + "分钟后关闭"); + } + } + } + tv_next_week.setText(""); + } else if (entity12.getData() != null) { + switch (entity12.getData().getWeek().toString()) { + case "1": + tv_next_week.setText("周日"); + break; + case "2": + tv_next_week.setText("周一"); + break; + case "3": + tv_next_week.setText("周二"); + break; + case "4": + tv_next_week.setText("周三"); + break; + case "5": + tv_next_week.setText("周四"); + break; + case "6": + tv_next_week.setText("周五"); + break; + case "7": + tv_next_week.setText("周六"); + break; + } + tv_next_time.setText(entity12.getData().getTime().toString()); + if (entity12.getData().getCmdType().toString().equals("1")) { + tv_next_time_state.setText(R.string.open); + } else { + tv_next_time_state.setText(getString(R.string.open)); + + } + } else { + tv_next_week.setText(""); + tv_next_time.setText(""); + tv_next_time_state.setText(""); + } + break; + case QUERY_AIR_LASTSTATUS_SUCCESS: + DeviceStateEntity airStateEntity = (DeviceStateEntity) msg.obj; + DeviceStateEntity.DataBean dataBean = airStateEntity.getData(); + if (dataBean != null && dataBean.getOpenFlag() != null && dataBean.getOpenFlag().equals("1")) { + isOpen = true; + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_heating_back)); + if (dataBean.getTemp() != null) { + airTempoC.setVisibility(View.VISIBLE); + thisProgress = dataBean.getTemp(); + airTempicon.setText(" " + dataBean.getTemp()); + brightNessSb.setProgress((Integer.parseInt(thisProgress) - 16) * 5263 / 1000); + tv_seek.setText(thisProgress + "℃"); + tv_seek.setVisibility(View.INVISIBLE); + } + } else { + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_close_back)); + isOpen = false; + airTempicon.setText("已关闭"); + airTempoC.setVisibility(View.GONE); + } + break; + case AIR_CONTROL_SUCCESS: + nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (!nettyEntity.getDeviceType().equals(FLOOR_HEATING)) { + return; + } + if (nettyEntity.getOpenFlag().equals("1")) { + isOpen = true; + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_heating_back)); + if (nettyEntity.getTemp() != null) { + airTempoC.setVisibility(View.VISIBLE); + airTempicon.setText(" " + nettyEntity.getTemp().toString()); + } + } else { + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_close_back)); + isOpen = false; + airTempicon.setText("已关闭"); + airTempoC.setVisibility(View.GONE); + } + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS_AIR: + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_timing: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + Intent intent = new Intent(getContext(), SwitcherTimeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("id", devicesBean.getId()); + intent.putExtra("deviceType", FLOOR_HEATING); + startActivity(intent); + break; + case R.id.tv_first_control: + subsetControl("power"); + break; + case R.id.tv_third_control: + subsetControl("poweroff"); + break; + } + } + + @Override + public void onResume() { + super.onResume(); + queryNextTimer(); + queryDeviceLastInfo(devicesBean.getId(), FLOOR_HEATING); + } + + @Override + public void onDestroy() { + super.onDestroy(); + + } + + private void queryNextTimer() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceId", devicesBean.getId()); + netWorkUtil.requestGetByAsy(NetWorkUrl.QUERY_NEXT_TIMER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryNextTimer", "ShareDeviceActivity onSuccess()" + respone); + Z1TimeEntity obj = JSON.parseObject(respone, Z1TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", FLOOR_HEATING); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initLoadDialog() { + if (null != mLoadingDialog && !mLoadingDialog.isShowing()) { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(FloorHeatingFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + FloorHeatingFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/fragment/FreshAirFragment.java b/app/src/main/java/com/yonsz/z1/version5/fragment/FreshAirFragment.java new file mode 100644 index 0000000..9be84e0 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/fragment/FreshAirFragment.java @@ -0,0 +1,726 @@ +package com.yonsz.z1.version5.fragment; + +import android.content.Context; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.AIR_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS_AIR; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.QUERY_AIR_LASTSTATUS_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_AIR_LASTSTATUS_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_FAIL; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +/** + * Created by Administrator on 2018/8/8. + */ +public class FreshAirFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private String ziId; + private TextView mOpenClose, mLeftRight, mUpDown, mSavePower, mCloseAir; + private TextView airTempicon, airWindIcon, tv_next_time, tv_next_time_state, tv_next_week, tv_timing; + private String airName; + private RelativeLayout progressRl; + private boolean isLoading = false; + private NettyEntity nettyEntity; + private LoadingDialog mLoadingDialog; + private ImageView localControlIv; + private boolean isOpen = false; + + public static FreshAirFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + FreshAirFragment fragment = new FreshAirFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + // Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); + nettyEntity = JSON.parseObject(msg, NettyEntity.class); + if (nettyEntity.getZiId().equals(ziId)) { + Message message = new Message(); + message.what = AIR_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_fresh_air, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + } + + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + airName = devicesBean.getDeviceBrand(); + ziId = devicesBean.getZiId(); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + + airTempicon = (TextView) fragView.findViewById(R.id.tv_air_temp_icon); + airWindIcon = (TextView) fragView.findViewById(R.id.tv_air_wind_icon); + + mOpenClose = (TextView) fragView.findViewById(R.id.tv_fan_open); + mCloseAir = (TextView) fragView.findViewById(R.id.tv_close_air); + mLeftRight = (TextView) fragView.findViewById(R.id.tv_right_left); + mUpDown = (TextView) fragView.findViewById(R.id.tv_up_down); + mSavePower = (TextView) fragView.findViewById(R.id.tv_save_power); + + tv_timing = (TextView) fragView.findViewById(R.id.tv_timing); + tv_next_time = (TextView) fragView.findViewById(R.id.tv_next_time); + tv_next_time_state = (TextView) fragView.findViewById(R.id.tv_next_time_state); + tv_next_week = (TextView) fragView.findViewById(R.id.tv_next_week); + + progressRl = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + mTitleView = (TitleView) fragView.findViewById(R.id.title_aircondition); + mTitleView.clearBackGroud(); + if (devicesBean.getDeviceName().isEmpty()) { + mTitleView.setHead("新风"); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + } + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isLoading) { + + } else { + getActivity().finish(); + } + } + + @Override + public void onFunction() { + if (isLoading) { + + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //重新命名 + break; + case 3: + //语令说明 + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 4: + break; + case 5: + break; + case 7: + Intent intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setTop("修改设备名称"); + dialog2.setModifyName(); + dialog2.setContent(); + dialog2.setLearn(); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + + @Override + public void onFunctionText() { + + } + }); + } + + private void subsetModify(String deviceName) { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", FRESH_AIR); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mCloseAir.setOnClickListener(this); + mLeftRight.setOnClickListener(this); + mUpDown.setOnClickListener(this); + mSavePower.setOnClickListener(this); + tv_timing.setOnClickListener(this); + } + + private void subsetDelete() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", FRESH_AIR); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case DELETE_CHILDDEVICE_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case QUERY_NEXT_TIMER_SUCCESS: + Z1TimeEntity entity12 = (Z1TimeEntity) msg.obj; + if (entity12.getData() != null && !TextUtils.isEmpty(entity12.getData().getMin())) { + String cmdType = entity12.getData().getCmdType(); + int restMin = Integer.parseInt(entity12.getData().getMin()); + if (restMin < 60) { + if (cmdType.equals("1")) { + tv_next_time.setText(restMin + "分钟后开启"); + } else { + tv_next_time.setText(restMin + "分钟后关闭"); + } + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + if (cmdType.equals("1")) { + tv_next_time.setText(hour + "小时后开启"); + } else { + tv_next_time.setText(hour + "小时后关闭"); + } + } else { + if (cmdType.equals("1")) { + tv_next_time.setText(hour + "小时" + minite + "分钟后开启"); + } else { + tv_next_time.setText(hour + "小时" + minite + "分钟后关闭"); + } + } + } + tv_next_week.setText(""); + } else if (entity12.getData() != null) { + switch (entity12.getData().getWeek().toString()) { + case "1": + tv_next_week.setText("周日"); + break; + case "2": + tv_next_week.setText("周一"); + break; + case "3": + tv_next_week.setText("周二"); + break; + case "4": + tv_next_week.setText("周三"); + break; + case "5": + tv_next_week.setText("周四"); + break; + case "6": + tv_next_week.setText("周五"); + break; + case "7": + tv_next_week.setText("周六"); + break; + } + tv_next_time.setText(entity12.getData().getTime().toString()); + if (entity12.getData().getCmdType().toString().equals("1")) { + tv_next_time_state.setText(R.string.open); + } else { + tv_next_time_state.setText(getString(R.string.open)); + + } + } else { + tv_next_week.setText(""); + tv_next_time.setText(""); + tv_next_time_state.setText(""); + } + break; + case QUERY_AIR_LASTSTATUS_SUCCESS: + DeviceStateEntity airStateEntity = (DeviceStateEntity) msg.obj; + DeviceStateEntity.DataBean dataBean = airStateEntity.getData(); + if (dataBean != null && dataBean.getOpenFlag() != null && dataBean.getOpenFlag().equals("1")) { + isOpen = true; + if (dataBean.getTemp() != null) { + airTempicon.setText("智能"); + } + + if (dataBean.getSpeed() != null) { + switch (dataBean.getSpeed().toString()) { + case "auto": + airWindIcon.setText("自动风"); + break; + case "low": + airWindIcon.setText("低速风"); + break; + case "medium": + airWindIcon.setText("中速风"); + break; + case "high": + airWindIcon.setText("高速风"); + break; + } + } + } else { + isOpen = false; + airTempicon.setText("已关闭"); + airWindIcon.setText(""); + } + break; + case AIR_CONTROL_SUCCESS: + nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (!nettyEntity.getDeviceType().equals(FRESH_AIR)) { + return; + } + if (nettyEntity.getOpenFlag().equals("1")) { + isOpen = true; + if (nettyEntity.getTemp() != null) { + airTempicon.setText("智能"); + } + if (nettyEntity.getSpeed() != null) { + switch (nettyEntity.getSpeed().toString()) { + case "auto": + airWindIcon.setText("自动风"); + break; + case "low": + airWindIcon.setText("低速风"); + break; + case "medium": + airWindIcon.setText("中速风"); + break; + case "high": + airWindIcon.setText("高速风"); + break; + } + } + } else { + isOpen = false; + airTempicon.setText("已关闭"); + airWindIcon.setText(""); + } + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS_AIR: + progressRl.setVisibility(View.VISIBLE); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_timing: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + Intent intent = new Intent(getContext(), SwitcherTimeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("id", devicesBean.getId()); + intent.putExtra("deviceType", FRESH_AIR); + startActivity(intent); + break; + case R.id.tv_fan_open: + subsetControl("power"); + break; + case R.id.tv_close_air: + subsetControl("poweroff"); + break; + case R.id.tv_temperature_add: + subsetControl("tempUp"); + break; + case R.id.tv_temperature_reduce: + subsetControl("tempDown"); + break; + case R.id.tv_air_wind_speed: + //自然风 + subsetControl("windSpeedAuto"); + break; + case R.id.tv_right_left: + //高速风 + subsetControl("windSpeedHigh"); + break; + case R.id.tv_up_down: + //中速风 + subsetControl("windSpeedMedium"); + break; + case R.id.tv_save_power: + //低速风 + subsetControl("windSpeedLow"); + break; + case R.id.tv_cold: + subsetControl("cold"); + break; + case R.id.tv_warm: + subsetControl("heat"); + break; + case R.id.tv_sleep: + //送风 + subsetControl("ventilate"); + break; + + case R.id.rl_progress_top: + break; + case R.id.tv_load_back: + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + } + } + + @Override + public void onResume() { + super.onResume(); + queryNextTimer(); + queryDeviceLastInfo(devicesBean.getId(), FRESH_AIR); + } + + @Override + public void onDestroy() { + super.onDestroy(); + + } + + private void queryNextTimer() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceId", devicesBean.getId()); + netWorkUtil.requestGetByAsy(NetWorkUrl.QUERY_NEXT_TIMER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryNextTimer", "ShareDeviceActivity onSuccess()" + respone); + Z1TimeEntity obj = JSON.parseObject(respone, Z1TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", FRESH_AIR); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initLoadDialog() { + if (null != mLoadingDialog && !mLoadingDialog.isShowing()) { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(FreshAirFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + FreshAirFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/fragment/GemstoneElvesFragment.java b/app/src/main/java/com/yonsz/z1/version5/fragment/GemstoneElvesFragment.java new file mode 100644 index 0000000..2e36d6c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/fragment/GemstoneElvesFragment.java @@ -0,0 +1,363 @@ +package com.yonsz.z1.version5.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.SeekBar; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.AdditionEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.SafeVoiceEvent; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.GEMSTONE_ELVES; +import static com.yonsz.z1.net.Constans.MODIFY_ADDRESS_RESULT; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SAFE_VOICE_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_DELVOICE_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class GemstoneElvesFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + private LoadingDialog mLoadingDialog; + private TitleView mTitleView; + private TextView childPosition; + private String addressName; + private SeekBar brightNessSb; + private CheckBox childPicture; + private String deviceType; + private String id; + private String ziId; + private String addressId; + private TextView openControl, closeControl; + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_gemstone_elves, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(devicesBean.getId(), GEMSTONE_ELVES); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + public void onEventMainThread(SafeVoiceEvent event) { + final String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = mHandler.obtainMessage(SAFE_VOICE_SUCCESS); + mHandler.sendMessage(message); + } + + private void initView(View fragView) { + devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + deviceType = devicesBean.getDeviceType(); + id = devicesBean.getId(); + ziId = devicesBean.getZiId(); + addressId = devicesBean.getAddressId(); + addressName = devicesBean.getAddressName(); + childPosition = (TextView) fragView.findViewById(R.id.tv_child_position); + brightNessSb = (SeekBar) fragView.findViewById(R.id.sb_lightness); + childPicture = (CheckBox) fragView.findViewById(R.id.iv_child_picture); + openControl = (TextView) fragView.findViewById(R.id.tv_open_control); + closeControl = (TextView) fragView.findViewById(R.id.tv_close_control); + mTitleView = (TitleView) fragView.findViewById(R.id.title_gemstone_elves); + mTitleView.clearBackGroud(); + mTitleView.setHead("宝石精灵"); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 3: + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", GEMSTONE_ELVES); + startActivity(intent); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent(); + dialog2.setLearn(); + dialog2.setSureBtn(); + dialog2.setOtherNameGone(); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + + childPosition.setText(addressName); + /*String lastInfo = devicesBean.getLastInfo(); + String brightness = String.valueOf(JSONObject.parseObject(lastInfo).get("brightness")); + brightNessSb.setProgress(Integer.parseInt(brightness));*/ + } + + + private void initListener() { + childPicture.setOnClickListener(this); + openControl.setOnClickListener(this); + closeControl.setOnClickListener(this); + brightNessSb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, final int progress, boolean fromUser) { + Log.i("GemstoneElvesFragment", "onProgressChanged()" + progress); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + Log.i("GemstoneElvesFragment", "onStopTrackingTouch()" + seekBar.getProgress()); + subsetControl("dimming", seekBar.getProgress()); + } + }); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_open_control: + subsetControl("power", 0); + break; + case R.id.tv_close_control: + subsetControl("poweroff", 0); + break; + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case SEND_DELVOICE_CONTROL_SUCCESS: + + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + } else { + childPicture.setChecked(false); + } + brightNessSb.setProgress(Integer.parseInt(parseObject.getData().getBrightness())); + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity1 = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity1.getDeviceType().equals(GEMSTONE_ELVES) && id.equals(nettyEntity1.getDeviceIds())) { + if (nettyEntity1.getOpenFlag().equals("1") || nettyEntity1.getOpenFlag().equals("2")) { + childPicture.setChecked(true); + } else { + childPicture.setChecked(false); + } + brightNessSb.setProgress(Integer.parseInt(nettyEntity1.getBrightness())); + } + break; + } + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key, int brightness) { + AdditionEntity additionEntity = new AdditionEntity(); + if (key.equals("dimming")) { + AdditionEntity.AdditionBean addition = new AdditionEntity.AdditionBean(); + addition.setBrightness(String.valueOf(brightness)); + additionEntity.setAddition(addition); + } + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", id); + map.put("deviceModel", "0"); + map.put("deviceType", deviceType); + map.put("ziId", ziId); + map.put("oper", key); + map.put("waitReturn", "true"); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, JSONObject.toJSONString(additionEntity), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_ADDRESS_RESULT: + + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(GemstoneElvesFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + GemstoneElvesFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/fragment/MultiControllerFragment.java b/app/src/main/java/com/yonsz/z1/version5/fragment/MultiControllerFragment.java new file mode 100644 index 0000000..84ff984 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/fragment/MultiControllerFragment.java @@ -0,0 +1,807 @@ +package com.yonsz.z1.version5.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.version5.ModifyTypeActivity; +import com.yonsz.z1.version5.MulitiControlModifyActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +public class MultiControllerFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition, openWindow, stopWindow, closeWindow, aiNameAndState; + private CheckBox childVoiceCb; + private String ziId; + private String deviceId; + private String addressName; + private String voiceFlag; + private String addressId; + private ImageView localControlIv; + private String deviceModel = "0"; + private CheckBox childPicture; + private TextView tv_window_state; + + public static MultiControllerFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + MultiControllerFragment fragment = new MultiControllerFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.frgment_multi_controller, null); + initView(fragView); + return fragView; + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + ziId = devicesBean.getZiId(); + deviceId = devicesBean.getId(); + addressId = devicesBean.getAddressId(); + addressName = AddressNameUtil.getAddressName(addressId); + voiceFlag = devicesBean.getVoiceFlag(); + openWindow = (TextView) fragView.findViewById(R.id.tv_first_control); + stopWindow = (TextView) fragView.findViewById(R.id.tv_second_control); + closeWindow = (TextView) fragView.findViewById(R.id.tv_third_control); + childPicture = (CheckBox) fragView.findViewById(R.id.iv_child_picture); + tv_window_state = (TextView) fragView.findViewById(R.id.tv_window_state); + + openWindow.setOnClickListener(this); + stopWindow.setOnClickListener(this); + closeWindow.setOnClickListener(this); + childPicture.setOnClickListener(this); + + childPosition = (TextView) fragView.findViewById(R.id.tv_child_position); + aiNameAndState = (TextView) fragView.findViewById(R.id.tv_ai_state); + childVoiceCb = (CheckBox) fragView.findViewById(R.id.tv_child_voice); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + childVoiceCb.setOnClickListener(this); + mTitleView = (TitleView) fragView.findViewById(R.id.title_light4); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + mTitleView.setHead(devicesBean.getDeviceName()); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除面板,现在是没法删除的 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //修改设备名称 + Intent intent2; + if (AppIdUtil.isWork()) { + intent2 = new Intent(getContext(), ModifyTypeActivity.class); + } else { + intent2 = new Intent(getContext(), MulitiControlModifyActivity.class); + } + intent2.putExtra("subtype", devicesBean.getSubType()); + intent2.putExtra("deviceId", deviceId); + intent2.putExtra("deviceAddress", addressId); + intent2.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent2.putExtra("ziId", ziId); + intent2.putExtra("deviceName", devicesBean.getDeviceName()); + intent2.putExtra("deviceType", MULTIFUNCTIONAL_CONTROLLER); + intent2.putExtra("addressId", addressId); + startActivityForResult(intent2, MODIFY_DEVICE_NAME); + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", MULTIFUNCTIONAL_CONTROLLER); + startActivity(intent); + break; + case 4: + Intent intent1 = new Intent(getActivity(), ModifyRoomActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("deviceType", MULTIFUNCTIONAL_CONTROLLER); + intent1.putExtra("deviceModel", deviceModel); + intent1.putExtra("deviceId", deviceId); + intent1.putExtra("addressId", addressId); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent("修改设备类型"); + dialog2.setLearnTxt("修改设备位置"); + dialog2.setSureBtnTxt("删除设备"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + childPosition.setText(addressName); + aiNameAndState.setText(AddressNameUtil.getAiNameAndState(ziId)); + setMulticontrolTypePic(); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + } + + private void setMulticontrolTypePic() { + mTitleView.setHead(devicesBean.getDeviceName()); + if (AppIdUtil.isZhiKong()) { + switch (devicesBean.getSubType()) { + case "0": + childPicture.setBackgroundResource(R.drawable.pic_curtain); + if (AppIdUtil.isZhiKong()) { + tv_window_state.setVisibility(View.VISIBLE); + } else { + tv_window_state.setVisibility(View.GONE); + } + break; + case "1": + childPicture.setBackgroundResource(R.drawable.pic_gauze); + if (AppIdUtil.isZhiKong()) { + tv_window_state.setVisibility(View.VISIBLE); + } else { + tv_window_state.setVisibility(View.GONE); + } + break; + case "2": + childPicture.setBackgroundResource(R.drawable.pic_window_open_close); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "3"://车库门 + childPicture.setBackgroundResource(R.drawable.pic_garage); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "4"://遮阳棚 + childPicture.setBackgroundResource(R.drawable.pic_sunshade); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "5"://电动门 + childPicture.setBackgroundResource(R.drawable.pic_autogate); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "6"://投影升降机 + childPicture.setBackgroundResource(R.drawable.pic_elevator); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "7"://幕布升降机 + childPicture.setBackgroundResource(R.drawable.pic_curtain_elevator); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "8"://电动喷淋 + childPicture.setBackgroundResource(R.drawable.pic_spray); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "9"://卷闸门 + childPicture.setBackgroundResource(R.drawable.pic_garage); + tv_window_state.setVisibility(View.VISIBLE); + break; + default: + childPicture.setBackgroundResource(R.drawable.pic_multifunctional); + tv_window_state.setVisibility(View.VISIBLE); + break; + } + } else { + switch (devicesBean.getSubType()) { + case "0": + childPicture.setBackgroundResource(R.drawable.pic_curtain_open_close); + tv_window_state.setVisibility(View.GONE); + break; + case "1": + childPicture.setBackgroundResource(R.drawable.pic_shalian_open_close); + tv_window_state.setVisibility(View.GONE); + break; + case "2": + childPicture.setBackgroundResource(R.drawable.pic_window_open_close); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "3"://车库门 + childPicture.setBackgroundResource(R.drawable.pic_garage); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "4"://遮阳棚 + childPicture.setBackgroundResource(R.drawable.pic_sunshade); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "5"://电动门 + childPicture.setBackgroundResource(R.drawable.pic_autogate); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "6"://投影升降机 + childPicture.setBackgroundResource(R.drawable.pic_elevator); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "7"://幕布升降机 + childPicture.setBackgroundResource(R.drawable.pic_curtain_elevator); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "8"://电动喷淋 + childPicture.setBackgroundResource(R.drawable.pic_spray); + tv_window_state.setVisibility(View.VISIBLE); + break; + case "9"://卷闸门 + childPicture.setBackgroundResource(R.drawable.pic_garage); + tv_window_state.setVisibility(View.VISIBLE); + break; + default: + childPicture.setBackgroundResource(R.drawable.pic_multifunctional); + tv_window_state.setVisibility(View.VISIBLE); + break; + } + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(deviceId, MULTIFUNCTIONAL_CONTROLLER); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + ShakeUtil.setShake(getContext()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (voiceFlag.equals("1")) { + subseSetVoice("0"); + } else { + subseSetVoice("1"); + } + break; + } + } + }); + if (!voiceFlag.equals("1")) { + dialog.setContent("开启语音控制?"); + } else { + dialog.setContent("关闭语音控制?"); + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_first_control: + subsetControl("open"); + break; + case R.id.tv_second_control: + subsetControl("stop"); + break; + case R.id.tv_third_control: + subsetControl("close"); + break; + } + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case STUDY_ANDCONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + getActivity().finish(); + break; + case DELLIGHT_ENTITY_SUCCESS: + ToastUtil.show(getContext(), R.string.Delete_successful); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 1000); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + int obj1 = Integer.parseInt((String) msg.obj); + if (obj1 == 0) { + voiceFlag = "0"; + ToastUtil.show(getContext(), "关闭语音成功"); + childVoiceCb.setChecked(false); + } else { + voiceFlag = "1"; + ToastUtil.show(getContext(), "开启语音成功"); + childVoiceCb.setChecked(true); + } + break; + case SENDPID_STUDYBLIND_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELLIGHT_ENTITY_FAIL: + case UPDATE_LIGHT_TYPE_FAIL: + case ALLOW_VOICE_CONTROLL_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity.getAddressId().equals(addressId)) { + if (nettyEntity.getDeviceType().equals(MULTIFUNCTIONAL_CONTROLLER)) { + String deviceIds = nettyEntity.getDeviceIds(); + List result = Arrays.asList(deviceIds.split(",")); + if (result.contains(deviceId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + /* if (!devicesBean.getSubType().equals("0") && !devicesBean.getSubType().equals("1")) { + tv_window_state.setText(devicesBean.getDeviceName() + "已打开"); + } + if (devicesBean.getSubType().equals("2")) { + tv_window_state.setText("窗户已打开"); + }*/ + tv_window_state.setText(devicesBean.getDeviceName() + "已打开"); + } else if (nettyEntity.getOpenFlag().equals("0")) { + childPicture.setChecked(false); + tv_window_state.setText(devicesBean.getDeviceName() + "已关闭"); + /*if (!devicesBean.getSubType().equals("0") && !devicesBean.getSubType().equals("1")) { + tv_window_state.setText(devicesBean.getDeviceName() + "已关闭"); + } + if (devicesBean.getSubType().equals("2")) { + tv_window_state.setText("窗户已关闭"); + }*/ + } else if (nettyEntity.getOpenFlag().equals("2")) { + /*if (devicesBean.getSubType().equals("254")) { + tv_window_state.setText(devicesBean.getDeviceName() + "已停止"); + }*/ + } + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_window_state.setText(devicesBean.getDeviceName() + "已打开"); + /*if (!devicesBean.getSubType().equals("0") && !devicesBean.getSubType().equals("1")) { + tv_window_state.setText(devicesBean.getDeviceName() + "已打开"); + } + if (devicesBean.getSubType().equals("2")) { + tv_window_state.setText("窗户已打开"); + }*/ + } else if (parseObject.getData().getOpenFlag().equals("0")) { + childPicture.setChecked(false); + tv_window_state.setText(devicesBean.getDeviceName() + "已关闭"); + /*if (!devicesBean.getSubType().equals("0") && !devicesBean.getSubType().equals("1")) { + tv_window_state.setText(devicesBean.getDeviceName() + "已关闭"); + } + if (devicesBean.getSubType().equals("2")) { + tv_window_state.setText("窗户已关闭"); + }*/ + } else if (parseObject.getData().getOpenFlag().equals("2")) { + if (!devicesBean.getSubType().equals("0") && !devicesBean.getSubType().equals("1") && !devicesBean.getSubType().equals("2")) { + tv_window_state.setText(devicesBean.getDeviceName() + "已停止"); + } + } + break; + case MODIFY_NAME_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case MODIFY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(MODIFY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subseSetVoice(final String flag) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", MULTIFUNCTIONAL_CONTROLLER); + map.put("ziId", ziId); + map.put("voiceFlag", flag); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SETVOICE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subseSetVoice", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = flag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetDelete() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", MULTIFUNCTIONAL_CONTROLLER); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", MULTIFUNCTIONAL_CONTROLLER); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("devicePosition") != null) { + childPosition.setText(data.getExtras().get("devicePosition").toString()); + addressId = data.getExtras().get("addressId").toString(); + } + if (data != null && data.getExtras().get("plugType") != null) { + devicesBean.setSubType(data.getExtras().get("plugType").toString()); + devicesBean.setDeviceName(data.getExtras().get("plugName").toString()); + setMulticontrolTypePic(); + } + if (data != null && data.getExtras().get("deviceName") != null) { + String deviceName = data.getExtras().get("deviceName").toString(); + // int deviceNamePosition = (int) data.getExtras().get("deviceNamePosition"); + devicesBean.setDeviceName(deviceName); + devicesBean.setSubType(data.getExtras().get("deviceNamePosition").toString()); + mTitleView.setHead(deviceName); + setMulticontrolTypePic(); + // setLightTypePic(); + } + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(MultiControllerFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + MultiControllerFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/fragment/RGBLightFragment.java b/app/src/main/java/com/yonsz/z1/version5/fragment/RGBLightFragment.java new file mode 100644 index 0000000..05f8fab --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/fragment/RGBLightFragment.java @@ -0,0 +1,563 @@ +package com.yonsz.z1.version5.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.devicea2.LearnGuideA2Activity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnRecyclerNameClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.version5.ModifyTypeActivity; +import com.yonsz.z1.version5.adapter.RGBLightAdapter; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.null_; +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.LEARN_RESULT; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.RGB_LIGHT; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_FAIL; + +public class RGBLightFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private String ziId; + private String deviceId; + private String addressId; + private ImageView localControlIv; + private String deviceModel = "0"; + private RecyclerView verticalRecyclerView; + private RGBLightAdapter mVerticalAdapter; + private boolean isLearn = false; + private TextView learnTv; + + public static RGBLightFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + RGBLightFragment fragment = new RGBLightFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.frgment_rgb_light, null); + initView(fragView); + return fragView; + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView(View fragView) { + ziId = devicesBean.getZiId(); + deviceId = devicesBean.getId(); + addressId = devicesBean.getAddressId(); + deviceModel = devicesBean.getDeviceModel(); + verticalRecyclerView = (RecyclerView) fragView.findViewById(R.id.vertical_RecyclerView); + + learnTv = (TextView) fragView.findViewById(R.id.tv_learn); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + mTitleView = (TitleView) fragView.findViewById(R.id.title_light4); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + mTitleView.setHead(devicesBean.getDeviceName()); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + if (isLearn) { + isLearn = false; + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + learnTv.setVisibility(View.GONE); + return; + } + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除面板,现在是没法删除的 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 3: + /*//语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", MULTIFUNCTIONAL_CONTROLLER); + startActivity(intent);*/ + //修改遥控器 + if (isLearn) { + isLearn = false; + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setHeadFuntionTxtGone(); + learnTv.setVisibility(View.GONE); + } else { + isLearn = true; + mTitleView.setHeadFuntionTxtAndSise16("确定"); + mTitleView.setHeadFuntionGone(); + learnTv.setVisibility(View.VISIBLE); + } + break; + case 4: + Intent intent1 = new Intent(getActivity(), ModifyRoomActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("deviceType", MULTIFUNCTIONAL_CONTROLLER); + intent1.putExtra("deviceModel", deviceModel); + intent1.putExtra("deviceId", deviceId); + intent1.putExtra("addressId", addressId); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + break; + case 7: + Intent intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setTop("修改遥控器"); + dialog2.setContent(); + dialog2.setLearn(); + dialog2.setSureBtnTxt("删除设备"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + + + mVerticalAdapter = new RGBLightAdapter(getContext(), devicesBean.getDeviceModel(), isLearn); + GridLayoutManager manager = new GridLayoutManager(getContext(), 4); + verticalRecyclerView.setLayoutManager(manager); + verticalRecyclerView.setHasFixedSize(true); + verticalRecyclerView.setLayoutManager(manager); + verticalRecyclerView.setAdapter(mVerticalAdapter); + + mVerticalAdapter.setmOnItemClickListener(new OnRecyclerNameClickListener() { + @Override + public void onClick(View view, String key) { + if (isLearn) { + toLearnByNmber(key); + } else { + if (deviceModel.equals("1") && key.equals("power")) { + if (null != devicesBean.getLastInfo()) { + if (null != devicesBean.getLastInfo().getOpenFlag() && "1" == devicesBean.getLastInfo().getOpenFlag()) { + key = "poweroff"; + devicesBean.getLastInfo().setOpenFlag("0"); + } else { + key = "power"; + devicesBean.getLastInfo().setOpenFlag("1"); + } + } + } + subsetControl(key); + } + } + }); + } + + private void toLearnByNmber(String key) { + Intent intent = new Intent(getContext(), LearnGuideA2Activity.class); + intent.putExtra("learnGuide", key); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", RGB_LIGHT); + intent.putExtra("deviceId", devicesBean.getId()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + startActivityForResult(intent, LEARN_RESULT); + } + + @Override + public void onResume() { + super.onResume(); +// queryDeviceLastInfo(deviceId, RGB_LIGHT); + } + + private void subsetModify(String deviceName) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_third_control: + subsetControl("close"); + break; + } + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case STUDY_ANDCONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + getActivity().finish(); + break; + case DELLIGHT_ENTITY_SUCCESS: + ToastUtil.show(getContext(), R.string.Delete_successful); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 1000); + break; + case SENDPID_STUDYBLIND_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELLIGHT_ENTITY_FAIL: + case UPDATE_LIGHT_TYPE_FAIL: + case ALLOW_VOICE_CONTROLL_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity.getAddressId().equals(addressId)) { + if (nettyEntity.getDeviceType().equals(RGB_LIGHT)) { + String deviceIds = nettyEntity.getDeviceIds(); + List result = Arrays.asList(deviceIds.split(",")); + if (result.contains(deviceId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + + } else if (nettyEntity.getOpenFlag().equals("0")) { + + } else if (nettyEntity.getOpenFlag().equals("2")) { + /*if (devicesBean.getSubType().equals("254")) { + tv_window_state.setText(devicesBean.getDeviceName() + "已停止"); + }*/ + } + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + + } else if (parseObject.getData().getOpenFlag().equals("0")) { + + } else if (parseObject.getData().getOpenFlag().equals("2")) { + + } + break; + } + } + + private void subsetDelete() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", RGB_LIGHT); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", RGB_LIGHT); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("devicePosition") != null) { + addressId = data.getExtras().get("addressId").toString(); + } + if (data != null && data.getExtras().get("plugType") != null) { + devicesBean.setSubType(data.getExtras().get("plugType").toString()); + devicesBean.setDeviceName(data.getExtras().get("plugName").toString()); + } + if (data != null && data.getExtras().get("deviceName") != null) { + String deviceName = data.getExtras().get("deviceName").toString(); + // int deviceNamePosition = (int) data.getExtras().get("deviceNamePosition"); + devicesBean.setDeviceName(deviceName); + devicesBean.setSubType(data.getExtras().get("deviceNamePosition").toString()); + mTitleView.setHead(deviceName); + } + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(RGBLightFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + RGBLightFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/fragment/SafetyValveFragment.java b/app/src/main/java/com/yonsz/z1/version5/fragment/SafetyValveFragment.java new file mode 100644 index 0000000..59c5d09 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/fragment/SafetyValveFragment.java @@ -0,0 +1,705 @@ +package com.yonsz.z1.version5.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.LightListEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_FAIL; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +public class SafetyValveFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition, openWindow, stopWindow, closeWindow, aiNameAndState; + private CheckBox childVoiceCb; + private String ziId; + private String deviceId; + private String addressName; + private String addressId; + private ImageView localControlIv; + private String deviceModel = "0"; + private CheckBox childPicture; + private TextView tv_window_state; + private TextView tv_switcher_time; + private TextView tv_next_week; + + public static SafetyValveFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + SafetyValveFragment fragment = new SafetyValveFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.frgment_safety_valve, null); + initView(fragView); + return fragView; + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView(View fragView) { + ziId = devicesBean.getZiId(); + deviceId = devicesBean.getId(); + addressId = devicesBean.getAddressId(); + deviceModel = devicesBean.getDeviceModel(); + addressName = AddressNameUtil.getAddressName(addressId); + openWindow = (TextView) fragView.findViewById(R.id.tv_first_control); + stopWindow = (TextView) fragView.findViewById(R.id.tv_second_control); + closeWindow = (TextView) fragView.findViewById(R.id.tv_third_control); + childPicture = (CheckBox) fragView.findViewById(R.id.iv_child_picture); + tv_window_state = (TextView) fragView.findViewById(R.id.tv_window_state); + tv_switcher_time = (TextView) fragView.findViewById(R.id.tv_switcher_time); + tv_next_week = (TextView) fragView.findViewById(R.id.tv_next_week); + + openWindow.setOnClickListener(this); + stopWindow.setOnClickListener(this); + closeWindow.setOnClickListener(this); + childPicture.setOnClickListener(this); + + childPosition = (TextView) fragView.findViewById(R.id.tv_child_position); + aiNameAndState = (TextView) fragView.findViewById(R.id.tv_ai_state); + childVoiceCb = (CheckBox) fragView.findViewById(R.id.tv_child_voice); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + childVoiceCb.setOnClickListener(this); + mTitleView = (TitleView) fragView.findViewById(R.id.title_light4); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + mTitleView.setHead(devicesBean.getDeviceName()); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除面板,现在是没法删除的 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //修改位置信息 + break; + case 3: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 4: + subsetControl("reverse"); + break; + case 5: + Intent intent1 = new Intent(getActivity(), ModifyRoomActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("deviceType", SAFETY_VALVE); + intent1.putExtra("deviceModel", deviceModel); + intent1.putExtra("deviceId", deviceId); + intent1.putExtra("addressId", addressId); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + break; + case 7: + Intent intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent(); + dialog2.setModifyName("修改设备位置"); + dialog2.setTop("修改设备名称"); + dialog2.setLearnTxt("设置设备反向"); + dialog2.setSureBtnTxt("删除设备"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + + childPosition.setText(addressName); + aiNameAndState.setText(AddressNameUtil.getAiNameAndState(ziId)); + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(deviceId, SAFETY_VALVE); + queryNextTimer(); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void queryNextTimer() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceId", deviceId); + netWorkUtil.requestGetByAsy(NetWorkUrl.QUERY_NEXT_TIMER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryNextTimer", "ShareDeviceActivity onSuccess()" + respone); + Z1TimeEntity obj = JSON.parseObject(respone, Z1TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + break; + case R.id.tv_first_control: + subsetControl("power"); + break; + case R.id.tv_second_control: + subsetControl("poweroff"); + break; + case R.id.tv_third_control: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + Intent intent = new Intent(getContext(), SwitcherTimeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("id", deviceId); + intent.putExtra("deviceType", SAFETY_VALVE); + startActivity(intent); + break; + } + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case STUDY_ANDCONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SELECTBLIND_BYZI_SUCCESS: + LightListEntity obj = (LightListEntity) msg.obj; + break; + case SELECTBLIND_BYZI_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + getActivity().finish(); + break; + case DELLIGHT_ENTITY_SUCCESS: + ToastUtil.show(getContext(), R.string.Delete_successful); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 1000); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + break; + case SENDPID_STUDYBLIND_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELLIGHT_ENTITY_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_LIGHT_TYPE_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity.getAddressId().equals(addressId)) { + // if (nettyEntity.getDeviceType().equals(CURTAINS_TAG) && nettyEntity.getDetailType().equals(SAFETY_VALVE)) { + if (nettyEntity.getDeviceType().equals(SAFETY_VALVE)) { + String deviceIds = nettyEntity.getDeviceIds(); + List result = Arrays.asList(deviceIds.split(",")); + if (result.contains(deviceId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_window_state.setText(" 阀门控制器已开启"); + } else if (nettyEntity.getOpenFlag().equals("0")) { + childPicture.setChecked(false); + tv_window_state.setText(" 阀门控制器已关闭"); + } + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_window_state.setText("阀门控制器已开启"); + } else if (parseObject.getData().getOpenFlag().equals("0")) { + childPicture.setChecked(false); + tv_window_state.setText("阀门控制器已关闭"); + } + break; + case MODIFY_NAME_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case MODIFY_NAME_FAIL: + case QUERY_NEXT_TIMER_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case QUERY_NEXT_TIMER_SUCCESS: + Z1TimeEntity entity12 = (Z1TimeEntity) msg.obj; + if (entity12.getData() != null && !TextUtils.isEmpty(entity12.getData().getMin())) { + String cmdType = entity12.getData().getCmdType(); + int restMin = Integer.parseInt(entity12.getData().getMin()); + if (restMin < 60) { + if (cmdType.equals("1")) { + tv_switcher_time.setText(restMin + "分钟后开启"); + } else { + tv_switcher_time.setText(restMin + "分钟后关闭"); + } + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + if (cmdType.equals("1")) { + tv_switcher_time.setText(hour + "小时后开启"); + } else { + tv_switcher_time.setText(hour + "小时后关闭"); + } + } else { + if (cmdType.equals("1")) { + tv_switcher_time.setText(hour + "小时" + minite + "分钟后开启"); + } else { + tv_switcher_time.setText(hour + "小时" + minite + "分钟后关闭"); + } + } + } + tv_next_week.setText(""); + } else if (entity12.getData() != null) { + switch (entity12.getData().getWeek().toString()) { + case "1": + tv_next_week.setText("周日"); + break; + case "2": + tv_next_week.setText("周一"); + break; + case "3": + tv_next_week.setText("周二"); + break; + case "4": + tv_next_week.setText("周三"); + break; + case "5": + tv_next_week.setText("周四"); + break; + case "6": + tv_next_week.setText("周五"); + break; + case "7": + tv_next_week.setText("周六"); + break; + } + if (entity12.getData().getCmdType().toString().equals("1")) { + tv_switcher_time.setText(" " + entity12.getData().getTime().toString() + getString(R.string.open)); + } else { + tv_switcher_time.setText(" " + entity12.getData().getTime().toString() + getString(R.string.close)); + } + } else { + tv_switcher_time.setText(""); + tv_next_week.setText(""); + } + break; + } + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(MODIFY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetDelete() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", SAFETY_VALVE); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + if (key.equals("reverse")) { + initLoadDialog(); + } + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", SAFETY_VALVE); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + if (key.equals("reverse")) { + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + if (null != mLoadingDialog) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), "设置反向成功"); + if (tv_window_state.getText().equals("阀门控制器已关闭")) { + childPicture.setChecked(true); + tv_window_state.setText("阀门控制器已开启"); + } + if (tv_window_state.getText().equals("阀门控制器已开启")) { + childPicture.setChecked(false); + tv_window_state.setText("阀门控制器已关闭"); + } + } + }); + } + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("devicePosition") != null) { + childPosition.setText(data.getExtras().get("devicePosition").toString()); + addressId = data.getExtras().get("addressId").toString(); + } + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(SafetyValveFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + SafetyValveFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/fragment/Scene5Fragment.java b/app/src/main/java/com/yonsz/z1/version5/fragment/Scene5Fragment.java new file mode 100644 index 0000000..dc54704 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/fragment/Scene5Fragment.java @@ -0,0 +1,841 @@ +package com.yonsz.z1.version5.fragment; + +import android.content.Intent; +import android.net.wifi.WifiManager; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.helper.ItemTouchHelper; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ListAdapter; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.database.entity.entity4.HomeListEntity; +import com.yonsz.z1.database.entity.entity5.AvtiveModelEntity; +import com.yonsz.z1.database.entity.entity5.BaseModelEntity; +import com.yonsz.z1.database.entity.entity5.EventPacketEntity; +import com.yonsz.z1.database.entity.entity5.NewSceneEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.fragment.main4.MainFragment4; +import com.yonsz.z1.homemanage.HomeManageActivity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.CombinationBindDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNextDialog; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.mine.aboutversion.feature.Callback2; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.tcpudp.model.Module; +import com.yonsz.z1.tcpudp.net.Udp1Broadcast; +import com.yonsz.z1.tcpudp.net.UdpBroadcast; +import com.yonsz.z1.tcpudp.utils.Constants; +import com.yonsz.z1.tcpudp.utils.Utils; +import com.yonsz.z1.utils.DensityUtil; +import com.yonsz.z1.utils.NettyHandlerUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.MainFragment5; +import com.yonsz.z1.version5.model.ActiveModelActivity; +import com.yonsz.z1.version5.model.ModelAdapter; +import com.yonsz.z1.version5.scene.ModelNewDetailActivity; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.listpopupwindow.RankingPopupWindow; + +import java.lang.ref.WeakReference; +import java.net.DatagramPacket; +import java.net.Inet4Address; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static android.content.Context.WIFI_SERVICE; +import static android.support.v7.widget.helper.ItemTouchHelper.ACTION_STATE_DRAG; +import static android.support.v7.widget.helper.ItemTouchHelper.ACTION_STATE_IDLE; +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.ADD_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.ADD_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.FIND_DEVICES_BYGROUPID_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_HOUSES_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_HOUSES_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.deviceNumList; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.Constans.isUseDefFlag; +import static com.yonsz.z1.net.NetWorkUrl.AVTIVE_MODEL_NEW; +import static com.yonsz.z1.net.NetWorkUrl.FIND_TIME_ANDEXECLIST; +import static com.yonsz.z1.net.NetWorkUrl.MODEL_SORTMODEL; +import static com.yonsz.z1.net.NetWorkUrl.UPDATE_GROUPNAME; + +/** + * Created by Administrator on 2017/11/3. + */ + +public class Scene5Fragment extends BaseFragment implements View.OnClickListener { + private static Udp1Broadcast udpBroadcast1; + private static UdpBroadcast udpBroadcast; + private UIHandle mHandler; + private TitleView mTitleView; + private View view; + private List mDatas; + private String modelId; + private MainFragment4 mMainFragment; + private RankingPopupWindow mWindow; + private RankingPopupWindow.Listener listener; + private boolean isQueryHouses = false; + private RecyclerView mRecyclerView; + private ModelAdapter modelAdapter; + //把搜索设备放在这里 + private List mModules; + private ListAdapter mAdapter; + private long lastTime; + private WifiManager wifimanager; + private ItemTouchHelper itemTouchHelper; + private RecyclerView.ViewHolder lastDragViewHolder; + private int fromPosition; + private int toPosition; + private String groupId = ""; + + public static Udp1Broadcast getUdpBroadcast1() { + return udpBroadcast1; + } + + public static UdpBroadcast getUdpBroadcast() { + return udpBroadcast; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + view = inflater.inflate(R.layout.fragment_scene5, container, false); + + udpBroadcast = new UdpBroadcast(Constants.UDP_PORT, getPsdnIp()) { + @Override + public void onReceived(List packets) { + Log.i("udpBroadcast", "SceneFragment onReceived()"); + mModules = decodePackets(packets); + saveDevices(mModules); + EventBus.getDefault().post( + new EventPacketEntity(packets)); + } + }; + udpBroadcast1 = new Udp1Broadcast(Constants.UDP_PORT_H3E) { + @Override + public void onReceived(List packets) { + Log.i("udpBroadcast1", "SceneFragment onReceived()"); + mModules = decodePackets(packets); + saveDevices(mModules); + EventBus.getDefault().post( + new EventBusEntity("可以刷新了")); + } + }; + wifimanager = (WifiManager) getActivity().getApplicationContext().getSystemService(WIFI_SERVICE); + if (wifimanager.isWifiEnabled()) { + udpBroadcast.open(); + udpBroadcast1.open(); + } + + initView(view); + initListener(); + + udpBroadcast1.send(Utils.getCMDScanModules(getActivity())); + udpBroadcast.send(Utils.getCMDScanModules(getActivity())); + return view; + } + + public void onEventMainThread(ChooseHomeEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("1") || msg.equals("3")) { + mTitleView.setHomeNameTxt(homeListEntity.getData().get(deviceNumListPosition).getName()); + /*if (homeListEntity.getData().get(deviceNumListPosition).getName().length() > 9) { + mTitleView.setHomeNameTxt(homeListEntity.getData().get(deviceNumListPosition).getName().substring(0, 6) + "…"); + } else { + mTitleView.setHomeNameTxt(homeListEntity.getData().get(deviceNumListPosition).getName()); + }*/ + isQueryHouses = true; + } + } + + @Override + public void onStart() { +// udpBroadcast.send(Utils.getCMDScanModules(getActivity())); + super.onStart(); + } + + + @Override + public void onResume() { + super.onResume(); + if (isQueryHouses) { + // selectModelTime(); + findTimeAndExecList(); + } + } + + public void reRefrash() { + // selectModelTime(); + findTimeAndExecList(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + udpBroadcast.close(); + udpBroadcast1.close(); + } + + private void initView(View view) { + mDatas = new ArrayList<>(); + mMainFragment = new MainFragment4(); + mRecyclerView = (RecyclerView) view.findViewById(R.id.recyclerView); + mTitleView = (TitleView) view.findViewById(R.id.title_scene); + mTitleView.clearBackGroud(); + mTitleView.setHeadHomeVisible(R.drawable.icon_home_house1); + mTitleView.setHeadFuntion(R.drawable.icon_scene_activation); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + initListItem(deviceNumList, 0, mTitleView.getHomeNameTxt(), mTitleView); + } + + @Override + public void onFunction() { + Intent intent = new Intent(getContext(), ActiveModelActivity.class); + startActivity(intent); + } + + @Override + public void onFunctionText() { + + } + }); + mTitleView.setVisibility(View.GONE); + } + + private void initListItem(final List list, final int flag, final String selectName, View view) { + //生成Listener和清空 + setPopupWindowListener(flag); + mWindow = null; + //显示popupwindow + mWindow = new RankingPopupWindow(getActivity(), list, selectName, listener, view, flag); + } + + private void setPopupWindowListener(final int flag) { + listener = null; + listener = new RankingPopupWindow.Listener() { + @Override + public void onPopupWindowDismissListener() { + //消失时的操作 + } + + @Override + public void onItemClickListener(int position) { + //点击Item时的操作 + if (flag == 1) { + if (position == 1) { + findDevicesByGroupId(); + } else { + RenameNameDialog dialog = new RenameNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + updateGroupName(positioName); + break; + } + } + }); + dialog.setHintName(""); + dialog.setContent("设置组合名称"); + dialog.setMaxEms(30); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + } + } else { + //跳转到家庭管理的页面 + if (position == deviceNumList.size() - 1) { + Intent intent = new Intent(getContext(), HomeManageActivity.class); + startActivity(intent); + } else { + isUseDefFlag = false; + deviceNumListPosition = position; + mTitleView.setHomeNameTxt(deviceNumList.get(position)); + /* if (deviceNumList.get(position).length() > 9) { + mTitleView.setHomeNameTxt(deviceNumList.get(position).substring(0, 6) + "…"); + } else { + mTitleView.setHomeNameTxt(deviceNumList.get(position)); + }*/ + MainFragment5.setDefaultHouse(); + queryHouses(); + } + } + } + }; + } + + private void initListener() { + + } + + /*private void selectModelTime() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + if (deviceNumListPosition > homeListEntity.getData().size() - 1) { + deviceNumListPosition = 0; + } + map.put("houseId", homeListEntity.getData().get(deviceNumListPosition).getId()); + map.put("isCustom", "1"); + netWorkUtil.requestGetByAsy(SELECT_MODEL_TIME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("selectModelTime", "ShareDeviceActivity onSuccess()" + respone); + TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + }*/ + + private void findTimeAndExecList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + if (null != homeListEntity) { + if (deviceNumListPosition > homeListEntity.getData().size() - 1) { + deviceNumListPosition = 0; + } + } + if (null != SharedpreferencesUtil.get(Constans.HOUSEID, "")) { + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + } else { + return; + } + map.put("isCustom", "1"); + // map.put("modelType", "1"); + netWorkUtil.requestGetByAsy(FIND_TIME_ANDEXECLIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("findTimeAndExecList", respone); + NewSceneEntity obj = JSON.parseObject(respone, NewSceneEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + public void queryHouses() { + HashMap map = new HashMap<>(); + map.put("autoCreate", "0"); + NetWorkUtil net = NetWorkUtil.instans(); + net.requestGetByAsy(NetWorkUrl.QUERY_HOUSES, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryHouses2", "UpdatePwActivity onSuccess()" + respone); + HomeListEntity obj = JSON.parseObject(respone, HomeListEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_HOUSES_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_HOUSES_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_HOUSES_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + NewSceneEntity timeSetEntity = (NewSceneEntity) msg.obj; + mDatas.clear(); + mDatas.addAll(timeSetEntity.getData()); + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(getContext()); + manager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(manager); + modelAdapter = new ModelAdapter(getContext(), mDatas); + mRecyclerView.setAdapter(modelAdapter); + // setViewDate(mDatas); + + itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.Callback() { + @Override + public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { + Log.i("getMovementFlags", "getMovementFlags: "); + int dragFlags; + int swipeFlags; + if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { + dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | + ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; + swipeFlags = 0; + } else { + dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN; + swipeFlags = 0; + } + return makeMovementFlags(dragFlags, swipeFlags); + } + + @Override + public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { + fromPosition = viewHolder.getAdapterPosition(); + toPosition = target.getAdapterPosition(); + Log.i("onMove", "onMove: " + fromPosition + "===" + toPosition + "===" + mDatas.size()); + if (fromPosition == mDatas.size() || toPosition == mDatas.size()) { + return false; + } + if (fromPosition < toPosition) { + for (int i = fromPosition; i < toPosition; i++) { + Collections.swap(mDatas, i, i + 1); + } + } else { + for (int i = fromPosition; i > toPosition; i--) { + Collections.swap(mDatas, i, i - 1); + } + } + modelAdapter.notifyItemMoved(fromPosition, toPosition); + // modelAdapter.notifyDataSetChanged(); + return true; + } + + @Override + public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { + Log.i("onSwiped", "onSwiped: "); + + } + + @Override + public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { + super.onSelectedChanged(viewHolder, actionState); + if (viewHolder != null && actionState == ACTION_STATE_DRAG) { + lastDragViewHolder = viewHolder; + } + //ACTION_STATE_IDLE就是松开了,把大小改为原状 + if (lastDragViewHolder != null && actionState == ACTION_STATE_IDLE) { + lastDragViewHolder = null; + sortModel(); + } + } + + @Override + public boolean isLongPressDragEnabled() { + return false; + } + }); + itemTouchHelper.attachToRecyclerView(mRecyclerView); + + modelAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + @Override + public void onClick(final View view, int position, final int i) { + if (i > 100) { + final NewSceneEntity.DataBean entity4 = mDatas.get(position); + List list = new ArrayList<>(); + list.add("编辑名称"); + list.add("查看组合详情"); + initListItem(list, 1, "", view); + groupId = entity4.getModeExecs().get(i - 150).getGroupId(); + } else if (i < 100) { + final NewSceneEntity.DataBean entity4 = mDatas.get(position); + ConfirmNextDialog dialog1 = new ConfirmNextDialog(getActivity(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + break; + case 1: + avtiveModelNew(entity4, i); + break; + } + } + }); + dialog1.setTopTxt("开启" + entity4.getModelName()); + dialog1.setContent("开启" + entity4.getModelName() + "下的设备预设动作"); + dialog1.setCancelable(false); + dialog1.show(); + } else if (i == 100) { + NewSceneEntity.DataBean entity = mDatas.get(position); + Intent intent = new Intent(getActivity(), ModelNewDetailActivity.class); + intent.putExtra("model", entity.getModelType()); + intent.putExtra("isAdd", true); + intent.putExtra("modelId1", entity.getModelId()); + intent.putExtra("modelId", entity.getId()); + intent.putExtra("repeatTime", ""); + intent.putExtra("setTime", ""); + intent.putExtra("isHaveDevice", "1"); + intent.putExtra("houseId", entity.getHouseId()); + intent.putExtra("houseModelName", entity.getModelName()); + startActivity(intent); + } + + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + if (position != mDatas.size()) { + itemTouchHelper.startDrag(viewHolder); + } + } + }); + break; + case QUERY_HOUSES_SUCCESS: + homeListEntity = (HomeListEntity) msg.obj; + deviceNumList.clear(); + if (null != homeListEntity.getData()) { + if (deviceNumListPosition > homeListEntity.getData().size() - 1) { + deviceNumListPosition = 0; + } + deviceNumList.clear(); + for (int i = 0; i < homeListEntity.getData().size(); i++) { + if (homeListEntity.getData().get(i).getDefFlag() == 1) { + if (isUseDefFlag) { + deviceNumListPosition = i; + } + } + deviceNumList.add(homeListEntity.getData().get(i).getName()); + } +// deviceNumList.add(getString(R.string.home_manage)); + + mTitleView.setHomeNameTxt(homeListEntity.getData().get(deviceNumListPosition).getName()); + } + EventBus.getDefault().post( + new ChooseHomeEvent("2")); + // selectModelTime(); + findTimeAndExecList(); + break; + case UPDATE_MODEL_BASIC_SUCCESS: + AvtiveModelEntity obj = (AvtiveModelEntity) msg.obj; + List success = obj.getData().getSuccess(); + List failed = obj.getData().getFailed(); + if (success.size() > 0 && failed.size() == 0) { + ToastUtil.show(getActivity(), "执行成功"); + } else { + ToastUtil.show(getActivity(), success.size() + "台设备执行成功," + failed.size() + "台设备执行失败"); + } + break; + case UPDATE_MODEL_BASIC_FAIL: + ToastUtil.show(getActivity(), (String) msg.obj); + break; + case FIND_DEVICES_BYGROUPID_SUCCESS: + BaseModelEntity baseModelEntity = (BaseModelEntity) msg.obj; + final List thisziIds = new ArrayList<>(); + CombinationBindDialog dialog = new CombinationBindDialog(getContext(), baseModelEntity.getData(), thisziIds, new Callback2() { + @Override + public void callback(int position, List finalZiId) { + switch (position) { + case 0: + break; + case 1: + break; + } + } + }); + dialog.setContent("已选择组合的网关"); + dialog.setCancleBtn(""); + dialog.setSureBtn(""); + dialog.setCancelable(true); + dialog.show(); + break; + case ADD_MODEL_TIME_SUCCESS: + findTimeAndExecList(); + break; + } + } + + private void avtiveModelNew(final NewSceneEntity.DataBean entity1, int position) { + if (DensityUtil.isNetworkConnected(getActivity())) { + NettyHandlerUtil.getInstance(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", entity1.getUserId()); + map.put("modelType", entity1.getModelType()); + map.put("modelId", entity1.getModelId()); + map.put("houseId", entity1.getHouseId()); + if (position != -1) { + map.put("gatewayId", entity1.getModeExecs().get(position).getZiId()); + map.put("groupId", entity1.getModeExecs().get(position).getGroupId()); + } + netWorkUtil.requestPostByAsynewApi(AVTIVE_MODEL_NEW, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("avtiveModelNew", "ShareDeviceActivity onSuccess()" + respone); + AvtiveModelEntity obj = JSON.parseObject(respone, AvtiveModelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } else { + ToastUtil.show(getActivity(), R.string.net_error); + } + } + + private void sortModel() { + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < mDatas.size(); i++) { + stringBuilder.append(mDatas.get(i).getModelId()); + stringBuilder.append("_" + (i + 1)); + if (i < mDatas.size() - 1) { + stringBuilder.append(","); + } + } + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("sortInfos", String.valueOf(stringBuilder)); + netWorkUtil.requestPostByAsynewApi(MODEL_SORTMODEL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("sortModel", "onSuccess()" + respone); + EventBus.getDefault().post( + new ChooseHomeEvent("10")); + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ADD_MODEL_BASIC_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + public void updateGroupName(String groupName) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("groupId", groupId); + map.put("groupName", groupName); + netWorkUtil.requestPostByAsynewApi(UPDATE_GROUPNAME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateGroupName", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ADD_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ADD_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ADD_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void findDevicesByGroupId() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("groupId", groupId); + util.requestGetByAsy(NetWorkUrl.FIND_DEVICES_BYGROUPID, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("findDevicesByGroupId", respone); + BaseModelEntity obj = JSON.parseObject(respone, BaseModelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(FIND_DEVICES_BYGROUPID_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onClick(View v) { + Intent intent; + switch (v.getId()) { + case R.id.rl_in_home: + + break; + case R.id.rl_out_home: + + break; + case R.id.rl_in_bed: + + break; + case R.id.rl_out_bed: + + break; + } + } + + public static String getPsdnIp() { + try { + for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { + NetworkInterface intf = en.nextElement(); + for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) { + InetAddress inetAddress = enumIpAddr.nextElement(); + if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { + //if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet6Address) { + Log.i("getPsdnIp", inetAddress.getHostAddress().toString()); + return inetAddress.getHostAddress().toString(); + } + } + } + } catch (Exception e) { + } + return ""; + } + + private List decodePackets(List packets) { + + int i = 1; + Module module; + List list = new ArrayList(); + List modules = new ArrayList(); + + DECODE_PACKETS: + for (DatagramPacket packet : packets) { + + String data = new String(packet.getData(), 0, packet.getLength()); + Log.i("UdpBroadcast", i + ": " + data); + if (data.equals(Utils.getCMDScanModules(getActivity()))) { + continue; + } + + for (String item : list) { + if (item.equals(data)) { + continue DECODE_PACKETS; + } + } + + list.add(data); + if ((module = Utils.decodeBroadcast2Module(data)) != null) { + module.setId(i); + modules.add(module); + i++; + } + } + + return modules; + } + + /** + * save modules' data to local + * + * @param modules + */ + private void saveDevices(List modules) { + if (modules.size() > 0) { + for (Module module : modules) { + SharedpreferencesUtil.save(module.getMac(), module.getIp()); + } + } else { + } + } + + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(Scene5Fragment activity) { + weakReference = new WeakReference(activity); + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + Scene5Fragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/fragment/TempControlFragment.java b/app/src/main/java/com/yonsz/z1/version5/fragment/TempControlFragment.java new file mode 100644 index 0000000..bc155d9 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/fragment/TempControlFragment.java @@ -0,0 +1,848 @@ +package com.yonsz.z1.version5.fragment; + +import android.content.Context; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.Z1TimeEntity; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.CanloopEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.database.entity.entitya2.EventCloseEntity; +import com.yonsz.z1.devicea2.tva2.HorizontalProgressBarWithNumber; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.AIR_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_FAIL; +import static com.yonsz.z1.net.Constans.DELETE_CHILDDEVICE_SUCCESS; +import static com.yonsz.z1.net.Constans.DOWNLOAD_INFRARED_BYRID_SUCCESS_AIR; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.QUERY_AIR_LASTSTATUS_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_AIR_LASTSTATUS_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_NEXT_TIMER_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_FAIL; +import static com.yonsz.z1.net.Constans.SEND_CONTROL_ORDER_SUCCESS; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +/** + * Created by Administrator on 2018/8/8. + */ +public class TempControlFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private String ziId; + private TextView mOpenClose, mLeftRight, mUpDown, mSavePower, mCold, mWarm, mSleep, mAdd, mReduce, mWindSpeed, mCloseAir; + private TextView airTempicon, airTempoC, airWindIcon, tv_next_time, tv_next_time_state, tv_next_week; + private boolean mOpenCloseTag = false, mLeftRightTag = false, mUpDownTag = false, mSavePowerTag = false, mColdTag = false, mWarmTag = false, mSleepTag = false, mAddTag = false, mReduceTag = false, mWindSpeedTag = false; + private String airName; + private String cancelFlag; + private TextView mTiming; + private boolean isOpen = false; + private HorizontalProgressBarWithNumber mProgressBar; + private RelativeLayout progressRl; + private TextView progressTv; + private boolean isLoading = false; + private String airStateTag; + private TextView loadBackTv, tv_cancel_load; + private RelativeLayout mProgressTop; + private NettyEntity nettyEntity; + private LoadingDialog mLoadingDialog; + private String deviceIp = ""; + private RelativeLayout airTopBg; + private ImageView airIconStation; + private ImageView localControlIv; + private boolean isInit = false; + private Context context; + + public static TempControlFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + TempControlFragment fragment = new TempControlFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + // Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); + nettyEntity = JSON.parseObject(msg, NettyEntity.class); + /*if (nettyEntity.getZiId().equals(ziId)) { + Message message = new Message(); + message.what = AIR_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + }*/ + if (null != nettyEntity.getContext() && nettyEntity.getContext().getMacId().equals(ziId) && nettyEntity.getContext().getDeviceType().equals(TEMP_CONTROL)) { + Message message = new Message(); + message.what = AIR_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_temp_control, null); + initView(fragView); + initListener(); + return fragView; + } + + @Override + public void setUserVisibleHint(boolean isVisibleToUser) { + super.setUserVisibleHint(isVisibleToUser); + } + + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + isInit = true; + airName = devicesBean.getDeviceBrand(); + ziId = devicesBean.getZiId(); + cancelFlag = devicesBean.getCancelFlag() + ""; + if (getArguments().get("loadStatus").toString().equals("1") && getUserVisibleHint() && getArguments().get("loadErrorType").toString().equals(TEMP_CONTROL)) { + isLoading = true; + EventBus.getDefault().post( + new CanloopEvent(isLoading)); + } else { + isLoading = false; + } + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + mProgressTop = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + airTopBg = (RelativeLayout) fragView.findViewById(R.id.rl_air_top_bg); + loadBackTv = (TextView) fragView.findViewById(R.id.tv_load_back); + tv_cancel_load = (TextView) fragView.findViewById(R.id.tv_cancel_load); + + airTempicon = (TextView) fragView.findViewById(R.id.tv_air_temp_icon); + airTempoC = (TextView) fragView.findViewById(R.id.tv_air_temp_oc); + airWindIcon = (TextView) fragView.findViewById(R.id.tv_air_wind_icon); + airIconStation = (ImageView) fragView.findViewById(R.id.iv_air_icon_station); + + mOpenClose = (TextView) fragView.findViewById(R.id.tv_fan_open); + mCloseAir = (TextView) fragView.findViewById(R.id.tv_close_air); + mLeftRight = (TextView) fragView.findViewById(R.id.tv_right_left); + mUpDown = (TextView) fragView.findViewById(R.id.tv_up_down); + mSavePower = (TextView) fragView.findViewById(R.id.tv_save_power); + mCold = (TextView) fragView.findViewById(R.id.tv_cold); + mWarm = (TextView) fragView.findViewById(R.id.tv_warm); + mSleep = (TextView) fragView.findViewById(R.id.tv_sleep); + mAdd = (TextView) fragView.findViewById(R.id.tv_temperature_add); + mReduce = (TextView) fragView.findViewById(R.id.tv_temperature_reduce); + mWindSpeed = (TextView) fragView.findViewById(R.id.tv_air_wind_speed); + mTiming = (TextView) fragView.findViewById(R.id.tv_timing); + tv_next_time = (TextView) fragView.findViewById(R.id.tv_next_time); + tv_next_time_state = (TextView) fragView.findViewById(R.id.tv_next_time_state); + tv_next_week = (TextView) fragView.findViewById(R.id.tv_next_week); + + progressRl = (RelativeLayout) fragView.findViewById(R.id.rl_progress_top); + progressTv = (TextView) fragView.findViewById(R.id.tv_progress_top); + mProgressBar = (HorizontalProgressBarWithNumber) fragView.findViewById(R.id.pg_horizontal_fan); + // mHandler.sendEmptyMessage(MSG_PROGRESS_UPDATE); + mTitleView = (TitleView) fragView.findViewById(R.id.title_aircondition); + mTitleView.clearBackGroud(); + if (devicesBean.getDeviceName().isEmpty()) { + mTitleView.setHead("空调"); + } else { + mTitleView.setHead(devicesBean.getDeviceName()); + } + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isLoading) { + + } else { + getActivity().finish(); + } + } + + @Override + public void onFunction() { + if (isLoading) { + + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除电视 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //重新命名 + break; + case 3: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 4: + break; + case 5: + + break; + case 7: + Intent intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setTop("修改设备名称"); + dialog2.setModifyName(); + dialog2.setContent(); + dialog2.setLearn(); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + + @Override + public void onFunctionText() { + + } + }); + } + + private void subsetModify(String deviceName) { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", TEMP_CONTROL); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mCloseAir.setOnClickListener(this); + mLeftRight.setOnClickListener(this); + mUpDown.setOnClickListener(this); + mSavePower.setOnClickListener(this); + mCold.setOnClickListener(this); + mWarm.setOnClickListener(this); + mSleep.setOnClickListener(this); + mAdd.setOnClickListener(this); + mReduce.setOnClickListener(this); + mWindSpeed.setOnClickListener(this); + + mTiming.setOnClickListener(this); + mProgressTop.setOnClickListener(this); + loadBackTv.setOnClickListener(this); + tv_cancel_load.setOnClickListener(this); + } + + private void subsetDelete() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", TEMP_CONTROL); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DELETE_CHILDDEVICE_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case DELETE_CHILDDEVICE_SUCCESS: + ToastUtil.show(getContext(), "删除成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 2000); + break; + case DELETE_CHILDDEVICE_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case QUERY_NEXT_TIMER_SUCCESS: + Z1TimeEntity entity12 = (Z1TimeEntity) msg.obj; + if (entity12.getData() != null && !TextUtils.isEmpty(entity12.getData().getMin())) { + String cmdType = entity12.getData().getCmdType(); + int restMin = Integer.parseInt(entity12.getData().getMin()); + if (restMin < 60) { + if (cmdType.equals("1")) { + tv_next_time.setText(restMin + "分钟后开启"); + } else { + tv_next_time.setText(restMin + "分钟后关闭"); + } + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + if (cmdType.equals("1")) { + tv_next_time.setText(hour + "小时后开启"); + } else { + tv_next_time.setText(hour + "小时后关闭"); + } + } else { + if (cmdType.equals("1")) { + tv_next_time.setText(hour + "小时" + minite + "分钟后开启"); + } else { + tv_next_time.setText(hour + "小时" + minite + "分钟后关闭"); + } + } + } + tv_next_week.setText(""); + } else if (entity12.getData() != null) { + switch (entity12.getData().getWeek().toString()) { + case "1": + tv_next_week.setText("周日"); + break; + case "2": + tv_next_week.setText("周一"); + break; + case "3": + tv_next_week.setText("周二"); + break; + case "4": + tv_next_week.setText("周三"); + break; + case "5": + tv_next_week.setText("周四"); + break; + case "6": + tv_next_week.setText("周五"); + break; + case "7": + tv_next_week.setText("周六"); + break; + } + tv_next_time.setText(entity12.getData().getTime().toString()); + if (entity12.getData().getCmdType().toString().equals("1")) { + tv_next_time_state.setText(R.string.open); + } else { + tv_next_time_state.setText(getString(R.string.open)); + + } + } else { + tv_next_week.setText(""); + tv_next_time.setText(""); + tv_next_time_state.setText(""); + } + break; + case QUERY_AIR_LASTSTATUS_SUCCESS: + DeviceStateEntity airStateEntity = (DeviceStateEntity) msg.obj; + DeviceStateEntity.DataBean dataBean = airStateEntity.getData(); + if (dataBean != null && dataBean.getOpenFlag() != null && dataBean.getOpenFlag().equals("1")) { + isOpen = true; + if (dataBean.getTemp() != null) { + airTempoC.setVisibility(View.VISIBLE); + airTempicon.setText(" " + dataBean.getTemp()); + } + if (dataBean.getModel() != null) { + switch (dataBean.getModel()) { + case "cold": + //制冷 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_refrigeration_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_cold)); + break; + case "heat": + //制热 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_heating_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_hot)); + break; + case "0": + break; + case "ventilate": + //除湿,送风 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_dehumidify_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_wind)); + break; + case "3": + airIconStation.setVisibility(View.GONE); + break; + } + } + + if (dataBean.getSpeed() != null) { + switch (dataBean.getSpeed().toString()) { + case "auto": + airWindIcon.setText("自动风"); + break; + case "low": + airWindIcon.setText("低速风"); + break; + case "medium": + airWindIcon.setText("中速风"); + break; + case "high": + airWindIcon.setText("高速风"); + break; + } + } + } else { + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_close_back)); + isOpen = false; + airTempicon.setText("已关闭"); + airTempoC.setVisibility(View.GONE); + airIconStation.setVisibility(View.GONE); + airWindIcon.setText(""); + } + break; + case AIR_CONTROL_SUCCESS: + nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + String speed = ""; + String model = ""; + String aSwitch = ""; + if (null != nettyEntity.getContext()) { + if (null != nettyEntity.getContext().getLastInfo()) { + aSwitch = nettyEntity.getContext().getLastInfo().getOpenFlag(); + speed = nettyEntity.getContext().getLastInfo().getSpeed(); + model = nettyEntity.getContext().getLastInfo().getModel(); + } + } else { + aSwitch = nettyEntity.getSwitch(); + speed = nettyEntity.getSpeed(); + model = nettyEntity.getModel(); + } + if (aSwitch.toString().equals("1")) { + isOpen = true; + if (null != nettyEntity.getContext() && nettyEntity.getContext().getLastInfo().getTemp() != null) { + airTempoC.setVisibility(View.VISIBLE); + airTempicon.setText(" " + nettyEntity.getContext().getLastInfo().getTemp().toString()); + } + if (model != null) { + switch (model.toString()) { + case "cold": + //制冷 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_refrigeration_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_cold)); + break; + case "heat": + //制热 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_heating_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_hot)); + break; + case "0": + break; + case "ventilate": + //除湿,送风 + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_dehumidify_back)); + airIconStation.setVisibility(View.VISIBLE); + airIconStation.setImageDrawable(getContext().getResources().getDrawable(R.drawable.icon_wind)); + break; + case "3": + airIconStation.setVisibility(View.GONE); + break; + } + } + + if (speed != null) { + switch (speed.toString()) { + case "auto": + airWindIcon.setText("自动风"); + break; + case "low": + airWindIcon.setText("低速风"); + break; + case "medium": + airWindIcon.setText("中速风"); + break; + case "high": + airWindIcon.setText("高速风"); + break; + } + } + } else { + airTopBg.setBackground(getContext().getResources().getDrawable(R.drawable.pic_close_back)); + isOpen = false; + airTempicon.setText("已关闭"); + airTempoC.setVisibility(View.GONE); + airIconStation.setVisibility(View.GONE); + airWindIcon.setText(""); + } + break; + case DOWNLOAD_INFRARED_BYRID_SUCCESS_AIR: + progressRl.setVisibility(View.VISIBLE); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_timing: + Intent intent = new Intent(getContext(), SwitcherTimeActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("id", devicesBean.getId()); + intent.putExtra("deviceType", TEMP_CONTROL); + startActivity(intent); + break; + case R.id.tv_fan_open: + subsetControl("power"); + break; + case R.id.tv_close_air: + subsetControl("poweroff"); + break; + case R.id.tv_temperature_add: + subsetControl("tempUp"); + break; + case R.id.tv_temperature_reduce: + subsetControl("tempDown"); + break; + case R.id.tv_air_wind_speed: + //自然风 + subsetControl("windSpeedAuto"); + break; + case R.id.tv_right_left: + //高速风 + subsetControl("windSpeedHigh"); + break; + case R.id.tv_up_down: + //中速风 + subsetControl("windSpeedMedium"); + break; + case R.id.tv_save_power: + //低速风 + subsetControl("windSpeedLow"); + break; + case R.id.tv_cold: + subsetControl("cold"); + break; + case R.id.tv_warm: + subsetControl("heat"); + break; + case R.id.tv_sleep: + //送风 + subsetControl("ventilate"); + break; + + case R.id.rl_progress_top: + break; + case R.id.tv_load_back: + EventBus.getDefault().post( + new EventCloseEntity("关闭")); + getActivity().finish(); + break; + } + } + + @Override + public void onResume() { + super.onResume(); + queryNextTimer(); + queryDeviceLastInfo(devicesBean.getId(), TEMP_CONTROL); + } + + @Override + public void onDestroy() { + super.onDestroy(); + + } + + private void queryNextTimer() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("ziId", ziId); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceId", devicesBean.getId()); + netWorkUtil.requestGetByAsy(NetWorkUrl.QUERY_NEXT_TIMER, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryNextTimer", "ShareDeviceActivity onSuccess()" + respone); + Z1TimeEntity obj = JSON.parseObject(respone, Z1TimeEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_NEXT_TIMER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_AIR_LASTSTATUS_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", TEMP_CONTROL); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SEND_CONTROL_ORDER_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void initLoadDialog() { + if (null != mLoadingDialog && !mLoadingDialog.isShowing()) { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(TempControlFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + TempControlFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/fragment/WindowOpenerFragment.java b/app/src/main/java/com/yonsz/z1/version5/fragment/WindowOpenerFragment.java new file mode 100644 index 0000000..af3589f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/fragment/WindowOpenerFragment.java @@ -0,0 +1,651 @@ +package com.yonsz.z1.version5.fragment; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.LightListEntity; +import com.yonsz.z1.database.entity.NettyEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AppControlEvent; +import com.yonsz.z1.database.entity.entity4.DeviceStateEntity; +import com.yonsz.z1.database.entity.entity4.LocalControlEvent; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.DeviceEntityV4; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNameDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.DeviceOtherNameActivity; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.lang.ref.WeakReference; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.string.position; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.APP_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_FAIL; +import static com.yonsz.z1.net.Constans.DELLIGHT_ENTITY_SUCCESS; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.MODIFY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_LASTINFO_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_FAIL; +import static com.yonsz.z1.net.Constans.SELECTBLIND_BYZI_SUCCESS; +import static com.yonsz.z1.net.Constans.SENDPID_STUDYBLIND_FAIL; +import static com.yonsz.z1.net.Constans.SHOW_LOCAL_CONTROL; +import static com.yonsz.z1.net.Constans.STUDY_ANDCONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_LIGHT_TYPE_FAIL; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_DEVICE_LASTINFO; + +public class WindowOpenerFragment extends BaseFragment implements View.OnClickListener { + private View fragView; + private UIHandle mHandler; + private DeviceEntityV4.DataBean.DevicesBean devicesBean; + + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private TextView childPosition, openWindow, stopWindow, closeWindow, aiNameAndState; + private CheckBox childVoiceCb; + private String ziId; + private String deviceId; + private String addressName; + private String voiceFlag; + private String addressId; + private ImageView localControlIv; + private String deviceModel = "0"; + private CheckBox childPicture; + private TextView tv_window_state; + + public static WindowOpenerFragment getInstance(DeviceEntityV4.DataBean.DevicesBean devicesBean) { + WindowOpenerFragment fragment = new WindowOpenerFragment(); + fragment.devicesBean = devicesBean; + return fragment; + } + + public void onEventMainThread(LocalControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = SHOW_LOCAL_CONTROL; + message.obj = msg; + mHandler.sendMessage(message); + } + + public void onEventMainThread(AppControlEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = APP_CONTROL_SUCCESS; + message.obj = msg; + mHandler.sendMessage(message); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + mHandler = new UIHandle(this); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.frgment_window_opener, null); + initView(fragView); + return fragView; + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void initView(View fragView) { + // devicesBean = JSON.parseObject(getArguments().get("DATA").toString(), DeviceEntityV4.DataBean.DevicesBean.class); + // devicesBean = (DeviceEntityV4.DataBean.DevicesBean) getArguments().get("DATA"); + ziId = devicesBean.getZiId(); + deviceId = devicesBean.getId(); + addressId = devicesBean.getAddressId(); + deviceModel = devicesBean.getDeviceModel(); + addressName = AddressNameUtil.getAddressName(addressId); + voiceFlag = devicesBean.getVoiceFlag(); + openWindow = (TextView) fragView.findViewById(R.id.tv_first_control); + stopWindow = (TextView) fragView.findViewById(R.id.tv_second_control); + closeWindow = (TextView) fragView.findViewById(R.id.tv_third_control); + childPicture = (CheckBox) fragView.findViewById(R.id.iv_child_picture); + tv_window_state = (TextView) fragView.findViewById(R.id.tv_window_state); + + openWindow.setOnClickListener(this); + stopWindow.setOnClickListener(this); + closeWindow.setOnClickListener(this); + childPicture.setOnClickListener(this); + + childPosition = (TextView) fragView.findViewById(R.id.tv_child_position); + aiNameAndState = (TextView) fragView.findViewById(R.id.tv_ai_state); + childVoiceCb = (CheckBox) fragView.findViewById(R.id.tv_child_voice); + localControlIv = (ImageView) fragView.findViewById(R.id.iv_local_control); + childVoiceCb.setOnClickListener(this); + mTitleView = (TitleView) fragView.findViewById(R.id.title_light4); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.clearBackGroud(); + mTitleView.setHead(devicesBean.getDeviceName()); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + getActivity().finish(); + } + + @Override + public void onFunction() { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //删除面板,现在是没法删除的 + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + subsetDelete(); + break; + } + } + }); + dialog.setContent(R.string.sure_delete_device); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case 2: + //修改位置信息 + break; + case 3: + //语令说明 + Intent intent = new Intent(getContext(), VoiceDeclareActivity.class); + intent.putExtra("tag", WINDOW_OPENER); + startActivity(intent); + break; + case 4: + Intent intent1 = new Intent(getActivity(), ModifyRoomActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("deviceType", WINDOW_OPENER); + intent1.putExtra("deviceModel", deviceModel); + intent1.putExtra("deviceId", deviceId); + intent1.putExtra("addressId", addressId); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + break; + case 5: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(getContext(), "虚拟家庭不支持该操作"); + return; + } + //修改名字 + ConfirmNameDialog dialog1 = new ConfirmNameDialog(getContext(), new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + subsetModify(positioName); + break; + } + } + }); + dialog1.setMaxEms(12); + dialog1.setOldName(mTitleView.getHead()); + dialog1.setContent("修改设备名称"); + dialog1.setCancleBtn(R.string.cancel); + dialog1.setSureBtn(R.string.sure); + dialog1.setCancelable(false); + dialog1.show(); + break; + case 7: + intent = new Intent(getContext(), DeviceOtherNameActivity.class); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceType", devicesBean.getDeviceType()); + intent.putExtra("deviceModel", devicesBean.getDeviceModel()); + intent.putExtra("addressId", devicesBean.getAddressId()); + intent.putExtra("deviceId", devicesBean.getId()); + startActivity(intent); + break; + } + } + }); + dialog2.setContent(); + dialog2.setLearnTxt("修改设备位置"); + dialog2.setSureBtnTxt("删除开窗器"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + + @Override + public void onFunctionText() { + + } + }); + + childPosition.setText(addressName); + aiNameAndState.setText(AddressNameUtil.getAiNameAndState(ziId)); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + } + + @Override + public void onResume() { + super.onResume(); + queryDeviceLastInfo(deviceId, WINDOW_OPENER); + } + + private void queryDeviceLastInfo(String deviceId, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceType", deviceType); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(QUERY_DEVICE_LASTINFO, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("queryDeviceLastInfo", "ShareDeviceActivity onSuccess()" + respone); + DeviceStateEntity obj = JSON.parseObject(respone, DeviceStateEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_SUCCESS); + msg.obj = obj; + msg.arg1 = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_LASTINFO_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_child_voice: + ShakeUtil.setShake(getContext()); + if (voiceFlag.equals("1")) { + childVoiceCb.setChecked(true); + } else { + childVoiceCb.setChecked(false); + } + ConfirmDialog dialog = new ConfirmDialog(getContext(), new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + if (voiceFlag.equals("1")) { + subseSetVoice("0"); + } else { + subseSetVoice("1"); + } + break; + } + } + }); + if (!voiceFlag.equals("1")) { + dialog.setContent("开启语音控制?"); + } else { + dialog.setContent("关闭语音控制?"); + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_first_control: + subsetControl("open"); + break; + case R.id.tv_second_control: + subsetControl("stop"); + break; + case R.id.tv_third_control: + subsetControl("close"); + break; + } + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + private void callBackUiThread(Message msg) { + switch (msg.what) { + case STUDY_ANDCONTROLL_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SELECTBLIND_BYZI_SUCCESS: + LightListEntity obj = (LightListEntity) msg.obj; + break; + case SELECTBLIND_BYZI_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case CLOSE_THIS_ACTIVITY: + getActivity().finish(); + break; + case DELLIGHT_ENTITY_SUCCESS: + ToastUtil.show(getContext(), R.string.Delete_successful); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + getActivity().finish(); + } + }, 1000); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + int obj1 = Integer.parseInt((String) msg.obj); + if (obj1 == 0) { + voiceFlag = "0"; + ToastUtil.show(getContext(), "关闭语音成功"); + childVoiceCb.setChecked(false); + } else { + voiceFlag = "1"; + ToastUtil.show(getContext(), "开启语音成功"); + childVoiceCb.setChecked(true); + } + break; + case SENDPID_STUDYBLIND_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case DELLIGHT_ENTITY_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_LIGHT_TYPE_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(getContext(), (String) msg.obj); + break; + case SHOW_LOCAL_CONTROL: + String obj2 = (String) msg.obj; + if (obj2.equals("1")) { + localControlIv.setVisibility(View.VISIBLE); + } else { + localControlIv.setVisibility(View.GONE); + } + break; + case APP_CONTROL_SUCCESS: + NettyEntity nettyEntity = JSON.parseObject(msg.obj.toString(), NettyEntity.class); + if (nettyEntity.getAddressId().equals(addressId)) { + // if (nettyEntity.getDeviceType().equals(CURTAINS_TAG) && nettyEntity.getDetailType().equals(WINDOW_OPENER)) { + if (nettyEntity.getDeviceType().equals(WINDOW_OPENER)) { + String deviceIds = nettyEntity.getDeviceIds(); + List result = Arrays.asList(deviceIds.split(",")); + if (result.contains(deviceId)) { + if (nettyEntity.getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_window_state.setText("窗户已打开"); + } else if (nettyEntity.getOpenFlag().equals("0")) { + childPicture.setChecked(false); + tv_window_state.setText("窗户已关闭"); + } + } + } + } + break; + case QUERY_DEVICE_LASTINFO_SUCCESS: + DeviceStateEntity parseObject = (DeviceStateEntity) msg.obj; + if (parseObject.getData().getOpenFlag().equals("1")) { + childPicture.setChecked(true); + tv_window_state.setText("窗户已打开"); + } else if (parseObject.getData().getOpenFlag().equals("0")) { + childPicture.setChecked(false); + tv_window_state.setText("窗户已关闭"); + } + break; + case MODIFY_NAME_SUCCESS: + mTitleView.setHead(devicesBean.getDeviceName()); + break; + case MODIFY_NAME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void subsetModify(String deviceName) { + // initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", devicesBean.getId()); + map.put("deviceModel", devicesBean.getDeviceModel()); + map.put("deviceType", devicesBean.getDeviceType()); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + devicesBean.setDeviceName(deviceName); + Message msg = mHandler.obtainMessage(MODIFY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(MODIFY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subseSetVoice(final String flag) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", WINDOW_OPENER); + map.put("ziId", ziId); + map.put("voiceFlag", flag); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SETVOICE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subseSetVoice", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = flag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetDelete() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", WINDOW_OPENER); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DELLIGHT_ENTITY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(getContext()); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", WINDOW_OPENER); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(getContext()); + mLoadingDialog.show(); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("devicePosition") != null) { + childPosition.setText(data.getExtras().get("devicePosition").toString()); + addressId = data.getExtras().get("addressId").toString(); + } + break; + } + } + + //handler + private static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(WindowOpenerFragment activity) { + weakReference = new WeakReference(activity); + } + + @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + WindowOpenerFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/light/Light5Adapter.java b/app/src/main/java/com/yonsz/z1/version5/light/Light5Adapter.java new file mode 100644 index 0000000..2ffa37c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/light/Light5Adapter.java @@ -0,0 +1,205 @@ +package com.yonsz.z1.version5.light; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.YblEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.List; + +public class Light5Adapter extends RecyclerView.Adapter { + private Context mContext; + private List mObjEntity; + private boolean isLearn; + private OnItemLightClickListener mLightClickListener; + private boolean isDeleteChild; + + public Light5Adapter(Context mContext, List mObjEntity, boolean isLearn, boolean isDelete) { + super(); + this.mContext = mContext; + this.mObjEntity = mObjEntity; + this.isLearn = isLearn; + } + + public void setIsLearn(boolean isLearn1) { + isLearn = isLearn1; + } + + public void setIsDelete(boolean isDelete1) { + isDeleteChild = isDelete1; + } + + @Override + public Light5Adapter.MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_light_test_modify, + parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(Light5Adapter.MessageViewHolder holder, int position) { + holder.setViews(position); + } + + @Override + public int getItemCount() { + return mObjEntity == null ? 0 : mObjEntity.size(); + } + + public void setOnItemLightClickListener(OnItemLightClickListener listener) { + this.mLightClickListener = listener; + } + + private void setLightIcon(ImageView yblLightIcon, int lightType, TextView tv_one_ybl_type, String deviceName) { + if (AppIdUtil.isWork()) { + yblLightIcon.setVisibility(View.GONE); + tv_one_ybl_type.setVisibility(View.VISIBLE); + if (!deviceName.isEmpty()) { + tv_one_ybl_type.setText(deviceName); + } else { + tv_one_ybl_type.setText("灯光"); + } + } else { + switch (String.valueOf(lightType)) { + case "0"://灯光 + yblLightIcon.setImageResource(R.drawable.icon_light); + break; + case "1"://筒灯 + yblLightIcon.setImageResource(R.drawable.icon_tubelamp); + break; + case "2"://灯带 + yblLightIcon.setImageResource(R.drawable.icon_lightbelt); + break; + case "3"://射灯 + yblLightIcon.setImageResource(R.drawable.icon_lamp); + break; + case "4"://壁灯 + yblLightIcon.setImageResource(R.drawable.icon_walllamp); + break; + case "5"://吊灯 + yblLightIcon.setImageResource(R.drawable.icon_chandelier); + break; + case "6"://廊灯 + yblLightIcon.setImageResource(R.drawable.icon_porchlamp); + break; + case "7"://排气扇 + yblLightIcon.setImageResource(R.drawable.icon_exhaust); + break; + default: + yblLightIcon.setImageResource(R.drawable.icon_light); + break; + } + } + } + + public interface OnItemLightClickListener { + + public void onLearnLightClick(int position, int i, int j); + + public void onLightOpenCloseClick(int position, int i); + + public void onVoiceClick(int position, int voiceControlTag, int childPosition); + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private CheckBox lightChooseOne; + private ImageView yblOneIcon, positionIcon; + private TextView mLightOpenOne, mLightCloseOne, tv_one_ybl_type, tv_one_position_type; + private RelativeLayout yblOneTop; + + + public MessageViewHolder(View view) { + super(view); + lightChooseOne = (CheckBox) itemView.findViewById(R.id.cb_device_choose_one); + yblOneIcon = (ImageView) itemView.findViewById(R.id.tv_one_ybl_icon); + positionIcon = (ImageView) itemView.findViewById(R.id.tv_one_position_icon); + mLightOpenOne = (TextView) itemView.findViewById(R.id.tv_one_open); + mLightCloseOne = (TextView) itemView.findViewById(R.id.tv_one_close); + yblOneTop = (RelativeLayout) itemView.findViewById(R.id.ll_ybl_one_top); + tv_one_ybl_type = (TextView) itemView.findViewById(R.id.tv_one_ybl_type); + tv_one_position_type = (TextView) itemView.findViewById(R.id.tv_one_position_type); + } + + public void setViews(final int position) { + final YblEntity.LightsBean detaiEntity = mObjEntity.get(position); + /*String addressName = AddressNameUtil.getAddressName(detaiEntity.getAddressId()); + positionOne.setText(addressName);*/ + if (AppIdUtil.isWork()) { + positionIcon.setVisibility(View.GONE); + tv_one_position_type.setVisibility(View.VISIBLE); + tv_one_position_type.setText(AddressNameUtil.getAddressName(detaiEntity.getAddressId())); + } else { + AddressNameUtil.setAddressIcon(mContext, positionIcon, detaiEntity.getAddressId()); + } + + setLightIcon(yblOneIcon, detaiEntity.getLightType(), tv_one_ybl_type, detaiEntity.getDeviceName()); + + mLightOpenOne.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mLightClickListener != null) { + mLightClickListener.onLearnLightClick(position, 1, 0); + } + } + }); + mLightCloseOne.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mLightClickListener != null) { + mLightClickListener.onLearnLightClick(position, 0, 0); + } + } + }); + + positionIcon.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mLightClickListener != null) { + mLightClickListener.onVoiceClick(position, 1, 0); + } + } + }); + tv_one_position_type.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mLightClickListener != null) { + mLightClickListener.onVoiceClick(position, 1, 0); + } + } + }); + yblOneIcon.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mLightClickListener != null) { + mLightClickListener.onVoiceClick(position, 0, 0); + } + } + }); + tv_one_ybl_type.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mLightClickListener != null) { + mLightClickListener.onVoiceClick(position, 0, 0); + } + } + }); + yblOneTop.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/light/LightClickActivity.java b/app/src/main/java/com/yonsz/z1/version5/light/LightClickActivity.java new file mode 100644 index 0000000..3cb4cb4 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/light/LightClickActivity.java @@ -0,0 +1,300 @@ +package com.yonsz.z1.version5.light; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.io.Serializable; +import java.util.HashMap; + +import static com.yonsz.z1.net.Constans.CANCEL_ADD_LIGHT_FAIL; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; + + +public class LightClickActivity extends BaseActivity { + private TitleView mTitleView; + private Button nextConfig; + private CheckBox selectUnnorReveal; + private ImageView lightClickPic; + private TextView lightClickDeclare, tv_second_declare; + private LoadingDialog mLoadingDialog; + private String addressTypeCode; + private String ziId; + private String deviceModel; + private String lightNumber; + private String bodyMap; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_light_click); + initView(); + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + @Override + public void onResume() { + super.onResume(); + if (null != nextConfig && null != selectUnnorReveal) { + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextConfig.setClickable(false); + nextConfig.setEnabled(false); + selectUnnorReveal.setChecked(false); + } + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + } + + private void initView() { + addressTypeCode = getIntent().getExtras().get("addressId").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + lightNumber = getIntent().getExtras().get("lightNumber").toString(); + ziId = getIntent().getExtras().get("ziId").toString(); + tv_second_declare = (TextView) findViewById(R.id.tv_second_declare); + lightClickPic = (ImageView) findViewById(R.id.iv_click_light_pic); + lightClickDeclare = (TextView) findViewById(R.id.tv_click_light_three); + selectUnnorReveal = (CheckBox) findViewById(R.id.iv_select_unnor_reveal); + selectUnnorReveal.setOnClickListener(this); + nextConfig = (Button) findViewById(R.id.bt_start_config); + nextConfig.setOnClickListener(this); + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextConfig.setClickable(false); + nextConfig.setEnabled(false); + nextConfig.setOnClickListener(new NoDoubleClickListener() { + @Override + public void onNoDoubleClick(View view) { + subsetStudy(); + /*Intent intent = new Intent(ClothesHangerStepOneActivity.this, ClothesHangerStepTwoActivity.class); + startActivity(intent);*/ + } + }); + mTitleView = (TitleView) findViewById(R.id.title_light_learn); + mTitleView.setHead("添加智能面板"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + switch (lightNumber) { + case "1": + bodyMap = " {\"deviceCount\":1}"; + break; + case "2": + bodyMap = " {\"deviceCount\":2}"; + break; + case "3": + bodyMap = " {\"deviceCount\":3}"; + break; + case "4": + bodyMap = " {\"deviceCount\":4}"; + break; + default: + break; + } + + switch (deviceModel) { + case "0": + lightClickDeclare.setText("听到“嘀嘀”提示音后,立即松手,点击下一步。"); + switch (lightNumber) { + case "1": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_add_panel_one)); + break; + case "2": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_add_panel_two)); + break; + case "3": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_add_panel_three)); + break; + } + break; + case "1": + lightClickDeclare.setText("听到“嘀”提示音后,立即松手,点击下一步。"); + switch (lightNumber) { + case "1": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_add_panel_one1)); + break; + case "2": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_add_panel_two1)); + break; + case "3": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_add_panel_three1)); + break; + } + break; + case "2": + break; + case "3": + switch (lightNumber) { + case "1": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_add_t3_one)); + break; + case "2": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_add_t3_two)); + break; + case "3": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_add_t3_three)); + break; + case "4": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_add_t3_four)); + break; + } + break; + case "4": + tv_second_declare.setText("3秒内快速点击面板的任意按钮三次以上,然后长按面板约3秒;"); + switch (lightNumber) { + case "1": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_t5_one)); + break; + case "2": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_t5_two)); + break; + case "3": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_t5_three)); + break; + case "4": + lightClickPic.setImageDrawable(getResources().getDrawable(R.drawable.pic_t5_four)); + break; + } + break; + default: + break; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.iv_select_unnor_reveal: + if (selectUnnorReveal.isChecked()) { + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_5dp)); + nextConfig.setClickable(true); + nextConfig.setEnabled(true); + } else { + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextConfig.setClickable(false); + nextConfig.setEnabled(false); + } + break; + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case CANCEL_ADD_LIGHT_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (null != mLoadingDialog) { + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + } + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + Intent intent = new Intent(LightClickActivity.this, LightTestAndModifyActivity.class); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", LIGHT_TAG); + intent.putExtra("ziId", ziId); + intent.putExtra("addressTypeCode", addressTypeCode); + intent.putExtra("lightNumber", lightNumber); + Bundle bundle = new Bundle(); + bundle.putSerializable("body", (Serializable) entity.getData()); + intent.putExtras(bundle); + startActivity(intent); + break; + } + + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + private void subsetStudy() { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", LIGHT_TAG); + map.put("ziId", ziId); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_STUDY, map, bodyMap, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetStudy", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/light/LightT3TypeActivity.java b/app/src/main/java/com/yonsz/z1/version5/light/LightT3TypeActivity.java new file mode 100644 index 0000000..e4cea2d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/light/LightT3TypeActivity.java @@ -0,0 +1,159 @@ +package com.yonsz.z1.version5.light; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.ImageView; + +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.view.TitleView; + + +public class LightT3TypeActivity extends BaseActivity { + private TitleView mTitleView; + private CheckBox cb_position1, cb_position2, cb_position3, cb_position4; + private Button nextConfig; + private String lightNumber; + private ImageView iconTOne, iconTTwo, iconTThree, iconTFour; + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_light5_one); + initView(); + initListener(); + } + + private void initListener() { + cb_position1.setOnClickListener(this); + cb_position2.setOnClickListener(this); + cb_position3.setOnClickListener(this); + cb_position4.setOnClickListener(this); + } + + private void initView() { + iconTOne = (ImageView) findViewById(R.id.iv_t_one); + iconTTwo = (ImageView) findViewById(R.id.iv_t_two); + iconTThree = (ImageView) findViewById(R.id.iv_t_three); + iconTFour = (ImageView) findViewById(R.id.iv_t_four); + cb_position1 = (CheckBox) findViewById(R.id.cb_position1); + cb_position2 = (CheckBox) findViewById(R.id.cb_position2); + cb_position3 = (CheckBox) findViewById(R.id.cb_position3); + cb_position4 = (CheckBox) findViewById(R.id.cb_position4); + nextConfig = (Button) findViewById(R.id.bt_start_config); + nextConfig.setOnClickListener(this); + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_e3e3e3_5dp)); + nextConfig.setClickable(false); + nextConfig.setEnabled(false); + nextConfig.setOnClickListener(new NoDoubleClickListener() { + @Override + public void onNoDoubleClick(View view) { + Intent intent = new Intent(LightT3TypeActivity.this, LightClickActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", getIntent().getExtras().get("addressId").toString()); + intent.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + if (TextUtils.isEmpty(lightNumber)) { + return; + } + intent.putExtra("lightNumber", lightNumber); + startActivity(intent); + } + }); + mTitleView = (TitleView) findViewById(R.id.title_light_one); + mTitleView.setHead(R.string.Select_smart_switch_panel_type); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + switch (getIntent().getExtras().get("deviceModel").toString()) { + case "4": + iconTOne.setImageResource(R.drawable.icon_t5_one); + iconTTwo.setImageResource(R.drawable.icon_t5_two); + iconTThree.setImageResource(R.drawable.icon_t5_three); + iconTFour.setImageResource(R.drawable.icon_t5_four); + break; + default: + break; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.cb_position1: + lightNumber = "1"; + cb_position1.setChecked(true); + cb_position2.setChecked(false); + cb_position3.setChecked(false); + cb_position4.setChecked(false); + setNextConfigTrue(); + break; + case R.id.cb_position2: + lightNumber = "2"; + cb_position1.setChecked(false); + cb_position2.setChecked(true); + cb_position3.setChecked(false); + cb_position4.setChecked(false); + setNextConfigTrue(); + break; + case R.id.cb_position3: + lightNumber = "3"; + cb_position1.setChecked(false); + cb_position2.setChecked(false); + cb_position3.setChecked(true); + cb_position4.setChecked(false); + setNextConfigTrue(); + break; + case R.id.cb_position4: + lightNumber = "4"; + cb_position1.setChecked(false); + cb_position2.setChecked(false); + cb_position3.setChecked(false); + cb_position4.setChecked(true); + setNextConfigTrue(); + break; + } + } + + private void setNextConfigTrue() { + nextConfig.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_5dp)); + nextConfig.setClickable(true); + nextConfig.setEnabled(true); + } + + @Override + public void callBackUiThread(Message msg) { + + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/light/LightTestAndModifyActivity.java b/app/src/main/java/com/yonsz/z1/version5/light/LightTestAndModifyActivity.java new file mode 100644 index 0000000..bd65f3c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/light/LightTestAndModifyActivity.java @@ -0,0 +1,412 @@ +package com.yonsz.z1.version5.light; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.LinearLayout; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.YblEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.BaseVersionMultiEntity; +import com.yonsz.z1.database.entity.entity5.YBLBodyEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.ModifyRoomActivity; +import com.yonsz.z1.version5.ModifyTypeActivity; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; + +public class LightTestAndModifyActivity extends BaseActivity { + private TitleView mTitleView; + private Button sureBtn; + private LoadingDialog mLoadingDialog; + private LinearLayout ll_try_again; + private String ziId; + private String deviceModel; + private String deviceType; + private String addressTypeCode; + private String lightNumber; + private String body; + private BaseVersion5Entity.DataBean dataBean; + private SwipeMenuRecyclerView mRecyclerView; + private Light5Adapter mLightAdapter; + private List lightsBeans = new ArrayList<>(); + private int modifyPosition = 0; + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_test_modify_light); + initView(); + initListener(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + finish(); + } + + + private void initView() { + dataBean = (BaseVersion5Entity.DataBean) getIntent().getSerializableExtra("body"); + ziId = getIntent().getExtras().get("ziId").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + deviceType = getIntent().getExtras().get("deviceType").toString(); + addressTypeCode = getIntent().getExtras().get("addressTypeCode").toString(); + lightNumber = getIntent().getExtras().get("lightNumber").toString(); + ll_try_again = (LinearLayout) findViewById(R.id.ll_try_again); + sureBtn = (Button) findViewById(R.id.bt_restart_config); + mTitleView = (TitleView) findViewById(R.id.title_light_test_modify); + mTitleView.setHead("添加智能面板"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + for (int i = 0; i < Integer.parseInt(lightNumber); i++) { + YblEntity.LightsBean lightsBean = new YblEntity.LightsBean(); + lightsBean.setAddressId(addressTypeCode); + lightsBean.setLightType(0); + lightsBeans.add(lightsBean); + } + + mLightAdapter = new Light5Adapter(this, lightsBeans, false, false); + mRecyclerView = (SwipeMenuRecyclerView) findViewById(R.id.smr_child_device_list); + RecyclerViewNoBugLinearLayoutManager manage = new RecyclerViewNoBugLinearLayoutManager(this); + manage.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setHasFixedSize(true); + mRecyclerView.setItemViewCacheSize(0);//试图解决复用的问题 + mRecyclerView.setLayoutManager(manage); + mRecyclerView.setAdapter(mLightAdapter); + } + + private void initListener() { + ll_try_again.setOnClickListener(this); + sureBtn.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + // subsetAdd(); + subsetAddmulti(); + } + }); + + mLightAdapter.setOnItemLightClickListener(new Light5Adapter.OnItemLightClickListener() { + @Override + public void onLearnLightClick(int position, int i, int j) { + switch (i) { + case 0: + ShakeUtil.setShake(getApplicationContext()); + //关灯 第几路 + dataBean.setOrder(position + 1); + dataBean.setDeviceCount(lightNumber); + body = JSONObject.toJSONString(dataBean); + subsetTest("poweroff"); + break; + case 1: + ShakeUtil.setShake(getApplicationContext()); + //开灯 + dataBean.setOrder(position + 1); + dataBean.setDeviceCount(lightNumber); + body = JSONObject.toJSONString(dataBean); + subsetTest("power"); + break; + } + } + + @Override + public void onLightOpenCloseClick(int position, int i) { + //是否选择了这一个 + } + + @Override + public void onVoiceClick(int position, int voiceControlTag, int childPosition) { + //修改位置和图标 + modifyPosition = position; + if (voiceControlTag == 0) { + Intent intent1; + if (AppIdUtil.isWork()) { + intent1 = new Intent(LightTestAndModifyActivity.this, ModifyTypeActivity.class); + } else { + intent1 = new Intent(LightTestAndModifyActivity.this, ModifyLightTypeActivity.class); + } + intent1.putExtra("lightType", lightsBeans.get(position).getLightType()); + intent1.putExtra("ziId", ziId); + intent1.putExtra("deviceType", LIGHT_TAG); + intent1.putExtra("deviceModel", deviceModel); + if (lightsBeans.get(position).getDeviceName().isEmpty()) { + intent1.putExtra("deviceName", "灯光"); + } else { + intent1.putExtra("deviceName", lightsBeans.get(position).getDeviceName()); + } + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + } else if (voiceControlTag == 1) { + Intent intent1 = new Intent(LightTestAndModifyActivity.this, ModifyRoomActivity.class); + intent1.putExtra("ziId", ziId); + intent1.putExtra("deviceType", LIGHT_TAG); + intent1.putExtra("deviceModel", deviceModel); + intent1.putExtra("addressId", lightsBeans.get(position).getAddressId()); + startActivityForResult(intent1, MODIFY_DEVICE_NAME); + } + } + }); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_close_curtains: + //上升 + ShakeUtil.setShake(this); + subsetTest("up"); + break; + case R.id.ll_try_again: + finish(); + break; + } + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case UPDATE_BLINDENTITY_NAME_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + EventBus.getDefault().post( + new EventBusEntity("关闭")); + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void subsetAddmulti() { + initLoadDialog(); + /* String[] addressIds = new String[lightsBeans.size()]; + String[] subtypes = new String[lightsBeans.size()]; + for (int i = 0; i < lightsBeans.size(); i++) { + addressIds[i] = lightsBeans.get(i).getAddressId(); + subtypes[i] = String.valueOf(lightsBeans.get(i).getLightType()); + } + dataBean.setAddressIds(String.valueOf(addressIds)); + dataBean.setSubtypes(String.valueOf(subtypes)); + dataBean.setDeviceCount(lightNumber); + body = JSONObject.toJSONString(dataBean);*/ + YBLBodyEntity yblBodyEntity = new YBLBodyEntity(); + List itemsBeans = new ArrayList<>(); + for (int i = 0; i < lightsBeans.size(); i++) { + YBLBodyEntity.ItemsBean itemsBean = new YBLBodyEntity.ItemsBean(); + itemsBean.setAddressId(lightsBeans.get(i).getAddressId()); + if (!lightsBeans.get(i).getDeviceName().isEmpty()) { + itemsBean.setDeviceName(lightsBeans.get(i).getDeviceName()); + } + itemsBean.setSubtype(String.valueOf(lightsBeans.get(i).getLightType())); + itemsBean.setCode(dataBean.getCode()); + itemsBeans.add(itemsBean); + } + if (!dataBean.getCode().isEmpty()) { + yblBodyEntity.setCode(dataBean.getCode()); + } + if (!dataBean.getDeviceCount().isEmpty()) { + yblBodyEntity.setDeviceCount(dataBean.getDeviceCount()); + } + yblBodyEntity.setItems(itemsBeans); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", LIGHT_TAG); + map.put("ziId", ziId); + /*map.put("addressIds", addressIds); + map.put("subtypes", subtypes);*/ + util.requestPostByAsyBody(NetWorkUrl.SUBSET_ADDMULTI, map, JSONObject.toJSONString(yblBodyEntity), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetAddmulti", "ShareDeviceActivity onSuccess()" + respone); + BaseVersionMultiEntity obj = JSON.parseObject(respone, BaseVersionMultiEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetAdd() { + initLoadDialog(); + StringBuilder addressIds = new StringBuilder(); + StringBuilder subtypes = new StringBuilder(); + for (int i = 0; i < lightsBeans.size(); i++) { + if (i < lightsBeans.size() - 1) { + addressIds.append(lightsBeans.get(i).getAddressId()); + addressIds.append(","); + subtypes.append(lightsBeans.get(i).getLightType()); + subtypes.append(","); + } else { + addressIds.append(lightsBeans.get(i).getAddressId()); + subtypes.append(lightsBeans.get(i).getLightType()); + } + } + Log.i("subsetAdd", String.valueOf(addressIds) + "---" + String.valueOf(subtypes)); + dataBean.setAddressIds(String.valueOf(addressIds)); + dataBean.setSubtypes(String.valueOf(subtypes)); + dataBean.setDeviceCount(lightNumber); + body = JSONObject.toJSONString(dataBean); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", LIGHT_TAG); + map.put("ziId", ziId); + map.put("addressId", addressTypeCode); + map.put("subtype", "1"); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_ADD, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetAdd", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetTest(String key) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceModel", deviceModel); + map.put("deviceType", LIGHT_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_TEST, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetTest", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODIFY_DEVICE_NAME: + if (data != null && data.getExtras().get("addressId") != null) { + data.getExtras().get("addressId").toString(); + lightsBeans.get(modifyPosition).setAddressId(data.getExtras().get("addressId").toString()); + mLightAdapter.notifyDataSetChanged(); + } + if (data != null && data.getExtras().get("lightType") != null) { + lightsBeans.get(modifyPosition).setLightType(Integer.parseInt(data.getExtras().get("lightType").toString())); + if (null != data.getExtras().get("lightName")) { + lightsBeans.get(modifyPosition).setDeviceName(data.getExtras().get("lightName").toString()); + } + mLightAdapter.notifyDataSetChanged(); + } + if (data != null && data.getExtras().get("deviceName") != null) { + String deviceName = data.getExtras().get("deviceName").toString(); + int deviceNamePosition = Integer.parseInt(data.getExtras().get("deviceNamePosition").toString()); + lightsBeans.get(modifyPosition).setDeviceName(deviceName); + lightsBeans.get(modifyPosition).setLightType(deviceNamePosition); + lightsBeans.get(modifyPosition).setSubType(String.valueOf(deviceNamePosition)); + mLightAdapter.notifyDataSetChanged(); + } + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/light/ModifyLightTypeActivity.java b/app/src/main/java/com/yonsz/z1/version5/light/ModifyLightTypeActivity.java new file mode 100644 index 0000000..4add3ad --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/light/ModifyLightTypeActivity.java @@ -0,0 +1,352 @@ +package com.yonsz.z1.version5.light; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.RelativeLayout; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.fragment.ClothesHangerFragment; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.HashMap; + +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; + +public class ModifyLightTypeActivity extends BaseActivity { + private TitleView mTitleView; + private ImageView dengGuangIv, tongDengIv, dengDaiIv, sheDengIv, biDengIv, diaoDengIv, langDengIv, paqiIv; + private ImageView dengGuangMark, tongDengMark, dengDaiMark, sheDengMark, biDengMark, diaoDengMark, langDengMark, paqiMark; + private String lightType = "254"; + private Button mButton; + private String deviceModel; + private String ziId; + private String deviceId; + private LoadingDialog mLoadingDialog; + private RelativeLayout rl_light_type; + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_modify_light_type); + initView(); + initListener(); + } + + private void initView() { + lightType = getIntent().getExtras().get("lightType").toString(); + ziId = getIntent().getExtras().get("ziId").toString(); + if (null != getIntent().getExtras().get("deviceId")) { + deviceId = getIntent().getExtras().get("deviceId").toString(); + } + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + + mButton = (Button) findViewById(R.id.bt_sure_config); + rl_light_type = (RelativeLayout) findViewById(R.id.rl_light_type); + dengGuangIv = (ImageView) findViewById(R.id.iv_deng_guang); + tongDengIv = (ImageView) findViewById(R.id.iv_tong_deng); + dengDaiIv = (ImageView) findViewById(R.id.iv_deng_dai); + sheDengIv = (ImageView) findViewById(R.id.iv_she_deng); + biDengIv = (ImageView) findViewById(R.id.iv_bi_deng); + diaoDengIv = (ImageView) findViewById(R.id.iv_diao_deng); + langDengIv = (ImageView) findViewById(R.id.iv_lang_deng); + paqiIv = (ImageView) findViewById(R.id.iv_pai_qi); + + dengGuangMark = (ImageView) findViewById(R.id.iv_deng_guang_mark); + tongDengMark = (ImageView) findViewById(R.id.iv_tong_deng_mark); + dengDaiMark = (ImageView) findViewById(R.id.iv_deng_dai_mark); + sheDengMark = (ImageView) findViewById(R.id.iv_she_deng_mark); + biDengMark = (ImageView) findViewById(R.id.iv_bi_deng_mark); + diaoDengMark = (ImageView) findViewById(R.id.iv_diao_deng_mark); + langDengMark = (ImageView) findViewById(R.id.iv_lang_deng_mark); + paqiMark = (ImageView) findViewById(R.id.iv_pai_qi_mark); + + mTitleView = (TitleView) findViewById(R.id.title_type_light); + mTitleView.setHead("修改类型"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + switch (lightType) { + case "0": + dengGuangMark.setVisibility(View.VISIBLE); + break; + case "1": + tongDengMark.setVisibility(View.VISIBLE); + break; + case "2": + dengDaiMark.setVisibility(View.VISIBLE); + break; + case "3": + sheDengMark.setVisibility(View.VISIBLE); + break; + case "4": + biDengMark.setVisibility(View.VISIBLE); + break; + case "5": + diaoDengMark.setVisibility(View.VISIBLE); + break; + case "6": + langDengMark.setVisibility(View.VISIBLE); + break; + case "7": + paqiMark.setVisibility(View.VISIBLE); + break; + } + } + + private void initListener() { + dengGuangIv.setOnClickListener(this); + tongDengIv.setOnClickListener(this); + dengDaiIv.setOnClickListener(this); + sheDengIv.setOnClickListener(this); + biDengIv.setOnClickListener(this); + diaoDengIv.setOnClickListener(this); + langDengIv.setOnClickListener(this); + paqiIv.setOnClickListener(this); + mButton.setOnClickListener(this); + rl_light_type.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.iv_deng_guang: + lightType = "0"; + dengGuangMark.setVisibility(View.VISIBLE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_tong_deng: + lightType = "1"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.VISIBLE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_deng_dai: + lightType = "2"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.VISIBLE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_she_deng: + lightType = "3"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.VISIBLE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_bi_deng: + lightType = "4"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.VISIBLE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_diao_deng: + lightType = "5"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.VISIBLE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_lang_deng: + lightType = "6"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.VISIBLE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_pai_qi: + lightType = "7"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.VISIBLE); + break; + case R.id.rl_light_type: + /*if (1==1||!deviceModel.isEmpty() && Integer.parseInt(deviceModel) >= 2) { + ToastUtil.show(ModifyLightTypeActivity.this, "敬请期待"); + return; + }*/ + RenameNameDialog dialog = new RenameNameDialog(ModifyLightTypeActivity.this, new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + lightType = "254"; + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(positioName); + } else { + Intent intent = new Intent(ModifyLightTypeActivity.this, LightTestAndModifyActivity.class); + intent.putExtra("lightType", lightType); + intent.putExtra("lightName", positioName); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + break; + } + } + }); + dialog.setHintName(""); + dialog.setContent("设置设备类型名称"); + dialog.setMaxEms(10); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.bt_sure_config: + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(""); + } else { + Intent intent = new Intent(ModifyLightTypeActivity.this, LightTestAndModifyActivity.class); + intent.putExtra("lightType", lightType); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + break; + } + } + + private void subsetModify(String deviceName) { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", LIGHT_TAG); + map.put("subtype", lightType); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case ALLOW_VOICE_CONTROLL_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + Intent intent = new Intent(ModifyLightTypeActivity.this, ClothesHangerFragment.class); + intent.putExtra("lightType", entity.getData().getSubType()); + intent.putExtra("lightName", entity.getData().getName()); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + break; + } + } + +} + diff --git a/app/src/main/java/com/yonsz/z1/version5/light/ModifyTriggerTypeActivity.java b/app/src/main/java/com/yonsz/z1/version5/light/ModifyTriggerTypeActivity.java new file mode 100644 index 0000000..2f8dd4b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/light/ModifyTriggerTypeActivity.java @@ -0,0 +1,379 @@ +package com.yonsz.z1.version5.light; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.RelativeLayout; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.fragment.SafeDeviceFragment; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; +import com.yonsz.z1.ybl.panel.YblPanelStepTwoActivity; + +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.MODIFY_DEVICE_NAME; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; + +public class ModifyTriggerTypeActivity extends BaseActivity { + private TitleView mTitleView; + private ImageView dengGuangIv, tongDengIv, dengDaiIv, sheDengIv, biDengIv, diaoDengIv, langDengIv, paqiIv; + private ImageView dengGuangMark, tongDengMark, dengDaiMark, sheDengMark, biDengMark, diaoDengMark, langDengMark, paqiMark; + private String lightType = "254"; + private Button mButton; + private String deviceModel; + private String ziId; + private String deviceId; + private LoadingDialog mLoadingDialog; + private RelativeLayout rl_light_type; + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("关闭")) { + finish(); + } + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_modify_trigger); + initView(); + initListener(); + } + + private void initView() { + lightType = getIntent().getExtras().get("lightType").toString(); + ziId = getIntent().getExtras().get("ziId").toString(); + if (null != getIntent().getExtras().get("deviceId")) { + deviceId = getIntent().getExtras().get("deviceId").toString(); + } + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + + mButton = (Button) findViewById(R.id.bt_sure_config); + rl_light_type = (RelativeLayout) findViewById(R.id.rl_light_type); + dengGuangIv = (ImageView) findViewById(R.id.iv_deng_guang); + tongDengIv = (ImageView) findViewById(R.id.iv_tong_deng); + dengDaiIv = (ImageView) findViewById(R.id.iv_deng_dai); + sheDengIv = (ImageView) findViewById(R.id.iv_she_deng); + biDengIv = (ImageView) findViewById(R.id.iv_bi_deng); + diaoDengIv = (ImageView) findViewById(R.id.iv_diao_deng); + langDengIv = (ImageView) findViewById(R.id.iv_lang_deng); + paqiIv = (ImageView) findViewById(R.id.iv_pai_qi); + + dengGuangMark = (ImageView) findViewById(R.id.iv_deng_guang_mark); + tongDengMark = (ImageView) findViewById(R.id.iv_tong_deng_mark); + dengDaiMark = (ImageView) findViewById(R.id.iv_deng_dai_mark); + sheDengMark = (ImageView) findViewById(R.id.iv_she_deng_mark); + biDengMark = (ImageView) findViewById(R.id.iv_bi_deng_mark); + diaoDengMark = (ImageView) findViewById(R.id.iv_diao_deng_mark); + langDengMark = (ImageView) findViewById(R.id.iv_lang_deng_mark); + paqiMark = (ImageView) findViewById(R.id.iv_pai_qi_mark); + + mTitleView = (TitleView) findViewById(R.id.title_type_light); + mTitleView.setHead("修改类型"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + switch (lightType) { + case "0": + dengGuangMark.setVisibility(View.VISIBLE); + break; + case "2": + tongDengMark.setVisibility(View.VISIBLE); + break; + case "1": + dengDaiMark.setVisibility(View.VISIBLE); + break; + case "3": + sheDengMark.setVisibility(View.VISIBLE); + break; + case "4": + biDengMark.setVisibility(View.VISIBLE); + break; + case "5": + diaoDengMark.setVisibility(View.VISIBLE); + break; + case "6": + langDengMark.setVisibility(View.VISIBLE); + break; + case "7": + paqiMark.setVisibility(View.VISIBLE); + break; + } + } + + private void initListener() { + dengGuangIv.setOnClickListener(this); + tongDengIv.setOnClickListener(this); + dengDaiIv.setOnClickListener(this); + sheDengIv.setOnClickListener(this); + biDengIv.setOnClickListener(this); + diaoDengIv.setOnClickListener(this); + langDengIv.setOnClickListener(this); + paqiIv.setOnClickListener(this); + mButton.setOnClickListener(this); + rl_light_type.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.iv_deng_guang: + lightType = "0"; + dengGuangMark.setVisibility(View.VISIBLE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_tong_deng: + lightType = "2"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.VISIBLE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_deng_dai: + lightType = "1"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.VISIBLE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_she_deng: + lightType = "3"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.VISIBLE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_bi_deng: + lightType = "4"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.VISIBLE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_diao_deng: + lightType = "5"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.VISIBLE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_lang_deng: + lightType = "6"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.VISIBLE); + paqiMark.setVisibility(View.GONE); + break; + case R.id.iv_pai_qi: + lightType = "7"; + dengGuangMark.setVisibility(View.GONE); + tongDengMark.setVisibility(View.GONE); + dengDaiMark.setVisibility(View.GONE); + sheDengMark.setVisibility(View.GONE); + biDengMark.setVisibility(View.GONE); + diaoDengMark.setVisibility(View.GONE); + langDengMark.setVisibility(View.GONE); + paqiMark.setVisibility(View.VISIBLE); + break; + case R.id.rl_light_type: + /*if (1==1||!deviceModel.isEmpty() && Integer.parseInt(deviceModel) >= 2) { + ToastUtil.show(ModifyLightTypeActivity.this, "敬请期待"); + return; + }*/ + RenameNameDialog dialog = new RenameNameDialog(ModifyTriggerTypeActivity.this, new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + lightType = "254"; + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(positioName); + } else { + Intent intent = new Intent(ModifyTriggerTypeActivity.this, LightTestAndModifyActivity.class); + intent.putExtra("lightType", lightType); + intent.putExtra("lightName", positioName); + setResult(MODIFY_DEVICE_NAME, intent); + finish(); + } + break; + } + } + }); + dialog.setHintName(""); + dialog.setContent("设置设备类型名称"); + dialog.setMaxEms(10); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.bt_sure_config: + if (null != getIntent().getExtras().get("deviceId")) { + subsetModify(""); + } else { + Intent intent = new Intent(ModifyTriggerTypeActivity.this, YblPanelStepTwoActivity.class); + intent.putExtra("panelType", "2"); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("addressId", getIntent().getExtras().get("addressId").toString()); + intent.putExtra("deviceAddress", getIntent().getExtras().get("addressId").toString()); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("deviceType", SECURITY_TRIGGER); + intent.putExtra("subType", lightType); + startActivity(intent); + } + break; + } + } + + private void subsetModify(String deviceName) { + initLoadDialog(); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", SECURITY_TRIGGER); + map.put("subtype", lightType); + map.put("ziId", ziId); + if (!TextUtils.isEmpty(deviceName)) { + map.put("name", deviceName); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_MODIFY, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetModify", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case ALLOW_VOICE_CONTROLL_FAIL: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(this, (String) msg.obj); + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + /*BaseVersion5Entity entity = (BaseVersion5Entity) msg.obj; + Intent intent = new Intent(ModifyTriggerTypeActivity.this, ClothesHangerFragment.class); + intent.putExtra("lightType", entity.getData().getSubType()); + intent.putExtra("lightName", entity.getData().getName()); + setResult(MODIFY_DEVICE_NAME, intent); + finish();*/ + + EventBus.getDefault().post( + new EventBusEntity("关闭")); + ToastUtil.show(this, "保存成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + break; + } + } + +} + diff --git a/app/src/main/java/com/yonsz/z1/version5/manager/DeviceManagerActivity.java b/app/src/main/java/com/yonsz/z1/version5/manager/DeviceManagerActivity.java new file mode 100644 index 0000000..0a1c3fa --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/manager/DeviceManagerActivity.java @@ -0,0 +1,245 @@ +package com.yonsz.z1.version5.manager; + +import android.content.Context; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.version4.fragment.ScrollViewPager; +import com.yonsz.z1.version5.weidget.BaseFragmentPagerAdapter; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.listpopupwindow.RankingPopupWindow; +import com.yonsz.z1.view.magicindicator.MagicIndicator; +import com.yonsz.z1.view.magicindicator.ViewPagerHelper; +import com.yonsz.z1.view.magicindicator.buildins.UIUtil; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.CommonNavigator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.titles.CommonPagerTitleView; + +import java.util.ArrayList; +import java.util.List; + +import static com.yonsz.z1.UniKongApp.getActivity; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator.MODE_WRAP_CONTENT; + +/** + * Created by Administrator on 2020/2/11. + */ + +public class DeviceManagerActivity extends BaseActivity { + private TitleView titleView; + private List fragmentList; + private View changeHeightView; + private List mStringList = new ArrayList<>(); + private BaseFragmentPagerAdapter mExamplePagerAdapter; + + private MagicIndicator magicIndicator; + private ScrollViewPager mViewPager; + + private TextView tv_my_home; + private RankingPopupWindow.Listener listener; + private RankingPopupWindow mWindow; + private List deviceNumListBind = new ArrayList<>(); + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_device_manager); + initView(); + } + + private void initView() { + fragmentList = new ArrayList<>(); + tv_my_home = (TextView) findViewById(R.id.tv_my_home); + magicIndicator = (MagicIndicator) findViewById(R.id.magic_indicator); + mViewPager = (ScrollViewPager) findViewById(R.id.view_pager); + titleView = (TitleView) findViewById(R.id.title_time_manager); + titleView.setHead("设备管理"); + titleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + initAllDevice(deviceNumListPosition); + + if (null != homeListEntity && null != homeListEntity.getData()) { + if (deviceNumListPosition > homeListEntity.getData().size() - 1) { + deviceNumListPosition = 0; + } + tv_my_home.setText(homeListEntity.getData().get(deviceNumListPosition).getName()); + + deviceNumListBind.clear(); + for (int i = 0; i < homeListEntity.getData().size(); i++) { + if (homeListEntity.getData().get(i).getName().length() > 9) { + deviceNumListBind.add(homeListEntity.getData().get(i).getName().substring(0, 6) + "…"); + } else { + deviceNumListBind.add(homeListEntity.getData().get(i).getName()); + } +// deviceNumListBind.add(homeListEntity.getData().get(i).getName()); + } + } + + tv_my_home.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + initListItem(deviceNumListBind, 2, tv_my_home.getText().toString()); + } + }); + } + + private void initListItem(final List list, final int flag, final String selectName) { + //生成Listener和清空 + setPopupWindowListener(); + mWindow = null; + //显示popupwindow + mWindow = new RankingPopupWindow(getActivity(), list, selectName, listener, tv_my_home, flag); + } + + private void setPopupWindowListener() { + listener = null; + listener = new RankingPopupWindow.Listener() { + @Override + public void onPopupWindowDismissListener() { + //消失时的操作 + } + + @Override + public void onItemClickListener(int position) { + //点击Item时的操作 + //跳转到家庭管理的页面 + tv_my_home.setText(deviceNumListBind.get(position)); + initAllDevice(position); + } + }; + } + + @Override + public void callBackUiThread(Message msg) { + + } + + private void initAllDevice(int position) { + mStringList.clear(); + mStringList.add("场景"); + mStringList.add("设备"); + fragmentList.clear(); + for (int i = 0; i < mStringList.size(); i++) { + List devicesBean = new ArrayList<>(); + DeviceTypeFragment roomFragment = DeviceTypeFragment.getInstance(this, devicesBean, i, this.getSupportFragmentManager(), homeListEntity.getData().get(position).getId()); + fragmentList.add(roomFragment); + } + mExamplePagerAdapter = new BaseFragmentPagerAdapter(this.getSupportFragmentManager(), fragmentList); + mViewPager.setScanScroll(false); + mViewPager.setAdapter(mExamplePagerAdapter); + mViewPager.setOffscreenPageLimit(fragmentList.size()); + mExamplePagerAdapter.notifyDataSetChanged(); + + + magicIndicator.setBackgroundColor(Color.TRANSPARENT); + CommonNavigator commonNavigator = new CommonNavigator(this); + commonNavigator.setAdapter(new CommonNavigatorAdapter() { + + @Override + public int getCount() { + return mStringList == null ? 0 : mStringList.size(); + } + + @Override + public IPagerTitleView getTitleView(Context context, final int index) { + CommonPagerTitleView commonPagerTitleView = new CommonPagerTitleView(context); + + // load custom layout + View customLayout = LayoutInflater.from(context).inflate(R.layout.simple_pager_title_time_manager, null); + final TextView titleText = (TextView) customLayout.findViewById(R.id.title_text); + titleText.setText(mStringList.get(index)); + commonPagerTitleView.setContentView(customLayout); + + commonPagerTitleView.setOnPagerTitleChangeListener(new CommonPagerTitleView.OnPagerTitleChangeListener() { + + @Override + public void onSelected(int index, int totalCount) { + if (AppIdUtil.isWork()) { + titleText.setTextColor(0xff24C1DA); + } else { + titleText.setTextColor(0xff398DEE); + } + Log.i("TAG", "HomepagerRecycleAdapter onSelected()" + index); + } + + @Override + public void onDeselected(int index, int totalCount) { + titleText.setTextColor(0xff333333); + } + + @Override + public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) { + + } + + @Override + public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) { + Log.i("TAG", "LoadCustomLayoutExampleActivity onEnter()" + (1.1f + (0.9f - 1.1f) * enterPercent) + "===" + index); + } + }); + + commonPagerTitleView.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + mViewPager.setCurrentItem(index); + } + }); + + return commonPagerTitleView; + } + + @Override + public IPagerIndicator getIndicator(Context context) { + LinePagerIndicator indicator = new LinePagerIndicator(context); + if (AppIdUtil.isWork()) { + indicator.setColors(Color.parseColor("#24C1DA")); + } else { + indicator.setColors(Color.parseColor("#398DEE")); + } + indicator.setLineHeight(UIUtil.dip2px(context, 2)); + indicator.setMode(MODE_WRAP_CONTENT); + indicator.setXOffset(10.0f); + return indicator; + } + }); + magicIndicator.setNavigator(commonNavigator); + ViewPagerHelper.bind(magicIndicator, mViewPager); + + } + + public void setLayoutParamsHeight(int height) { + changeHeightView.getLayoutParams().height = height; + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/manager/DeviceManagerAdapter.java b/app/src/main/java/com/yonsz/z1/version5/manager/DeviceManagerAdapter.java new file mode 100644 index 0000000..04de9e8 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/manager/DeviceManagerAdapter.java @@ -0,0 +1,149 @@ +package com.yonsz.z1.version5.manager; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.view.SwitchView; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.CARD_ACCESS; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GATE_WAY; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.KUQI_PANEL; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.RGB_LIGHT; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SKYWORTH_TV; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; + +public class DeviceManagerAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + private int timeType; + + + public DeviceManagerAdapter(Context context, List mDataBeans, int timeType) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.timeType = timeType; + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_device_manager, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_model_type_pic) + ImageView mIvModelPic; + @BindView(R.id.tv_model_name_home) + TextView mTvModelName; + @BindView(R.id.tv_model_name) + TextView mTvModelZiName; + @BindView(R.id.tv_model_stage_home) + TextView mTvModelStage; + @BindView(R.id.tv_once_time_home) + TextView onceTimeHome; + @BindView(R.id.tv_week_home) + TextView weekTvHome; + @BindView(R.id.ll_bg) + RelativeLayout mLlBg; + @BindView(R.id.stv_third) + SwitchView timeOpenCb; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + if (timeType == 0) { + mTvModelName.setText(mDataBeans.get(position).getModelName()); + String themeIcon = AddressNameUtil.getThemeIcon(mDataBeans.get(position).getModelType()); + mIvModelPic.setVisibility(View.VISIBLE); + if (!themeIcon.isEmpty()) { + ImageLoader.getInstance().displayImage(themeIcon, mIvModelPic, UniKongApp.getHiApp().getImageLoaderOption()); + } else { + ImageLoader.getInstance().displayImage(mDataBeans.get(position).getIcon(), mIvModelPic, UniKongApp.getHiApp().getImageLoaderOption()); + } +// ImageLoader.getInstance().displayImage(mDataBeans.get(position).getIcon(), mIvModelPic, UniKongApp.getHiApp().getImageLoaderOption()); + } else if (timeType == 1) { + mTvModelName.setText(mDataBeans.get(position).getName()); + if (!mDataBeans.get(position).getAddress().isEmpty()) { + mTvModelZiName.setText(mDataBeans.get(position).getAddress()); + } else { + mTvModelZiName.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getAddressId())); + } + AddressNameUtil.setdeviceIcon(mIvModelPic, mDataBeans.get(position).getDeviceType(), mDataBeans.get(position).getDeviceModel(), mDataBeans.get(position).getSubType()); + } + if (mDataBeans.get(position).getShowFlag() == 0) { + timeOpenCb.setOpened(false); + } else { + timeOpenCb.setOpened(true); + } + + timeOpenCb.setOnClickListener(new NoDoubleClickListener() { + @Override + public void onNoDoubleClick(View v) { + if (timeOpenCb.isOpened()) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 1); + } + } else { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 0); + } + } + + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/manager/DeviceManagerFragment.java b/app/src/main/java/com/yonsz/z1/version5/manager/DeviceManagerFragment.java new file mode 100644 index 0000000..5294aad --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/manager/DeviceManagerFragment.java @@ -0,0 +1,217 @@ +package com.yonsz.z1.version5.manager; + +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.database.entity.entitya2.AddModelEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.SCENE_SETSHOWFLAG; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_SETSHOWFLAG; + +/** + * Created by Administrator on 2020/2/11. + */ + +public class DeviceManagerFragment extends BaseFragment { + private View fragView; + private UIHandle mHandler; + private TitleView mTitleView; + private List mDatas = new ArrayList<>(); + private int timeType; + private RecyclerView mRecyclerView; + private DeviceManagerAdapter modelAdapter; + private String isScene = "false"; + private LinearLayout cardView_add; + private TextView tv_no_timer; + + public static DeviceManagerFragment getInstance(List mDatas, int timeType) { + DeviceManagerFragment fragment = new DeviceManagerFragment(); + fragment.mDatas = mDatas; + fragment.timeType = timeType; + return fragment; + } + + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.fragment_time_manager, null); + initView(fragView); + return fragView; + } + + private void initView(View fragView) { + mRecyclerView = (RecyclerView) fragView.findViewById(R.id.recyclerView); + cardView_add = (LinearLayout) fragView.findViewById(R.id.cardView_add); + tv_no_timer = (TextView) fragView.findViewById(R.id.tv_no_timer); + tv_no_timer.setText("暂无设备"); + + setData(); + } + + @Override + public void onResume() { + super.onResume(); + switch (timeType) { + case 0: + isScene = "true"; + tv_no_timer.setText("暂无场景"); + break; + default: + break; + } + } + + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + + break; + case ADD_MODEL_BASIC_SUCCESS: + String obj = (String) msg.obj; + if (obj.isEmpty()) { + + } else { + modelAdapter.notifyDataSetChanged(); + EventBus.getDefault().post( + new ChooseHomeEvent("10")); + } + break; + case ADD_MODEL_BASIC_FAIL: + case SELECT_MODEL_TIME_FAIL: + case UPDATE_MODEL_TIME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_MODEL_TIME_SUCCESS: + + break; + } + } + + private void setData() { + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(getContext()); + manager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(manager); + modelAdapter = new DeviceManagerAdapter(getContext(), mDatas, timeType); + mRecyclerView.setAdapter(modelAdapter); + if (mDatas.size() != 0) { + cardView_add.setVisibility(View.GONE); + } else { + cardView_add.setVisibility(View.VISIBLE); + } + + modelAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + @Override + public void onClick(View view, int position, int i) { + String id = ""; + if (timeType == 0) { + id = mDatas.get(position).getModelId(); + } else { + id = mDatas.get(position).getDeviceId(); + } + if (i == 1) { + updateModelTime(id, 1, mDatas.get(position).getDeviceModel(), mDatas.get(position).getDeviceType()); + } else { + updateModelTime(id, 0, mDatas.get(position).getDeviceModel(), mDatas.get(position).getDeviceType()); + } + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + } + + private void updateModelTime(String id, int openFlag, String deviceModel, String deviceType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("showFlag", String.valueOf(openFlag)); + String url = ""; + if (timeType == 0) { + map.put("modeId", id); + url = SCENE_SETSHOWFLAG; + } else { + map.put("deviceId", id); + map.put("deviceModel", deviceModel); + map.put("deviceType", deviceType); + url = SUBSET_SETSHOWFLAG; + } + netWorkUtil.requestPostByAsynewApi(url, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateModelTime", "ShareDeviceActivity onSuccess()" + respone); + AddModelEntity obj = JSON.parseObject(respone, AddModelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(DeviceManagerFragment activity) { + weakReference = new WeakReference(activity); + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + DeviceManagerFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/manager/DeviceTypeFragment.java b/app/src/main/java/com/yonsz/z1/version5/manager/DeviceTypeFragment.java new file mode 100644 index 0000000..4635693 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/manager/DeviceTypeFragment.java @@ -0,0 +1,355 @@ +package com.yonsz.z1.version5.manager; + +import android.content.Context; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.NewSceneEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.fragment.ScrollViewPager; +import com.yonsz.z1.version5.weidget.BaseFragmentPagerAdapter; +import com.yonsz.z1.view.magicindicator.MagicIndicator; +import com.yonsz.z1.view.magicindicator.ViewPagerHelper; +import com.yonsz.z1.view.magicindicator.buildins.UIUtil; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.CommonNavigator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.titles.CommonPagerTitleView; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.NetWorkUrl.APPLIANCE_MANAGE_LIST; +import static com.yonsz.z1.net.NetWorkUrl.FIND_TIME_ANDEXECLIST; +import static com.yonsz.z1.net.NetWorkUrl.SELECT_MODEL_TIME; +import static com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator.MODE_WRAP_CONTENT; + +/** + * Created by Administrator on 2020/2/11. + */ + +public class DeviceTypeFragment extends BaseFragment { + private View fragView; + private UIHandle mHandler; + private List fragmentList; + private View changeHeightView; + private List mStringList = new ArrayList<>(); + private BaseFragmentPagerAdapter mExamplePagerAdapter; + + private MagicIndicator magicIndicator; + private ScrollViewPager mViewPager; + + private List mDatas = new ArrayList<>(); + private int timeType; + private Context mContext; + private String houseId; + private android.support.v4.app.FragmentManager manager; + + public static DeviceTypeFragment getInstance(Context context, List mDatas, int timeType, android.support.v4.app.FragmentManager supportFragmentManager, String houseId) { + DeviceTypeFragment fragment = new DeviceTypeFragment(); + fragment.mDatas = mDatas; + fragment.timeType = timeType; + fragment.mContext = context; + fragment.houseId = houseId; + fragment.manager = supportFragmentManager; + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_time_type, null); + initView(fragView); + return fragView; + } + + private void initView(View fragView) { + fragmentList = new ArrayList<>(); + magicIndicator = (MagicIndicator) fragView.findViewById(R.id.magic_indicator); + mViewPager = (ScrollViewPager) fragView.findViewById(R.id.view_pager); + if (timeType == 0) { + selectModelTime(); +// findTimeAndExecList(); + } else if (timeType == 1) { + getTimemanageList(); + } + } + + private void initAllDevice(List mDatas) { + switch (timeType) { + case 0: + mStringList.add("场景"); + fragmentList.clear(); + DeviceManagerFragment roomFragment = DeviceManagerFragment.getInstance(mDatas, 0); + fragmentList.add(roomFragment); + break; + default: + mStringList.add("全部"); + fragmentList.clear(); + List devicesBean1 = new ArrayList<>(); + for (int i = 0; i < mDatas.size(); i++) { + devicesBean1.add(mDatas.get(i)); + } + DeviceManagerFragment roomFragment1 = DeviceManagerFragment.getInstance(devicesBean1, 1); + fragmentList.add(roomFragment1); + + List devicesBean2; + for (int i = 0; i < mDatas.size(); i++) { + String deviceTypeName = AddressNameUtil.getDeviceTypeName(mDatas.get(i).getDeviceType()); + if (!mStringList.contains(deviceTypeName)) { + mStringList.add(deviceTypeName); + devicesBean2 = new ArrayList<>(); + for (int j = 0; j < mDatas.size(); j++) { + if (mDatas.get(j).getDeviceType().equals(mDatas.get(i).getDeviceType())) { + devicesBean2.add(mDatas.get(j)); + } + } + DeviceManagerFragment roomFragment2 = DeviceManagerFragment.getInstance(devicesBean2, 1); + fragmentList.add(roomFragment2); + } + } + } + mExamplePagerAdapter = new BaseFragmentPagerAdapter(getChildFragmentManager(), fragmentList); + mViewPager.setScanScroll(true); + mViewPager.setAdapter(mExamplePagerAdapter); + mViewPager.setOffscreenPageLimit(fragmentList.size()); + mExamplePagerAdapter.notifyDataSetChanged(); + + + magicIndicator.setBackgroundColor(Color.TRANSPARENT); + CommonNavigator commonNavigator = new CommonNavigator(mContext); + commonNavigator.setAdapter(new CommonNavigatorAdapter() { + + @Override + public int getCount() { + return mStringList == null ? 0 : mStringList.size(); + } + + @Override + public IPagerTitleView getTitleView(Context context, final int index) { + CommonPagerTitleView commonPagerTitleView = new CommonPagerTitleView(context); + + // load custom layout + View customLayout = LayoutInflater.from(context).inflate(R.layout.title_time_manager, null); + final TextView titleText = (TextView) customLayout.findViewById(R.id.title_text); + titleText.setText(mStringList.get(index)); + commonPagerTitleView.setContentView(customLayout); + + commonPagerTitleView.setOnPagerTitleChangeListener(new CommonPagerTitleView.OnPagerTitleChangeListener() { + + @Override + public void onSelected(int index, int totalCount) { + if (AppIdUtil.isWork()) { + titleText.setTextColor(0xff24C1DA); + } else { + titleText.setTextColor(0xffffffff); + titleText.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee_20dp)); + } + Log.i("TAG", "HomepagerRecycleAdapter onSelected()" + index); + } + + @Override + public void onDeselected(int index, int totalCount) { + titleText.setTextColor(0xff333333); + titleText.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_000000)); + } + + @Override + public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) { + + } + + @Override + public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) { + Log.i("TAG", "LoadCustomLayoutExampleActivity onEnter()" + (1.1f + (0.9f - 1.1f) * enterPercent) + "===" + index); + } + }); + + commonPagerTitleView.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + mViewPager.setCurrentItem(index); + } + }); + + return commonPagerTitleView; + } + + @Override + public IPagerIndicator getIndicator(Context context) { + LinePagerIndicator indicator = new LinePagerIndicator(context); + if (AppIdUtil.isWork()) { + indicator.setColors(Color.parseColor("#24C1DA")); + } else { + indicator.setColors(Color.parseColor("#398DEE")); + } + indicator.setLineHeight(UIUtil.dip2px(context, 0)); + indicator.setMode(MODE_WRAP_CONTENT); + indicator.setXOffset(10.0f); + return indicator; + } + }); + magicIndicator.setNavigator(commonNavigator); + ViewPagerHelper.bind(magicIndicator, mViewPager); + } + + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + TimeSetEntity timeSetEntity = (TimeSetEntity) msg.obj; + mDatas.clear(); + mDatas.addAll(timeSetEntity.getData()); + initAllDevice(mDatas); + break; + case SELECT_MODEL_TIME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + private void findTimeAndExecList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + if (null != homeListEntity) { + if (deviceNumListPosition > homeListEntity.getData().size() - 1) { + deviceNumListPosition = 0; + } + } + if (null != SharedpreferencesUtil.get(Constans.HOUSEID, "")) { + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + } else { + return; + } + map.put("isCustom", "1"); + // map.put("modelType", "1"); + netWorkUtil.requestGetByAsy(FIND_TIME_ANDEXECLIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("findTimeAndExecList", respone); + TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void selectModelTime() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", houseId); + map.put("isCustom", "1"); + netWorkUtil.requestGetByAsy(SELECT_MODEL_TIME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("selectModelTime", "ShareDeviceActivity onSuccess()" + respone); + TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getTimemanageList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", houseId); + netWorkUtil.requestGetByAsy(APPLIANCE_MANAGE_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getTimemanageList", respone); + TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(DeviceTypeFragment activity) { + weakReference = new WeakReference(activity); + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + DeviceTypeFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/ActiveModelActivity.java b/app/src/main/java/com/yonsz/z1/version5/model/ActiveModelActivity.java new file mode 100644 index 0000000..d61c593 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/ActiveModelActivity.java @@ -0,0 +1,235 @@ +package com.yonsz.z1.version5.model; + +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.entity4.AddPanelModelEntity; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.NetWorkUrl.ADD_MODEL_BASIC; + +/** + * Created by Administrator on 2019/4/3. + */ + +public class ActiveModelActivity extends BaseActivity { + private TitleView mTitleView; + private List mDatas = new ArrayList<>(); + private RecyclerView mRecyclerView; + private ModelActiveAdapter modelAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.fragment_scene5); + initView(); + } + + private void initView() { + mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); + mTitleView = (TitleView) findViewById(R.id.title_scene); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setHead("场景激活"); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + getScenemodelList(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + TimeSetEntity timeSetEntity = (TimeSetEntity) msg.obj; + mDatas.clear(); + mDatas.addAll(timeSetEntity.getData()); + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(this); + manager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(manager); + modelAdapter = new ModelActiveAdapter(this, mDatas); + mRecyclerView.setAdapter(modelAdapter); + + modelAdapter.setmOnItemClickListener(new OnRecyclerListener() { + @Override + public void onClick(View view, final int position) { + if (position == mDatas.size()) { + RenameNameDialog dialog = new RenameNameDialog(ActiveModelActivity.this, new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + addModelBasic(positioName, ""); + break; + } + } + }); + dialog.setHintName(""); + dialog.setContent("设置自定义模式名称"); + dialog.setMaxEms(10); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + } else { + ConfirmDialog dialog = new ConfirmDialog(ActiveModelActivity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + addModelBasic(mDatas.get(position).getName(), mDatas.get(position).getCode()); + mDatas.remove(position); + break; + } + } + }); + dialog.setContent("是否确定激活该场景模式?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + break; + case ADD_MODEL_BASIC_SUCCESS: + String obj = (String) msg.obj; + if (obj.isEmpty()) { + finish(); + } else { + modelAdapter.notifyDataSetChanged(); + } + EventBus.getDefault().post( + new ChooseHomeEvent("10")); + break; + case ADD_MODEL_BASIC_FAIL: + case SELECT_MODEL_TIME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void addModelBasic(String modelName, final String modelType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("modelName", modelName); + if (!modelType.isEmpty()) { + map.put("modelType", modelType); + } + netWorkUtil.requestPostByAsynewApi(ADD_MODEL_BASIC, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("addModelBasic", "onSuccess()" + respone); + AddPanelModelEntity obj = JSON.parseObject(respone, AddPanelModelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ADD_MODEL_BASIC_SUCCESS); + msg.obj = modelType; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ADD_MODEL_BASIC_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ADD_MODEL_BASIC_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getScenemodelList() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + util.requestGetByAsy(NetWorkUrl.SCENE_SCENEMODE_SYSLIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getScenemodelList", respone); + TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/ModelActiveAdapter.java b/app/src/main/java/com/yonsz/z1/version5/model/ModelActiveAdapter.java new file mode 100644 index 0000000..cf43a5f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/ModelActiveAdapter.java @@ -0,0 +1,142 @@ +package com.yonsz.z1.version5.model; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + + +public class ModelActiveAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerListener mOnItemClickListener; + private List photos = null; + + + public ModelActiveAdapter(Context context, List mDataBeans) { + this.mDataBeans = mDataBeans; + this.mContext = context; + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_model_active, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 1 : mDataBeans.size() + 1; + } + + public void setmOnItemClickListener(OnRecyclerListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_model_type_pic) + ImageView mIvModelPic; + @BindView(R.id.tv_model_name_home) + TextView mTvModelName; + @BindView(R.id.tv_model_stage_home) + TextView mTvModelStage; + @BindView(R.id.tv_once_time_home) + TextView onceTimeHome; + @BindView(R.id.tv_week_home) + TextView weekTvHome; + @BindView(R.id.tv_active_model) + TextView activeModel; + @BindView(R.id.ll_bg) + RelativeLayout mLlBg; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + if (position == mDataBeans.size()) { + String themeIcon = AddressNameUtil.getThemeIcon("254"); + mIvModelPic.setVisibility(View.VISIBLE); + if (!themeIcon.isEmpty()) { + ImageLoader.getInstance().displayImage(themeIcon, mIvModelPic, UniKongApp.getHiApp().getImageLoaderOption()); + } else { + if (AppIdUtil.isChuangWei()) { + ImageLoader.getInstance().displayImage(mDataBeans.get(position).getIcon(), mIvModelPic, UniKongApp.getHiApp().getImageLoaderOption()); + } else { + mIvModelPic.setImageResource(R.drawable.icon_scene_custom); + } + } + mTvModelName.setText("自定义模式"); + mTvModelStage.setVisibility(View.INVISIBLE); + onceTimeHome.setVisibility(View.GONE); + weekTvHome.setVisibility(View.INVISIBLE); + activeModel.setVisibility(View.INVISIBLE); + } else { + mTvModelName.setText(mDataBeans.get(position).getName()); + mTvModelStage.setVisibility(View.INVISIBLE); + onceTimeHome.setVisibility(View.GONE); + weekTvHome.setVisibility(View.INVISIBLE); + activeModel.setVisibility(View.VISIBLE); + String themeIcon = AddressNameUtil.getThemeIcon(mDataBeans.get(position).getCode()); + mIvModelPic.setVisibility(View.VISIBLE); + if (!themeIcon.isEmpty()) { + ImageLoader.getInstance().displayImage(themeIcon, mIvModelPic, UniKongApp.getHiApp().getImageLoaderOption()); + } else { + ImageLoader.getInstance().displayImage(mDataBeans.get(position).getIcon(), mIvModelPic, UniKongApp.getHiApp().getImageLoaderOption()); + } + } + + activeModel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + } + } + }); + mLlBg.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mOnItemClickListener != null && position == mDataBeans.size()) { + mOnItemClickListener.onClick(v, position); +// ToastUtil.show(mContext, "敬请期待"); + } + } + }); + mLlBg.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/ModelAdapter.java b/app/src/main/java/com/yonsz/z1/version5/model/ModelAdapter.java new file mode 100644 index 0000000..aa455c0 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/ModelAdapter.java @@ -0,0 +1,217 @@ +package com.yonsz.z1.version5.model; + +import android.content.Context; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.entity5.NewSceneEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class ModelAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + + + public ModelAdapter(Context context, List mDataBeans) { + this.mDataBeans = mDataBeans; + this.mContext = context; + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_model_type, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + private void setWeek(NewSceneEntity.DataBean objEntity, TextView weekTv) { + if (objEntity.getOnceFlag() == 0) { + if (objEntity.getWeekNum1() != null) { + String str = ""; + if (objEntity.getWeekNum1().equals("1")) { + str += mContext.getString(R.string.Monday); + } else { + } + if (objEntity.getWeekNum2().equals("1")) { + str += mContext.getString(R.string.Tuesday); + } else { + } + if (objEntity.getWeekNum3().equals("1")) { + str += mContext.getString(R.string.Wednesday); + } else { + } + if (objEntity.getWeekNum4().equals("1")) { + str += mContext.getString(R.string.Thursday); + } else { + } + if (objEntity.getWeekNum5().equals("1")) { + str += mContext.getString(R.string.Friday); + } else { + } + if (objEntity.getWeekNum6().equals("1")) { + str += mContext.getString(R.string.Saturday); + } else { + } + if (objEntity.getWeekNum7().equals("1")) { + str += mContext.getString(R.string.Sunday); + } else { + } + weekTv.setText(str); + } + } else { + weekTv.setText(R.string.once_time); + } + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_model_type_pic) + ImageView mIvModelPic; + @BindView(R.id.tv_model_name_home) + TextView mTvModelName; + @BindView(R.id.tv_model_stage_home) + TextView mTvModelStage; + @BindView(R.id.tv_once_time_home) + TextView onceTimeHome; + @BindView(R.id.tv_week_home) + TextView weekTvHome; + @BindView(R.id.tv_active_model) + TextView activeModel; + @BindView(R.id.tv_model_useless) + TextView modelUseless; + @BindView(R.id.ll_bg) + RelativeLayout mLlBg; + @BindView(R.id.recyclerView) + RecyclerView recyclerView; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + String themeIcon = AddressNameUtil.getThemeIcon(mDataBeans.get(position).getModelType()); + mIvModelPic.setVisibility(View.VISIBLE); + if (!themeIcon.isEmpty()) { + ImageLoader.getInstance().displayImage(themeIcon, mIvModelPic, UniKongApp.getHiApp().getImageLoaderOption()); + } else { + ImageLoader.getInstance().displayImage(mDataBeans.get(position).getIcon(), mIvModelPic, UniKongApp.getHiApp().getImageLoaderOption()); + } + mTvModelName.setText(mDataBeans.get(position).getModelName()); + if (mDataBeans.get(position).getBasicSwitch() == 0) { + mTvModelStage.setText(R.string.timing_close); + activeModel.setVisibility(View.INVISIBLE); + modelUseless.setVisibility(View.VISIBLE); + recyclerView.setVisibility(View.GONE); + } else { + mTvModelStage.setText(R.string.timing_open); + activeModel.setVisibility(View.VISIBLE); + modelUseless.setVisibility(View.INVISIBLE); + recyclerView.setVisibility(View.VISIBLE); + if (AppIdUtil.isChuangWei()) { + recyclerView.setLayoutManager(new GridLayoutManager(mContext, 2)); + } else { + recyclerView.setLayoutManager(new GridLayoutManager(mContext, 2)); + } + ModelExecAdapter modelExecAdapter = new ModelExecAdapter(mContext, mDataBeans.get(position).getModeExecs()); + recyclerView.setAdapter(modelExecAdapter); + + modelExecAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + @Override + public void onClick(View view, int position1, int type) { + if (type == 100) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(view, position, 100); + } + } else if (type == 0) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(view, position, position1); + } + } else { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(view, position, position1 + 150); + } + } + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + } + if (mDataBeans.get(position).getBasicSwitch() == 0 || mDataBeans.get(position).getOpenFlag() == 0) { + if (mDataBeans.get(position).getExecTime() != null) { + onceTimeHome.setText(""); + } + weekTvHome.setText(""); + } else { + if (mDataBeans.get(position).getExecTime() != null) { + onceTimeHome.setText(mDataBeans.get(position).getExecTime()); + } + setWeek(mDataBeans.get(position), weekTvHome); + } + + + activeModel.setOnClickListener(new NoDoubleClickListener() { + @Override + public void onNoDoubleClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, -1); + } + } + }); + + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 100); + } + } + }); + + mLlBg.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/ModelBindActivity.java b/app/src/main/java/com/yonsz/z1/version5/model/ModelBindActivity.java new file mode 100644 index 0000000..da28e2b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/ModelBindActivity.java @@ -0,0 +1,428 @@ +package com.yonsz.z1.version5.model; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.CheckBox; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.bigkoo.pickerview.OptionsPickerView; +import com.bigkoo.pickerview.TimePickerView; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.LockModellEvent; +import com.yonsz.z1.database.entity.entitya2.AddModelEntity; +import com.yonsz.z1.database.entity.entitya2.SafeVoiceEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.homemanage.ModelDetailActivity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.model.ModelSelectActivity; +import com.yonsz.z1.model.ReapetTimeActivity; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.version4.fragment.SafeDeviceFragment; +import com.yonsz.z1.view.SwitchView; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; +import com.yonsz.z1.ybl.panel.PanelModelSelectActivity; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.ADD_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_SUCCESS; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.MODEL_SELECT; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.SURE_BUTTON; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_SUCCESS; + +public class ModelBindActivity extends BaseActivity { + private TitleView mTitleView; + private RelativeLayout modelSelectRl, repeatTimeRl, timeSetRl; + private TextView timeSetTv, onceTimeTv, modelSelectTv; + private String modelType; + private int model; + private boolean isModify = false; + private String useId; + private TimeSetEntity.ObjEntity mObjEntity; + private String week = ""; + private LoadingDialog mLoadingDialog; + private static final List options1Items = new ArrayList<>(); + private String modelId = "", modelName = "", deviceId = "", autoCloseAfterTrigger = "true", deviceModel = "0"; + private int modelDelay = -1; + private TextView tv_clear, tv_sure; + private CheckBox cb_device_defence; + private String lockType = "lock"; + private int min = 0; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_model_bind); + initView(); + } + + @Override + public void onBackPressed() { + finish(); + } + + private void initView() { + if (null != getIntent().getExtras().get("autoCloseAfterTrigger")) { + autoCloseAfterTrigger = getIntent().getExtras().get("autoCloseAfterTrigger").toString(); + } + if (null != getIntent().getExtras().get("deviceModel")) { + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + } + if (null != getIntent().getExtras().get("lockType")) { + lockType = getIntent().getExtras().get("lockType").toString(); + } + modelId = getIntent().getExtras().get("modelId").toString(); + modelName = getIntent().getExtras().get("modelName").toString(); + deviceId = getIntent().getExtras().get("deviceId").toString(); + modelDelay = (int) getIntent().getExtras().get("modelDelay"); + cb_device_defence = (CheckBox) findViewById(R.id.cb_device_defence); + mTitleView = (TitleView) findViewById(R.id.title_time_set); + mTitleView.setHead("场景联动"); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.clearBackGroud(); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setHeadFuntionTxtAndSise16(""); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + } + + @Override + public void onFunctionText() { + + } + }); + + modelSelectRl = (RelativeLayout) findViewById(R.id.rl_model_select); + repeatTimeRl = (RelativeLayout) findViewById(R.id.rl_repeat_time); + onceTimeTv = (TextView) findViewById(R.id.tv_once_time); + tv_clear = (TextView) findViewById(R.id.tv_clear); + tv_sure = (TextView) findViewById(R.id.tv_sure); + timeSetRl = (RelativeLayout) findViewById(R.id.rl_time_set); + timeSetTv = (TextView) findViewById(R.id.tv_time_set); + modelSelectTv = (TextView) findViewById(R.id.tv_model_select); + modelSelectRl.setOnClickListener(this); + repeatTimeRl.setOnClickListener(this); + timeSetRl.setOnClickListener(this); + tv_clear.setOnClickListener(this); + tv_sure.setOnClickListener(this); + cb_device_defence.setOnClickListener(this); + + modelSelectTv.setText(modelName); + + if (modelDelay != -1 && modelDelay != 0) { + timeSetTv.setVisibility(View.VISIBLE); + + if (modelDelay < 60) { + timeSetTv.setText(modelDelay + "秒钟后"); + } else { + int minite = modelDelay % 60; + int hour = modelDelay / 60; + if (minite == 0) { + timeSetTv.setText(hour + getString(R.string.minute_later)); + } else { + timeSetTv.setText(hour + getString(R.string.minute_later) + minite + "秒钟后"); + } + } + if (autoCloseAfterTrigger.equals("true")) { + cb_device_defence.setChecked(true); + } else { + cb_device_defence.setChecked(false); + } + } + } + + @Override + public void onClick(View v) { + Intent intent; + switch (v.getId()) { + case R.id.rl_model_select: + intent = new Intent(this, SafeModelSelectActivity.class); + intent.putExtra("configKey", "1"); + intent.putExtra("id", deviceId); + intent.putExtra("keyName", modelName); + intent.putExtra("modelId", modelId); + startActivityForResult(intent, MODEL_SELECT); + break; + case R.id.rl_repeat_time: + intent = new Intent(ModelBindActivity.this, ReapetTimeActivity.class); + if (week.length() == 7) { + intent.putExtra("repeatTime", week); + } + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.rl_time_set: + setTime(timeSetTv); + break; + case R.id.tv_clear: + ConfirmDialog dialog = new ConfirmDialog(ModelBindActivity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + sceneModeTriggerSet("", -1, lockType); + break; + } + } + }); + dialog.setContent("确定清除场景联动设置?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_sure: + if (TextUtils.isEmpty(modelId)) { + ToastUtil.show(ModelBindActivity.this, "请选择情景模式"); + return; + } + if (TextUtils.isEmpty(timeSetTv.getText().toString())) { + ToastUtil.show(ModelBindActivity.this, "请设置缓冲时间"); + return; + } + String s = (String) timeSetTv.getText(); + min = 0; + if (s.substring(s.length() - 3, s.length()).equals("秒钟后")) { + min = Integer.parseInt(s.substring(0, s.length() - 3)); + } else if (s.substring(s.length() - 3, s.length()).equals(getString(R.string.minute_later))) { + min = Integer.parseInt(s.substring(0, s.length() - 3)) * 60; + } else { + if (s.substring(s.length() - 7, s.length()).equals("eslater")) { + min = Integer.parseInt(s.substring(0, s.length() - 12)); + } else { + min = Integer.parseInt(s.substring(0, s.length() - 10)) * 60; + } + } + sceneModeTriggerSet(modelId, min, lockType); + break; + } + } + + private void setTime(final TextView textView) { + options1Items.clear(); + options1Items.add("10秒钟"); + options1Items.add("30秒钟"); + options1Items.add(getString(R.string.time_1m)); + options1Items.add("2分钟"); + options1Items.add(getString(R.string.time_3m)); + options1Items.add(getString(R.string.time_5m)); + options1Items.add(getString(R.string.time_10m)); + options1Items.add(getString(R.string.time_15m)); + options1Items.add(getString(R.string.time_30m)); + OptionsPickerView pvOptions = new OptionsPickerView.Builder(ModelBindActivity.this, new OptionsPickerView.OnOptionsSelectListener() { + @Override + public void onOptionsSelect(int options1, int option2, int options3, View v) { + //返回的分别是三个级别的选中位置 + String s = options1Items.get(options1); + textView.setVisibility(View.VISIBLE); + textView.setText(s + getString(R.string.later)); + } + }) + .setTextColorCenter(Color.BLACK)//设置选中项的颜色 + .build(); + pvOptions.setPicker(options1Items); + pvOptions.show(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case ADD_MODEL_TIME_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + AddModelEntity addModelEntity = (AddModelEntity) msg.obj; + if (isModify) { + Intent intent = new Intent(ModelBindActivity.this, ModelDetailActivity.class); + intent.putExtra("setTime", timeSetTv.getText()); + intent.putExtra("repeatTime", onceTimeTv.getText()); + setResult(MODEL_REAPEAT, intent); + } + finish(); + break; + case ADD_MODEL_TIME_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(ModelBindActivity.this, (String) msg.obj); + break; + case UPDATE_MODEL_TIME_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + AddModelEntity addModelEntity1 = (AddModelEntity) msg.obj; + // ToastUtil.show(TimeSetting4Activity.this, addModelEntity1.getMsg().toString()); + if (isModify) { + Intent intent = new Intent(ModelBindActivity.this, ModelDetailActivity.class); + intent.putExtra("setTime", timeSetTv.getText()); + intent.putExtra("repeatTime", onceTimeTv.getText()); + setResult(MODEL_REAPEAT, intent); + } + finish(); + /*mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000);*/ + break; + case UPDATE_MODEL_TIME_FAIL: + case ALLOW_VOICE_CONTROLL_FAIL: + /*if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + }*/ + ToastUtil.show(ModelBindActivity.this, (String) msg.obj); + break; + case SELECT_MODEL_TIME_SUCCESS: + TimeSetEntity timeSetEntity = (TimeSetEntity) msg.obj; + List mDatas = timeSetEntity.getObj(); + for (int i = 0; i < mDatas.size(); i++) { + if (mDatas.get(i).getModelType().equals(modelType)) { + mObjEntity = mDatas.get(i); + } + } + break; + case SURE_BUTTON: + + break; + case ALLOW_VOICE_CONTROLL_SUCCESS: + int arg1 = msg.arg1; + EventBus.getDefault().post( + new EventBusEntity("关闭")); + SafeVoiceEntity.DataBean.ModeTriggerBean modeTriggerBean = new SafeVoiceEntity.DataBean.ModeTriggerBean(); + modeTriggerBean.setType(lockType); + if (arg1 == -1) { + ToastUtil.show(ModelBindActivity.this, "清除成功"); + modelId = ""; + modelName = ""; + modelSelectTv.setText(""); + timeSetTv.setText(""); + modeTriggerBean.setModeId(""); + modeTriggerBean.setModeName(""); + modeTriggerBean.setValidTimeAfter(-1); + modeTriggerBean.setAutoCloseAfterTrigger("false"); + cb_device_defence.setChecked(false); + EventBus.getDefault().post( + new LockModellEvent(modeTriggerBean)); + } else { + ToastUtil.show(ModelBindActivity.this, "保存成功"); + modeTriggerBean.setModeId(modelId); + modeTriggerBean.setModeName(modelName); + modeTriggerBean.setValidTimeAfter(min); + modeTriggerBean.setAutoCloseAfterTrigger(cb_device_defence.isChecked() + ""); + EventBus.getDefault().post( + new LockModellEvent(modeTriggerBean)); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + } + break; + } + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODEL_REAPEAT: + if (data != null && data.getExtras().get("modelRepeat") != null) { + if (!TextUtils.isEmpty(data.getExtras().get("modelRepeat").toString().trim())) { + onceTimeTv.setText(data.getExtras().get("modelRepeat").toString().trim()); + week = data.getExtras().get("week").toString().trim(); + } else { + onceTimeTv.setText(getString(R.string.once_time)); + week = "0000000"; + } + } + break; + case MODEL_SELECT: + if (data != null && data.getExtras().get("modelSelect") != null) { + if (!TextUtils.isEmpty(data.getExtras().get("modelSelect").toString().trim())) { + modelId = data.getExtras().get("modelSelect").toString().trim(); + modelName = data.getExtras().get("modelName").toString().trim(); + modelSelectTv.setText(modelName); + } + } + break; + } + } + + private void sceneModeTriggerSet(String modelId, final int validTimeAfter, String type) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", getIntent().getExtras().get("deviceType").toString()); + map.put("modeId", modelId); + map.put("validTimeAfter", validTimeAfter); + map.put("type", type); + map.put("autoCloseAfterTrigger", cb_device_defence.isChecked()); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SCENEMODETRIGGER_SET, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("sceneModeTriggerSet", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_SUCCESS); + msg.obj = obj; + msg.arg1 = validTimeAfter; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ALLOW_VOICE_CONTROLL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/ModelBindTypeActivity.java b/app/src/main/java/com/yonsz/z1/version5/model/ModelBindTypeActivity.java new file mode 100644 index 0000000..1c2d02d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/ModelBindTypeActivity.java @@ -0,0 +1,171 @@ +package com.yonsz.z1.version5.model; + +import static com.yonsz.z1.net.Constans.ALLOW_VOICE_CONTROLL_FAIL; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.entity5.LockModellEvent; +import com.yonsz.z1.database.entity.entitya2.SafeVoiceEntity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.TitleView; + +public class ModelBindTypeActivity extends BaseActivity { + private TitleView mTitleView; + private RelativeLayout unlockRl, lockRl; + private TextView lockTv, unlockTv; + private String modelId = "", modelName = "", deviceId = "", autoCloseAfterTrigger = "false", deviceModel = "0"; + private String lockModelId = "", lockModelName = "", lockAutoCloseAfterTrigger = "false"; + private int modelDelay = -1, lockModelDelay = -1; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_model_bind_type); + initView(); + } + + public void onEventMainThread(LockModellEvent event) { + Log.i("LockModellEvent",JSON.toJSONString(event)); + SafeVoiceEntity.DataBean.ModeTriggerBean msg = event.getMsg(); + if (msg.getType().equals("unlock")) { + modelId = msg.getModeId(); + modelName = msg.getModeName(); + modelDelay = msg.getValidTimeAfter(); + autoCloseAfterTrigger = msg.getAutoCloseAfterTrigger(); + unlockTv.setText(modelName); + } else { + lockModelId = msg.getModeId(); + lockModelName = msg.getModeName(); + lockModelDelay = msg.getValidTimeAfter(); + lockAutoCloseAfterTrigger = msg.getAutoCloseAfterTrigger(); + lockTv.setText(lockModelName); + } + } + + @Override + public void onBackPressed() { + finish(); + } + + private void initView() { + if (null != getIntent().getExtras().get("autoCloseAfterTrigger")) { + autoCloseAfterTrigger = getIntent().getExtras().get("autoCloseAfterTrigger").toString(); + } + if (null != getIntent().getExtras().get("lockAutoCloseAfterTrigger")) { + lockAutoCloseAfterTrigger = getIntent().getExtras().get("lockAutoCloseAfterTrigger").toString(); + } + if (null != getIntent().getExtras().get("deviceModel")) { + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + } + modelId = getIntent().getExtras().get("modelId").toString(); + modelName = getIntent().getExtras().get("modelName").toString(); + modelDelay = (int) getIntent().getExtras().get("modelDelay"); + lockModelId = getIntent().getExtras().get("lockModelId").toString(); + lockModelName = getIntent().getExtras().get("lockModelName").toString(); + lockModelDelay = (int) getIntent().getExtras().get("lockModelDelay"); + deviceId = getIntent().getExtras().get("deviceId").toString(); + mTitleView = (TitleView) findViewById(R.id.title_time_set); + mTitleView.setHead("场景联动"); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.clearBackGroud(); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setHeadFuntionTxtAndSise16(""); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + } + + @Override + public void onFunctionText() { + + } + }); + + unlockRl = (RelativeLayout) findViewById(R.id.rl_unlock); + lockRl = (RelativeLayout) findViewById(R.id.rl_lock); + lockTv = (TextView) findViewById(R.id.tv_lock); + unlockTv = (TextView) findViewById(R.id.tv_unlock); + unlockRl.setOnClickListener(this); + lockRl.setOnClickListener(this); + + lockTv.setText(lockModelName); + unlockTv.setText(modelName); + } + + @Override + public void onClick(View v) { + Intent intent; + switch (v.getId()) { + case R.id.rl_unlock: + intent = new Intent(ModelBindTypeActivity.this, ModelBindActivity.class); + intent.putExtra("modelId", modelId); + intent.putExtra("modelDelay", modelDelay); + intent.putExtra("modelName", modelName); + intent.putExtra("deviceId", deviceId); + intent.putExtra("deviceType", INTELLIGENT_DOOR_LOCK); + intent.putExtra("lockType", "unlock"); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("autoCloseAfterTrigger", autoCloseAfterTrigger); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.rl_lock: + intent = new Intent(ModelBindTypeActivity.this, ModelBindActivity.class); + intent.putExtra("modelId", lockModelId); + intent.putExtra("modelDelay", lockModelDelay); + intent.putExtra("modelName", lockModelName); + intent.putExtra("deviceId", deviceId); + intent.putExtra("deviceType", getIntent().getExtras().get("deviceType").toString()); + intent.putExtra("lockType", "lock"); + intent.putExtra("deviceModel", deviceModel); + intent.putExtra("autoCloseAfterTrigger", lockAutoCloseAfterTrigger); + startActivityForResult(intent, MODEL_REAPEAT); + break; + } + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case UPDATE_MODEL_TIME_FAIL: + case ALLOW_VOICE_CONTROLL_FAIL: + ToastUtil.show(ModelBindTypeActivity.this, (String) msg.obj); + break; + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODEL_REAPEAT: + if (data != null && data.getExtras().get("modelRepeat") != null) { + if (!TextUtils.isEmpty(data.getExtras().get("modelRepeat").toString().trim())) { + + } else { + + } + } + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/ModelExecAdapter.java b/app/src/main/java/com/yonsz/z1/version5/model/ModelExecAdapter.java new file mode 100644 index 0000000..109bac6 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/ModelExecAdapter.java @@ -0,0 +1,137 @@ +package com.yonsz.z1.version5.model; + +import android.content.Context; +import android.support.v7.widget.CardView; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.NewSceneEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; + +import java.util.List; + +/** + * Created by Administrator on 2020/1/3. + */ + +public class ModelExecAdapter extends RecyclerView.Adapter { + + private List mDeviceBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + + public ModelExecAdapter(Context mContext, List mDeviceBeans) { + super(); + this.mContext = mContext; + this.mDeviceBeans = mDeviceBeans; + } + + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_model_exec, + null); + return new ModelExecAdapter.MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(ModelExecAdapter.MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { +// return mDeviceBeans != null ? mDeviceBeans.size() : 0; + if (mDeviceBeans != null) { + if (mDeviceBeans.size() == 1) { + return 0; + } else { + return mDeviceBeans.size(); + } + } else { + return 0; + } + } + + @Override + public long getItemId(int position) { + return super.getItemId(position); + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private TextView deviceName; + private TextView tv_active_model; + private TextView redCircle; + private TextView deviceState; + private ImageView deviceIcon; + private CardView cardView; + + + public MessageViewHolder(View convertView) { + super(convertView); + deviceIcon = (ImageView) convertView.findViewById(R.id.iv_device_icon); + deviceName = (TextView) convertView.findViewById(R.id.tv_device_name); + redCircle = (TextView) convertView.findViewById(R.id.tv_red_circle); + tv_active_model = (TextView) convertView.findViewById(R.id.tv_active_model); + deviceState = (TextView) convertView.findViewById(R.id.tv_device_state); + cardView = (CardView) convertView.findViewById(R.id.cardView); + } + + public void setViews(final MessageViewHolder holder, final int position) { + //修改数据信息(含加密标识符) + final NewSceneEntity.DataBean.ModeExecsBean deviceBean = mDeviceBeans.get(position); + if (deviceBean.getName().toString().length() > 13) { + deviceName.setText(deviceBean.getName().substring(0, 13)); + } else { + deviceName.setText(deviceBean.getName()); + } + if (deviceBean.getExecType().equals("single")) { + deviceIcon.setImageResource(R.drawable.icon_alone); + tv_active_model.setText("单独执行"); + deviceState.setText("单独"); + redCircle.setVisibility(View.GONE); + deviceName.setText(deviceBean.getGatewayAddressName()); + } else { + deviceIcon.setImageResource(R.drawable.icon_combination); + tv_active_model.setText("组合执行"); + deviceState.setText("组合"); + redCircle.setVisibility(View.VISIBLE); + } + tv_active_model.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 0); + } + } + }); + + redCircle.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 1); + } + } + }); + cardView.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 100); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/ModelNewAdapter.java b/app/src/main/java/com/yonsz/z1/version5/model/ModelNewAdapter.java new file mode 100644 index 0000000..c68595a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/ModelNewAdapter.java @@ -0,0 +1,188 @@ +package com.yonsz.z1.version5.model; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class ModelNewAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + + + public ModelNewAdapter(Context context, List mDataBeans) { + this.mDataBeans = mDataBeans; + this.mContext = context; + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_new_model_type, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + private void setWeek(TimeSetEntity.DataBean objEntity, TextView weekTv) { + if (objEntity.getOnceFlag() == 0) { + if (objEntity.getWeekNum1() != null) { + String str = ""; + if (objEntity.getWeekNum1().equals("1")) { + str += mContext.getString(R.string.Monday); + } else { + } + if (objEntity.getWeekNum2().equals("1")) { + str += mContext.getString(R.string.Tuesday); + } else { + } + if (objEntity.getWeekNum3().equals("1")) { + str += mContext.getString(R.string.Wednesday); + } else { + } + if (objEntity.getWeekNum4().equals("1")) { + str += mContext.getString(R.string.Thursday); + } else { + } + if (objEntity.getWeekNum5().equals("1")) { + str += mContext.getString(R.string.Friday); + } else { + } + if (objEntity.getWeekNum6().equals("1")) { + str += mContext.getString(R.string.Saturday); + } else { + } + if (objEntity.getWeekNum7().equals("1")) { + str += mContext.getString(R.string.Sunday); + } else { + } + if (str.length() > 9) { + weekTv.setText(str.substring(0, 9) + "…"); + } else { + weekTv.setText(str); + } + } + } else { + weekTv.setText(R.string.once_time); + } + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_model_type_pic) + ImageView mIvModelPic; + @BindView(R.id.tv_model_name_home) + TextView mTvModelName; + @BindView(R.id.tv_model_stage_home) + TextView mTvModelStage; + @BindView(R.id.tv_once_time_home) + TextView onceTimeHome; + @BindView(R.id.tv_week_home) + TextView weekTvHome; + @BindView(R.id.tv_active_model) + TextView activeModel; + @BindView(R.id.ll_bg) + RelativeLayout mLlBg; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { +// mIvModelPic.setVisibility(View.VISIBLE); + switch (mDataBeans.get(position).getModelType()) { + case "1": + mLlBg.setBackgroundResource(R.drawable.pic_index_home); + break; + case "2": + mLlBg.setBackgroundResource(R.drawable.pic_index_leave_home); + break; + case "3": + mLlBg.setBackgroundResource(R.drawable.pic_index_sleep); + break; + case "4": + mLlBg.setBackgroundResource(R.drawable.pic_index_get_up); + break; + default: + mLlBg.setBackgroundResource(R.drawable.pic_index_custom); + break; + } +// ImageLoader.getInstance().displayImage(mDataBeans.get(position).getIcon(), mIvModelPic, UniKongApp.getHiApp().getImageLoaderOption()); + mTvModelName.setText(mDataBeans.get(position).getModelName()); + activeModel.setText("执行"); + if (mDataBeans.get(position).getBasicSwitch() == 0) { + mTvModelStage.setText(R.string.timing_close); + activeModel.setVisibility(View.INVISIBLE); + } else { + mTvModelStage.setText(R.string.timing_open); + activeModel.setVisibility(View.VISIBLE); + } + if (mDataBeans.get(position).getBasicSwitch() == 0 || mDataBeans.get(position).getOpenFlag() == 0) { + if (mDataBeans.get(position).getExecTime() != null) { + onceTimeHome.setText(""); + } + weekTvHome.setText(""); + } else { + if (mDataBeans.get(position).getExecTime() != null) { + onceTimeHome.setText(mDataBeans.get(position).getExecTime()); + } + setWeek(mDataBeans.get(position), weekTvHome); + } + activeModel.setOnClickListener(new NoDoubleClickListener() { + @Override + public void onNoDoubleClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 0); + } + } + }); + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 1); + } + } + }); + mLlBg.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/ModelTimeActivity.java b/app/src/main/java/com/yonsz/z1/version5/model/ModelTimeActivity.java new file mode 100644 index 0000000..a90708f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/ModelTimeActivity.java @@ -0,0 +1,218 @@ +package com.yonsz.z1.version5.model; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.View; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.database.entity.entitya2.AddModelEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.homemanage.TimeSetting4Activity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.UPDATE_MODEL_TIME; + +/** + * Created by Administrator on 2019/4/3. + */ + +public class ModelTimeActivity extends BaseActivity { + private TitleView mTitleView; + private List mDatas = new ArrayList<>(); + private RecyclerView mRecyclerView; + private ModelTimeAdapter modelAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.fragment_scene5); + initView(); + } + + private void initView() { + mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); + mTitleView = (TitleView) findViewById(R.id.title_scene); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setHead("时间设置"); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + // findModeTimeList(); + } + + @Override + public void onResume() { + super.onResume(); + findModeTimeList(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + TimeSetEntity timeSetEntity = (TimeSetEntity) msg.obj; + mDatas.clear(); + mDatas.addAll(timeSetEntity.getData()); + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(this); + manager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(manager); + modelAdapter = new ModelTimeAdapter(this, mDatas); + mRecyclerView.setAdapter(modelAdapter); + + modelAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + @Override + public void onClick(View view, int position, int i) { + if (i == 100) { + Intent intent = new Intent(ModelTimeActivity.this, TimeSetting4Activity.class); + intent.putExtra("model", getIntent().getExtras().get("model").toString()); + if (mDatas.get(position).getId().isEmpty()) { + intent.putExtra("isAdd", false); + } else { + intent.putExtra("isAdd", true); + } + intent.putExtra("modelId", mDatas.get(position).getModelId()); + intent.putExtra("timeId", mDatas.get(position).getId()); + intent.putExtra("houseId", mDatas.get(position).getHouseId()); + intent.putExtra("execType", mDatas.get(position).getExecType()); + intent.putExtra("groupId", mDatas.get(position).getGroupId()); + intent.putExtra("ziId", mDatas.get(position).getZiId()); + intent.putExtra("mObjEntity", (Serializable) mDatas.get(position)); + startActivityForResult(intent, MODEL_REAPEAT); + } else { + if (i == 1) { + updateModelTime(mDatas.get(position).getId(), 1); + } else { + updateModelTime(mDatas.get(position).getId(), 0); + } + } + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + break; + case ADD_MODEL_BASIC_SUCCESS: + String obj = (String) msg.obj; + if (obj.isEmpty()) { + finish(); + } else { + modelAdapter.notifyDataSetChanged(); + EventBus.getDefault().post( + new ChooseHomeEvent("10")); + } + break; + case ADD_MODEL_BASIC_FAIL: + case SELECT_MODEL_TIME_FAIL: + case UPDATE_MODEL_TIME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void findModeTimeList() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", getIntent().getExtras().get("houseId").toString()); + map.put("modelId", getIntent().getExtras().get("modelId").toString()); + util.requestGetByAsy(NetWorkUrl.FIND_MODETIME_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("findModeTimeList", respone); + TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void updateModelTime(String id, int openFlag) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", id); + map.put("houseId", getIntent().getExtras().get("houseId").toString()); + map.put("openFlag", String.valueOf(openFlag)); + netWorkUtil.requestPostByAsynewApi(UPDATE_MODEL_TIME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateModelTime", "ShareDeviceActivity onSuccess()" + respone); + AddModelEntity obj = JSON.parseObject(respone, AddModelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/ModelTimeAdapter.java b/app/src/main/java/com/yonsz/z1/version5/model/ModelTimeAdapter.java new file mode 100644 index 0000000..03f9185 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/ModelTimeAdapter.java @@ -0,0 +1,190 @@ +package com.yonsz.z1.version5.model; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.view.SwitchView; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class ModelTimeAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + + + public ModelTimeAdapter(Context context, List mDataBeans) { + this.mDataBeans = mDataBeans; + this.mContext = context; + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_model_time, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + private void setWeek(TimeSetEntity.DataBean objEntity, TextView weekTv) { + if (objEntity.getOnceFlag() == 0) { + if (objEntity.getWeekNum1() != null) { + String str = ""; + if (objEntity.getWeekNum1().equals("1")) { + str += mContext.getString(R.string.Monday); + } else { + } + if (objEntity.getWeekNum2().equals("1")) { + str += mContext.getString(R.string.Tuesday); + } else { + } + if (objEntity.getWeekNum3().equals("1")) { + str += mContext.getString(R.string.Wednesday); + } else { + } + if (objEntity.getWeekNum4().equals("1")) { + str += mContext.getString(R.string.Thursday); + } else { + } + if (objEntity.getWeekNum5().equals("1")) { + str += mContext.getString(R.string.Friday); + } else { + } + if (objEntity.getWeekNum6().equals("1")) { + str += mContext.getString(R.string.Saturday); + } else { + } + if (objEntity.getWeekNum7().equals("1")) { + str += mContext.getString(R.string.Sunday); + } else { + } + weekTv.setText(str); + } + } else { + weekTv.setText(R.string.once_time); + } + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_model_type_pic) + ImageView mIvModelPic; + @BindView(R.id.tv_model_name_home) + TextView mTvModelName; + @BindView(R.id.tv_model_name) + TextView mTvModelZiName; + @BindView(R.id.tv_model_stage_home) + TextView mTvModelStage; + @BindView(R.id.tv_once_time_home) + TextView onceTimeHome; + @BindView(R.id.tv_week_home) + TextView weekTvHome; + @BindView(R.id.ll_bg) + RelativeLayout mLlBg; + @BindView(R.id.stv_third) + SwitchView timeOpenCb; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + mTvModelName.setText(mDataBeans.get(position).getModelName()); + if (mDataBeans.get(position).getExecType().equals("single")) { + mTvModelZiName.setText(mDataBeans.get(position).getZiName()); + } else { + mTvModelZiName.setText(mDataBeans.get(position).getGroupName()); + } + if (mDataBeans.get(position).getOpenFlag() == 0) { + mTvModelStage.setText(R.string.timing_close); + timeOpenCb.setOpened(false); + } else { + mTvModelStage.setText(R.string.timing_open); + timeOpenCb.setOpened(true); + } + /*if (mDataBeans.get(position).getOpenFlag() == 0 || mDataBeans.get(position).getOpenFlag() == 0) { + if (mDataBeans.get(position).getExecTime() != null) { + onceTimeHome.setText(""); + } + weekTvHome.setText(""); + } else { + if (mDataBeans.get(position).getExecTime() != null) { + onceTimeHome.setText(mDataBeans.get(position).getExecTime()); + } + setWeek(mDataBeans.get(position), weekTvHome); + }*/ + if (mDataBeans.get(position).getExecTime() != null) { + onceTimeHome.setText(mDataBeans.get(position).getExecTime()); + } + setWeek(mDataBeans.get(position), weekTvHome); + + + timeOpenCb.setOnClickListener(new NoDoubleClickListener() { + @Override + public void onNoDoubleClick(View v) { + if (timeOpenCb.isOpened()) { + if(mDataBeans.get(position).getExecTime().isEmpty()) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 100); + } + return; + } + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 1); + } + } else { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 0); + } + } + + } + }); + + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 100); + } + } + }); + mLlBg.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/SafeFunctionAdapter.java b/app/src/main/java/com/yonsz/z1/version5/model/SafeFunctionAdapter.java new file mode 100644 index 0000000..648847c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/SafeFunctionAdapter.java @@ -0,0 +1,99 @@ +package com.yonsz.z1.version5.model; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.OnRecyclerClickListener; + +import java.util.List; + +/** + * Created by Administrator on 2017/7/26. + */ + +public class SafeFunctionAdapter extends RecyclerView.Adapter { + private List mDatas; + private Context mContext; + private int isShowSelcet; + private String chooseModelId; + private String modelId = ""; + private OnRecyclerClickListener mOnItemClickListener; + + public SafeFunctionAdapter(List datas, Context context, int isShowSelcet, String chooseModelId) { + mDatas = datas; + mContext = context; + this.chooseModelId = chooseModelId; + this.isShowSelcet = isShowSelcet; + } + + public void setIsShowSelcet(String chooseModelId) { + this.chooseModelId = chooseModelId; + this.notifyDataSetChanged(); + } + + public void setmOnItemClickListener(OnRecyclerClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_panel_default, + parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public int getItemCount() { + return mDatas.size(); + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private TextView modelNameTv; + private ImageView modelSelectIv; + private RelativeLayout modelRl; + + + public MessageViewHolder(View view) { + super(view); + modelNameTv = (TextView) itemView.findViewById(R.id.tv_model_name); + modelSelectIv = (ImageView) itemView.findViewById(R.id.iv_model_select); + modelRl = (RelativeLayout) itemView.findViewById(R.id.rl_model_select); + } + + public void setViews(final int position) { + modelNameTv.setText(mDatas.get(position)); + if (chooseModelId.equals(mDatas.get(position))) { + modelSelectIv.setVisibility(View.VISIBLE); + } else { + modelSelectIv.setVisibility(View.GONE); + } + + modelRl.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/SafeFunctionSelectActivity.java b/app/src/main/java/com/yonsz/z1/version5/model/SafeFunctionSelectActivity.java new file mode 100644 index 0000000..d32a7a8 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/SafeFunctionSelectActivity.java @@ -0,0 +1,181 @@ +package com.yonsz.z1.version5.model; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.Toast; + +import com.alibaba.fastjson.JSON; +import com.yanzhenjie.recyclerview.swipe.SwipeItemClickListener; +import com.yanzhenjie.recyclerview.swipe.SwipeMenu; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuBridge; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuCreator; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuItemClickListener; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.listener.OnRecyclerClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.Constans.YBL_SCENE_ADD_SUCCESS; + +public class SafeFunctionSelectActivity extends BaseActivity { + private TitleView mTitleView; + private String configKey; + private SwipeMenuRecyclerView myPanelModelListView; + private List customList = new ArrayList<>(); + private SafeFunctionAdapter mAdapter; + private String id, deviceType, deviceModel, safeFunction = "安防报警"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_panel_model_select); + initView(); + } + + @Override + public void onResume() { + super.onResume(); + } + + private void initView() { + id = getIntent().getExtras().get("deviceId").toString(); + deviceType = getIntent().getExtras().get("deviceType").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + safeFunction = getIntent().getExtras().get("safeFunction").toString(); + myPanelModelListView = (SwipeMenuRecyclerView) findViewById(R.id.my_share_list); + mTitleView = (TitleView) findViewById(R.id.title_model_select); + mTitleView.setHead("设备应用"); + mTitleView.setHeadFuntionTxtAndSise16("保存"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + subsetExtend(); + } + + @Override + public void onFunctionText() { + + } + }); + + customList.add("安防报警"); + customList.add("场景联动"); + + mAdapter = new SafeFunctionAdapter(customList, this, 100, safeFunction); + RecyclerViewNoBugLinearLayoutManager manage = new RecyclerViewNoBugLinearLayoutManager(this); + manage.setOrientation(LinearLayoutManager.VERTICAL); + myPanelModelListView.setVisibility(View.VISIBLE); + myPanelModelListView.setHasFixedSize(true); + myPanelModelListView.setLayoutManager(manage); + myPanelModelListView.setAdapter(mAdapter); + + mAdapter.setmOnItemClickListener(new OnRecyclerClickListener() { + @Override + public void onClick(View view, int position) { + safeFunction = customList.get(position); + mAdapter.setIsShowSelcet(safeFunction); + } + }); + } + + @Override + public void onClick(View v) { + super.onClick(v); + switch (v.getId()) { + + } + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + ToastUtil.show(this, "保存成功"); + EventBus.getDefault().post( + new EventBusEntity("关闭")); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + break; + } + } + + private void subsetExtend() { + String body; + if (safeFunction.equals("场景联动")) { + body = "{\"deviceApp\":\"" + "scene" + "\"}"; + } else { + body = "{\"deviceApp\":\"" + "alarm" + "\"}"; + } + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", id); + map.put("deviceType", deviceType); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + map.put("deviceModel", deviceModel); + map.put("method", "setDeviceApp"); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_EXTEND, map, body, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetExtend", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/SafeModelSelectActivity.java b/app/src/main/java/com/yonsz/z1/version5/model/SafeModelSelectActivity.java new file mode 100644 index 0000000..2a93165 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/SafeModelSelectActivity.java @@ -0,0 +1,481 @@ +package com.yonsz.z1.version5.model; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.Toast; + +import com.alibaba.fastjson.JSON; +import com.yanzhenjie.recyclerview.swipe.SwipeItemClickListener; +import com.yanzhenjie.recyclerview.swipe.SwipeMenu; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuBridge; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuCreator; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuItemClickListener; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AddPanelModelEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.ybl.panel.SafeModelAdapter; +import com.yonsz.z1.ybl.panel.YblModelDetailActivity; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.DEL_MODEL_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.DEL_MODEL_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.MODEL_SELECT; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.YBL_SCENE_ADD_FAIL; +import static com.yonsz.z1.net.Constans.YBL_SCENE_ADD_SUCCESS; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.NetWorkUrl.ADD_MODEL_BASIC; +import static com.yonsz.z1.net.NetWorkUrl.SELECT_MODEL_TIME; + +public class SafeModelSelectActivity extends BaseActivity implements SwipeItemClickListener { + private TitleView mTitleView; + private RelativeLayout inHomeRl, outHomeRl, inBedRl, outBedRl, userDefineRl; + private ImageView inHomeIv, outHomeIv, inBedIv, outBedIv; + private String configKey; + private SwipeMenuRecyclerView myPanelModelListView; + private List mDatas = new ArrayList<>(); + private List customList = new ArrayList<>(); + private SafeModelAdapter mAdapter; + private String id; + private String modelId = ""; + private String chooseModelId = ""; + private String inhomeId = "", outHomeId = "", inbedId = "", outBedId = ""; + private String keyName = ""; + private LinearLayout ll_no_office; + + + /** + * 菜单创建器,在Item要创建菜单的时候调用。 + */ + private SwipeMenuCreator swipeMenuCreator = new SwipeMenuCreator() { + @Override + public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) { + int width = getResources().getDimensionPixelSize(R.dimen.y50); + + // 1. MATCH_PARENT 自适应高度,保持和Item一样高; + // 2. 指定具体的高,比如80; + // 3. WRAP_CONTENT,自身高度,不推荐; + int height = getResources().getDimensionPixelSize(R.dimen.y50); + // int height = ViewGroup.LayoutParams.MATCH_PARENT; + // 添加右侧的,如果不添加,则右侧不会出现菜单。 + { + /*SwipeMenuItem deleteItem = new SwipeMenuItem(PanelModelSelectActivity.this) + .setBackground(R.color.z1_f0f0fa) + .setText(R.string.delete) + .setTextColor(Color.WHITE) + .setWidth(width) + .setHeight(height); + swipeRightMenu.addMenuItem(deleteItem);// 添加菜单到右侧。*/ + /*SwipeMenuItem setItem = new SwipeMenuItem(PanelModelSelectActivity.this) + .setBackground(R.color.z1_F5A623) + .setText(R.string.setting) + .setTextColor(Color.WHITE) + .setWidth(width) + .setHeight(height); + swipeRightMenu.addMenuItem(setItem);// 添加菜单到右侧。*/ + } + } + }; + /** + * RecyclerView的Item的Menu点击监听。 + */ + private SwipeMenuItemClickListener mMenuItemClickListener = new SwipeMenuItemClickListener() { + @Override + public void onItemClick(SwipeMenuBridge menuBridge) { + menuBridge.closeMenu(); + int direction = menuBridge.getDirection(); // 左侧还是右侧菜单。 + final int adapterPosition = menuBridge.getAdapterPosition(); // RecyclerView的Item的position。 + int menuPosition = menuBridge.getPosition(); // 菜单在RecyclerView的Item中的Position。 + + if (direction == SwipeMenuRecyclerView.RIGHT_DIRECTION) { + switch (menuPosition) { + /*case 0: + ConfirmDialog dialog = new ConfirmDialog(PanelModelSelectActivity.this, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + break; + case 1: + //删除自定义模式 + delModelBasic(customList.get(adapterPosition).getModelId()); + break; + } + } + }); + dialog.setContent("确定删除该场景模式吗?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break;*/ + /*case 1: + //设置自定义模式 + Intent intent = new Intent(PanelModelSelectActivity.this, YblModelDetailActivity.class); + intent.putExtra("model", customList.get(adapterPosition).getModelType()); + intent.putExtra("isAdd", false); + intent.putExtra("isCheckBoxOpen", false); + intent.putExtra("modelId", customList.get(adapterPosition).getModelId()); + intent.putExtra("isHaveDevice", "1"); + intent.putExtra("repeatTime", ""); + intent.putExtra("setTime", ""); + intent.putExtra("houseId", homeListEntity.getData().get(deviceNumListPosition).getId()); + intent.putExtra("modelName", customList.get(adapterPosition).getModelName()); + startActivity(intent); + break;*/ + } + } + } + }; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_panel_model_select); + initView(); + } + + @Override + public void onResume() { + super.onResume(); + selectModelTime(); + } + + private void initView() { + id = getIntent().getExtras().get("id").toString(); + configKey = (String) getIntent().getExtras().get("configKey"); + keyName = (String) getIntent().getExtras().get("keyName"); + chooseModelId = (String) getIntent().getExtras().get("modelId"); + ll_no_office = (LinearLayout) findViewById(R.id.ll_no_office); + myPanelModelListView = (SwipeMenuRecyclerView) findViewById(R.id.my_share_list); + inHomeRl = (RelativeLayout) findViewById(R.id.rl_in_home_model); + outHomeRl = (RelativeLayout) findViewById(R.id.rl_out_home_model); + inBedRl = (RelativeLayout) findViewById(R.id.rl_in_bed_model); + outBedRl = (RelativeLayout) findViewById(R.id.rl_out_bed_model); + userDefineRl = (RelativeLayout) findViewById(R.id.rl_user_defined); + inHomeIv = (ImageView) findViewById(R.id.ImageView01); + outHomeIv = (ImageView) findViewById(R.id.ImageView02); + inBedIv = (ImageView) findViewById(R.id.ImageView03); + outBedIv = (ImageView) findViewById(R.id.ImageView04); + mTitleView = (TitleView) findViewById(R.id.title_model_select); + mTitleView.setHead("场景联动"); + mTitleView.setHeadFuntionTxtAndSise16("确定"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + // yblSceneSet(); + Intent intent = new Intent(SafeModelSelectActivity.this, ModelBindActivity.class); + intent.putExtra("modelSelect", modelId); + intent.putExtra("modelName", keyName); + setResult(MODEL_SELECT, intent); + finish(); + } + + @Override + public void onFunctionText() { + + } + }); + + inHomeRl.setOnClickListener(this); + outHomeRl.setOnClickListener(this); + inBedRl.setOnClickListener(this); + outBedRl.setOnClickListener(this); + userDefineRl.setOnClickListener(this); + + switch (keyName) { + case "回家模式": + inHomeIv.setVisibility(View.VISIBLE); + break; + case "离家模式": + outHomeIv.setVisibility(View.VISIBLE); + break; + case "睡眠模式": + inBedIv.setVisibility(View.VISIBLE); + break; + case "起床模式": + outBedIv.setVisibility(View.VISIBLE); + break; + } + + mAdapter = new SafeModelAdapter(customList, this, 100, chooseModelId); + RecyclerViewNoBugLinearLayoutManager manage = new RecyclerViewNoBugLinearLayoutManager(this); + manage.setOrientation(LinearLayoutManager.VERTICAL); + myPanelModelListView.setVisibility(View.VISIBLE); + myPanelModelListView.setHasFixedSize(true); + myPanelModelListView.setLayoutManager(manage); + myPanelModelListView.setSwipeMenuCreator(swipeMenuCreator); + myPanelModelListView.setSwipeMenuItemClickListener(mMenuItemClickListener); + myPanelModelListView.setAdapter(mAdapter); + myPanelModelListView.setSwipeItemClickListener(this); + + if (homeListEntity.getData().get(deviceNumListPosition).getHouseCategory() == 3 || homeListEntity.getData().get(deviceNumListPosition).getHouseCategory() == 5) { + ll_no_office.setVisibility(View.GONE); + } + } + + @Override + public void onClick(View v) { + super.onClick(v); + switch (v.getId()) { + case R.id.rl_in_home_model: + modelId = inhomeId; + keyName = "回家模式"; + inHomeIv.setVisibility(View.VISIBLE); + outHomeIv.setVisibility(View.GONE); + inBedIv.setVisibility(View.GONE); + outBedIv.setVisibility(View.GONE); + // mTitleView.setHeadFuntionTxtColor(true); + mAdapter.setIsShowSelcet(100, ""); + mAdapter.notifyDataSetChanged(); + break; + case R.id.rl_out_home_model: + modelId = outHomeId; + keyName = "离家模式"; + outHomeIv.setVisibility(View.VISIBLE); + inHomeIv.setVisibility(View.GONE); + inBedIv.setVisibility(View.GONE); + outBedIv.setVisibility(View.GONE); + // mTitleView.setHeadFuntionTxtColor(true); + mAdapter.setIsShowSelcet(100, ""); + mAdapter.notifyDataSetChanged(); + break; + case R.id.rl_in_bed_model: + modelId = inbedId; + keyName = "睡眠模式"; + inBedIv.setVisibility(View.VISIBLE); + outHomeIv.setVisibility(View.GONE); + inHomeIv.setVisibility(View.GONE); + outBedIv.setVisibility(View.GONE); + // mTitleView.setHeadFuntionTxtColor(true); + mAdapter.setIsShowSelcet(100, ""); + mAdapter.notifyDataSetChanged(); + break; + case R.id.rl_out_bed_model: + modelId = outBedId; + keyName = "起床模式"; + outBedIv.setVisibility(View.VISIBLE); + outHomeIv.setVisibility(View.GONE); + inHomeIv.setVisibility(View.GONE); + inBedIv.setVisibility(View.GONE); + // mTitleView.setHeadFuntionTxtColor(true); + mAdapter.setIsShowSelcet(100, ""); + mAdapter.notifyDataSetChanged(); + break; + case R.id.rl_user_defined: + showModifyPop(); + break; + } + } + + public void showModifyPop() { + RenameNameDialog dialog = new RenameNameDialog(SafeModelSelectActivity.this, new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + addModelBasic(positioName); + break; + } + } + }); + dialog.setMaxEms(12); + dialog.setHintName(""); + dialog.setContent("设置情景模式名称"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + TimeSetEntity timeSetEntity = (TimeSetEntity) msg.obj; + mDatas.clear(); + mDatas.addAll(timeSetEntity.getData()); + if (null != mDatas) { + setViewDate(mDatas); + } + break; + case YBL_SCENE_ADD_SUCCESS: + ToastUtil.show(this, "保存成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 2000); + break; + case YBL_SCENE_ADD_FAIL: + case ADD_MODEL_BASIC_FAIL: + case DEL_MODEL_CONTROL_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case ADD_MODEL_BASIC_SUCCESS: + AddPanelModelEntity addModelEntity = (AddPanelModelEntity) msg.obj; + Intent intent = new Intent(SafeModelSelectActivity.this, YblModelDetailActivity.class); + intent.putExtra("model", addModelEntity.getData().getModelType()); + intent.putExtra("isAdd", false); + intent.putExtra("isCheckBoxOpen", false); + intent.putExtra("modelId", addModelEntity.getData().getId()); + intent.putExtra("isHaveDevice", "1"); + intent.putExtra("repeatTime", ""); + intent.putExtra("setTime", ""); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + intent.putExtra("modelName", addModelEntity.getData().getModelName()); + startActivity(intent); + // selectModelTime(); + break; + case DEL_MODEL_CONTROL_SUCCESS: + ToastUtil.show(this, "删除成功"); + selectModelTime(); + break; + } + } + + private void setViewDate(List datas) { + customList.clear(); + customList.addAll(datas); + + /*for (int i = customList.size() - 1; i >= 0; i--) { + if (Integer.parseInt(datas.get(i).getModelType()) < 5) { + switch (datas.get(i).getModelType()) { + case "1": + inhomeId = datas.get(i).getModelId(); + break; + case "2": + outHomeId = datas.get(i).getModelId(); + break; + case "3": + inbedId = datas.get(i).getModelId(); + break; + case "4": + outBedId = datas.get(i).getModelId(); + break; + } + customList.remove(i); + } + }*/ + mAdapter.notifyDataSetChanged(); + } + + @Override + public void onItemClick(View itemView, int position) { + // mTitleView.setHeadFuntionTxtColor(true); + inBedIv.setVisibility(View.GONE); + outHomeIv.setVisibility(View.GONE); + inHomeIv.setVisibility(View.GONE); + outBedIv.setVisibility(View.GONE); + //勾选哪一个 + modelId = customList.get(position).getModelId(); + keyName = customList.get(position).getModelName(); + mAdapter.setIsShowSelcet(position, modelId); + mAdapter.notifyDataSetChanged(); + } + + private void selectModelTime() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + if (deviceNumListPosition > homeListEntity.getData().size() - 1) { + deviceNumListPosition = 0; + } + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("isCustom", "1"); + netWorkUtil.requestGetByAsy(SELECT_MODEL_TIME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("selectModelTime", "ShareDeviceActivity onSuccess()" + respone); + TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void addModelBasic(String modelName) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("modelName", modelName); + netWorkUtil.requestPostByAsynewApi(ADD_MODEL_BASIC, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("addModelBasic", "onSuccess()" + respone); + AddPanelModelEntity obj = JSON.parseObject(respone, AddPanelModelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ADD_MODEL_BASIC_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ADD_MODEL_BASIC_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ADD_MODEL_BASIC_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/TriggerBindActivity.java b/app/src/main/java/com/yonsz/z1/version5/model/TriggerBindActivity.java new file mode 100644 index 0000000..17e382f --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/TriggerBindActivity.java @@ -0,0 +1,243 @@ +package com.yonsz.z1.version5.model; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.RelativeLayout; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.TitleView; + +import java.util.HashMap; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.MODEL_SELECT; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.SEND_UPDATEVOICE_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.SEND_UPDATEVOICE_CONTROL_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.SCENE_SAFETYBINDLIST; + +public class TriggerBindActivity extends BaseActivity { + private TitleView mTitleView; + private RelativeLayout modelSelectRl, timeSetRl; + private String configKey = "1"; + private Button bt_sure; + + public void onEventMainThread(EventBusEntity event) { + if (event.getMsg().equals("关闭")) { + finish(); + } + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_trigger_bind); + initView(); + } + + @Override + public void onBackPressed() { + finish(); + } + + private void initView() { + configKey = getIntent().getExtras().get("configKey").toString(); + bt_sure = (Button) findViewById(R.id.bt_sure); + mTitleView = (TitleView) findViewById(R.id.title_time_set); + if (configKey.equals("1")) { + mTitleView.setHead("安防触发配置"); + } else { + mTitleView.setHead("安防解除配置"); + } + mTitleView.setHeadColor(Color.BLACK); + mTitleView.clearBackGroud(); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setHeadFuntionTxtAndSise16(""); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + } + + @Override + public void onFunctionText() { + + } + }); + + modelSelectRl = (RelativeLayout) findViewById(R.id.rl_model_select); + timeSetRl = (RelativeLayout) findViewById(R.id.rl_time_set); + modelSelectRl.setOnClickListener(this); + timeSetRl.setOnClickListener(this); + bt_sure.setOnClickListener(this); + + // getSafetyBindList(); + } + + @Override + public void onClick(View v) { + Intent intent; + switch (v.getId()) { + case R.id.bt_sure: + ConfirmDialog dialog = new ConfirmDialog(this, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + break; + case 1: + sceneClearbind(); + break; + } + } + }); + dialog.setContent("是否确定清空所有配置?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.rl_model_select: + intent = new Intent(this, TriggerModelSelectActivity.class); + intent.putExtra("pushKey", configKey); + intent.putExtra("id", ""); + intent.putExtra("keyName", ""); + intent.putExtra("modelId", ""); + + intent.putExtra("supportType", "TriggerBindActivity"); + intent.putExtra("deviceId", getIntent().getExtras().get("deviceId").toString()); + intent.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + intent.putExtra("deviceType", getIntent().getExtras().get("deviceType").toString()); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + startActivityForResult(intent, MODEL_SELECT); + break; + case R.id.rl_time_set: + intent = new Intent(TriggerBindActivity.this, TriggerDeviceActivity.class); + intent.putExtra("supportType", "TriggerBindActivity"); + intent.putExtra("deviceId", getIntent().getExtras().get("deviceId").toString()); + intent.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + intent.putExtra("deviceType", getIntent().getExtras().get("deviceType").toString()); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("pushKey", getIntent().getExtras().get("configKey").toString()); + startActivityForResult(intent, MODEL_REAPEAT); + break; + } + } + + private void sceneClearbind() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("deviceId").toString()); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + map.put("deviceType", getIntent().getExtras().get("deviceType").toString()); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + map.put("pushKey", getIntent().getExtras().get("configKey").toString()); + util.requestPostByAsynewApi(NetWorkUrl.SCENE_CLEARBIND, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("sceneClearbind", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + ToastUtil.show(TriggerBindActivity.this, "清空完成"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + EventBus.getDefault().post( + new EventBusEntity("关闭")); + } + }, 1000); + break; + case SELECT_MODEL_TIME_FAIL: + ToastUtil.show(TriggerBindActivity.this, (String) msg.obj); + break; + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODEL_REAPEAT: + + break; + case MODEL_SELECT: + break; + } + } + + private void getSafetyBindList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("deviceId").toString()); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + map.put("deviceType", getIntent().getExtras().get("deviceType").toString()); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + netWorkUtil.requestGetByAsy(SCENE_SAFETYBINDLIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("getSafetyBindList", "onSuccess()" + respone); + /*TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + }*/ + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/TriggerDeviceActivity.java b/app/src/main/java/com/yonsz/z1/version5/model/TriggerDeviceActivity.java new file mode 100644 index 0000000..0688232 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/TriggerDeviceActivity.java @@ -0,0 +1,337 @@ +package com.yonsz.z1.version5.model; + +import android.content.Context; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.ActionEvent; +import com.yonsz.z1.database.entity.entity5.AutoDeviceEntity; +import com.yonsz.z1.database.entity.entity5.ExecConditionEvent; +import com.yonsz.z1.database.entity.entity5.TriggerConditionEvent; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.fragment.ScrollViewPager; +import com.yonsz.z1.version5.weidget.BaseFragmentPagerAdapter; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.magicindicator.MagicIndicator; +import com.yonsz.z1.view.magicindicator.ViewPagerHelper; +import com.yonsz.z1.view.magicindicator.buildins.UIUtil; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.CommonNavigator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.titles.CommonPagerTitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.AUTOMATION_SUBSET_LIST; +import static com.yonsz.z1.net.NetWorkUrl.AUTOMATION_SUBSET_OPERS; +import static com.yonsz.z1.net.NetWorkUrl.SCENE_SAFETYBINDLIST; +import static com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator.MODE_WRAP_CONTENT; + +/** + * Created by Administrator on 2020/2/11. + */ + +public class TriggerDeviceActivity extends BaseActivity { + private TitleView titleView; + private List fragmentList; + private View changeHeightView; + private List mStringList = new ArrayList<>(); + private BaseFragmentPagerAdapter mExamplePagerAdapter; + + private MagicIndicator magicIndicator; + private ScrollViewPager mViewPager; + private String supportType; + + public void onEventMainThread(EventBusEntity event) { + if (event.getMsg().equals("关闭")) { + finish(); + } + } + + public void onEventMainThread(TriggerConditionEvent event) { + finish(); + } + + public void onEventMainThread(ExecConditionEvent event) { + finish(); + } + + public void onEventMainThread(ActionEvent event) { + finish(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_auto_device); + // changeHeightView = inflater.inflate(R.layout.item_all_device_by_room, parent, false); + initView(); + } + + private void initView() { + supportType = getIntent().getExtras().get("supportType").toString(); + fragmentList = new ArrayList<>(); + magicIndicator = (MagicIndicator) findViewById(R.id.magic_indicator); + mViewPager = (ScrollViewPager) findViewById(R.id.view_pager); + titleView = (TitleView) findViewById(R.id.title_time_manager); + titleView.setHead("选择配置的设备"); + titleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + if (supportType.equals("TriggerBindActivity")) { + getSafetyBindList(); + } else { + getAutomationList(); + } + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + AutoDeviceEntity autoDeviceEntity = (AutoDeviceEntity) msg.obj; + initAllDevice(autoDeviceEntity); + break; + case SELECT_MODEL_TIME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void initAllDevice(AutoDeviceEntity autoDeviceEntity) { + List data = autoDeviceEntity.getData(); + fragmentList.clear(); + mStringList.add("所有设备"); + for (int i = 0; i < data.size(); i++) { + if (!mStringList.contains(AddressNameUtil.getAddressName(data.get(i).getAddressId()))) { + mStringList.add(AddressNameUtil.getAddressName(data.get(i).getAddressId())); + } + } + TriggerDeviceFragment allFragment = TriggerDeviceFragment.getInstance(data, 0, supportType); + fragmentList.add(allFragment); + for (int i = 1; i < mStringList.size(); i++) { + List devicesBean = new ArrayList<>(); + for (int j = 0; j < data.size(); j++) { + if (mStringList.get(i).equals(AddressNameUtil.getAddressName(data.get(j).getAddressId()))) { + devicesBean.add(data.get(j)); + } + } + TriggerDeviceFragment roomFragment = TriggerDeviceFragment.getInstance(devicesBean, i, supportType); + fragmentList.add(roomFragment); + } + mExamplePagerAdapter = new BaseFragmentPagerAdapter(this.getSupportFragmentManager(), fragmentList); + mViewPager.setScanScroll(true); + mViewPager.setAdapter(mExamplePagerAdapter); + mViewPager.setOffscreenPageLimit(fragmentList.size()); + mExamplePagerAdapter.notifyDataSetChanged(); + + + magicIndicator.setBackgroundColor(Color.TRANSPARENT); + CommonNavigator commonNavigator = new CommonNavigator(this); + /*commonNavigator.setAdjustMode(true); + commonNavigator.setSkimOver(false);*/ + commonNavigator.setAdapter(new CommonNavigatorAdapter() { + + @Override + public int getCount() { + return mStringList == null ? 0 : mStringList.size(); + } + + @Override + public IPagerTitleView getTitleView(Context context, final int index) { + CommonPagerTitleView commonPagerTitleView = new CommonPagerTitleView(context); + + // load custom layout + View customLayout = LayoutInflater.from(context).inflate(R.layout.simple_pager_title_time_manager, null); + final TextView titleText = (TextView) customLayout.findViewById(R.id.title_text); + titleText.setText(mStringList.get(index)); + commonPagerTitleView.setContentView(customLayout); + + commonPagerTitleView.setOnPagerTitleChangeListener(new CommonPagerTitleView.OnPagerTitleChangeListener() { + + @Override + public void onSelected(int index, int totalCount) { + if (AppIdUtil.isWork()) { + titleText.setTextColor(0xff24C1DA); + } else { + titleText.setTextColor(0xff398DEE); + } + Log.i("TAG", "HomepagerRecycleAdapter onSelected()" + index); + } + + @Override + public void onDeselected(int index, int totalCount) { + titleText.setTextColor(0xff333333); + } + + @Override + public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) { + + } + + @Override + public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) { + Log.i("TAG", "LoadCustomLayoutExampleActivity onEnter()" + (1.1f + (0.9f - 1.1f) * enterPercent) + "===" + index); + } + }); + + commonPagerTitleView.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + mViewPager.setCurrentItem(index); + } + }); + + return commonPagerTitleView; + } + + @Override + public IPagerIndicator getIndicator(Context context) { + LinePagerIndicator indicator = new LinePagerIndicator(context); + if (AppIdUtil.isWork()) { + indicator.setColors(Color.parseColor("#24C1DA")); + } else { + indicator.setColors(Color.parseColor("#398DEE")); + } + indicator.setLineHeight(UIUtil.dip2px(context, 2)); + indicator.setMode(MODE_WRAP_CONTENT); + indicator.setXOffset(10.0f); + return indicator; + } + }); + magicIndicator.setNavigator(commonNavigator); + ViewPagerHelper.bind(magicIndicator, mViewPager); + + } + + public void setLayoutParamsHeight(int height) { + changeHeightView.getLayoutParams().height = height; + } + + private void getSafetyBindList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("deviceId").toString()); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + map.put("deviceType", getIntent().getExtras().get("deviceType").toString()); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + netWorkUtil.requestGetByAsy(SCENE_SAFETYBINDLIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("getSafetyBindList", "onSuccess()" + respone); + AutoDeviceEntity obj = JSON.parseObject(respone, AutoDeviceEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getAutomationList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("supportType", supportType); + netWorkUtil.requestGetByAsy(AUTOMATION_SUBSET_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getAutomationList", respone); + AutoDeviceEntity obj = JSON.parseObject(respone, AutoDeviceEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getAutomationOpers() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("supportType", supportType); + netWorkUtil.requestGetByAsy(AUTOMATION_SUBSET_OPERS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getAutomationList", respone); + AutoDeviceEntity obj = JSON.parseObject(respone, AutoDeviceEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/TriggerDeviceFragment.java b/app/src/main/java/com/yonsz/z1/version5/model/TriggerDeviceFragment.java new file mode 100644 index 0000000..460306b --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/TriggerDeviceFragment.java @@ -0,0 +1,196 @@ +package com.yonsz.z1.version5.model; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.database.entity.entity5.AutoDeviceEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.auto.AutoDeviceAdapter; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; + +/** + * Created by Administrator on 2020/2/11. + */ + +public class TriggerDeviceFragment extends BaseFragment { + private View fragView; + private UIHandle mHandler; + private TitleView mTitleView; + private List mDatas = new ArrayList<>(); + private RecyclerView mRecyclerView; + private AutoDeviceAdapter mAutoDeviceAdapter; + private int timeType; + private String isScene = "false", supportType; + private LinearLayout cardView_add; + + public static TriggerDeviceFragment getInstance(List mDatas, int timeType, String supportType) { + TriggerDeviceFragment fragment = new TriggerDeviceFragment(); + fragment.mDatas = mDatas; + fragment.timeType = timeType; + fragment.supportType = supportType; + return fragment; + } + + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.fragment_time_manager, null); + initView(fragView); + return fragView; + } + + private void initView(View fragView) { + mRecyclerView = (RecyclerView) fragView.findViewById(R.id.recyclerView); + cardView_add = (LinearLayout) fragView.findViewById(R.id.cardView_add); + + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(getContext()); + manager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(manager); + mAutoDeviceAdapter = new AutoDeviceAdapter(getContext(), mDatas, timeType); + mRecyclerView.setAdapter(mAutoDeviceAdapter); + + if (mDatas.size() != 0) { + cardView_add.setVisibility(View.GONE); + } else { + cardView_add.setVisibility(View.GONE); + } + + mAutoDeviceAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + @Override + public void onClick(View view, int position, int i) { + if (i == 100) { + Intent intent = new Intent(getContext(), TriggerDeviceFunctionActivity.class); + /*intent.putExtra("gatewayId", mDatas.get(position).getZiId()); + intent.putExtra("deviceType", mDatas.get(position).getDeviceType()); + intent.putExtra("deviceId", mDatas.get(position).getId()); + intent.putExtra("deviceModel", mDatas.get(position).getDeviceModel()); + intent.putExtra("deviceName", mDatas.get(position).getName()); + intent.putExtra("supportType", supportType); + intent.putExtra("isAdd", true);*/ + + + intent.putExtra("gatewayId", mDatas.get(position).getZiId()); + intent.putExtra("bindDeviceType", mDatas.get(position).getDeviceType()); + intent.putExtra("bindDeviceId", mDatas.get(position).getId()); + intent.putExtra("bindDeviceModel", mDatas.get(position).getDeviceModel()); + intent.putExtra("deviceName", mDatas.get(position).getName()); + intent.putExtra("supportType", supportType); + + + intent.putExtra("deviceId", getActivity().getIntent().getExtras().get("deviceId").toString()); + intent.putExtra("deviceModel", getActivity().getIntent().getExtras().get("deviceModel").toString()); + intent.putExtra("deviceType", getActivity().getIntent().getExtras().get("deviceType").toString()); + intent.putExtra("ziId", getActivity().getIntent().getExtras().get("ziId").toString()); + intent.putExtra("pushKey", getActivity().getIntent().getExtras().get("pushKey").toString()); + intent.putExtra("isAdd", true); + startActivity(intent); + // getAutomationOpers(position); +// getActivity().finish(); + } else { + if (i == 1) { + } else { + } + } + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + } + + @Override + public void onResume() { + super.onResume(); + /*switch (timeType) { + case 0: + isScene = "true"; + getTimemanageList(""); + break; + case 1: + getTimemanageList(LIGHT_TAG); + break; + case 2: + getTimemanageList(SWITCH_TAG); + break; + case 3: + getTimemanageList(AIR_TAG); + break; + }*/ + } + + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + /*TimeSetEntity timeSetEntity = (TimeSetEntity) msg.obj; + mDatas.clear(); + mDatas.addAll(timeSetEntity.getData());*/ + + break; + case ADD_MODEL_BASIC_SUCCESS: + String obj = (String) msg.obj; + if (obj.isEmpty()) { + + } else { + mAutoDeviceAdapter.notifyDataSetChanged(); + EventBus.getDefault().post( + new ChooseHomeEvent("10")); + } + break; + case ADD_MODEL_BASIC_FAIL: + case SELECT_MODEL_TIME_FAIL: + case UPDATE_MODEL_TIME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(TriggerDeviceFragment activity) { + weakReference = new WeakReference(activity); + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + TriggerDeviceFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/TriggerDeviceFunctionActivity.java b/app/src/main/java/com/yonsz/z1/version5/model/TriggerDeviceFunctionActivity.java new file mode 100644 index 0000000..3cceeaf --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/TriggerDeviceFunctionActivity.java @@ -0,0 +1,392 @@ +package com.yonsz.z1.version5.model; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.LinearLayout; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.AutoFunctionEntity; +import com.yonsz.z1.database.entity.entity5.AutomationEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.feature.Callback3; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.auto.AutoFunctionAdapter; +import com.yonsz.z1.version5.auto.AutoFunctionPopupWindow; +import com.yonsz.z1.version5.auto.AutoSeekBarActivity; +import com.yonsz.z1.version5.auto.AutoSeekBarDialog; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.YBL_SCENE_ADD_FAIL; +import static com.yonsz.z1.net.Constans.YBL_SCENE_ADD_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.AUTOMATION_SUBSET_OPERS; + +/** + * Created by Administrator on 2020/9/18. + */ + +public class TriggerDeviceFunctionActivity extends BaseActivity { + private TitleView mTitleView; + private RecyclerView mRecyclerView; + private LinearLayout cardView_add; + private AutoFunctionAdapter autoFunctionAdapter; + private List mDatas = new ArrayList<>(); + private String supportType, deviceId, gatewayId, deviceModel, deviceType, deviceName; + private boolean isAdd; + private View rootview; + private Button mButton; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.fragment_auto_function); + initView(); + } + + private void initView() { + rootview = LayoutInflater.from(TriggerDeviceFunctionActivity.this).inflate(R.layout.fragment_auto_function, null); + isAdd = (boolean) getIntent().getExtras().get("isAdd"); + supportType = "triggerCondition"; + gatewayId = getIntent().getExtras().get("gatewayId").toString(); + deviceId = getIntent().getExtras().get("deviceId").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + deviceType = getIntent().getExtras().get("deviceType").toString(); + deviceName = getIntent().getExtras().get("deviceName").toString(); + mButton = (Button) findViewById(R.id.bt_sure_config); + mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); + cardView_add = (LinearLayout) findViewById(R.id.cardView_add); + mTitleView = (TitleView) findViewById(R.id.title_auto_function); + mTitleView.setHead("选择配置的设备"); + mTitleView.setHeadFuntionTxtAndSise16("保存"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + if (mDatas.get(0).getValue().isEmpty()) { + ToastUtil.show(TriggerDeviceFunctionActivity.this, "请选择功能"); + } else { + subsetSetscene(mDatas.get(0).getValue()); + } + } + + @Override + public void onFunctionText() { + + } + }); + + mButton.setVisibility(View.GONE); + + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(this); + manager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(manager); + autoFunctionAdapter = new AutoFunctionAdapter(this, mDatas, supportType); + mRecyclerView.setAdapter(autoFunctionAdapter); + + if (mDatas.size() != 0) { + cardView_add.setVisibility(View.GONE); + } else { + cardView_add.setVisibility(View.GONE); + } + getAutomationOpers(); + + + if (isAdd) { + + } else { + //不是添加就是修改 + + } + + autoFunctionAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + @Override + public void onClick(View view, int position, int i) { + //一共两种弹窗 + switch (mDatas.get(position).getName()) { + case "switch": + case "key": + case "safetySwitch": + case "mode": + case "windSpeed": + case "safetyAlarm": + AutoFunctionPopupWindow popupWindow = new AutoFunctionPopupWindow(TriggerDeviceFunctionActivity.this, mDatas.get(position).getOptions(), new AutoFunctionPopupWindow.OnCompleteListener() { + + @Override + public void onComplete(AutoFunctionEntity.DataBean.OpersBean.OptionsBean condition) { + mDatas.get(position).setValue(condition.getValue()); + autoFunctionAdapter.notifyDataSetChanged(); + } + }); + popupWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0); + break; + case "tempSet": + case "brightness": + case "travelControl": + if (supportType.equals("triggerCondition") || supportType.equals("execCondition")) { + Intent intent = new Intent(TriggerDeviceFunctionActivity.this, AutoSeekBarActivity.class); + intent.putExtra("deviceType", deviceType); + intent.putExtra("position", position + ""); + if (isAdd) { + intent.putExtra("symbol", "<"); + if (deviceType.equals(LIGHT_TAG)) { + intent.putExtra("value", "20"); + } else { + intent.putExtra("value", "26"); + } + } else { + switch (supportType) { + case "triggerCondition": + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("triggerCondition")) { + AutomationEntity.DataBean.TriggerConditionsBean mTriggerConditionsBean = (AutomationEntity.DataBean.TriggerConditionsBean) getIntent().getSerializableExtra("triggerCondition"); + intent.putExtra("symbol", mTriggerConditionsBean.getSymbol()); + intent.putExtra("value", mTriggerConditionsBean.getValue()); + } + break; + case "execCondition": + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("execCondition")) { + AutomationEntity.DataBean.ExecConditionsBean execConditionsBean = (AutomationEntity.DataBean.ExecConditionsBean) getIntent().getSerializableExtra("execCondition"); + intent.putExtra("symbol", execConditionsBean.getSymbol()); + intent.putExtra("value", execConditionsBean.getValue()); + } + break; + } + } + startActivityForResult(intent, MODEL_REAPEAT); + } else { + if (mDatas.get(0).getValue().equals("poweroff")) { + ToastUtil.show(TriggerDeviceFunctionActivity.this, "请确保开关处于开启状态!"); + return; + } + AutoSeekBarDialog dialog = new AutoSeekBarDialog(TriggerDeviceFunctionActivity.this, deviceType, mDatas.get(position).getValue(), new Callback3() { + @Override + public void callback(int position1, String progress, String mode) { + switch (position1) { + case 0: + break; + case 1: + mDatas.get(position).setValue(progress); + autoFunctionAdapter.notifyDataSetChanged(); + break; + } + } + }); + switch (deviceType) { + case LIGHT_TAG: + dialog.setTopTxt("亮度"); + dialog.setContent("亮度"); + break; + case CURTAINS_TAG: + dialog.setTopTxt("百分比"); + dialog.setContent("打开"); + break; + case AIR_TAG: + dialog.setTopTxt("温度"); + dialog.setContent("温度"); + break; + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + break; + } + } + autoFunctionAdapter.notifyDataSetChanged(); + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + AutoFunctionEntity autoFunctionEntity = (AutoFunctionEntity) msg.obj; + List opers = autoFunctionEntity.getData().getOpers(); + if (!isAdd) { + switch (supportType) { + case "triggerCondition": + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("triggerCondition")) { + AutomationEntity.DataBean.TriggerConditionsBean mTriggerConditionsBean = (AutomationEntity.DataBean.TriggerConditionsBean) getIntent().getSerializableExtra("triggerCondition"); + opers.get(0).setValue(mTriggerConditionsBean.getValue()); + opers.get(0).setSymbol(mTriggerConditionsBean.getSymbol()); + } + break; + case "execCondition": + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("execCondition")) { + AutomationEntity.DataBean.ExecConditionsBean execConditionsBean = (AutomationEntity.DataBean.ExecConditionsBean) getIntent().getSerializableExtra("execCondition"); + opers.get(0).setValue(execConditionsBean.getValue()); + opers.get(0).setSymbol(execConditionsBean.getSymbol()); + } + break; + case "action": + if (null != getIntent().getExtras() && null != getIntent().getSerializableExtra("action")) { + AutomationEntity.DataBean.ActionsBean actionsBean = (AutomationEntity.DataBean.ActionsBean) getIntent().getSerializableExtra("action"); + List opers1 = actionsBean.getAction().getOpers(); + for (int i = 0; i < opers.size(); i++) { + AutoFunctionEntity.DataBean.OpersBean opersBean = opers.get(i); + for (int j = 0; j < opers1.size(); j++) { + if (opersBean.getName().equals(opers1.get(j).getName())) { + opersBean.setValue(opers1.get(j).getValue()); + opersBean.setSymbol(opers1.get(j).getSymbol()); + } + } + } + } + break; + } + } else { + //不是添加就是修改 + + } + mDatas.clear(); + mDatas.addAll(opers); + autoFunctionAdapter.notifyDataSetChanged(); + break; + case YBL_SCENE_ADD_SUCCESS: + EventBus.getDefault().post( + new EventBusEntity("关闭")); + ToastUtil.show(this, "保存成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 2000); + break; + case YBL_SCENE_ADD_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void getAutomationOpers() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("gatewayId", gatewayId); + map.put("deviceType", getIntent().getExtras().get("bindDeviceType").toString()); + map.put("deviceId", getIntent().getExtras().get("bindDeviceId").toString()); + map.put("deviceModel", getIntent().getExtras().get("bindDeviceModel").toString()); + map.put("supportType", supportType); + if (null != getIntent().getExtras().get("operName")) { + map.put("operName", getIntent().getExtras().get("operName").toString()); + } + netWorkUtil.requestGetByAsy(AUTOMATION_SUBSET_OPERS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getAutomationOpers", respone); + AutoFunctionEntity obj = JSON.parseObject(respone, AutoFunctionEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void subsetSetscene(String oper) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("deviceId").toString()); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + map.put("deviceType", SECURITY_TRIGGER); + map.put("pushKey", getIntent().getExtras().get("pushKey").toString()); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + + map.put("bindDeviceId", getIntent().getExtras().get("bindDeviceId").toString()); + map.put("bindDeviceModel", getIntent().getExtras().get("bindDeviceModel").toString()); + map.put("bindDeviceType", getIntent().getExtras().get("bindDeviceType").toString()); + map.put("bindZiId", getIntent().getExtras().get("gatewayId").toString()); + + if (!oper.isEmpty()) { + map.put("oper", oper); + } + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SETSCENE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetSetscene", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(YBL_SCENE_ADD_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(YBL_SCENE_ADD_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(YBL_SCENE_ADD_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODEL_REAPEAT: + if (data != null && data.getExtras().get("symbol") != null) { + String symbol = data.getExtras().get("symbol").toString(); + String value = data.getExtras().get("value").toString(); + int position = Integer.parseInt(data.getExtras().get("position").toString()); + mDatas.get(position).setValue(value); + mDatas.get(position).setSymbol(symbol); + autoFunctionAdapter.notifyDataSetChanged(); + } + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/model/TriggerModelSelectActivity.java b/app/src/main/java/com/yonsz/z1/version5/model/TriggerModelSelectActivity.java new file mode 100644 index 0000000..f5fb65c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/model/TriggerModelSelectActivity.java @@ -0,0 +1,479 @@ +package com.yonsz.z1.version5.model; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.Toast; + +import com.alibaba.fastjson.JSON; +import com.yanzhenjie.recyclerview.swipe.SwipeItemClickListener; +import com.yanzhenjie.recyclerview.swipe.SwipeMenu; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuBridge; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuCreator; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuItemClickListener; +import com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.AddPanelModelEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.ybl.panel.SafeModelAdapter; +import com.yonsz.z1.ybl.panel.YblModelDetailActivity; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.DEL_MODEL_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.DEL_MODEL_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.YBL_SCENE_ADD_FAIL; +import static com.yonsz.z1.net.Constans.YBL_SCENE_ADD_SUCCESS; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.NetWorkUrl.ADD_MODEL_BASIC; +import static com.yonsz.z1.net.NetWorkUrl.SELECT_MODEL_TIME; + +public class TriggerModelSelectActivity extends BaseActivity implements SwipeItemClickListener { + private TitleView mTitleView; + private RelativeLayout inHomeRl, outHomeRl, inBedRl, outBedRl, userDefineRl; + private ImageView inHomeIv, outHomeIv, inBedIv, outBedIv; + private String configKey; + private SwipeMenuRecyclerView myPanelModelListView; + private List mDatas = new ArrayList<>(); + private List customList = new ArrayList<>(); + private SafeModelAdapter mAdapter; + private String id; + private String modelId = ""; + private String chooseModelId = ""; + private String inhomeId = "", outHomeId = "", inbedId = "", outBedId = ""; + private String keyName = ""; + private LinearLayout ll_no_office; + + + /** + * 菜单创建器,在Item要创建菜单的时候调用。 + */ + private SwipeMenuCreator swipeMenuCreator = new SwipeMenuCreator() { + @Override + public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) { + int width = getResources().getDimensionPixelSize(R.dimen.y50); + } + }; + /** + * RecyclerView的Item的Menu点击监听。 + */ + private SwipeMenuItemClickListener mMenuItemClickListener = new SwipeMenuItemClickListener() { + @Override + public void onItemClick(SwipeMenuBridge menuBridge) { + menuBridge.closeMenu(); + int direction = menuBridge.getDirection(); // 左侧还是右侧菜单。 + final int adapterPosition = menuBridge.getAdapterPosition(); // RecyclerView的Item的position。 + int menuPosition = menuBridge.getPosition(); // 菜单在RecyclerView的Item中的Position。 + + if (direction == SwipeMenuRecyclerView.RIGHT_DIRECTION) { + switch (menuPosition) { + + } + } + } + }; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_panel_model_select); + initView(); + } + + @Override + public void onResume() { + super.onResume(); + selectModelTime(); + } + + private void initView() { + id = getIntent().getExtras().get("id").toString(); + configKey = (String) getIntent().getExtras().get("configKey"); + keyName = (String) getIntent().getExtras().get("keyName"); + chooseModelId = (String) getIntent().getExtras().get("modelId"); + ll_no_office = (LinearLayout) findViewById(R.id.ll_no_office); + myPanelModelListView = (SwipeMenuRecyclerView) findViewById(R.id.my_share_list); + inHomeRl = (RelativeLayout) findViewById(R.id.rl_in_home_model); + outHomeRl = (RelativeLayout) findViewById(R.id.rl_out_home_model); + inBedRl = (RelativeLayout) findViewById(R.id.rl_in_bed_model); + outBedRl = (RelativeLayout) findViewById(R.id.rl_out_bed_model); + userDefineRl = (RelativeLayout) findViewById(R.id.rl_user_defined); + inHomeIv = (ImageView) findViewById(R.id.ImageView01); + outHomeIv = (ImageView) findViewById(R.id.ImageView02); + inBedIv = (ImageView) findViewById(R.id.ImageView03); + outBedIv = (ImageView) findViewById(R.id.ImageView04); + mTitleView = (TitleView) findViewById(R.id.title_model_select); + mTitleView.setHead("选择配置的场景"); + mTitleView.setHeadFuntionTxtAndSise16("保存"); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + if (modelId.isEmpty()) { + ToastUtil.show(TriggerModelSelectActivity.this, "请选择情景模式"); + } else { + subsetSetscene(); + } + // yblSceneSet(); + /*Intent intent = new Intent(TriggerModelSelectActivity.this, ModelBindActivity.class); + intent.putExtra("modelSelect", modelId); + intent.putExtra("modelName", keyName); + setResult(MODEL_SELECT, intent); + finish();*/ + } + + @Override + public void onFunctionText() { + + } + }); + + inHomeRl.setOnClickListener(this); + outHomeRl.setOnClickListener(this); + inBedRl.setOnClickListener(this); + outBedRl.setOnClickListener(this); + userDefineRl.setOnClickListener(this); + + switch (keyName) { + case "回家模式": + inHomeIv.setVisibility(View.VISIBLE); + break; + case "离家模式": + outHomeIv.setVisibility(View.VISIBLE); + break; + case "睡眠模式": + inBedIv.setVisibility(View.VISIBLE); + break; + case "起床模式": + outBedIv.setVisibility(View.VISIBLE); + break; + } + + mAdapter = new SafeModelAdapter(customList, this, 100, chooseModelId); + RecyclerViewNoBugLinearLayoutManager manage = new RecyclerViewNoBugLinearLayoutManager(this); + manage.setOrientation(LinearLayoutManager.VERTICAL); + myPanelModelListView.setVisibility(View.VISIBLE); + myPanelModelListView.setHasFixedSize(true); + myPanelModelListView.setLayoutManager(manage); + myPanelModelListView.setSwipeMenuCreator(swipeMenuCreator); + myPanelModelListView.setSwipeMenuItemClickListener(mMenuItemClickListener); + myPanelModelListView.setAdapter(mAdapter); + myPanelModelListView.setSwipeItemClickListener(this); + + if (homeListEntity.getData().get(deviceNumListPosition).getHouseCategory() == 3 || homeListEntity.getData().get(deviceNumListPosition).getHouseCategory() == 5) { + ll_no_office.setVisibility(View.GONE); + } + } + + @Override + public void onClick(View v) { + super.onClick(v); + switch (v.getId()) { + case R.id.rl_in_home_model: + modelId = inhomeId; + keyName = "回家模式"; + inHomeIv.setVisibility(View.VISIBLE); + outHomeIv.setVisibility(View.GONE); + inBedIv.setVisibility(View.GONE); + outBedIv.setVisibility(View.GONE); + // mTitleView.setHeadFuntionTxtColor(true); + mAdapter.setIsShowSelcet(100, ""); + mAdapter.notifyDataSetChanged(); + break; + case R.id.rl_out_home_model: + modelId = outHomeId; + keyName = "离家模式"; + outHomeIv.setVisibility(View.VISIBLE); + inHomeIv.setVisibility(View.GONE); + inBedIv.setVisibility(View.GONE); + outBedIv.setVisibility(View.GONE); + // mTitleView.setHeadFuntionTxtColor(true); + mAdapter.setIsShowSelcet(100, ""); + mAdapter.notifyDataSetChanged(); + break; + case R.id.rl_in_bed_model: + modelId = inbedId; + keyName = "睡眠模式"; + inBedIv.setVisibility(View.VISIBLE); + outHomeIv.setVisibility(View.GONE); + inHomeIv.setVisibility(View.GONE); + outBedIv.setVisibility(View.GONE); + // mTitleView.setHeadFuntionTxtColor(true); + mAdapter.setIsShowSelcet(100, ""); + mAdapter.notifyDataSetChanged(); + break; + case R.id.rl_out_bed_model: + modelId = outBedId; + keyName = "起床模式"; + outBedIv.setVisibility(View.VISIBLE); + outHomeIv.setVisibility(View.GONE); + inHomeIv.setVisibility(View.GONE); + inBedIv.setVisibility(View.GONE); + // mTitleView.setHeadFuntionTxtColor(true); + mAdapter.setIsShowSelcet(100, ""); + mAdapter.notifyDataSetChanged(); + break; + case R.id.rl_user_defined: + showModifyPop(); + break; + } + } + + public void showModifyPop() { + RenameNameDialog dialog = new RenameNameDialog(TriggerModelSelectActivity.this, new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + addModelBasic(positioName); + break; + } + } + }); + dialog.setMaxEms(12); + dialog.setHintName(""); + dialog.setContent("设置情景模式名称"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + TimeSetEntity timeSetEntity = (TimeSetEntity) msg.obj; + mDatas.clear(); + mDatas.addAll(timeSetEntity.getData()); + if (null != mDatas) { + setViewDate(mDatas); + } + break; + case ADD_MODEL_BASIC_FAIL: + case DEL_MODEL_CONTROL_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case ADD_MODEL_BASIC_SUCCESS: + AddPanelModelEntity addModelEntity = (AddPanelModelEntity) msg.obj; + Intent intent = new Intent(TriggerModelSelectActivity.this, YblModelDetailActivity.class); + intent.putExtra("model", addModelEntity.getData().getModelType()); + intent.putExtra("isAdd", false); + intent.putExtra("isCheckBoxOpen", false); + intent.putExtra("modelId", addModelEntity.getData().getId()); + intent.putExtra("isHaveDevice", "1"); + intent.putExtra("repeatTime", ""); + intent.putExtra("setTime", ""); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + intent.putExtra("modelName", addModelEntity.getData().getModelName()); + startActivity(intent); + // selectModelTime(); + break; + case DEL_MODEL_CONTROL_SUCCESS: + ToastUtil.show(this, "删除成功"); + selectModelTime(); + break; + case YBL_SCENE_ADD_SUCCESS: + EventBus.getDefault().post( + new EventBusEntity("关闭")); + ToastUtil.show(this, "保存成功"); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 2000); + break; + case YBL_SCENE_ADD_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void subsetSetscene() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("deviceId").toString()); + map.put("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + map.put("deviceType", SECURITY_TRIGGER); + map.put("pushKey", getIntent().getExtras().get("pushKey").toString()); + map.put("ziId", getIntent().getExtras().get("ziId").toString()); + map.put("modelId", modelId); + + /*map.put("bindDeviceId", getIntent().getExtras().get("bindDeviceId").toString()); + map.put("bindDeviceModel", getIntent().getExtras().get("bindDeviceModel").toString()); + map.put("bindDeviceType", getIntent().getExtras().get("bindDeviceType").toString()); + map.put("bindZiId", getIntent().getExtras().get("gatewayId").toString());*/ + util.requestPostByAsyBody(NetWorkUrl.SUBSET_SETSCENE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetSetscene", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(YBL_SCENE_ADD_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(YBL_SCENE_ADD_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(YBL_SCENE_ADD_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void setViewDate(List datas) { + customList.clear(); + customList.addAll(datas); + + /*for (int i = customList.size() - 1; i >= 0; i--) { + if (Integer.parseInt(datas.get(i).getModelType()) < 5) { + switch (datas.get(i).getModelType()) { + case "1": + inhomeId = datas.get(i).getModelId(); + break; + case "2": + outHomeId = datas.get(i).getModelId(); + break; + case "3": + inbedId = datas.get(i).getModelId(); + break; + case "4": + outBedId = datas.get(i).getModelId(); + break; + } + customList.remove(i); + } + }*/ + mAdapter.notifyDataSetChanged(); + } + + @Override + public void onItemClick(View itemView, int position) { + // mTitleView.setHeadFuntionTxtColor(true); + inBedIv.setVisibility(View.GONE); + outHomeIv.setVisibility(View.GONE); + inHomeIv.setVisibility(View.GONE); + outBedIv.setVisibility(View.GONE); + //勾选哪一个 + modelId = customList.get(position).getModelId(); + keyName = customList.get(position).getModelName(); + mAdapter.setIsShowSelcet(position, modelId); + mAdapter.notifyDataSetChanged(); + } + + private void selectModelTime() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + if (deviceNumListPosition > homeListEntity.getData().size() - 1) { + deviceNumListPosition = 0; + } + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("isCustom", "1"); + netWorkUtil.requestGetByAsy(SELECT_MODEL_TIME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("selectModelTime", "ShareDeviceActivity onSuccess()" + respone); + TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + private void addModelBasic(String modelName) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("modelName", modelName); + netWorkUtil.requestPostByAsynewApi(ADD_MODEL_BASIC, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("addModelBasic", "onSuccess()" + respone); + AddPanelModelEntity obj = JSON.parseObject(respone, AddPanelModelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(ADD_MODEL_BASIC_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(ADD_MODEL_BASIC_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(ADD_MODEL_BASIC_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/scene/MainSceneFragment.java b/app/src/main/java/com/yonsz/z1/version5/scene/MainSceneFragment.java new file mode 100644 index 0000000..7cff425 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/scene/MainSceneFragment.java @@ -0,0 +1,259 @@ +package com.yonsz.z1.version5.scene; + +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.annotation.RequiresApi; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.view.ViewPager; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.RadioButton; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.activity.MainActivityAdapter; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.version5.auto.AutoFragment; +import com.yonsz.z1.version5.auto.AutomationActivity; +import com.yonsz.z1.version5.fragment.Scene5Fragment; +import com.yonsz.z1.version5.model.ActiveModelActivity; +import com.yonsz.z1.view.MainViewPager; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.listpopupwindow.RankingPopupWindow; + +import java.util.ArrayList; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; + +/** + * Created by Administrator on 2020/9/17. + */ + +public class MainSceneFragment extends BaseFragment implements View.OnClickListener { + // private UIHandle mHandler; + private TitleView mTitleView; + private View view; + private RadioButton deviceSceneRb, deviceAutoRb; + private Button deviceSceneBt, deviceAutoBt; + private TextView deviceSceneTv, deviceAutoTv; + private MainViewPager logViewPager; + private Scene5Fragment scene5Fragment; + private RankingPopupWindow mWindow; + private RankingPopupWindow.Listener listener; + private AutoFragment autoFragment; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); + // mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + view = inflater.inflate(R.layout.activity_main_scene, container, false); + initView(view); + return view; + } + + public void onEventMainThread(ChooseHomeEvent event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("1") || msg.equals("3")) { + /*if (homeListEntity.getData().get(deviceNumListPosition).getName().length() > 9) { + mTitleView.setHomeNameTxt(homeListEntity.getData().get(deviceNumListPosition).getName().substring(0, 6) + "…"); + } else { + mTitleView.setHomeNameTxt(homeListEntity.getData().get(deviceNumListPosition).getName()); + }*/ + mTitleView.setHomeNameTxt(homeListEntity.getData().get(deviceNumListPosition).getName()); + if (null != scene5Fragment) { + scene5Fragment.reRefrash(); + } + if (null != autoFragment) { + autoFragment.reRefrash(); + } + } + } + + public void reRefrash() { + if (null != scene5Fragment) { + scene5Fragment.reRefrash(); + } + if (null != autoFragment) { + autoFragment.reRefrash(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + @RequiresApi(api = Build.VERSION_CODES.M) + private void initView(View view) { + deviceSceneRb = (RadioButton) view.findViewById(R.id.rb_device_scene); + deviceAutoRb = (RadioButton) view.findViewById(R.id.rb_device_auto); + deviceSceneBt = (Button) view.findViewById(R.id.btn_scene); + deviceAutoBt = (Button) view.findViewById(R.id.btn_auto); + deviceSceneTv = (TextView) view.findViewById(R.id.tv_device_scene); + deviceAutoTv = (TextView) view.findViewById(R.id.tv_device_auto); + logViewPager = (MainViewPager) view.findViewById(R.id.mvp_device_log); + mTitleView = (TitleView) view.findViewById(R.id.title_device_log4); + mTitleView.clearBackGroud(); + mTitleView.setHeadHomeVisible(R.drawable.icon_home_house1); + mTitleView.setHeadFuntion(R.drawable.icon_scene_activation); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + // initListItem(deviceNumList, 0, mTitleView.getHomeNameTxt(), mTitleView); + } + + @Override + public void onFunction() { + /*Intent intent = new Intent(getContext(), AutomationActivity.class); + startActivity(intent);*/ + List list = new ArrayList<>(); + list.add("场景激活"); + list.add("添加自动化"); + initListItem(list, 1, "123", mTitleView); + } + + @Override + public void onFunctionText() { + + } + }); + deviceSceneRb.setOnClickListener(this); + deviceAutoRb.setOnClickListener(this); + deviceSceneTv.setOnClickListener(this); + deviceAutoTv.setOnClickListener(this); + + scene5Fragment = new Scene5Fragment(); + autoFragment = new AutoFragment(); + + List fragmentList = new ArrayList<>(); + fragmentList.add(scene5Fragment); + fragmentList.add(autoFragment); + FragmentManager manager = getActivity().getSupportFragmentManager(); + logViewPager.setAdapter(new MainActivityAdapter(manager, fragmentList)); + logViewPager.setOffscreenPageLimit(1); + + logViewPager.setScanScroll(true); + logViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int i, float v, int i1) { + + } + + @Override + public void onPageSelected(int i) { + switch (i) { + case 0: + scene5Fragment.reRefrash(); + deviceAutoBt.setVisibility(View.INVISIBLE); + deviceSceneBt.setVisibility(View.VISIBLE); + break; + case 1: + autoFragment.reRefrash(); + deviceAutoBt.setVisibility(View.VISIBLE); + deviceSceneBt.setVisibility(View.INVISIBLE); + break; + } + } + + @Override + public void onPageScrollStateChanged(int i) { + + } + }); + } + + private void initListItem(final List list, final int flag, final String selectName, View view) { + //生成Listener和清空 + setPopupWindowListener(flag); + mWindow = null; + //显示popupwindow + mWindow = new RankingPopupWindow(getActivity(), list, selectName, listener, view, flag); + } + + private void setPopupWindowListener(final int flag) { + listener = null; + listener = new RankingPopupWindow.Listener() { + @Override + public void onPopupWindowDismissListener() { + //消失时的操作 + } + + @Override + public void onItemClickListener(int position) { + //点击Item时的操作 + if (flag == 1) { + if (position == 1) { + Intent intent = new Intent(getContext(), AutomationActivity.class); + startActivity(intent); + } else { + Intent intent = new Intent(getContext(), ActiveModelActivity.class); + startActivity(intent); + } + } else { + + } + } + }; + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.rb_device_scene: + case R.id.tv_device_scene: + logViewPager.setCurrentItem(0, false); + scene5Fragment.reRefrash(); + deviceAutoBt.setVisibility(View.INVISIBLE); + deviceSceneBt.setVisibility(View.VISIBLE); + break; + case R.id.rb_device_auto: + case R.id.tv_device_auto: + logViewPager.setCurrentItem(1, false); + autoFragment.reRefrash(); + deviceAutoBt.setVisibility(View.VISIBLE); + deviceSceneBt.setVisibility(View.INVISIBLE); + break; + } + } + + private void callBackUiThread(Message msg) { + + } + + /*static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(MainSceneFragment activity) { + weakReference = new WeakReference(activity); + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + MainSceneFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + }*/ + + +} diff --git a/app/src/main/java/com/yonsz/z1/version5/scene/Model5DetailActivity.java b/app/src/main/java/com/yonsz/z1/version5/scene/Model5DetailActivity.java new file mode 100644 index 0000000..5c1daa1 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/scene/Model5DetailActivity.java @@ -0,0 +1,1012 @@ +package com.yonsz.z1.version5.scene; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entitya2.AddModelEntity; +import com.yonsz.z1.database.entity.entitya2.DeviceAllEntity; +import com.yonsz.z1.database.entity.entitya2.ModelOpenEntity; +import com.yonsz.z1.database.entity.entitya2.ModelSetEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.device.DeviceExpandableListView; +import com.yonsz.z1.homemanage.TimeSetting5Activity; +import com.yonsz.z1.listener.OnExbandItemClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNewValueDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNextDialog; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.mine.aboutversion.feature.Callback3; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.view.SwitchView; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.R.id.tv_che_dan; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.BATCH_UPDATE_MODEL_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.BATCH_UPDATE_MODEL_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DEL_MODEL_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.DEL_MODEL_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.DEL_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.DEL_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_DETAIL_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_DETAIL_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.NetWorkUrl.BATCH_UPDATE_MODEL_CONTROL; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_MODEL_DETAIL; +import static com.yonsz.z1.net.NetWorkUrl.SCENE_HOUSESCENE_DELETE; +import static com.yonsz.z1.net.NetWorkUrl.SELECT_MODEL_TIME; +import static com.yonsz.z1.net.NetWorkUrl.UPDATE_MODEL_BASIC; +import static com.yonsz.z1.net.NetWorkUrl.UPDATE_MODEL_TIME; +import static com.yonsz.z1.new433.light.LightNewActivity.removeDuplicate; + +/** + * Created by Administrator on 2018/9/13. + */ + +public class Model5DetailActivity extends BaseActivity { + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private int model; + private TextView modelNameTv, modelDeclareTv; + private CheckBox modelOpenCb; + private SwitchView timeOpenCb; + private DeviceExpandableListView mListView; + private ModelNewAdapter mModelSetAdapter; + private List mObjEntity; + private TextView tvDeclare; + private TextView tv_1; + private RelativeLayout mainDeclare; + private RelativeLayout noDeviceRl; + private RelativeLayout topDecalre, saveModelRl; + private String respone; + private List mChildData = new ArrayList<>(); + private List> mDatas = new ArrayList<>(); + private String ziId; + private String isHaveDevice; + private String houseId; + private TextView onceTimeTv, timeSetTv, deleteModelTv, saveModelTv; + private String repeatTime = "", setTime = ""; + private RelativeLayout rl_time_set; + private String timeId = ""; + private String modelId = ""; + private String setId; + private String deviceModel = ""; + private boolean isChangeAndToSave = false; + private ImageView modifyNameIv, iv_bg; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_model_new_detail); + initView(); + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + public void onResume() { + super.onResume(); + queryModelDetail(); + selectModelTime(); + } + + private void initView() { + mTitleView = (TitleView) findViewById(R.id.title_model_detail); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isChangeAndToSave) { + saveChangeDialog(); + } else { + finish(); + } + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + timeId = getIntent().getExtras().get("modelId").toString(); + modelId = getIntent().getExtras().get("modelId1").toString(); + model = Integer.parseInt(getIntent().getExtras().get("model").toString()); + isHaveDevice = (String) getIntent().getExtras().get("isHaveDevice"); + houseId = (String) getIntent().getExtras().get("houseId"); + repeatTime = (String) getIntent().getExtras().get("repeatTime"); + setTime = (String) getIntent().getExtras().get("setTime"); + rl_time_set = (RelativeLayout) findViewById(R.id.rl_time_set); + rl_time_set.setOnClickListener(this); + deleteModelTv = (TextView) findViewById(R.id.tv_delete); + saveModelTv = (TextView) findViewById(R.id.tv_model_save); + onceTimeTv = (TextView) findViewById(R.id.tv_repeat_time); + timeSetTv = (TextView) findViewById(R.id.tv_time_set); + modelNameTv = (TextView) findViewById(R.id.tv_model_name); + modifyNameIv = (ImageView) findViewById(R.id.iv_modify_name); + iv_bg = (ImageView) findViewById(R.id.iv_bg); + modelDeclareTv = (TextView) findViewById(R.id.tv_model_declare); + tvDeclare = (TextView) findViewById(tv_che_dan); + tv_1 = (TextView) findViewById(R.id.tv_1); + topDecalre = (RelativeLayout) findViewById(R.id.rl_declare); + saveModelRl = (RelativeLayout) findViewById(R.id.rl_model_edit); + mainDeclare = (RelativeLayout) findViewById(R.id.rl_text_declare); + noDeviceRl = (RelativeLayout) findViewById(R.id.rl_text_declare_no_device); + modelOpenCb = (CheckBox) findViewById(R.id.cb_model_open); + timeOpenCb = (SwitchView) findViewById(R.id.stv_third); + modelOpenCb.setOnClickListener(this); + timeOpenCb.setOnClickListener(this); + deleteModelTv.setOnClickListener(this); + saveModelTv.setOnClickListener(this); + modifyNameIv.setOnClickListener(this); + + + switch (model) { + case 1: + mTitleView.setHead(R.string.in_home_model); + modelNameTv.setText(R.string.in_home_model); + modelDeclareTv.setText(R.string.You_can_turn_on_1); + tvDeclare.setText(R.string.At_home_mode); + tv_1.setText(R.string.click_in_home); + iv_bg.setImageResource(R.drawable.pic_index_home); + break; + case 2: + mTitleView.setHead(R.string.out_home_model); + modelNameTv.setText(R.string.out_home_model); + modelDeclareTv.setText(R.string.You_can_turn_on_2); + tvDeclare.setText(R.string.Out_home_mode); + tv_1.setText(R.string.click_out_home); + iv_bg.setImageResource(R.drawable.pic_index_leave_home); + break; + case 3: + mTitleView.setHead(R.string.in_bed_model); + modelNameTv.setText(R.string.in_bed_model); + modelDeclareTv.setText(R.string.You_can_turn_on_3); + tvDeclare.setText(R.string.Sleep_mode); + tv_1.setText(R.string.click_in_bed); + iv_bg.setImageResource(R.drawable.pic_index_sleep); + break; + case 4: + mTitleView.setHead(R.string.out_bed_model); + modelNameTv.setText(R.string.out_bed_model); + modelDeclareTv.setText(R.string.You_can_turn_on_4); + tvDeclare.setText(R.string.Wake_up_mode); + tv_1.setText(R.string.click_out_bed); + iv_bg.setImageResource(R.drawable.pic_index_get_up); + break; + default: + String modelName = getIntent().getExtras().get("houseModelName").toString(); + mTitleView.setHead(modelName); + modelNameTv.setText(modelName); + tvDeclare.setText("触发“" + modelName + "”后,执行以下动作"); + tv_1.setText("触发“" + modelName + "”后,所要"); + iv_bg.setImageResource(R.drawable.pic_index_custom); + break; + } + mListView = (DeviceExpandableListView) findViewById(R.id.expandablelist); + mObjEntity = new ArrayList<>(); + + setTopTime(); + /*if (isHaveDevice.equals("1")) { + timeOpenCb.setOpened((Boolean) getIntent().getExtras().get("isCheckBoxOpen")); + } else { + timeOpenCb.setOpened(false); + modelOpenCb.setEnabled(false); + noDeviceRl.setVisibility(View.VISIBLE); + }*/ + if (model >= 60) { + deleteModelTv.setVisibility(View.VISIBLE); + modifyNameIv.setVisibility(View.VISIBLE); + } else { + deleteModelTv.setVisibility(View.VISIBLE); + modifyNameIv.setVisibility(View.VISIBLE); + } + } + + @Override + public void onBackPressed() { + if (isChangeAndToSave) { + saveChangeDialog(); + } else { + finish(); + } + } + + private void saveChangeDialog() { + ConfirmNextDialog dialog = new ConfirmNextDialog(Model5DetailActivity.this, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + finish(); + break; + case 1: + batchUpdateModelControl(1); + break; + } + } + }); + dialog.setContent("您的修改尚未保存,是否保存?"); + dialog.setTopTxt("退出编辑"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + + private void setTopTime() { + if (!TextUtils.isEmpty(repeatTime) && repeatTime.length() > 16) { + onceTimeTv.setText(repeatTime.substring(0, 16) + "..."); + } else { + onceTimeTv.setText(repeatTime); + } + timeSetTv.setText(setTime); + } + + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.rl_time_set: + if (AddressNameUtil.isVirtual(ziId)) { + ToastUtil.show(Model5DetailActivity.this, "虚拟家庭不支持该操作"); + return; + } + Intent intent = new Intent(Model5DetailActivity.this, TimeSetting5Activity.class); + intent.putExtra("model", model); + intent.putExtra("isAdd", (boolean) getIntent().getExtras().get("isAdd")); + intent.putExtra("modelId", timeId); + intent.putExtra("nullmodelId", modelId); + intent.putExtra("houseId", houseId); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.stv_third: + if (timeOpenCb.isOpened()) { + updateModelTime(timeId, 1); + } else { + updateModelTime(timeId, 0); + } + break; + case R.id.cb_model_open: + if (modelOpenCb.isChecked()) { + updateModelBasic("1"); + } else { + updateModelBasic("0"); + } + break; + case R.id.tv_delete: + ConfirmDialog dialog = new ConfirmDialog(Model5DetailActivity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + // delModelTime(modelId); + sceneHousesceneDelete(modelId); + break; + } + } + }); + dialog.setContent("是否删除该情景模式?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_model_save: + batchUpdateModelControl(0); + break; + case R.id.iv_modify_name: + showModifyPop(); + break; + } + } + + private void showModifyPop() { + RenameNameDialog dialog = new RenameNameDialog(Model5DetailActivity.this, new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + if (modelOpenCb.isChecked()) { + updateModelBasic("1", positioName); + } else { + updateModelBasic("0", positioName); + } + + break; + } + } + }); + dialog.setMaxEms(8); + dialog.setOldName(modelNameTv.getText().toString()); + dialog.setContent("重命名"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + } + + private void updateModelBasic(String flag, final String modelName) { + initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", SharedpreferencesUtil.get(Constans.USERPHONE, "")); + map.put("modelType", String.valueOf(model)); + map.put("flag", flag); + map.put("houseId", houseId); + map.put("modelId", modelId); + map.put("modelName", modelName); + netWorkUtil.requestPostByAsynewApi(UPDATE_MODEL_BASIC, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateModelBasic", "ShareDeviceActivity onSuccess()" + respone); + ModelOpenEntity obj = JSON.parseObject(respone, ModelOpenEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_SUCCESS); + msg.obj = modelName; + msg.arg1 = 1; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void sceneHousesceneDelete(String controlId) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("modeId", controlId); + map.put("houseId", houseId); + netWorkUtil.requestPostByAsyBody(SCENE_HOUSESCENE_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("sceneHousesceneDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DEL_MODEL_CONTROL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DEL_MODEL_CONTROL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DEL_MODEL_CONTROL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void updateModelTime(String id, int openFlag) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", id); + map.put("houseId", houseId); + map.put("openFlag", String.valueOf(openFlag)); + netWorkUtil.requestPostByAsynewApi(UPDATE_MODEL_TIME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateModelTime", "ShareDeviceActivity onSuccess()" + respone); + AddModelEntity obj = JSON.parseObject(respone, AddModelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_DETAIL_SUCCESS: + if (null != msg.obj) { + if (isHaveDevice.equals("1")) { + ModelSetEntity modelSetEntity = (ModelSetEntity) msg.obj; + if (null != modelSetEntity.getData()) { + if (String.valueOf(modelSetEntity.getData().getFlag()).equals("1")) { + modelOpenCb.setChecked(true); + } else { + modelOpenCb.setChecked(false); + } + setViewData(modelSetEntity); + } + } else { + + } + } else { + + } + break; + case UPDATE_MODEL_CONTROL_SUCCESS: + // queryModelDetail(); + String modelOpenEntity = (String) msg.obj; + int arg11 = msg.arg1; + for (int i = 0; i < mObjEntity.size(); i++) { + if (mObjEntity.get(i).getConndeviceId().equals(modelOpenEntity)) { + mObjEntity.get(i).setCmdType(String.valueOf(arg11)); + } + } + if (mLoadingDialog != null) { + mLoadingDialog.dismiss(); + } + break; + case UPDATE_MODEL_CONTROL_FAIL: + case DEL_MODEL_TIME_FAIL: + case DEL_MODEL_CONTROL_FAIL: + if (mLoadingDialog != null) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(Model5DetailActivity.this, (String) msg.obj); + break; + case BATCH_UPDATE_MODEL_CONTROL_SUCCESS: + // queryModelDetail(); + /*String id = (String) msg.obj; + int arg1 = msg.arg1; + for (int i = 0; i < mObjEntity.size(); i++) { + if (arg1 == 1) { + if (mObjEntity.get(i).getConndeviceId().equals(id)) { + mObjEntity.get(i).setOpenFlag(arg1); + mObjEntity.get(i).setId(setId); + } + } else { + if (mObjEntity.get(i).getConndeviceId().equals(id)) { + mObjEntity.get(i).setOpenFlag(arg1); + } + } + }*/ + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + isChangeAndToSave = false; + ToastUtil.show(Model5DetailActivity.this, "保存成功"); + if (msg.arg1 == 1) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + } + break; + case BATCH_UPDATE_MODEL_CONTROL_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(Model5DetailActivity.this, (String) msg.obj); + if (msg.arg1 == 1) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + } + break; + case UPDATE_MODEL_BASIC_SUCCESS: + if (mLoadingDialog != null) { + mLoadingDialog.dismiss(); + } + if (msg.arg1 == 1) { + String obj = (String) msg.obj; + modelNameTv.setText(obj); + mTitleView.setHead(obj); + tvDeclare.setText("触发“" + obj + "”后,执行以下动作"); + tv_1.setText("触发“" + obj + "”后,所要"); + } else { + ModelOpenEntity obj = (ModelOpenEntity) msg.obj; + if (null != obj.getObj()) { + if (obj.getObj().getFlag() == 1) { + mListView.setVisibility(View.VISIBLE); + mainDeclare.setVisibility(View.GONE); + topDecalre.setVisibility(View.VISIBLE); + saveModelRl.setVisibility(View.VISIBLE); + rl_time_set.setVisibility(View.VISIBLE); + queryModelDetail(); + selectModelTime(); + } else { + mListView.setVisibility(View.GONE); + mainDeclare.setVisibility(View.GONE); + topDecalre.setVisibility(View.GONE); + saveModelRl.setVisibility(View.GONE); + rl_time_set.setVisibility(View.GONE); + } + } + } + break; + case UPDATE_MODEL_BASIC_FAIL: + if (mLoadingDialog != null) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(Model5DetailActivity.this, (String) msg.obj); + break; + case SELECT_MODEL_TIME_SUCCESS: + TimeSetEntity timeSetEntity = (TimeSetEntity) msg.obj; + if (timeSetEntity.getObj().size() > 0) { + setTime = timeSetEntity.getObj().get(0).getExecTime(); + repeatTime = setWeek(timeSetEntity.getObj().get(0), onceTimeTv); + if (timeSetEntity.getObj().get(0).getOpenFlag() == 0) { + timeOpenCb.setOpened(false); + } else { + timeOpenCb.setOpened(true); + } + timeId = timeSetEntity.getObj().get(0).getId(); + // modelId = timeSetEntity.getObj().get(0).getModelId(); + setTopTime(); + } else { + timeOpenCb.setOpened(false); + } + break; + case DEL_MODEL_TIME_SUCCESS: + case DEL_MODEL_CONTROL_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(Model5DetailActivity.this, R.string.Delete_successful); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + break; + } + } + + private String setWeek(TimeSetEntity.ObjEntity objEntity, TextView weekTv) { + if (objEntity.getOnceFlag() == 0) { + if (objEntity.getWeekNum1() != null) { + String str = ""; + if (objEntity.getWeekNum1().equals("1")) { + str += getString(R.string.Monday); + } else { + } + if (objEntity.getWeekNum2().equals("1")) { + str += getString(R.string.Tuesday); + } else { + } + if (objEntity.getWeekNum3().equals("1")) { + str += getString(R.string.Wednesday); + } else { + } + if (objEntity.getWeekNum4().equals("1")) { + str += getString(R.string.Thursday); + } else { + } + if (objEntity.getWeekNum5().equals("1")) { + str += getString(R.string.Friday); + } else { + } + if (objEntity.getWeekNum6().equals("1")) { + str += getString(R.string.Saturday); + } else { + } + if (objEntity.getWeekNum7().equals("1")) { + str += getString(R.string.Sunday); + } else { + } + return str; + } + } else { + return getString(R.string.once_time); + } + return ""; + } + + private void setViewData(final ModelSetEntity modelSetEntity) { + mObjEntity.clear(); + mObjEntity.addAll(modelSetEntity.getData().getControlList()); + convertList(mObjEntity); + if (String.valueOf(modelSetEntity.getData().getFlag()).equals("1")) { + if (mObjEntity != null) { + mListView.setVisibility(View.VISIBLE); + mainDeclare.setVisibility(View.GONE); + topDecalre.setVisibility(View.VISIBLE); + saveModelRl.setVisibility(View.VISIBLE); + rl_time_set.setVisibility(View.VISIBLE); + mModelSetAdapter = new ModelNewAdapter(getBaseContext(), mDatas); + mListView.setAdapter(mModelSetAdapter); + for (int i = 0; i < mModelSetAdapter.getGroupCount(); i++) { + mListView.expandGroup(i); + } + mModelSetAdapter.setmOnExpandItemClickListener(new OnExbandItemClickListener() { + @Override + public void onClick(View view, int parentPosition, int childPosition, int i, int j, String id) { + switch (i) { + case 0: + isChangeAndToSave = true; + deviceModel = mDatas.get(parentPosition).get(childPosition).getDeviceModel(); + if (j == 0) { + //删除 + // batchUpdateModelControl("0", id, mDatas.get(parentPosition).get(childPosition).getConndeviceId()); + mDatas.get(parentPosition).get(childPosition).setOpenFlag(0); + } else { + //添加 + // batchUpdateModelControl("1", id, mDatas.get(parentPosition).get(childPosition).getConndeviceId()); + mDatas.get(parentPosition).get(childPosition).setOpenFlag(1); + } + break; + case 1: + isChangeAndToSave = true; + //开关 + if (j == 0) { + mDatas.get(parentPosition).get(childPosition).setCmdType("1"); + // updateModelControl(mDatas.get(parentPosition).get(childPosition).getId(), "1", mDatas.get(parentPosition).get(childPosition).getConndeviceId().toString()); + } else { + mDatas.get(parentPosition).get(childPosition).setCmdType("0"); + // updateModelControl(mDatas.get(parentPosition).get(childPosition).getId(), "0", mDatas.get(parentPosition).get(childPosition).getConndeviceId().toString()); + } + break; + case 2: + ToastUtil.show(Model5DetailActivity.this, "设备已离线"); + break; + case 5: + final List settings = mDatas.get(parentPosition).get(childPosition).getSettings(); + final String deviceType = mDatas.get(parentPosition).get(childPosition).getDeviceType(); + final String modeControlId = mDatas.get(parentPosition).get(childPosition).getId(); + ConfirmNewValueDialog dialog = new ConfirmNewValueDialog(Model5DetailActivity.this, settings, deviceType, new Callback3() { + @Override + public void callback(int position, String progress, String mode) { + switch (position) { + case 0: + break; + case 1: + for (ModelSetEntity.DataBean.ControlListEntity.SettingsBean settingsBean : settings) { + if (settingsBean.getName().equals("mode")) { + settingsBean.setValue(mode); + } else { + settingsBean.setValue(progress); + } + } + mModelSetAdapter.notifyDataSetChanged(); + batchUpdateModelControl(0); + break; + } + } + }); + switch (deviceType) { + case LIGHT_TAG: + dialog.setTopTxt("灯光设置"); + dialog.setContent("亮度"); + break; + case CURTAINS_TAG: + String blindType = mDatas.get(parentPosition).get(childPosition).getSubType(); + if (blindType.equals("1")) { + dialog.setTopTxt("纱帘设置"); + } else { + dialog.setTopTxt("窗帘设置"); + } + dialog.setContent("打开"); + break; + case AIR_TAG: + case TEMP_CONTROL: + dialog.setTopTxt("空调温度设置"); + dialog.setContent("温度"); + break; + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + break; + } + } + }); + } else { + mListView.setVisibility(View.GONE); + mainDeclare.setVisibility(View.GONE); + topDecalre.setVisibility(View.GONE); + saveModelRl.setVisibility(View.GONE); + rl_time_set.setVisibility(View.GONE); + } + } else { + mListView.setVisibility(View.GONE); + mainDeclare.setVisibility(View.GONE); + topDecalre.setVisibility(View.GONE); + saveModelRl.setVisibility(View.GONE); + rl_time_set.setVisibility(View.GONE); + } + } + + private void batchUpdateModelControl(final int tag) { + List listEntities = reConvertList(mDatas); + initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", houseId); + map.put("modelId", modelId); + netWorkUtil.requestPostByAsyBody(BATCH_UPDATE_MODEL_CONTROL, map, JSONObject.toJSONString(listEntities), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("batchUpdateModelControl", "ShareDeviceActivity onSuccess()" + respone); + DeviceAllEntity obj = JSON.parseObject(respone, DeviceAllEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(BATCH_UPDATE_MODEL_CONTROL_SUCCESS); + msg.arg1 = tag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(BATCH_UPDATE_MODEL_CONTROL_FAIL); + msg.obj = obj.getMsg(); + msg.arg1 = tag; + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(BATCH_UPDATE_MODEL_CONTROL_FAIL); + msg.obj = message; + msg.arg1 = tag; + mHandler.sendMessage(msg); + } + }); + } + + private List> convertList(List mObjEntity) { + if (mObjEntity != null && mObjEntity.size() > 0) { + List mChildData = null; + List ziIdStrings = new ArrayList<>(); + for (int i = 0; i < mObjEntity.size(); i++) { + if (homeListEntity.getData().get(deviceNumListPosition).getHouseCategory() == 2) { + ziIdStrings.add(mObjEntity.get(i).getFloor() + "层" + mObjEntity.get(i).getConndeviceAddress()); + } else { + ziIdStrings.add(mObjEntity.get(i).getConndeviceAddress()); + } + } + List list = removeDuplicate(ziIdStrings); + mDatas.clear(); + for (int i = 0; i < list.size(); i++) { + mChildData = new ArrayList<>(); + for (int j = 0; j < mObjEntity.size(); j++) { + if (homeListEntity.getData().get(deviceNumListPosition).getHouseCategory() == 2) { + if ((mObjEntity.get(j).getFloor() + "层" + mObjEntity.get(j).getConndeviceAddress()).equals(list.get(i))) { + mChildData.add(mObjEntity.get(j)); + } + } else { + if (mObjEntity.get(j).getConndeviceAddress().equals(list.get(i))) { + mChildData.add(mObjEntity.get(j)); + } + } + } + if (mChildData.size() > 0) { + mDatas.add(mChildData); + } + } + } + return mDatas; + } + + private List reConvertList(List> lists) { + List listEntities = new ArrayList<>(); + for (int i = 0; i < lists.size(); i++) { + for (int j = 0; j < lists.get(i).size(); j++) { + if (lists.get(i).get(j).getOpenFlag() == 1) { + lists.get(i).get(j).setDeviceId(lists.get(i).get(j).getConndeviceId()); + + for (ModelSetEntity.DataBean.ControlListEntity.SettingsBean settingsBean : lists.get(i).get(j).getSettings()) { + if (settingsBean.getName().equals("mode")) { + if (settingsBean.getValue().equals("100")) { + settingsBean.setValue("cold"); + } + } else { + if (settingsBean.getValue().equals("100")) { + if (lists.get(i).get(j).getDeviceType().equals(AIR_TAG) || lists.get(i).get(j).getDeviceType().equals(TEMP_CONTROL)) { + settingsBean.setValue("26"); + } else { + settingsBean.setValue("100"); + } + } + } + } + listEntities.add(lists.get(i).get(j)); + } + } + } + return listEntities; + } + + private void queryModelDetail() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", houseId); + map.put("modelType", String.valueOf(model)); + map.put("modelId", modelId); + netWorkUtil.requestGetByAsy(QUERY_MODEL_DETAIL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone1) { + respone = respone1; + ToastUtil.i("queryModelDetail", respone); + ModelSetEntity obj = JSON.parseObject(respone, ModelSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_DETAIL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_DETAIL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_DETAIL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void updateModelBasic(String flag) { + initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", SharedpreferencesUtil.get(Constans.USERPHONE, "")); + map.put("modelType", String.valueOf(model)); + map.put("flag", flag); + map.put("houseId", houseId); + map.put("modelId", modelId); + map.put("modelName", modelNameTv.getText().toString()); + netWorkUtil.requestPostByAsynewApi(UPDATE_MODEL_BASIC, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateModelBasic", "ShareDeviceActivity onSuccess()" + respone); + ModelOpenEntity obj = JSON.parseObject(respone, ModelOpenEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_SUCCESS); + msg.obj = obj; + msg.arg1 = 0; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void selectModelTime() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", houseId); + map.put("modelType", String.valueOf(model)); + map.put("modelId", modelId); + netWorkUtil.requestGetByAsy(SELECT_MODEL_TIME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("selectModelTime", "ShareDeviceActivity onSuccess()" + respone); + TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODEL_REAPEAT: + if (data != null && data.getExtras().get("repeatTime") != null) { + if (!TextUtils.isEmpty(data.getExtras().get("repeatTime").toString().trim())) { + repeatTime = data.getExtras().get("repeatTime").toString().trim(); + } else { + repeatTime = getString(R.string.once_time); + } + } + + if (data != null && data.getExtras().get("setTime") != null) { + if (!TextUtils.isEmpty(data.getExtras().get("setTime").toString().trim())) { + setTime = data.getExtras().get("setTime").toString().trim(); + } else { + setTime = ""; + } + } + setTopTime(); + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/scene/Model5SetAdapter.java b/app/src/main/java/com/yonsz/z1/version5/scene/Model5SetAdapter.java new file mode 100644 index 0000000..f8c872c --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/scene/Model5SetAdapter.java @@ -0,0 +1,966 @@ +package com.yonsz.z1.version5.scene; + +import android.content.Context; +import android.content.Intent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseExpandableListAdapter; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.NewModelSetEntity; +import com.yonsz.z1.device.SlideView; +import com.yonsz.z1.fragment.person.WebViewActivity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnExbandItemClickListener; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.ArrayList; +import java.util.List; + +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GAS_TAG; +import static com.yonsz.z1.net.Constans.GEMSTONE_ELVES; +import static com.yonsz.z1.net.Constans.INDEPENDENT_CODE_AC; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.Img; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.RGB_LIGHT; +import static com.yonsz.z1.net.Constans.SAFETY_ACOUSTO_OPTIC; +import static com.yonsz.z1.net.Constans.SAFETY_DISPLACEMENT; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SAFETY_WIRELESS_REMOTE; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SKYWORTH_TV; +import static com.yonsz.z1.net.Constans.SMOKE_TAG; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.WATER_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; + +/** + * Created by Administrator on 2017/11/13. + */ + +public class Model5SetAdapter extends BaseExpandableListAdapter { + private Context mContext; + private List mObjEntity; + private List mDatas = new ArrayList<>(); + private int groupCount = 0; + private String ziId; + private OnExbandItemClickListener mExbandItemClickListener; + + + public Model5SetAdapter(Context mContext, List mDatas) { + super(); + this.mContext = mContext; + this.mDatas = mDatas; + } + + @Override + public int getGroupCount() { + return mDatas.size(); + } + + @Override + public int getChildrenCount(int groupPosition) { + /*int childSum = 0; + for (int i = 0; i < mObjEntity.size(); i++) { + if (mObjEntity.get(i).getZiId().toString().equals(mObjEntity.get(groupPosition).getZiId().toString())) { + childSum += 1; + } + }*/ + return mDatas.get(groupPosition).getControls().size(); + } + + @Override + public Object getGroup(int groupPosition) { + return mObjEntity.get(groupPosition); + } + + @Override + public Object getChild(int groupPosition, int childPosition) { + return childPosition; + } + + @Override + public long getGroupId(int groupPosition) { + return groupPosition; + } + + @Override + public long getChildId(int groupPosition, int childPosition) { + return childPosition; + } + + @Override + public boolean hasStableIds() { + return true; + } + + @Override + public View getGroupView(final int groupPosition, final boolean isExpanded, View convertView, ViewGroup parent) { + final ParentHolder parentHolder; + SlideView slideView = (SlideView) convertView; + if (slideView == null) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_choose_device_group, null); + slideView = new SlideView(mContext, false, false); + slideView.setContentView(itemView); + parentHolder = new ParentHolder(slideView); + slideView.setTag(parentHolder); + } else { + parentHolder = (ParentHolder) slideView.getTag(); + } + slideView.shrink(); + /*if (mDatas.get(groupPosition).get(0).getConndeviceAddress() != null) { + if (!mDatas.get(groupPosition).get(0).getFloor().isEmpty() && AppIdUtil.isBaseZhiKong()) { + parentHolder.devicePosition.setText(mDatas.get(groupPosition).get(0).getFloor() + "层" + (mDatas.get(groupPosition).get(0).getConndeviceAddress())); + } else { + parentHolder.devicePosition.setText(mDatas.get(groupPosition).get(0).getConndeviceAddress()); + } + } else { + parentHolder.devicePosition.setText(R.string.no_position); + }*/ + if (!mDatas.get(groupPosition).getFloor().isEmpty() && AppIdUtil.isBaseZhiKong()) { + parentHolder.devicePosition.setText(mDatas.get(groupPosition).getFloor() + "层" + mDatas.get(groupPosition).getAddressName() + "的" + mDatas.get(groupPosition).getGatewayName()); + } else { + parentHolder.devicePosition.setText(mDatas.get(groupPosition).getAddressName() + "的" + mDatas.get(groupPosition).getGatewayName()); + } + if (isExpanded) { + parentHolder.arrowIv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrow_down)); + } else { + parentHolder.arrowIv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrow_up)); + } + + if (mDatas.get(groupPosition).getExecType().equals("single")) { + parentHolder.cb_alone.setChecked(true); + parentHolder.cb_combination.setChecked(false); + } else { + parentHolder.cb_alone.setChecked(false); + parentHolder.cb_combination.setChecked(true); + } + if (mDatas.get(groupPosition).getOffline().equals("true")) { + parentHolder.offLineIv.setVisibility(View.VISIBLE); + } else { + parentHolder.offLineIv.setVisibility(View.GONE); + } + final SlideView finalSlideView = slideView; + parentHolder.cb_alone.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + parentHolder.cb_alone.setChecked(true); + parentHolder.cb_combination.setChecked(false); + if (mExbandItemClickListener != null) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, 0, 3, 0, mDatas.get(groupPosition).getZiId()); + } + } + }); + parentHolder.cb_combination.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + parentHolder.cb_alone.setChecked(false); + parentHolder.cb_combination.setChecked(true); + if (mExbandItemClickListener != null) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, 0, 3, 1, mDatas.get(groupPosition).getZiId()); + } + } + }); + parentHolder.offLineIv.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + //跳转WebView + Intent intent = new Intent(mContext, WebViewActivity.class); + intent.putExtra("platform", "model"); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.getApplicationContext().startActivity(intent); + } + }); + parentHolder.arrowIv.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (isExpanded) { + if (mExbandItemClickListener != null) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, 0, 4, 0, mDatas.get(groupPosition).getZiId()); + } + parentHolder.arrowIv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrow_up)); + } else { + if (mExbandItemClickListener != null) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, 0, 4, 1, mDatas.get(groupPosition).getZiId()); + parentHolder.arrowIv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrow_down)); + } + } + } + }); + return slideView; + } + + @Override + public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { + final ChildHolder childHolder; + SlideView slideView = (SlideView) convertView; + if (slideView == null) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_model_set_child, null); + slideView = new SlideView(mContext, false, false); + slideView.setContentView(itemView); + childHolder = new ChildHolder(slideView); + slideView.setTag(childHolder); + } else { + childHolder = (ChildHolder) slideView.getTag(); + } + slideView.shrink(); + + if (mDatas.get(groupPosition).getControls().get(childPosition).getSettings().size() == 0) { + childHolder.rl_model_operation.setVisibility(View.GONE); + } else { + childHolder.rl_model_operation.setVisibility(View.VISIBLE); + if (mDatas.get(groupPosition).getControls().get(childPosition).getDeviceType().equals(AIR_TAG) + || mDatas.get(groupPosition).getControls().get(childPosition).getDeviceType().equals(TEMP_CONTROL)) { + List settings = mDatas.get(groupPosition).getControls().get(childPosition).getSettings(); + for (NewModelSetEntity.DataBean.ModeAiDevicesBean.ControlsBean.SettingsBean settingsBean : settings) { + switch (settingsBean.getName()) { + case "mode": + String value = ""; + switch (settingsBean.getValue()) { + case "cold": + value = "制冷"; + break; + case "heat": + value = "制暖"; + break; + case "dehumidification": + value = "除湿"; + break; + case "ventilate": + value = "送风"; + break; + default: + value = "制冷"; + break; + } + childHolder.tv_air_model.setText(value + settingsBean.getLabel()); + break; + case "temperature": + if (settingsBean.getValue().equals("100")) { + childHolder.tv_setting_device_value.setText(settingsBean.getLabel() + " " + 26 + "℃"); + } else { + childHolder.tv_setting_device_value.setText(settingsBean.getLabel() + " " + settingsBean.getValue() + "℃"); + } + break; + } + } + } else if (mDatas.get(groupPosition).getControls().get(childPosition).getDeviceType().equals(CLOTHES_HANGER)) { + List settings = mDatas.get(groupPosition).getControls().get(childPosition).getSettings(); + String modelState = ""; + for (NewModelSetEntity.DataBean.ModeAiDevicesBean.ControlsBean.SettingsBean settingsBean : settings) { + switch (settingsBean.getName()) { + case "function": + String value = ""; + switch (settingsBean.getValue()) { + case "down": + value = "下降"; + break; + case "up": + value = "上升"; + break; + default: + value = "上升"; + break; + } + childHolder.tv_air_model.setText(""); + childHolder.tv_setting_device_name.setText(settingsBean.getLabel() + ":" + value); + break; + case "disinfect": + if (settingsBean.getValue().isEmpty() || settingsBean.getValue().equals("100")) { + modelState += ""; + } else if (settingsBean.getValue().equals("disinfect")) { + modelState += "消毒开、"; + } else { + modelState += "消毒关、"; + } + break; + case "airdrying": + if (settingsBean.getValue().isEmpty() || settingsBean.getValue().equals("100")) { + modelState += ""; + } else if (settingsBean.getValue().equals("airdrying")) { + modelState += "风干开、"; + } else { + modelState += "风干关、"; + } + break; + case "stoving": + if (settingsBean.getValue().isEmpty() || settingsBean.getValue().equals("100")) { + modelState += ""; + } else if (settingsBean.getValue().equals("stoving")) { + modelState += "烘干开、"; + } else { + modelState += "烘干关、"; + } + break; + } + } + if (modelState.isEmpty()) { + childHolder.tv_setting_device_value.setText(""); + } else { + childHolder.tv_setting_device_value.setText(modelState.substring(0, modelState.length() - 1)); + } + } else if (mDatas.get(groupPosition).getControls().get(childPosition).getDeviceType().equals(RGB_LIGHT)) { + childHolder.tv_setting_device_value.setText(mDatas.get(groupPosition).getControls().get(childPosition).getSettings().get(0).getLabel() + " " + AddressNameUtil.getModelColorName(mDatas.get(groupPosition).getControls().get(childPosition).getSettings().get(0).getValue())); + childHolder.tv_air_model.setText(""); + } else if (mDatas.get(groupPosition).getControls().get(childPosition).getDeviceType().equals(SECURITY_MANIPULATOR)) { +// childHolder.tv_setting_device_value.setText(mDatas.get(groupPosition).getControls().get(childPosition).getSettings().get(0).getValue()); + if (mDatas.get(groupPosition).getControls().get(childPosition).getSettings().get(0).getValue().equals("power")) { + childHolder.tv_setting_device_value.setText("开启状态"); + } else { + childHolder.tv_setting_device_value.setText("关闭状态"); + } + childHolder.tv_air_model.setText(""); + } else { + childHolder.tv_setting_device_value.setText(mDatas.get(groupPosition).getControls().get(childPosition).getSettings().get(0).getLabel() + " " + mDatas.get(groupPosition).getControls().get(childPosition).getSettings().get(0).getValue() + "%"); + childHolder.tv_air_model.setText(""); + } + } + String deviceModel = mDatas.get(groupPosition).getControls().get(childPosition).getDeviceModel(); + childHolder.tv_lock_open.setVisibility(View.GONE); + switch (mDatas.get(groupPosition).getControls().get(childPosition).getDeviceType()) { + case TV_TAG: + childHolder.icon.setImageResource(Img[0]); + childHolder.title.setText(R.string.tv); + childHolder.position.setText(""); + break; + case TVONE_TAG: + childHolder.icon.setImageResource(R.drawable.icon_set_top_box); + childHolder.title.setText("机顶盒"); + childHolder.position.setText(""); + break; + case AIR_CLEANER: + childHolder.icon.setImageResource(R.drawable.icon_purifier); + childHolder.title.setText("净化器"); + childHolder.position.setText(""); + break; + case MOVIE_CAMERA: + childHolder.icon.setImageResource(R.drawable.icon_device_projector); + childHolder.title.setText("投影机"); + childHolder.position.setText(""); + break; + case AIR_TAG: + childHolder.tv_setting_device_name.setText("空调设置"); + childHolder.icon.setImageResource(Img[1]); + childHolder.title.setText(R.string.air); + childHolder.position.setText(""); + break; + case INDEPENDENT_CODE_AC: + childHolder.icon.setImageResource(R.drawable.icon_ac); + childHolder.title.setText(R.string.air); + childHolder.position.setText(""); + break; + case FAN_TAG: + childHolder.icon.setImageResource(Img[2]); + childHolder.title.setText(R.string.fan); + childHolder.position.setText(""); + break; + case SWEEP_TAG: + childHolder.icon.setImageResource(Img[3]); + childHolder.title.setText(R.string.sweep); + childHolder.position.setText(""); + break; + case MUSIC_TAG: + childHolder.icon.setImageResource(Img[13]); + childHolder.title.setText("背景音乐"); + childHolder.position.setText(""); + break; + case LIGHT_TAG: + childHolder.tv_setting_device_name.setText("灯光设置"); + if (AppIdUtil.isWork()) { + childHolder.title.setText(R.string.light); + childHolder.icon.setImageResource(R.drawable.icon_light); + } else { + switch (mDatas.get(groupPosition).getControls().get(childPosition).getSubType()) { + case "0"://灯光 + childHolder.title.setText(R.string.light); + childHolder.icon.setImageResource(R.drawable.icon_light); + break; + case "1"://筒灯 + childHolder.title.setText(R.string.tong_deng); + childHolder.icon.setImageResource(R.drawable.icon_tubelamp); + break; + case "2"://灯带 + childHolder.title.setText(R.string.deng_dai); + childHolder.icon.setImageResource(R.drawable.icon_lightbelt); + break; + case "3"://射灯 + childHolder.title.setText(R.string.she_deng); + childHolder.icon.setImageResource(R.drawable.icon_lamp); + break; + case "4"://壁灯 + childHolder.title.setText(R.string.bi_deng); + childHolder.icon.setImageResource(R.drawable.icon_walllamp); + break; + case "5"://吊灯 + childHolder.title.setText(R.string.diao_deng); + childHolder.icon.setImageResource(R.drawable.icon_chandelier); + break; + case "6"://廊灯 + childHolder.title.setText(R.string.lang_deng); + childHolder.icon.setImageResource(R.drawable.icon_porchlamp); + break; + case "7"://排气扇 + childHolder.title.setText(R.string.paiqi_shan); + childHolder.icon.setImageResource(R.drawable.icon_exhaust); + break; + default: + childHolder.title.setText(R.string.light); + childHolder.icon.setImageResource(R.drawable.icon_light); + break; + } + } + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case CURTAINS_TAG: + childHolder.tv_setting_device_name.setText("窗帘设置"); + if (AppIdUtil.isWork()) { + childHolder.title.setText(R.string.curtains); + childHolder.icon.setImageResource(R.drawable.icon_curtains); + } else { + if (mDatas.get(groupPosition).getControls().get(childPosition).getRelatedStatus().equals("1")) { + childHolder.title.setText(R.string.curtains); + childHolder.icon.setImageResource(R.drawable.icon_curtaingauzecurtain); + } else { + if (mDatas.get(groupPosition).getControls().get(childPosition).getSubType().equals("1")) { + childHolder.title.setText("纱帘"); + childHolder.icon.setImageResource(R.drawable.icon_gauze); + } else { + childHolder.title.setText(R.string.curtains); + childHolder.icon.setImageResource(R.drawable.icon_curtains); + } + } + } + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case SWITCH_TAG: + if (AppIdUtil.isWork()) { + childHolder.title.setText(R.string.chazuo); + childHolder.icon.setImageResource(R.drawable.icon_chazuo); + } else { + switch (mDatas.get(groupPosition).getControls().get(childPosition).getSubType()) { + case "0"://插座 + childHolder.title.setText(R.string.chazuo); + switch (mDatas.get(groupPosition).getControls().get(childPosition).getDeviceModel()) { + case "0": + childHolder.icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + childHolder.icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + childHolder.icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + childHolder.icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + childHolder.icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + case "1"://台灯 + childHolder.title.setText(R.string.tai_deng); + childHolder.icon.setImageResource(R.drawable.icon_desklamp); + break; + case "2"://热水器(厨电) + childHolder.title.setText(R.string.chu_dian); + childHolder.icon.setImageResource(R.drawable.icon_kitchenpower); + break; + case "3"://墙壁插座 + childHolder.title.setText(R.string.bi_cha); + if (AppIdUtil.isZhiKong()) { + childHolder.icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + } else { + childHolder.icon.setImageResource(R.drawable.icon_wallsocket); + } + break; + case "4"://热水壶 + childHolder.title.setText(R.string.reshui_hu); + childHolder.icon.setImageResource(R.drawable.icon_kettle); + break; + case "5"://取暖器 + childHolder.title.setText(R.string.qunuan_qi); + childHolder.icon.setImageResource(R.drawable.icon_heater); + break; + case "6"://电蚊香 + childHolder.title.setText(R.string.dianwen_xiang); + childHolder.icon.setImageResource(R.drawable.icon_dwx); + case "7":// + childHolder.title.setText("紫外消毒灯"); + childHolder.icon.setImageResource(R.drawable.icon_sterilizing_lamp); + break; + default: + childHolder.title.setText(R.string.chazuo); + switch (mDatas.get(groupPosition).getControls().get(childPosition).getDeviceModel()) { + case "0": + childHolder.icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + childHolder.icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + childHolder.icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + childHolder.icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + childHolder.icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + } + } + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case DOOR_LOCK_TAG: + if (deviceModel.equals("0")) { + childHolder.icon.setImageResource(R.drawable.icon_gatemagnetic); + } else if (deviceModel.equals("2")) { + childHolder.icon.setImageResource(R.drawable.icon_magnetism_jd); + } else { + childHolder.icon.setImageResource(R.drawable.pic_magnetism_dh); + } + childHolder.title.setText(R.string.door_warn); + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case INFRARED_TAG: + if (deviceModel.equals("0")) { + childHolder.icon.setImageResource(R.drawable.icon_infrared); + } else if (deviceModel.equals("2")) { + childHolder.icon.setImageResource(R.drawable.icon_infrared_jd); + } else { + childHolder.icon.setImageResource(R.drawable.pic_infrared_dh); + } + childHolder.title.setText(R.string.red_warn); + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case INFRARED_CURTAIN_DETECTOR: + childHolder.icon.setImageResource(R.drawable.pic_curtain_dh); + childHolder.title.setText("幕帘式红外探测器"); + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case INTELLIGENT_DOOR_LOCK: + childHolder.tv_lock_open.setVisibility(View.VISIBLE); + if (deviceModel.equals("1")) { + childHolder.icon.setImageResource(R.drawable.icon_device_lock_v6); + } else if (deviceModel.equals("2")) { + childHolder.icon.setImageResource(R.drawable.icon_lock_k2m); + } else { + childHolder.icon.setImageResource(R.drawable.pic_lock_dh); + } + childHolder.title.setText("智能门锁"); + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case WIRELESS_EMERGENCY_BUTTON: + if (deviceModel.equals("1")) { + childHolder.icon.setImageResource(R.drawable.icon_device_sos); + } else { + childHolder.icon.setImageResource(R.drawable.pic_panic_button_dh); + } + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case SAFETY_DISPLACEMENT: + childHolder.icon.setImageResource(R.drawable.icon_device_shift_dh); + break; + case SAFETY_ACOUSTO_OPTIC: + childHolder.icon.setImageResource(R.drawable.icon_device_acousto_optic_dh); + break; + case SAFETY_WIRELESS_REMOTE: + childHolder.icon.setImageResource(R.drawable.icon_device_remote_control_dh); + break; + case WINDOW_OPENER: + childHolder.icon.setImageResource(R.drawable.icon_window_opener); + childHolder.title.setText("开窗器"); + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case MULTIFUNCTIONAL_CONTROLLER: + switch (mDatas.get(groupPosition).getControls().get(childPosition).getSubType()) { + case "0": + childHolder.icon.setImageResource(R.drawable.icon_curtains); + break; + case "1": + if (AppIdUtil.isWork()) { + childHolder.icon.setImageResource(R.drawable.icon_curtains); + } else { + childHolder.icon.setImageResource(R.drawable.icon_gauze); + } + break; + case "2": + childHolder.icon.setImageResource(R.drawable.icon_window_opener); + break; + case "3"://车库门 + childHolder.icon.setImageResource(R.drawable.pic_garage); + break; + case "4"://遮阳棚 + childHolder.icon.setImageResource(R.drawable.pic_sunshade); + break; + case "5"://电动门 + childHolder.icon.setImageResource(R.drawable.pic_autogate); + break; + case "6"://投影升降机 + childHolder.icon.setImageResource(R.drawable.pic_elevator); + break; + case "7"://幕布升降机 + childHolder.icon.setImageResource(R.drawable.pic_curtain_elevator); + break; + case "8"://电动喷淋 + childHolder.icon.setImageResource(R.drawable.pic_spray); + break; + case "9"://卷闸门 + childHolder.icon.setImageResource(R.drawable.pic_garage); + break; + default: + childHolder.icon.setImageResource(R.drawable.icon_multifunctional); + break; + } + childHolder.title.setText("多功能控制器"); + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case GEMSTONE_ELVES: + childHolder.icon.setImageResource(R.drawable.icon_gemstone_elves); + childHolder.title.setText("宝石精灵"); + break; + case SECURITY_TRIGGER: + switch (mDatas.get(groupPosition).getControls().get(childPosition).getSubType()) { + case "0": + childHolder.icon.setImageResource(R.drawable.icon_trigger_gas); + break; + case "1": + childHolder.icon.setImageResource(R.drawable.icon_trigger_smoke); + break; + case "2": + childHolder.icon.setImageResource(R.drawable.icon_trigger_infrared); + break; + case "3": + childHolder.icon.setImageResource(R.drawable.icon_trigger_magnetism); + break; + case "4": + childHolder.icon.setImageResource(R.drawable.icon_trigger_sos); + break; + } + break; + case TEMP_CONTROL: + case FRESH_AIR: + case FLOOR_HEATING: + childHolder.tv_setting_device_name.setText("温度设置"); + childHolder.icon.setImageResource(R.drawable.icon_device_temperature); + break; + case SERVICE_PANEL_485: + if (deviceModel.equals("1")) { + childHolder.icon.setImageResource(R.drawable.icon_485_12v); + } else { + childHolder.icon.setImageResource(R.drawable.icon_485); + } + break; + case WATER_TAG: + childHolder.icon.setImageResource(R.drawable.icon_water_jd); + break; + case SMOKE_TAG: + childHolder.icon.setImageResource(R.drawable.icon_smoke_jd); + break; + case GAS_TAG: + childHolder.icon.setImageResource(R.drawable.icon_gas_jd); + break; + case SITUATIONAL_TRIGGER: + childHolder.icon.setImageResource(R.drawable.icon_multifunctional); + break; + case CLOTHES_HANGER: + childHolder.tv_lock_open.setVisibility(View.VISIBLE); + childHolder.tv_lock_open.setText("照明"); + childHolder.icon.setImageResource(R.drawable.icon_airer); + break; + case SAFETY_VALVE: + childHolder.icon.setImageResource(R.drawable.icon_valve_controller); + break; + case SECURITY_MANIPULATOR: + childHolder.tv_setting_device_name.setText("开关设置"); + childHolder.icon.setImageResource(R.drawable.icon_security_manipulator); + break; + case RGB_LIGHT: + childHolder.tv_setting_device_name.setText(""); + childHolder.icon.setImageResource(R.drawable.icon_rgb_lightbelt); + break; + case SKYWORTH_TV: + childHolder.icon.setImageResource(R.drawable.icon_chuangwei_tv); + switch (mDatas.get(groupPosition).getControls().get(childPosition).getSubType()) { + case "1": + childHolder.icon.setImageResource(R.drawable.icon_tv); + break; + case "8": + childHolder.icon.setImageResource(R.drawable.icon_kt); + break; + } + break; + } + + if (!mDatas.get(groupPosition).getControls().get(childPosition).getDeviceName().isEmpty()) { + childHolder.title.setText(mDatas.get(groupPosition).getControls().get(childPosition).getDeviceName()); + } + /* if (!mDatas.get(groupPosition).get(childPosition).getZiId().isEmpty()) { + String aiNameAndState = AddressNameUtil.getAiNameAndState(mDatas.get(groupPosition).get(childPosition).getZiId()); + childHolder.position.setText(aiNameAndState); + } else { + if (mDatas.get(groupPosition).get(childPosition).getOpenFlag() == 1) { + childHolder.position.setText("网关(在线)"); + } else { + childHolder.position.setText("网关(离线)"); + } + }*/ + /*if (mDatas.get(groupPosition).getControls().get(childPosition).getOnline().equals("1")) { + childHolder.position.setText(mDatas.get(groupPosition).getControls().get(childPosition).getGatewayName() + "(在线)"); + } else { + childHolder.position.setText(mDatas.get(groupPosition).getControls().get(childPosition).getGatewayName() + "(离线)"); + }*/ + + childHolder.position.setText(mDatas.get(groupPosition).getControls().get(childPosition).getConndeviceAddress()); + + if (mDatas.get(groupPosition).getControls().get(childPosition).getOpenFlag() == 1) { + childHolder.mDeviceChoose.setChecked(true); + childHolder.rl_innet_bg.setAlpha(1.0f); + childHolder.mControlOpen.setEnabled(true); + } else { + childHolder.mDeviceChoose.setChecked(false); + childHolder.rl_innet_bg.setAlpha(0.5f); + childHolder.mControlOpen.setEnabled(false); + } + + if (mDatas.get(groupPosition).getControls().get(childPosition).getCmdType().equals("1")) { + childHolder.mControlOpen.setChecked(true); + childHolder.mControlOpenTv.setText(R.string.timing_open); + } else { + childHolder.mControlOpen.setChecked(false); + childHolder.mControlOpenTv.setText(R.string.timing_close); + } + + final SlideView finalSlideView = slideView; + childHolder.deleteHolder.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mExbandItemClickListener != null) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 0, 0, mDatas.get(groupPosition).getControls().get(childPosition).getId()); + } + } + }); + + childHolder.mControlOpen.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mExbandItemClickListener != null) { + if (childHolder.mControlOpen.isChecked()) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 1, 0, mDatas.get(groupPosition).getControls().get(childPosition).getId()); + childHolder.mControlOpenTv.setText(R.string.timing_open); + } else { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 1, 1, mDatas.get(groupPosition).getControls().get(childPosition).getId()); + childHolder.mControlOpenTv.setText(R.string.timing_close); + } + } + } + }); + childHolder.rl_innet_bg.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mDatas.get(groupPosition).getControls().get(childPosition).getOpenFlag() == 1 && mDatas.get(groupPosition).getControls().get(childPosition).getSettings().size() != 0) { + if (mExbandItemClickListener != null) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 5, 0, ""); + } + } + } + }); + childHolder.rl_model_operation.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mDatas.get(groupPosition).getControls().get(childPosition).getOpenFlag() == 1 && mDatas.get(groupPosition).getControls().get(childPosition).getSettings().size() != 0) { + if (mExbandItemClickListener != null) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 5, 0, ""); + } + } + } + }); + childHolder.mDeviceChoose.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mExbandItemClickListener != null) { + if (!mDatas.get(groupPosition).getControls().get(childPosition).getZiId().isEmpty()) { + String aiState = AddressNameUtil.getAiOnlineState(mDatas.get(groupPosition).getControls().get(childPosition).getZiId()); + // if (!aiState.equals("1")) { + if (!mDatas.get(groupPosition).getControls().get(childPosition).getOnline().equals("1")) { + if (childHolder.mDeviceChoose.isChecked()) { + childHolder.mDeviceChoose.setChecked(false); + } else { + childHolder.mDeviceChoose.setChecked(true); + } + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 2, 0, mDatas.get(groupPosition).getControls().get(childPosition).getId()); + return; + } + } + if (!childHolder.mDeviceChoose.isChecked()) { + //删除 + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 0, 0, mDatas.get(groupPosition).getControls().get(childPosition).getId()); + + childHolder.mDeviceChoose.setChecked(false); + childHolder.rl_innet_bg.setAlpha(0.5f); + childHolder.mControlOpen.setEnabled(false); + } else { + //增加 + StringBuilder stringBuilderAdd = new StringBuilder(); + stringBuilderAdd.append(mDatas.get(groupPosition).getControls().get(childPosition).getZiId()); + stringBuilderAdd.append("_"); + stringBuilderAdd.append(mDatas.get(groupPosition).getControls().get(childPosition).getDeviceType()); + stringBuilderAdd.append("_"); + stringBuilderAdd.append(mDatas.get(groupPosition).getControls().get(childPosition).getConndeviceId()); + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 0, 1, String.valueOf(stringBuilderAdd)); + + childHolder.mDeviceChoose.setChecked(true); + childHolder.rl_innet_bg.setAlpha(1.0f); + childHolder.mControlOpen.setEnabled(true); + } + } + } + }); + return slideView; + } + + @Override + public boolean isChildSelectable(int groupPosition, int childPosition) { + return true; + } + + //点击事件 + public void setmOnExpandItemClickListener(OnExbandItemClickListener mExbandItemClickListener) { + this.mExbandItemClickListener = mExbandItemClickListener; + } + + private static class ParentHolder { + public TextView devicePosition; + private ImageView arrowIv, offLineIv; + private CheckBox cb_alone, cb_combination; + + ParentHolder(View view) { + devicePosition = (TextView) view.findViewById(R.id.tv_device_position); + arrowIv = (ImageView) view.findViewById(R.id.iv_arrow_down_up); + offLineIv = (ImageView) view.findViewById(R.id.iv_offline); + cb_alone = (CheckBox) view.findViewById(R.id.cb_alone); + cb_combination = (CheckBox) view.findViewById(R.id.cb_combination); + } + } + + private static class ChildHolder { + public ImageView icon; + public TextView title; + public TextView deleteHolder; + public TextView position; + public TextView mControlOpenTv, tv_lock_open; + private CheckBox mControlOpen; + private CheckBox mDeviceChoose; + private RelativeLayout rl_innet_bg; + private RelativeLayout rl_model_operation; + private TextView tv_setting_device_name; + private TextView tv_air_model; + private TextView tv_setting_device_value; + + ChildHolder(View view) { + icon = (ImageView) view.findViewById(R.id.icon); + title = (TextView) view.findViewById(R.id.tv_child_device); + position = (TextView) view.findViewById(R.id.tv_position); + deleteHolder = (TextView) view.findViewById(R.id.deleteDevice); + mControlOpenTv = (TextView) view.findViewById(R.id.tv_control_open); + tv_lock_open = (TextView) view.findViewById(R.id.tv_lock_open); + mControlOpen = (CheckBox) view.findViewById(R.id.cb_choose_device); + mDeviceChoose = (CheckBox) view.findViewById(R.id.cb_device_choose); + rl_innet_bg = (RelativeLayout) view.findViewById(R.id.rl_innet_bg); + rl_model_operation = (RelativeLayout) view.findViewById(R.id.rl_model_operation); + tv_setting_device_name = (TextView) view.findViewById(R.id.tv_setting_device_name); + tv_air_model = (TextView) view.findViewById(R.id.tv_air_model); + tv_setting_device_value = (TextView) view.findViewById(R.id.tv_setting_device_value); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/scene/ModelDecalreActivity.java b/app/src/main/java/com/yonsz/z1/version5/scene/ModelDecalreActivity.java new file mode 100644 index 0000000..c214e59 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/scene/ModelDecalreActivity.java @@ -0,0 +1,117 @@ +package com.yonsz.z1.version5.scene; + +import android.content.Intent; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.os.Message; +import android.text.Html; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.device.deviceadd.ConfigWifiActicity; +import com.yonsz.z1.device.deviceadd.ConnectWifiActivity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.view.TitleView; + +/** + * Created by Administrator on 2020/1/9. + */ + +public class ModelDecalreActivity extends BaseActivity { + private TitleView mTitleView; + private Button mButton; + private TextView apConfigTv, tv_fail_result, tv_fail_result1; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_model_declare); + initView(); + } + + private void initView() { + mTitleView = (TitleView) findViewById(R.id.title_wifi_fail); + mTitleView.setHead("帮助"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + mButton = (Button) findViewById(R.id.bt_restart_config); + apConfigTv = (TextView) findViewById(R.id.tv_ap_config); + tv_fail_result = (TextView) findViewById(R.id.tv_fail_result); + tv_fail_result1 = (TextView) findViewById(R.id.tv_fail_result1); + mButton.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + Intent intent = new Intent(ModelDecalreActivity.this, ConnectWifiActivity.class); + intent.putExtra("houseId", getIntent().getExtras().get("houseId").toString()); + intent.putExtra("from", "SearchFailActivity"); + intent.putExtra("addressTypeCode", getIntent().getExtras().get("addressTypeCode").toString()); + if (null != getIntent().getExtras().get("floor")) { + intent.putExtra("floor", getIntent().getExtras().get("floor").toString()); + } + startActivity(intent); + finish(); + } + }); + apConfigTv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(ModelDecalreActivity.this, ConfigWifiActicity.class); + intent.putExtra("ssid", getIntent().getExtras().get("ssid").toString()); + intent.putExtra("password", getIntent().getExtras().get("password").toString()); + intent.putExtra("configWifiType", "apType"); + startActivity(intent); + finish(); + } + }); + + /*String strMsg = "2.组合执行场景:先选择需要组合的网关,执行组合网关下的设备可联动控制。可语音控制(组合场景图标" + "" + ")"; + tv_fail_result.setText(Html.fromHtml(strMsg, getImageGetterInstance(), null)); + String strMsg1 = "3.单独执行场景:是能执行该网关(小艾)下的设备。可语音控制。(独立场景图标" + "" + ")"; + tv_fail_result1.setText(Html.fromHtml(strMsg1, getImageGetterInstance(), null));*/ + } + + public Html.ImageGetter getImageGetterInstance() { + Html.ImageGetter imgGetter = new Html.ImageGetter() { + @Override + public Drawable getDrawable(String source) { + int fontH = (int) (getResources().getDimension( + R.dimen.text_14sp) * 1.5); + int id = Integer.parseInt(source); + Drawable d = getResources().getDrawable(id); + int height = fontH; + int width = (int) ((float) d.getIntrinsicWidth() / (float) d + .getIntrinsicHeight()) * fontH; + if (width == 0) { + width = d.getIntrinsicWidth(); + } + d.setBounds(0, 0, width, height); + return d; + } + }; + return imgGetter; + } + + @Override + public void callBackUiThread(Message msg) { + + } + +} diff --git a/app/src/main/java/com/yonsz/z1/version5/scene/ModelNewAdapter.java b/app/src/main/java/com/yonsz/z1/version5/scene/ModelNewAdapter.java new file mode 100644 index 0000000..069efc3 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/scene/ModelNewAdapter.java @@ -0,0 +1,698 @@ +package com.yonsz.z1.version5.scene; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseExpandableListAdapter; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entitya2.ModelSetEntity; +import com.yonsz.z1.device.SlideView; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnExbandItemClickListener; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GEMSTONE_ELVES; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.Img; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; + +/** + * Created by Administrator on 2017/11/13. + */ + +public class ModelNewAdapter extends BaseExpandableListAdapter { + private Context mContext; + private List mObjEntity; + private List> mDatas = new ArrayList<>(); + private int groupCount = 0; + private String ziId; + private OnExbandItemClickListener mExbandItemClickListener; + + + public ModelNewAdapter(Context mContext, List> mDatas) { + super(); + this.mContext = mContext; + this.mDatas = mDatas; + Iterator it = mDatas.iterator(); + while (it.hasNext()) { + List next = (List) it.next(); + Iterator it1 = next.iterator(); + while (it1.hasNext()) { + ModelSetEntity.DataBean.ControlListEntity next1 = (ModelSetEntity.DataBean.ControlListEntity) it1.next(); + if (next1.getDeviceType().equals(LIGHT_TAG) && 201 < Integer.parseInt(next1.getSubType()) && Integer.parseInt(next1.getSubType()) < 207) { + it1.remove(); + } + } + } + } + + @Override + public int getGroupCount() { + return mDatas.size(); + } + + @Override + public int getChildrenCount(int groupPosition) { + /*int childSum = 0; + for (int i = 0; i < mObjEntity.size(); i++) { + if (mObjEntity.get(i).getZiId().toString().equals(mObjEntity.get(groupPosition).getZiId().toString())) { + childSum += 1; + } + }*/ + return mDatas.get(groupPosition).size(); + } + + @Override + public Object getGroup(int groupPosition) { + return mObjEntity.get(groupPosition); + } + + @Override + public Object getChild(int groupPosition, int childPosition) { + return childPosition; + } + + @Override + public long getGroupId(int groupPosition) { + return groupPosition; + } + + @Override + public long getChildId(int groupPosition, int childPosition) { + return childPosition; + } + + @Override + public boolean hasStableIds() { + return true; + } + + @Override + public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { + ParentHolder parentHolder; + SlideView slideView = (SlideView) convertView; + if (slideView == null) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_choose_new_group, null); + slideView = new SlideView(mContext, false, false); + slideView.setContentView(itemView); + parentHolder = new ParentHolder(slideView); + slideView.setTag(parentHolder); + } else { + parentHolder = (ParentHolder) slideView.getTag(); + } + slideView.shrink(); + parentHolder.devicePosition.setText(mDatas.get(groupPosition).get(0).getDeviceAddress()); + if (isExpanded) { + parentHolder.arrowIv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrow_down)); + } else { + parentHolder.arrowIv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrow_up)); + } + return slideView; + } + + @Override + public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { + final ChildHolder childHolder; + SlideView slideView = (SlideView) convertView; + if (slideView == null) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_model_set_child, null); + slideView = new SlideView(mContext, false, false); + slideView.setContentView(itemView); + childHolder = new ChildHolder(slideView); + slideView.setTag(childHolder); + } else { + childHolder = (ChildHolder) slideView.getTag(); + } + slideView.shrink(); + if (mDatas.get(groupPosition).get(childPosition).getSettings().size() == 0) { + childHolder.rl_model_operation.setVisibility(View.GONE); + } else { + childHolder.rl_model_operation.setVisibility(View.VISIBLE); + if (mDatas.get(groupPosition).get(childPosition).getDeviceType().equals(AIR_TAG) + || mDatas.get(groupPosition).get(childPosition).getDeviceType().equals(TEMP_CONTROL)) { + List settings = mDatas.get(groupPosition).get(childPosition).getSettings(); + for (ModelSetEntity.DataBean.ControlListEntity.SettingsBean settingsBean : settings) { + switch (settingsBean.getName()) { + case "mode": + String value = ""; + switch (settingsBean.getValue()) { + case "cold": + value = "制冷"; + break; + case "heat": + value = "制暖"; + break; + case "dehumidification": + value = "除湿"; + break; + case "ventilate": + value = "送风"; + break; + default: + value = "制冷"; + break; + } + childHolder.tv_air_model.setText(value + settingsBean.getLabel()); + break; + case "temperature": + if (settingsBean.getValue().equals("100")) { + childHolder.tv_setting_device_value.setText(settingsBean.getLabel() + " " + 26 + "℃"); + } else { + childHolder.tv_setting_device_value.setText(settingsBean.getLabel() + " " + settingsBean.getValue() + "℃"); + } + break; + } + } + } else { + childHolder.tv_setting_device_value.setText(mDatas.get(groupPosition).get(childPosition).getSettings().get(0).getLabel() + " " + mDatas.get(groupPosition).get(childPosition).getSettings().get(0).getValue() + "%"); + childHolder.tv_air_model.setText(""); + } + } + String deviceModel = mDatas.get(groupPosition).get(childPosition).getDeviceModel(); + + switch (mDatas.get(groupPosition).get(childPosition).getDeviceType()) { + case TV_TAG: + childHolder.icon.setImageResource(Img[0]); + childHolder.title.setText(R.string.tv); + childHolder.position.setText(""); + break; + case AIR_TAG: + childHolder.tv_setting_device_name.setText("温度设置"); + childHolder.icon.setImageResource(Img[1]); + childHolder.title.setText(R.string.air); + childHolder.position.setText(""); + break; + case FAN_TAG: + childHolder.icon.setImageResource(Img[2]); + childHolder.title.setText(R.string.fan); + childHolder.position.setText(""); + break; + case SWEEP_TAG: + childHolder.icon.setImageResource(Img[3]); + childHolder.title.setText(R.string.sweep); + childHolder.position.setText(""); + break; + case MUSIC_TAG: + childHolder.icon.setImageResource(Img[13]); + childHolder.title.setText("背景音乐"); + childHolder.position.setText(""); + break; + case LIGHT_TAG: + childHolder.tv_setting_device_name.setText("亮度设置"); + switch (mDatas.get(groupPosition).get(childPosition).getSubType()) { +// case "201": + case "202": + case "203": + case "204": + case "205": + case "206": + childHolder.rl_innet_bg.setVisibility(View.GONE); + break; + default: + childHolder.tv_setting_device_name.setText("亮度设置"); + if (AppIdUtil.isWork()) { + childHolder.title.setText(R.string.light); + childHolder.icon.setImageResource(R.drawable.icon_light); + } else { + switch (mDatas.get(groupPosition).get(childPosition).getSubType()) { + case "0"://灯光 + childHolder.title.setText(R.string.light); + childHolder.icon.setImageResource(R.drawable.icon_light); + break; + case "1"://筒灯 + childHolder.title.setText(R.string.tong_deng); + childHolder.icon.setImageResource(R.drawable.icon_tubelamp); + break; + case "2"://灯带 + childHolder.title.setText(R.string.deng_dai); + childHolder.icon.setImageResource(R.drawable.icon_lightbelt); + break; + case "3"://射灯 + childHolder.title.setText(R.string.she_deng); + childHolder.icon.setImageResource(R.drawable.icon_lamp); + break; + case "4"://壁灯 + childHolder.title.setText(R.string.bi_deng); + childHolder.icon.setImageResource(R.drawable.icon_walllamp); + break; + case "5"://吊灯 + childHolder.title.setText(R.string.diao_deng); + childHolder.icon.setImageResource(R.drawable.icon_chandelier); + break; + case "6"://廊灯 + childHolder.title.setText(R.string.lang_deng); + childHolder.icon.setImageResource(R.drawable.icon_porchlamp); + break; + case "7"://排气扇 + childHolder.title.setText(R.string.paiqi_shan); + childHolder.icon.setImageResource(R.drawable.icon_exhaust); + break; + default: + childHolder.title.setText(R.string.light); + childHolder.icon.setImageResource(R.drawable.icon_light); + break; + } + } + break; + } + + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case CURTAINS_TAG: + childHolder.tv_setting_device_name.setText("开合设置"); + if (AppIdUtil.isWork()) { + childHolder.title.setText(R.string.curtains); + childHolder.icon.setImageResource(R.drawable.icon_curtains); + } else { + if (mDatas.get(groupPosition).get(childPosition).getRelatedStatus().equals("1")) { + childHolder.title.setText(R.string.curtains); + childHolder.icon.setImageResource(R.drawable.icon_curtaingauzecurtain); + } else { + if (mDatas.get(groupPosition).get(childPosition).getSubType().equals("1")) { + childHolder.title.setText("纱帘"); + childHolder.icon.setImageResource(R.drawable.icon_gauze); + } else { + childHolder.title.setText(R.string.curtains); + childHolder.icon.setImageResource(R.drawable.icon_curtains); + } + } + } + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case SWITCH_TAG: + if (AppIdUtil.isWork()) { + childHolder.title.setText(R.string.chazuo); + childHolder.icon.setImageResource(R.drawable.icon_chazuo); + } else { + switch (mDatas.get(groupPosition).get(childPosition).getSubType()) { + case "0"://插座 + childHolder.title.setText(R.string.chazuo); + switch (mDatas.get(groupPosition).get(childPosition).getDeviceModel()) { + case "0": + childHolder.icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + childHolder.icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + childHolder.icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + childHolder.icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + childHolder.icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + case "1"://台灯 + childHolder.title.setText(R.string.tai_deng); + childHolder.icon.setImageResource(R.drawable.icon_desklamp); + break; + case "2"://热水器(厨电) + childHolder.title.setText(R.string.chu_dian); + childHolder.icon.setImageResource(R.drawable.icon_kitchenpower); + break; + case "3"://墙壁插座 + childHolder.title.setText(R.string.bi_cha); + childHolder.icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + /*if (AppIdUtil.isZhiKong()) { + } else { + childHolder.icon.setImageResource(R.drawable.icon_wallsocket); + }*/ + break; + case "4"://热水壶 + childHolder.title.setText(R.string.reshui_hu); + childHolder.icon.setImageResource(R.drawable.icon_kettle); + break; + case "5"://取暖器 + childHolder.title.setText(R.string.qunuan_qi); + childHolder.icon.setImageResource(R.drawable.icon_heater); + break; + case "6"://电蚊香 + childHolder.title.setText(R.string.dianwen_xiang); + childHolder.icon.setImageResource(R.drawable.icon_dwx); + break; + case "7":// + childHolder.title.setText("紫外消毒灯"); + childHolder.icon.setImageResource(R.drawable.icon_sterilizing_lamp); + break; + default: + childHolder.title.setText(R.string.chazuo); + switch (mDatas.get(groupPosition).get(childPosition).getDeviceModel()) { + case "0": + childHolder.icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + childHolder.icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + childHolder.icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + childHolder.icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + childHolder.icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + } + } + break; + case DOOR_LOCK_TAG: + if (deviceModel.equals("0")) { + childHolder.icon.setImageResource(R.drawable.icon_gatemagnetic); + } else { + childHolder.icon.setImageResource(R.drawable.pic_magnetism_dh); + } + childHolder.title.setText(R.string.door_warn); + break; + case INFRARED_TAG: + if (deviceModel.equals("0")) { + childHolder.icon.setImageResource(R.drawable.icon_infrared); + } else { + childHolder.icon.setImageResource(R.drawable.pic_infrared_dh); + } + childHolder.title.setText(R.string.red_warn); + break; + case INFRARED_CURTAIN_DETECTOR: + childHolder.icon.setImageResource(R.drawable.pic_curtain_dh); + childHolder.title.setText("幕帘式红外探测器"); + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case INTELLIGENT_DOOR_LOCK: + childHolder.icon.setImageResource(R.drawable.pic_lock_dh); + childHolder.title.setText("智能门锁"); + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case WIRELESS_EMERGENCY_BUTTON: + childHolder.icon.setImageResource(R.drawable.pic_panic_button_dh); + childHolder.title.setText("无线紧急按钮"); + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case WINDOW_OPENER: + childHolder.icon.setImageResource(R.drawable.icon_window_opener); + childHolder.title.setText("开窗器"); + /*if (mDatas.get(groupPosition).get(childPosition).getConndeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getConndeviceAddress().toString()); + } else if (mDatas.get(groupPosition).get(childPosition).getDeviceAddress() != null) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getDeviceAddress().toString()); + } else { + childHolder.position.setText(R.string.no_position); + }*/ + break; + case CLOTHES_HANGER: + childHolder.icon.setImageResource(R.drawable.icon_airer); + break; + case MULTIFUNCTIONAL_CONTROLLER: + switch (mDatas.get(groupPosition).get(childPosition).getSubType()) { + case "0": + childHolder.icon.setImageResource(R.drawable.icon_curtains); + break; + case "1": + if (AppIdUtil.isWork()) { + childHolder.icon.setImageResource(R.drawable.icon_curtains); + } else { + childHolder.icon.setImageResource(R.drawable.icon_gauze); + } + break; + case "2": + childHolder.icon.setImageResource(R.drawable.icon_window_opener); + break; + case "3"://车库门 + childHolder.icon.setImageResource(R.drawable.pic_garage); + break; + case "4"://遮阳棚 + childHolder.icon.setImageResource(R.drawable.pic_sunshade); + break; + case "5"://电动门 + childHolder.icon.setImageResource(R.drawable.pic_autogate); + break; + case "6"://投影升降机 + childHolder.icon.setImageResource(R.drawable.pic_elevator); + break; + case "7"://幕布升降机 + childHolder.icon.setImageResource(R.drawable.pic_curtain_elevator); + break; + case "8"://电动喷淋 + childHolder.icon.setImageResource(R.drawable.pic_spray); + break; + case "9"://卷闸门 + childHolder.icon.setImageResource(R.drawable.pic_garage); + break; + default: + childHolder.icon.setImageResource(R.drawable.icon_multifunctional); + break; + } + childHolder.title.setText("多功能控制器"); + break; + case GEMSTONE_ELVES: + childHolder.icon.setImageResource(R.drawable.icon_gemstone_elves); + childHolder.title.setText("宝石精灵"); + break; + case TEMP_CONTROL: + case FRESH_AIR: + case FLOOR_HEATING: + childHolder.tv_setting_device_name.setText("温度设置"); + childHolder.icon.setImageResource(R.drawable.icon_device_temperature); +// childHolder.title.setText("空调控制器"); +// childHolder.position.setText(""); + break; + } + + if (!mDatas.get(groupPosition).get(childPosition).getDeviceName().isEmpty()) { + childHolder.title.setText(mDatas.get(groupPosition).get(childPosition).getDeviceName()); + } + /* if (!mDatas.get(groupPosition).get(childPosition).getZiId().isEmpty()) { + String aiNameAndState = AddressNameUtil.getAiNameAndState(mDatas.get(groupPosition).get(childPosition).getZiId()); + childHolder.position.setText(aiNameAndState); + } else { + if (mDatas.get(groupPosition).get(childPosition).getOpenFlag() == 1) { + childHolder.position.setText("网关(在线)"); + } else { + childHolder.position.setText("网关(离线)"); + } + }*/ + if (mDatas.get(groupPosition).get(childPosition).getOnline().equals("1")) { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getGatewayName() + "(在线)"); + } else { + childHolder.position.setText(mDatas.get(groupPosition).get(childPosition).getGatewayName() + "(离线)"); + } + + if (mDatas.get(groupPosition).get(childPosition).getOpenFlag() == 1) { + childHolder.mDeviceChoose.setChecked(true); + childHolder.rl_innet_bg.setAlpha(1.0f); + childHolder.mControlOpen.setEnabled(true); + } else { + childHolder.mDeviceChoose.setChecked(false); + childHolder.rl_innet_bg.setAlpha(0.5f); + childHolder.mControlOpen.setEnabled(false); + } + + if (mDatas.get(groupPosition).get(childPosition).getCmdType().equals("1")) { + childHolder.mControlOpen.setChecked(true); + childHolder.mControlOpenTv.setText(R.string.timing_open); + } else { + childHolder.mControlOpen.setChecked(false); + childHolder.mControlOpenTv.setText(R.string.timing_close); + } + + final SlideView finalSlideView = slideView; + childHolder.deleteHolder.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mExbandItemClickListener != null) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 0, 0, mDatas.get(groupPosition).get(childPosition).getId()); + } + } + }); + + childHolder.mControlOpen.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mExbandItemClickListener != null) { + if (childHolder.mControlOpen.isChecked()) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 1, 0, mDatas.get(groupPosition).get(childPosition).getId()); + childHolder.mControlOpenTv.setText(R.string.timing_open); + } else { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 1, 1, mDatas.get(groupPosition).get(childPosition).getId()); + childHolder.mControlOpenTv.setText(R.string.timing_close); + } + } + } + }); + + childHolder.rl_innet_bg.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mDatas.get(groupPosition).get(childPosition).getOpenFlag() == 1 && mDatas.get(groupPosition).get(childPosition).getSettings().size() != 0) { + if (mExbandItemClickListener != null) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 5, 0, ""); + } + } + } + }); + childHolder.rl_model_operation.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + if (mDatas.get(groupPosition).get(childPosition).getOpenFlag() == 1 && mDatas.get(groupPosition).get(childPosition).getSettings().size() != 0) { + if (mExbandItemClickListener != null) { + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 5, 0, ""); + } + } + } + }); + + childHolder.mDeviceChoose.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mExbandItemClickListener != null) { + if (!mDatas.get(groupPosition).get(childPosition).getZiId().isEmpty()) { + String aiState = AddressNameUtil.getAiOnlineState(mDatas.get(groupPosition).get(childPosition).getZiId()); + // if (!aiState.equals("1")) { + if (!mDatas.get(groupPosition).get(childPosition).getOnline().equals("1")) { + if (childHolder.mDeviceChoose.isChecked()) { + childHolder.mDeviceChoose.setChecked(false); + } else { + childHolder.mDeviceChoose.setChecked(true); + } + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 2, 0, mDatas.get(groupPosition).get(childPosition).getId()); + return; + } + } + if (!childHolder.mDeviceChoose.isChecked()) { + //删除 + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 0, 0, mDatas.get(groupPosition).get(childPosition).getId()); + + childHolder.mDeviceChoose.setChecked(false); + childHolder.rl_innet_bg.setAlpha(0.5f); + childHolder.mControlOpen.setEnabled(false); + } else { + //增加 + StringBuilder stringBuilderAdd = new StringBuilder(); + stringBuilderAdd.append(mDatas.get(groupPosition).get(childPosition).getZiId()); + stringBuilderAdd.append("_"); + stringBuilderAdd.append(mDatas.get(groupPosition).get(childPosition).getDeviceType()); + stringBuilderAdd.append("_"); + stringBuilderAdd.append(mDatas.get(groupPosition).get(childPosition).getConndeviceId()); + mExbandItemClickListener.onClick(finalSlideView, groupPosition, childPosition, 0, 1, String.valueOf(stringBuilderAdd)); + + childHolder.mDeviceChoose.setChecked(true); + childHolder.rl_innet_bg.setAlpha(1.0f); + childHolder.mControlOpen.setEnabled(true); + } + } + } + }); + return slideView; + } + + @Override + public boolean isChildSelectable(int groupPosition, int childPosition) { + return true; + } + + //点击事件 + public void setmOnExpandItemClickListener(OnExbandItemClickListener mExbandItemClickListener) { + this.mExbandItemClickListener = mExbandItemClickListener; + } + + private static class ParentHolder { + public TextView devicePosition; + private ImageView arrowIv; + + ParentHolder(View view) { + devicePosition = (TextView) view.findViewById(R.id.tv_device_position); + arrowIv = (ImageView) view.findViewById(R.id.iv_arrow_down_up); + } + } + + private static class ChildHolder { + public ImageView icon; + public TextView title; + public TextView deleteHolder; + public TextView position; + public TextView mControlOpenTv; + private CheckBox mControlOpen; + private CheckBox mDeviceChoose; + private RelativeLayout rl_innet_bg; + private RelativeLayout rl_model_operation; + private TextView tv_setting_device_name; + private TextView tv_air_model; + private TextView tv_setting_device_value; + + ChildHolder(View view) { + icon = (ImageView) view.findViewById(R.id.icon); + title = (TextView) view.findViewById(R.id.tv_child_device); + position = (TextView) view.findViewById(R.id.tv_position); + deleteHolder = (TextView) view.findViewById(R.id.deleteDevice); + mControlOpenTv = (TextView) view.findViewById(R.id.tv_control_open); + mControlOpen = (CheckBox) view.findViewById(R.id.cb_choose_device); + mDeviceChoose = (CheckBox) view.findViewById(R.id.cb_device_choose); + rl_innet_bg = (RelativeLayout) view.findViewById(R.id.rl_innet_bg); + rl_model_operation = (RelativeLayout) view.findViewById(R.id.rl_model_operation); + tv_setting_device_name = (TextView) view.findViewById(R.id.tv_setting_device_name); + tv_air_model = (TextView) view.findViewById(R.id.tv_air_model); + tv_setting_device_value = (TextView) view.findViewById(R.id.tv_setting_device_value); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/scene/ModelNewDetailActivity.java b/app/src/main/java/com/yonsz/z1/version5/scene/ModelNewDetailActivity.java new file mode 100644 index 0000000..4c4c73a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/scene/ModelNewDetailActivity.java @@ -0,0 +1,1286 @@ +package com.yonsz.z1.version5.scene; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.os.Message; +import android.support.annotation.RequiresApi; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.database.entity.entity5.BaseModelEntity; +import com.yonsz.z1.database.entity.entity5.ModelChangeEntity; +import com.yonsz.z1.database.entity.entity5.ModelOperationEntity; +import com.yonsz.z1.database.entity.entity5.ModelSortEntity; +import com.yonsz.z1.database.entity.entity5.NewModelSetEntity; +import com.yonsz.z1.database.entity.entity5.NewModelSetEntity.DataBean.ModeAiDevicesBean; +import com.yonsz.z1.database.entity.entitya2.AddModelEntity; +import com.yonsz.z1.database.entity.entitya2.DeviceAllEntity; +import com.yonsz.z1.database.entity.entitya2.ModelOpenEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.device.DeviceExpandableListView; +import com.yonsz.z1.fragment.person.WebViewActivity; +import com.yonsz.z1.listener.OnExbandItemClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.CombinationBindDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmNextDialog; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmValueDialog; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.mine.aboutversion.feature.Callback2; +import com.yonsz.z1.mine.aboutversion.feature.Callback4; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.model.ModelTimeActivity; +import com.yonsz.z1.view.SwitchView; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.loading.LoadingDialog; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.tv_che_dan; +import static com.yonsz.z1.UniKongApp.getActivity; +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.BATCH_UPDATE_MODEL_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.BATCH_UPDATE_MODEL_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DEL_MODEL_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.DEL_MODEL_CONTROL_SUCCESS; +import static com.yonsz.z1.net.Constans.DEL_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.DEL_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.GETZIINFO_FAIL; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.RGB_LIGHT; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_DETAIL_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_DETAIL_SUCCESS; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_CONTROL_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.BATCH_UPDATEGROUP_MODECONTROL; +import static com.yonsz.z1.net.NetWorkUrl.QUERY_GROUPMODEL_DETAIL; +import static com.yonsz.z1.net.NetWorkUrl.SCENE_HOUSESCENE_DELETE; +import static com.yonsz.z1.net.NetWorkUrl.SELECT_MODEL_TIME; +import static com.yonsz.z1.net.NetWorkUrl.SET_CONTROL_OPERATION; +import static com.yonsz.z1.net.NetWorkUrl.UPDATE_MODEL_BASIC; +import static com.yonsz.z1.net.NetWorkUrl.UPDATE_MODEL_TIME; + +/** + * Created by Administrator on 2018/9/13. + */ + +public class ModelNewDetailActivity extends BaseActivity { + private TitleView mTitleView; + private LoadingDialog mLoadingDialog; + private int model; + private TextView modelNameTv, modelDeclareTv; + private CheckBox modelOpenCb; + private SwitchView timeOpenCb; + private DeviceExpandableListView mListView; + private Model5SetAdapter mModelSetAdapter; + private List mObjEntity; + private TextView tvDeclare; + private TextView tv_1; + private RelativeLayout mainDeclare; + private RelativeLayout noDeviceRl; + private RelativeLayout topDecalre, saveModelRl; + private String respone; + private String isHaveDevice; + private String houseId; + private TextView onceTimeTv, timeSetTv, deleteModelTv, saveModelTv; + private String repeatTime = "", setTime = ""; + private RelativeLayout rl_time_set, rl_sort, rl_other_name; + private String timeId = ""; + private String modelId = ""; + private String setId; + private String deviceModel = ""; + private boolean isChangeAndToSave = false, isChangeCombination = false; + private ImageView modifyNameIv; + private NewModelSetEntity modelSetEntity; + private Map> groupMsgs; + private LinearLayout ll_help; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_model_detail); + initView(); + } + + private void initLoadDialog() { + mLoadingDialog = new LoadingDialog(this); + mLoadingDialog.show(); + } + + @Override + public void onResume() { + super.onResume(); + queryGroupModelDetail(); + selectModelTime(); + } + + private void initView() { + mTitleView = (TitleView) findViewById(R.id.title_model_detail); + mTitleView.clearBackGroud(); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setHeadFuntionTxtAndSise16Gray("保存"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + if (isChangeAndToSave) { + saveChangeDialog(); + } else { + finish(); + } + } + + @Override + public void onFunction() { + if (isChangeAndToSave) { + batchUpdateModelControl(0); + } else { + return; + } + } + + @Override + public void onFunctionText() { + + } + }); + timeId = getIntent().getExtras().get("modelId").toString(); + modelId = getIntent().getExtras().get("modelId1").toString(); + model = Integer.parseInt(getIntent().getExtras().get("model").toString()); + isHaveDevice = (String) getIntent().getExtras().get("isHaveDevice"); + houseId = (String) getIntent().getExtras().get("houseId"); + repeatTime = (String) getIntent().getExtras().get("repeatTime"); + setTime = (String) getIntent().getExtras().get("setTime"); + rl_time_set = (RelativeLayout) findViewById(R.id.rl_time_set); + rl_sort = (RelativeLayout) findViewById(R.id.rl_sort); + rl_other_name = (RelativeLayout) findViewById(R.id.rl_other_name); + rl_time_set.setOnClickListener(this); + rl_sort.setOnClickListener(this); + rl_other_name.setOnClickListener(this); + deleteModelTv = (TextView) findViewById(R.id.tv_delete); + saveModelTv = (TextView) findViewById(R.id.tv_model_save); + onceTimeTv = (TextView) findViewById(R.id.tv_repeat_time); + // timeSetTv = (TextView) findViewById(R.id.tv_time_set); + modelNameTv = (TextView) findViewById(R.id.tv_model_name); + modifyNameIv = (ImageView) findViewById(R.id.iv_modify_name); + modelDeclareTv = (TextView) findViewById(R.id.tv_model_declare); + tvDeclare = (TextView) findViewById(tv_che_dan); + ll_help = (LinearLayout) findViewById(R.id.ll_help); + tv_1 = (TextView) findViewById(R.id.tv_1); + topDecalre = (RelativeLayout) findViewById(R.id.rl_declare); + saveModelRl = (RelativeLayout) findViewById(R.id.rl_model_edit); + mainDeclare = (RelativeLayout) findViewById(R.id.rl_text_declare); + noDeviceRl = (RelativeLayout) findViewById(R.id.rl_text_declare_no_device); + modelOpenCb = (CheckBox) findViewById(R.id.cb_model_open); + // timeOpenCb = (SwitchView) findViewById(R.id.stv_third); + modelOpenCb.setOnClickListener(this); + // timeOpenCb.setOnClickListener(this); + deleteModelTv.setOnClickListener(this); + saveModelTv.setOnClickListener(this); + modifyNameIv.setOnClickListener(this); + ll_help.setOnClickListener(this); + + + switch (model) { + case 1: + mTitleView.setHead(R.string.in_home_model); + modelNameTv.setText(R.string.in_home_model); + modelDeclareTv.setText(R.string.You_can_turn_on_1); + tvDeclare.setText(R.string.At_home_mode); + tv_1.setText(R.string.click_in_home); + break; + case 2: + mTitleView.setHead(R.string.out_home_model); + modelNameTv.setText(R.string.out_home_model); + modelDeclareTv.setText(R.string.You_can_turn_on_2); + tvDeclare.setText(R.string.Out_home_mode); + tv_1.setText(R.string.click_out_home); + break; + case 3: + mTitleView.setHead(R.string.in_bed_model); + modelNameTv.setText(R.string.in_bed_model); + modelDeclareTv.setText(R.string.You_can_turn_on_3); + tvDeclare.setText(R.string.Sleep_mode); + tv_1.setText(R.string.click_in_bed); + break; + case 4: + mTitleView.setHead(R.string.out_bed_model); + modelNameTv.setText(R.string.out_bed_model); + modelDeclareTv.setText(R.string.You_can_turn_on_4); + tvDeclare.setText(R.string.Wake_up_mode); + tv_1.setText(R.string.click_out_bed); + break; + default: + String modelName = getIntent().getExtras().get("houseModelName").toString(); + mTitleView.setHead(modelName); + modelNameTv.setText(modelName); + tvDeclare.setText("触发“" + modelName + "”后,执行以下动作"); + tv_1.setText("触发“" + modelName + "”后,所要"); + break; + } + mListView = (DeviceExpandableListView) findViewById(R.id.expandablelist); + mObjEntity = new ArrayList<>(); + + setTopTime(); + /*if (isHaveDevice.equals("1")) { + timeOpenCb.setOpened((Boolean) getIntent().getExtras().get("isCheckBoxOpen")); + } else { + timeOpenCb.setOpened(false); + modelOpenCb.setEnabled(false); + noDeviceRl.setVisibility(View.VISIBLE); + }*/ + deleteModelTv.setVisibility(View.VISIBLE); + if (model >= 60) { + modifyNameIv.setVisibility(View.VISIBLE); + } else { +// deleteModelTv.setVisibility(View.GONE); + modifyNameIv.setVisibility(View.GONE); + } + + /*if (AppIdUtil.isWork()) { + timeOpenCb.setColor(0xFF24C1DA, 0xFF3AC652); + }*/ + } + + @Override + public void onBackPressed() { + if (isChangeAndToSave) { + saveChangeDialog(); + } else { + finish(); + } + } + + private void saveChangeDialog() { + ConfirmNextDialog dialog = new ConfirmNextDialog(ModelNewDetailActivity.this, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + finish(); + break; + case 1: + batchUpdateModelControl(1); + break; + } + } + }); + dialog.setContent("您的修改尚未保存,是否保存?"); + dialog.setTopTxt("退出编辑"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + + private void setTopTime() { + /*if (!TextUtils.isEmpty(repeatTime) && repeatTime.length() > 16) { + onceTimeTv.setText(repeatTime.substring(0, 16) + "..."); + } else { + onceTimeTv.setText(repeatTime); + }*/ + // timeSetTv.setText(setTime); + } + + + @Override + public void onClick(View v) { + Intent intent; + switch (v.getId()) { + case R.id.rl_time_set: + // Intent intent = new Intent(ModelNewDetailActivity.this, TimeSetting4Activity.class); + intent = new Intent(ModelNewDetailActivity.this, ModelTimeActivity.class); + intent.putExtra("model", model); + intent.putExtra("isAdd", (boolean) getIntent().getExtras().get("isAdd")); + intent.putExtra("modelId", modelId); + intent.putExtra("timeId", timeId); + intent.putExtra("houseId", houseId); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.rl_sort: + intent = new Intent(ModelNewDetailActivity.this, ModelSortActivity.class); + intent.putExtra("model", model); + intent.putExtra("isAdd", (boolean) getIntent().getExtras().get("isAdd")); + intent.putExtra("modelId", modelId); + intent.putExtra("timeId", timeId); + intent.putExtra("houseId", houseId); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case R.id.rl_other_name: + intent = new Intent(ModelNewDetailActivity.this, ModelOtherNameActivity.class); + intent.putExtra("model", model); + intent.putExtra("isAdd", (boolean) getIntent().getExtras().get("isAdd")); + intent.putExtra("modelId", modelId); + intent.putExtra("timeId", timeId); + intent.putExtra("houseId", houseId); + startActivityForResult(intent, MODEL_REAPEAT); + break; + /*case R.id.stv_third: + if (timeOpenCb.isOpened()) { + updateModelTime(timeId, 1); + } else { + updateModelTime(timeId, 0); + } + break;*/ + case R.id.cb_model_open: + if (modelOpenCb.isChecked()) { + updateModelBasic("1"); + } else { + updateModelBasic("0"); + } + break; + case R.id.tv_delete: + ConfirmDialog dialog = new ConfirmDialog(ModelNewDetailActivity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + // delModelTime(modelId); +// delModelBasic(modelId); + sceneHousesceneDelete(modelId); + break; + } + } + }); + dialog.setContent("是否删除该情景模式?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + break; + case R.id.tv_model_save: + batchUpdateModelControl(0); + break; + case R.id.iv_modify_name: + showModifyPop(); + break; + case R.id.ll_help: + /*Intent intent1 = new Intent(ModelNewDetailActivity.this, ModelDecalreActivity.class); + startActivity(intent1);*/ + intent = new Intent(ModelNewDetailActivity.this, WebViewActivity.class); + intent.putExtra("platform", "model"); + startActivity(intent); + break; + } + } + + private void showModifyPop() { + RenameNameDialog dialog = new RenameNameDialog(ModelNewDetailActivity.this, new Callback1() { + @Override + public void callback(int position, String positioName) { + switch (position) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + return; + } + if (modelOpenCb.isChecked()) { + updateModelBasic("1", positioName); + } else { + updateModelBasic("0", positioName); + } + + break; + } + } + }); + dialog.setMaxEms(12); + dialog.setOldName(modelNameTv.getText().toString()); + dialog.setContent("重命名"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + } + + private void updateModelBasic(String flag, final String modelName) { + initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", SharedpreferencesUtil.get(Constans.USERPHONE, "")); + map.put("modelType", String.valueOf(model)); + map.put("flag", flag); + map.put("houseId", houseId); + map.put("modelId", modelId); + map.put("modelName", modelName); + netWorkUtil.requestPostByAsynewApi(UPDATE_MODEL_BASIC, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateModelBasic", "ShareDeviceActivity onSuccess()" + respone); + ModelOpenEntity obj = JSON.parseObject(respone, ModelOpenEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_SUCCESS); + msg.obj = modelName; + msg.arg1 = 1; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void sceneHousesceneDelete(String controlId) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("modeId", controlId); + map.put("houseId", houseId); + netWorkUtil.requestPostByAsyBody(SCENE_HOUSESCENE_DELETE, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("sceneHousesceneDelete", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(DEL_MODEL_CONTROL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(DEL_MODEL_CONTROL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(DEL_MODEL_CONTROL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @RequiresApi(api = Build.VERSION_CODES.N) + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_DETAIL_SUCCESS: + if (null != msg.obj) { + if (isHaveDevice.equals("1")) { + modelSetEntity = (NewModelSetEntity) msg.obj; + modelOpenCb.setChecked(true); + if (null != modelSetEntity.getData()) { + if (String.valueOf(modelSetEntity.getData().getFlag()).equals("1")) { + } else { + modelOpenCb.setChecked(false); + } + setViewData(modelSetEntity); + } + + // List allziIds = new ArrayList<>(); + // List allziIdsGroup = new ArrayList<>(); + // groupMsgs = modelSetEntity.getData().getModeAiDevices().stream().filter(item -> item.getGroupId() != null).collect(Collectors.groupingBy(ModeAiDevicesBean::getHouseId)); + + for (int k = 0; k < modelSetEntity.getData().getModeAiDevices().size(); k++) { + //目的是组装初始的ziIds,如果是分组的就有不少于两个ziId,不分组就只有一个 + if (modelSetEntity.getData().getModeAiDevices().get(k).getExecType().equals("single")) { + List strings = new ArrayList<>(); + strings.add(modelSetEntity.getData().getModeAiDevices().get(k).getZiId()); + modelSetEntity.getData().getModeAiDevices().get(k).setZiIds(strings); + } else { + String groupId = modelSetEntity.getData().getModeAiDevices().get(k).getGroupId(); + List stringList = new ArrayList<>(); + for (int i = 0; i < modelSetEntity.getData().getModeAiDevices().size(); i++) { + if (modelSetEntity.getData().getModeAiDevices().get(i).getGroupId().equals(groupId)) { + stringList.add(modelSetEntity.getData().getModeAiDevices().get(i).getZiId()); + } + } + modelSetEntity.getData().getModeAiDevices().get(k).setZiIds(stringList); + } + } + } else { + + } + } else { + + } + break; + case UPDATE_MODEL_CONTROL_FAIL: + case DEL_MODEL_TIME_FAIL: + case DEL_MODEL_CONTROL_FAIL: + if (mLoadingDialog != null) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(ModelNewDetailActivity.this, (String) msg.obj); + break; + case BATCH_UPDATE_MODEL_CONTROL_SUCCESS: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + isChangeAndToSave = false; + ToastUtil.show(ModelNewDetailActivity.this, "保存成功"); + if (msg.arg1 == 1) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + } else { + // queryGroupModelDetail(); + } + break; + case BATCH_UPDATE_MODEL_CONTROL_FAIL: + if (mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(ModelNewDetailActivity.this, (String) msg.obj); + if (msg.arg1 == 1) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + } + break; + case UPDATE_MODEL_BASIC_SUCCESS: + if (mLoadingDialog != null) { + mLoadingDialog.dismiss(); + } + if (msg.arg1 == 1) { + String obj = (String) msg.obj; + modelNameTv.setText(obj); + mTitleView.setHead(obj); + tvDeclare.setText("触发“" + obj + "”后,执行以下动作"); + tv_1.setText("触发“" + obj + "”后,所要"); + } else { + ModelOpenEntity obj = (ModelOpenEntity) msg.obj; + if (null != obj.getObj()) { + if (obj.getObj().getFlag() == 1) { + mListView.setVisibility(View.VISIBLE); + mainDeclare.setVisibility(View.GONE); + topDecalre.setVisibility(View.VISIBLE); + saveModelRl.setVisibility(View.GONE); + rl_time_set.setVisibility(View.VISIBLE); + queryGroupModelDetail(); + selectModelTime(); + } else { + mListView.setVisibility(View.GONE); + mainDeclare.setVisibility(View.VISIBLE); + topDecalre.setVisibility(View.GONE); + saveModelRl.setVisibility(View.GONE); + rl_time_set.setVisibility(View.GONE); + } + } + } + break; + case UPDATE_MODEL_BASIC_FAIL: + if (mLoadingDialog != null) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(ModelNewDetailActivity.this, (String) msg.obj); + break; + case SELECT_MODEL_TIME_SUCCESS: + TimeSetEntity timeSetEntity = (TimeSetEntity) msg.obj; + if (timeSetEntity.getObj().size() > 0) { + setTime = timeSetEntity.getObj().get(0).getExecTime(); + // repeatTime = setWeek(timeSetEntity.getObj().get(0), onceTimeTv); + /*if (timeSetEntity.getObj().get(0).getOpenFlag() == 0) { + timeOpenCb.setOpened(false); + } else { + timeOpenCb.setOpened(true); + }*/ + timeId = timeSetEntity.getObj().get(0).getId(); + setTopTime(); + } else { + // timeOpenCb.setOpened(false); + } + break; + case DEL_MODEL_TIME_SUCCESS: + case DEL_MODEL_CONTROL_SUCCESS: + if (null != mLoadingDialog && mLoadingDialog.isShowing()) { + mLoadingDialog.dismiss(); + } + ToastUtil.show(ModelNewDetailActivity.this, R.string.Delete_successful); + EventBus.getDefault().post( + new ChooseHomeEvent("10")); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + finish(); + } + }, 1000); + break; + } + } + + private String setWeek(TimeSetEntity.ObjEntity objEntity, TextView weekTv) { + if (objEntity.getOnceFlag() == 0) { + if (objEntity.getWeekNum1() != null) { + String str = ""; + if (objEntity.getWeekNum1().equals("1")) { + str += getString(R.string.Monday); + } else { + } + if (objEntity.getWeekNum2().equals("1")) { + str += getString(R.string.Tuesday); + } else { + } + if (objEntity.getWeekNum3().equals("1")) { + str += getString(R.string.Wednesday); + } else { + } + if (objEntity.getWeekNum4().equals("1")) { + str += getString(R.string.Thursday); + } else { + } + if (objEntity.getWeekNum5().equals("1")) { + str += getString(R.string.Friday); + } else { + } + if (objEntity.getWeekNum6().equals("1")) { + str += getString(R.string.Saturday); + } else { + } + if (objEntity.getWeekNum7().equals("1")) { + str += getString(R.string.Sunday); + } else { + } + return str; + } + } else { + return getString(R.string.once_time); + } + return ""; + } + + private void setViewData(final NewModelSetEntity modelSetEntity) { + mObjEntity.clear(); + mObjEntity.addAll(modelSetEntity.getData().getModeAiDevices()); + // convertList(mObjEntity); + if (String.valueOf(modelSetEntity.getData().getFlag()).equals("1")) { + if (mObjEntity != null) { + mListView.setVisibility(View.VISIBLE); + mainDeclare.setVisibility(View.GONE); + topDecalre.setVisibility(View.VISIBLE); + saveModelRl.setVisibility(View.GONE); + rl_time_set.setVisibility(View.VISIBLE); + mModelSetAdapter = new Model5SetAdapter(getBaseContext(), modelSetEntity.getData().getModeAiDevices()); + mListView.setAdapter(mModelSetAdapter); + for (int i = 0; i < mModelSetAdapter.getGroupCount(); i++) { + mListView.expandGroup(i); + } + mModelSetAdapter.setmOnExpandItemClickListener(new OnExbandItemClickListener() { + @Override + public void onClick(View view, final int parentPosition, int childPosition, int i, int j, String id) { + switch (i) { + case 0: + isChangeAndToSave = true; + mTitleView.setHeadFuntionTxtAndSise16("保存"); + deviceModel = mObjEntity.get(parentPosition).getControls().get(childPosition).getDeviceModel(); + if (j == 0) { + //删除 + mObjEntity.get(parentPosition).getControls().get(childPosition).setOpenFlag(0); + } else { + //添加 + switch (mObjEntity.get(parentPosition).getControls().get(childPosition).getDeviceType()) { + case FAN_TAG: + case TV_TAG: + case TVONE_TAG: + case SWEEP_TAG: + case MUSIC_TAG: + case AIR_CLEANER: + case MOVIE_CAMERA: + showRedChooseDialog(parentPosition, childPosition); + break; + case RGB_LIGHT: + if (mObjEntity.get(parentPosition).getControls().get(childPosition).getDeviceModel().equals("1")) { + showRedChooseDialog(parentPosition, childPosition); + } else { + mObjEntity.get(parentPosition).getControls().get(childPosition).setOpenFlag(1); + } + break; + default: + mObjEntity.get(parentPosition).getControls().get(childPosition).setOpenFlag(1); + break; + } + } + break; + case 1: + isChangeAndToSave = true; + mTitleView.setHeadFuntionTxtAndSise16("保存"); + //开关 + if (j == 0) { + mObjEntity.get(parentPosition).getControls().get(childPosition).setCmdType("1"); + } else { + mObjEntity.get(parentPosition).getControls().get(childPosition).setCmdType("0"); + } + break; + case 2: + ToastUtil.show(ModelNewDetailActivity.this, "设备已离线"); + break; + case 3: + //单独或组合 + if (j == 0) { + //单独 + if (modelSetEntity.getData().getModeAiDevices().get(parentPosition).getExecType().equals("single")) { + return; + } + isChangeAndToSave = true; + mTitleView.setHeadFuntionTxtAndSise16("保存"); + isChangeCombination = true; + for (int k = 0; k < modelSetEntity.getData().getModeAiDevices().size(); k++) { + String execType = modelSetEntity.getData().getModeAiDevices().get(k).getExecType(); + String ziId = modelSetEntity.getData().getModeAiDevices().get(k).getZiId(); + List ziIds1 = modelSetEntity.getData().getModeAiDevices().get(k).getZiIds(); + if (k == parentPosition) { + modelSetEntity.getData().getModeAiDevices().get(k).setExecType("single"); + List ziIds = new ArrayList<>(); + ziIds.add(id); + modelSetEntity.getData().getModeAiDevices().get(k).setZiIds(ziIds); + } else { + if (execType.equals("single")) { + modelSetEntity.getData().getModeAiDevices().get(k).setExecType("single"); + List ziIds = new ArrayList<>(); + ziIds.add(ziId); + modelSetEntity.getData().getModeAiDevices().get(k).setZiIds(ziIds); + } else { + if (ziIds1.size() > 1 && ziIds1.contains(id)) { + ziIds1.remove(id); + if (ziIds1.size() == 1) { + modelSetEntity.getData().getModeAiDevices().get(k).setExecType("single"); + modelSetEntity.getData().getModeAiDevices().get(k).setZiIds(ziIds1); + } else { + modelSetEntity.getData().getModeAiDevices().get(k).setExecType("group"); + modelSetEntity.getData().getModeAiDevices().get(k).setZiIds(ziIds1); + } + } else { + modelSetEntity.getData().getModeAiDevices().get(k).setExecType("group"); + modelSetEntity.getData().getModeAiDevices().get(k).setZiIds(ziIds1); + } + } + } + } + } else { + final List thisziIds = new ArrayList<>(); + List allziIds = new ArrayList<>(); + for (int k = 0; k < modelSetEntity.getData().getModeAiDevices().size(); k++) { + BaseModelEntity.DataBean dataBean = new BaseModelEntity.DataBean(); + dataBean.setAddressName(modelSetEntity.getData().getModeAiDevices().get(k).getAddressName()); + dataBean.setGatewayName(modelSetEntity.getData().getModeAiDevices().get(k).getGatewayName()); + dataBean.setZiId(modelSetEntity.getData().getModeAiDevices().get(k).getZiId()); + allziIds.add(dataBean); + + + if (modelSetEntity.getData().getModeAiDevices().get(k).getZiIds().contains(id)) { + BaseModelEntity.DataBean dataBean1 = new BaseModelEntity.DataBean(); + dataBean1.setAddressName(modelSetEntity.getData().getModeAiDevices().get(k).getAddressName()); + dataBean1.setGatewayName(modelSetEntity.getData().getModeAiDevices().get(k).getGatewayName()); + dataBean1.setZiId(modelSetEntity.getData().getModeAiDevices().get(k).getZiId()); + thisziIds.add(dataBean1); + } + } + + //组合 + CombinationBindDialog dialog = new CombinationBindDialog(ModelNewDetailActivity.this, allziIds, thisziIds, new Callback2() { + @Override + public void callback(int position, List finalZiIdEntity) { + switch (position) { + case 0: + break; + case 1: + /*if (thisziIds.equals(ziIds)) { + return; + }*/ + List finalZiId = new ArrayList<>(); + for (int i = 0; i < finalZiIdEntity.size(); i++) { + finalZiId.add(finalZiIdEntity.get(i).getZiId()); + } + + + isChangeAndToSave = true; + mTitleView.setHeadFuntionTxtAndSise16("保存"); + isChangeCombination = true; + for (int k = 0; k < modelSetEntity.getData().getModeAiDevices().size(); k++) { + String execType = modelSetEntity.getData().getModeAiDevices().get(k).getExecType(); + String ziId = modelSetEntity.getData().getModeAiDevices().get(k).getZiId(); + List ziIds1 = modelSetEntity.getData().getModeAiDevices().get(k).getZiIds(); + + /*if (k == parentPosition) { + modelSetEntity.getData().getModeAiDevices().get(k).setExecType("group"); + modelSetEntity.getData().getModeAiDevices().get(k).setZiIds(finalZiId); + } else {*/ + if (finalZiId.contains(ziId)) { + modelSetEntity.getData().getModeAiDevices().get(k).setExecType("group"); + modelSetEntity.getData().getModeAiDevices().get(k).setZiIds(finalZiId); + } else { + for (int i = 0; i < finalZiId.size(); i++) { + if (ziIds1.contains(finalZiId.get(i))) { + ziIds1.remove(finalZiId.get(i)); + } + } + if (ziIds1.size() > 1) { + modelSetEntity.getData().getModeAiDevices().get(k).setExecType("group"); + } else { + modelSetEntity.getData().getModeAiDevices().get(k).setExecType("single"); + } + modelSetEntity.getData().getModeAiDevices().get(k).setZiIds(ziIds1); + } + // } + } + mModelSetAdapter.notifyDataSetChanged(); + break; + } + } + }); + dialog.setContent("选择需要组合的网关"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + mModelSetAdapter.notifyDataSetChanged(); + break; + case 4: + if (j == 0) { + mListView.collapseGroup(parentPosition); + } else { + mListView.expandGroup(parentPosition); + } + break; + case 5: + final List settings = mObjEntity.get(parentPosition).getControls().get(childPosition).getSettings(); + final String deviceType = mObjEntity.get(parentPosition).getControls().get(childPosition).getDeviceType(); + final String deviceModel = mObjEntity.get(parentPosition).getControls().get(childPosition).getDeviceModel(); + final String modeControlId = mObjEntity.get(parentPosition).getControls().get(childPosition).getId(); + ConfirmValueDialog dialog = new ConfirmValueDialog(ModelNewDetailActivity.this, settings, deviceType, deviceModel, new Callback4() { + @Override + public void callback(int position, String progress, String mode, List functions) { + switch (position) { + case 0: + break; + case 1: + // setControlOperation(settings, modeControlId, progress, mode); + for (ModeAiDevicesBean.ControlsBean.SettingsBean settingsBean : settings) { + if (settingsBean.getName().equals("mode") || settingsBean.getName().equals("function")) { + settingsBean.setValue(mode); + } else if (settingsBean.getName().equals("disinfect")) { + for (ModeAiDevicesBean.ControlsBean.SettingsBean settingsBean1 : functions) { + if (settingsBean1.getName().equals("disinfect")) { + settingsBean.setValue(settingsBean1.getValue()); + } + } + } else if (settingsBean.getName().equals("airdrying")) { + for (ModeAiDevicesBean.ControlsBean.SettingsBean settingsBean1 : functions) { + if (settingsBean1.getName().equals("airdrying")) { + settingsBean.setValue(settingsBean1.getValue()); + } + } + } else if (settingsBean.getName().equals("stoving")) { + for (ModeAiDevicesBean.ControlsBean.SettingsBean settingsBean1 : functions) { + if (settingsBean1.getName().equals("stoving")) { + settingsBean.setValue(settingsBean1.getValue()); + } + } + } else if (settingsBean.getName().equals("effect")) { + settingsBean.setValue(mode); + } else if (settingsBean.getName().equals("power")) { + settingsBean.setValue(mode); + } else if (settingsBean.getName().equals("poweroff")) { + settingsBean.setValue(mode); + } else { + settingsBean.setValue(progress); + if (null != functions.get(0).getLabel()) { + settingsBean.setLabel(functions.get(0).getLabel()); + } + } + } + mModelSetAdapter.notifyDataSetChanged(); + batchUpdateModelControl(0); + break; + } + } + }); + switch (deviceType) { + case LIGHT_TAG: + dialog.setTopTxt("灯光设置"); + if (settings.get(0).getLabel().equals("色温")) { + dialog.setContent("色温"); + } else { + dialog.setContent("亮度"); + } + break; + case CURTAINS_TAG: + String blindType = mObjEntity.get(parentPosition).getControls().get(childPosition).getSubType(); + if (blindType.equals("1")) { + dialog.setTopTxt("纱帘设置"); + } else { + dialog.setTopTxt("窗帘设置"); + } + dialog.setContent("打开"); + break; + case AIR_TAG: + case TEMP_CONTROL: + dialog.setTopTxt("空调温度设置"); + dialog.setContent("温度"); + break; + case CLOTHES_HANGER: + dialog.setTopTxt("晾衣机功能设置"); + dialog.setFunction("功能"); + break; + case SECURITY_MANIPULATOR: + dialog.setTopTxt("开关设置"); + dialog.setFunction("状态"); + break; + case RGB_LIGHT: + dialog.setTopTxt("颜色效果设置"); + dialog.setContent(""); + break; + } + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + break; + } + } + }); + } else { + mListView.setVisibility(View.GONE); + mainDeclare.setVisibility(View.VISIBLE); + topDecalre.setVisibility(View.GONE); + saveModelRl.setVisibility(View.GONE); + rl_time_set.setVisibility(View.GONE); + } + } else { + mListView.setVisibility(View.GONE); + mainDeclare.setVisibility(View.VISIBLE); + topDecalre.setVisibility(View.GONE); + saveModelRl.setVisibility(View.GONE); + rl_time_set.setVisibility(View.GONE); + } + } + + private void showRedChooseDialog(int parentPosition, int childPosition) { + ConfirmDialog dialog = new ConfirmDialog(getActivity(), new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + mObjEntity.get(parentPosition).getControls().get(childPosition).setOpenFlag(0); + mModelSetAdapter.notifyDataSetChanged(); + break; + case 1: + mObjEntity.get(parentPosition).getControls().get(childPosition).setOpenFlag(1); + break; + } + } + }); + dialog.setContent("执行时系统可能会反向控制电器,请再次确认是否勾选?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + + private void setControlOperation(final List settings, String modeControlId, final String value, final String mode) { + List list = new ArrayList(); + for (NewModelSetEntity.DataBean.ModeAiDevicesBean.ControlsBean.SettingsBean settingsBean : settings) { + switch (settingsBean.getName()) { + case "mode": + ModelOperationEntity modelOperationEntity = new ModelOperationEntity(); + modelOperationEntity.setModeControlId(modeControlId); + modelOperationEntity.setId(settingsBean.getId()); + modelOperationEntity.setName(settingsBean.getName()); + modelOperationEntity.setValue(mode); + list.add(modelOperationEntity); + break; + default: + ModelOperationEntity modelOperationEntity1 = new ModelOperationEntity(); + modelOperationEntity1.setModeControlId(modeControlId); + modelOperationEntity1.setId(settingsBean.getId()); + modelOperationEntity1.setName(settingsBean.getName()); + modelOperationEntity1.setValue(value); + list.add(modelOperationEntity1); + break; + } + } + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + netWorkUtil.requestPostByAsyBody(SET_CONTROL_OPERATION, map, JSONObject.toJSONString(list), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("setControlOperation", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + + } + } + + @Override + public void onFail(String message) { + + } + }); + } + + private void batchUpdateModelControl(final int tag) { + ModelChangeEntity modelChangeEntity = reConvertList(modelSetEntity.getData()); + initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", houseId); + map.put("modelId", modelId); + netWorkUtil.requestPostByAsyBody(BATCH_UPDATEGROUP_MODECONTROL, map, JSONObject.toJSONString(modelChangeEntity), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("batchUpdateModelControl", "ShareDeviceActivity onSuccess()" + respone); + DeviceAllEntity obj = JSON.parseObject(respone, DeviceAllEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(BATCH_UPDATE_MODEL_CONTROL_SUCCESS); + msg.arg1 = tag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(BATCH_UPDATE_MODEL_CONTROL_FAIL); + msg.obj = obj.getMsg(); + msg.arg1 = tag; + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(BATCH_UPDATE_MODEL_CONTROL_FAIL); + msg.obj = message; + msg.arg1 = tag; + mHandler.sendMessage(msg); + } + }); + } + + private ModelChangeEntity reConvertList(NewModelSetEntity.DataBean data) { + ModelChangeEntity modelChangeEntity = new ModelChangeEntity(); + List modeAiDevices = new ArrayList<>(); + List modeControls = new ArrayList<>(); + for (int i = 0; i < data.getModeAiDevices().size(); i++) { + if (isChangeCombination) { + ModelChangeEntity.ModeAiDevicesBean modeAiDevicesBean = new ModelChangeEntity.ModeAiDevicesBean(); + modeAiDevicesBean.setZiIds(data.getModeAiDevices().get(i).getZiIds()); + modeAiDevicesBean.setGatewayIds(data.getModeAiDevices().get(i).getZiIds()); + modeAiDevicesBean.setExecType(data.getModeAiDevices().get(i).getExecType()); + modeAiDevicesBean.setGroupName(data.getModeAiDevices().get(i).getGroupName()); + // modeAiDevicesBean.setGroupId(data.getModeAiDevices().get(i).getGroupId()); + modeAiDevicesBean.setGroupId(""); + if (!modeAiDevices.contains(modeAiDevicesBean)) { + modeAiDevices.add(modeAiDevicesBean); + } + } + + for (int j = 0; j < data.getModeAiDevices().get(i).getControls().size(); j++) { + if (data.getModeAiDevices().get(i).getControls().get(j).getOpenFlag() == 1) { + data.getModeAiDevices().get(i).getControls().get(j).setDeviceId(data.getModeAiDevices().get(i).getControls().get(j).getConndeviceId()); + ModelChangeEntity.ModeControlsBean modeControlsBean = new ModelChangeEntity.ModeControlsBean(); + modeControlsBean.setCmdType(data.getModeAiDevices().get(i).getControls().get(j).getCmdType()); + modeControlsBean.setDeviceId(data.getModeAiDevices().get(i).getControls().get(j).getDeviceId()); + modeControlsBean.setDeviceModel(data.getModeAiDevices().get(i).getControls().get(j).getDeviceModel()); + modeControlsBean.setDeviceType(data.getModeAiDevices().get(i).getControls().get(j).getDeviceType()); + modeControlsBean.setId(data.getModeAiDevices().get(i).getControls().get(j).getId()); + modeControlsBean.setZiId(data.getModeAiDevices().get(i).getControls().get(j).getZiId()); + for (ModeAiDevicesBean.ControlsBean.SettingsBean settingsBean : data.getModeAiDevices().get(i).getControls().get(j).getSettings()) { + if (settingsBean.getName().equals("mode")) { + if (settingsBean.getValue().equals("100")) { + settingsBean.setValue("cold"); + } + } else { + if (settingsBean.getValue().equals("100")) { + if (modeControlsBean.getDeviceType().equals(AIR_TAG) || modeControlsBean.getDeviceType().equals(TEMP_CONTROL)) { + settingsBean.setValue("26"); + } else { + settingsBean.setValue("100"); + } + } + } + } + + modeControlsBean.setSettings(data.getModeAiDevices().get(i).getControls().get(j).getSettings()); + modeControls.add(modeControlsBean); + } + } + } + if (isChangeCombination) { + modelChangeEntity.setModeAiDevices(modeAiDevices); + } + modelChangeEntity.setModeControls(modeControls); + return modelChangeEntity; + } + + private void queryGroupModelDetail() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", houseId); + map.put("modelType", String.valueOf(model)); + map.put("modelId", modelId); + map.put("showInfrared", "true"); + netWorkUtil.requestGetByAsy(QUERY_GROUPMODEL_DETAIL, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone1) { + respone = respone1; + ToastUtil.i("queryGroupModelDetail", respone); + NewModelSetEntity obj = JSON.parseObject(respone, NewModelSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_DETAIL_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_DETAIL_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_DETAIL_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void updateModelBasic(String flag) { + initLoadDialog(); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userId", SharedpreferencesUtil.get(Constans.USERPHONE, "")); + map.put("modelType", String.valueOf(model)); + map.put("flag", flag); + map.put("houseId", houseId); + map.put("modelId", modelId); + map.put("modelName", modelNameTv.getText().toString()); + netWorkUtil.requestPostByAsynewApi(UPDATE_MODEL_BASIC, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateModelBasic", "ShareDeviceActivity onSuccess()" + respone); + ModelOpenEntity obj = JSON.parseObject(respone, ModelOpenEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_SUCCESS); + msg.obj = obj; + msg.arg1 = 0; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_BASIC_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void selectModelTime() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", houseId); + map.put("modelType", String.valueOf(model)); + map.put("modelId", modelId); + netWorkUtil.requestGetByAsy(SELECT_MODEL_TIME, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("selectModelTime", "ShareDeviceActivity onSuccess()" + respone); + TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case MODEL_REAPEAT: + if (data != null && data.getExtras().get("repeatTime") != null) { + if (!TextUtils.isEmpty(data.getExtras().get("repeatTime").toString().trim())) { + repeatTime = data.getExtras().get("repeatTime").toString().trim(); + } else { + repeatTime = getString(R.string.once_time); + } + } + + if (data != null && data.getExtras().get("setTime") != null) { + if (!TextUtils.isEmpty(data.getExtras().get("setTime").toString().trim())) { + setTime = data.getExtras().get("setTime").toString().trim(); + } else { + setTime = ""; + } + } + setTopTime(); + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/scene/ModelOtherNameActivity.java b/app/src/main/java/com/yonsz/z1/version5/scene/ModelOtherNameActivity.java new file mode 100644 index 0000000..939d4a4 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/scene/ModelOtherNameActivity.java @@ -0,0 +1,291 @@ +package com.yonsz.z1.version5.scene; + +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.entity5.NewSceneEntity; +import com.yonsz.z1.database.entity.entitya2.AddModelEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.RenameNameDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.mine.aboutversion.feature.Callback1; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.NettyHandlerUtilTry; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; +import static com.yonsz.z1.net.NetWorkUrl.FIND_TIME_ANDEXECLIST; +import static com.yonsz.z1.net.NetWorkUrl.SCENE_SETALIAS; + +public class ModelOtherNameActivity extends BaseActivity { + private TitleView mtTitleView; + private List mDatas = new ArrayList<>(); + private OtherNameAdapter modelAdapter; + private RecyclerView mRecyclerView; + private Button clearButton, bt_sure; + private TextView setTv; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_other_name); + initView(); + setData(); + } + + private void initView() { + setTv = (TextView) findViewById(R.id.tv_set_model); + mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); + clearButton = (Button) findViewById(R.id.bt_start_config); + bt_sure = (Button) findViewById(R.id.bt_sure); + mtTitleView = (TitleView) findViewById(R.id.title_other_name); + mtTitleView.setHead("设置音箱语音别名"); + mtTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + clearButton.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + ConfirmDialog dialog = new ConfirmDialog(ModelOtherNameActivity.this, new Callback() { + @Override + public void callback(int position) { + switch (position) { + case 0: + break; + case 1: + clearAll(); + break; + } + } + }); + dialog.setContent("是否清除场景别名?"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } + }); + bt_sure.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + finish(); + } + }); + findTimeAndExecList(); + } + + private void clearAll() { + updateModelTime(mDatas.get(0).getModelId(), -1, "", "", ""); + } + + private void setData() { + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(this); + manager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(manager); + modelAdapter = new OtherNameAdapter(ModelOtherNameActivity.this, mDatas, 0); + mRecyclerView.setAdapter(modelAdapter); + + modelAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + @Override + public void onClick(View view, int position, int i) { + String modelId = mDatas.get(position).getModelId(); + RenameNameDialog dialog = new RenameNameDialog(ModelOtherNameActivity.this, new Callback1() { + @Override + public void callback(int namePosition, String positioName) { + switch (namePosition) { + case 0: + break; + case 1: + if (TextUtils.isEmpty(positioName.trim())) { + ToastUtil.show(ModelOtherNameActivity.this, "别名不能为空"); + return; + } + updateModelTime(modelId, position, mDatas.get(position).getGroupId(), positioName, mDatas.get(position).getZiId()); + break; + } + } + }); + dialog.setMaxEms(8); + dialog.setHintName(""); + dialog.setOldName(mDatas.get(position).getModeAlias()); + dialog.setContent("设置情景别名"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.save); + dialog.setCancelable(false); + dialog.show(); + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + NewSceneEntity timeSetEntity = (NewSceneEntity) msg.obj; + if (null != timeSetEntity.getData().get(0)) { + String modelName = timeSetEntity.getData().get(0).getModelName(); + setTv.setText(modelName + "别名设置"); + } + mDatas.clear(); + mDatas.addAll(timeSetEntity.getData()); + if (null != timeSetEntity.getData().get(0).getModeExecs()) { + List modeExecs = timeSetEntity.getData().get(0).getModeExecs(); + if (modeExecs.size() != 0) { + for (int i = 0; i < modeExecs.size(); i++) { + NewSceneEntity.DataBean dataBean = new NewSceneEntity.DataBean(); + dataBean.setExecType(modeExecs.get(i).getExecType()); + dataBean.setGatewayAddressName(modeExecs.get(i).getGatewayAddressName()); + dataBean.setGroupId(modeExecs.get(i).getGroupId()); + dataBean.setName(modeExecs.get(i).getName()); + dataBean.setGatewayName(modeExecs.get(i).getGatewayName()); + dataBean.setModeAlias(modeExecs.get(i).getModeAlias()); + dataBean.setZiId(modeExecs.get(i).getZiId()); + dataBean.setModelId(mDatas.get(0).getModelId()); + mDatas.add(dataBean); + } + } + } + modelAdapter.notifyDataSetChanged(); + break; + case UPDATE_MODEL_TIME_SUCCESS: + String obj = (String) msg.obj; + int arg1 = msg.arg1; + if (obj.isEmpty()) { + for (int i = 0; i < mDatas.size(); i++) { + mDatas.get(i).setModeAlias(""); + } + } else { + mDatas.get(arg1).setModeAlias(obj); + } + modelAdapter.notifyDataSetChanged(); + break; + case SELECT_MODEL_TIME_FAIL: + case UPDATE_MODEL_TIME_FAIL: + ToastUtil.show(ModelOtherNameActivity.this, (String) msg.obj); + break; + } + } + + private void updateModelTime(String modelId, int openFlag, String groupId, String modeAlias, String ziId) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("modeId", modelId); + map.put("groupId", groupId); + map.put("modeAlias", modeAlias); + if (!ziId.isEmpty()) { + map.put("ziId", ziId); + } + if (openFlag == -1) { + map.put("batchFlag", "true"); + } + netWorkUtil.requestPostByAsynewApi(SCENE_SETALIAS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateModelTime", "ShareDeviceActivity onSuccess()" + respone); + AddModelEntity obj = JSON.parseObject(respone, AddModelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_SUCCESS); + msg.obj = modeAlias; + msg.arg1 = openFlag; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void findTimeAndExecList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + if (null != homeListEntity) { + if (deviceNumListPosition > homeListEntity.getData().size() - 1) { + deviceNumListPosition = 0; + } + } + if (null != SharedpreferencesUtil.get(Constans.HOUSEID, "")) { + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + } else { + return; + } + map.put("isCustom", "1"); + map.put("modelId", getIntent().getExtras().get("modelId").toString()); + // map.put("modelType", "1"); + netWorkUtil.requestGetByAsy(FIND_TIME_ANDEXECLIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("findTimeAndExecList", respone); + NewSceneEntity obj = JSON.parseObject(respone, NewSceneEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/scene/ModelSortActivity.java b/app/src/main/java/com/yonsz/z1/version5/scene/ModelSortActivity.java new file mode 100644 index 0000000..06c9bd8 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/scene/ModelSortActivity.java @@ -0,0 +1,267 @@ +package com.yonsz.z1.version5.scene; + +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.helper.ItemTouchHelper; +import android.util.Log; +import android.view.View; +import android.widget.LinearLayout; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity5.ModelSortEntity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +import static android.support.v7.widget.helper.ItemTouchHelper.ACTION_STATE_DRAG; +import static android.support.v7.widget.helper.ItemTouchHelper.ACTION_STATE_IDLE; +import static com.yonsz.z1.net.Constans.DEIVCE_DEVICEMODEL_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.GETZIINFO_FAIL; +import static com.yonsz.z1.net.NetWorkUrl.SCENE_CONTROL_SORT; + +/** + * Created by Administrator on 2020/7/31. + */ + +public class ModelSortActivity extends BaseActivity { + private TitleView mTitleView; + private RecyclerView verticalRecyclerView; + private List mDataBeans = new ArrayList<>(); + private ModelSortAdapter mVerticalAdapter; + private ItemTouchHelper itemTouchHelper; + private RecyclerView.ViewHolder lastDragViewHolder; + private int fromPosition; + private int toPosition; + private LinearLayout ll_no_equipment; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_model_sort); + initView(); + } + + private void initView() { + ll_no_equipment = (LinearLayout) findViewById(R.id.ll_no_equipment); + verticalRecyclerView = (RecyclerView) findViewById(R.id.vertical_RecyclerView); + mTitleView = (TitleView) findViewById(R.id.title_model_sort); + mTitleView.setHead("设备控制排序"); + mTitleView.setHeadFuntionTxtGone(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + setSceneControlSort(); + } + + @Override + public void onFunctionText() { + + } + }); + + mVerticalAdapter = new ModelSortAdapter(this, mDataBeans, getIntent().getExtras().get("modelId").toString()); + RecyclerViewNoBugLinearLayoutManager manage1 = new RecyclerViewNoBugLinearLayoutManager(this); + manage1.setOrientation(LinearLayoutManager.VERTICAL); + verticalRecyclerView.setHasFixedSize(true); + verticalRecyclerView.setLayoutManager(manage1); + verticalRecyclerView.setAdapter(mVerticalAdapter); + + itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.Callback() { + @Override + public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { + Log.i("getMovementFlags", "getMovementFlags: "); + int dragFlags; + int swipeFlags; + if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { + dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | + ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; + swipeFlags = 0; + } else { + dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN; + swipeFlags = 0; + } + return makeMovementFlags(dragFlags, swipeFlags); + } + + @Override + public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { + fromPosition = viewHolder.getAdapterPosition(); + toPosition = target.getAdapterPosition(); + Log.i("onMove", "onMove: " + fromPosition + "===" + toPosition + "===" + mDataBeans.size()); + if (fromPosition == mDataBeans.size() || toPosition == mDataBeans.size()) { + return false; + } + if (fromPosition < toPosition) { + for (int i = fromPosition; i < toPosition; i++) { + Collections.swap(mDataBeans, i, i + 1); + } + } else { + for (int i = fromPosition; i > toPosition; i--) { + Collections.swap(mDataBeans, i, i - 1); + } + } + mVerticalAdapter.notifyItemMoved(fromPosition, toPosition); + // modelAdapter.notifyDataSetChanged(); + return true; + } + + @Override + public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { + Log.i("onSwiped", "onSwiped: "); + + } + + @Override + public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { + super.onSelectedChanged(viewHolder, actionState); + if (viewHolder != null && actionState == ACTION_STATE_DRAG) { + lastDragViewHolder = viewHolder; + } + //ACTION_STATE_IDLE就是松开了,把大小改为原状 + if (lastDragViewHolder != null && actionState == ACTION_STATE_IDLE) { + lastDragViewHolder = null; + //排序接口 + setSceneControlSort(); + } + } + + @Override + public boolean isLongPressDragEnabled() { + return false; + } + }); + itemTouchHelper.attachToRecyclerView(verticalRecyclerView); + + mVerticalAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + + @Override + public void onClick(View view, int position, int i) { + + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + /*mVerticalAdapter.isShowAll(false); + mVerticalAdapter.notifyDataSetChanged();*/ + if (position != mDataBeans.size()) { + itemTouchHelper.startDrag(viewHolder); + } + } + }); + getSceneControlList(); + } + + private void getSceneControlList() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("modeId", getIntent().getExtras().get("modelId").toString()); + map.put("houseId", getIntent().getExtras().get("houseId").toString()); + util.requestGetByAsy(NetWorkUrl.SCENE_CONTROL_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getSceneControlList", respone); + ModelSortEntity entity = JSON.parseObject(respone, ModelSortEntity.class); + if (1 == entity.getFlag()) { + Message msg = mHandler.obtainMessage(DEIVCE_DEVICEMODEL_LIST_SUCCESS); + msg.obj = entity; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(GETZIINFO_FAIL); + msg.obj = entity.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(); + msg.what = GETZIINFO_FAIL; + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void setSceneControlSort() { + for (int i = 0; i < mDataBeans.size(); i++) { + ModelSortEntity.DataBean dataBean = mDataBeans.get(i); + dataBean.setSort(i + 1); + for (int j = 0; j < dataBean.getControls().size(); j++) { + dataBean.getControls().get(j).setSort(String.valueOf(j + 1)); + } + } + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("modeId", getIntent().getExtras().get("modelId").toString()); + map.put("houseId", getIntent().getExtras().get("houseId").toString()); + netWorkUtil.requestPostByAsyBody(SCENE_CONTROL_SORT, map, JSONObject.toJSONString(mDataBeans), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("setSceneControlSort", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + /*runOnUiThread(new Runnable() { + @Override + public void run() { + ToastUtil.show(ModelSortActivity.this, "保存成功"); + } + });*/ + } else { + Message msg = mHandler.obtainMessage(GETZIINFO_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(); + msg.what = GETZIINFO_FAIL; + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case DEIVCE_DEVICEMODEL_LIST_SUCCESS: + ModelSortEntity modelSortEntity = (ModelSortEntity) msg.obj; + if (modelSortEntity.getData().size() > 0) { + ll_no_equipment.setVisibility(View.GONE); + mDataBeans.clear(); + mDataBeans.addAll(modelSortEntity.getData()); + mVerticalAdapter.notifyDataSetChanged(); + } else { + ll_no_equipment.setVisibility(View.VISIBLE); + } + break; + case GETZIINFO_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/scene/ModelSortAdapter.java b/app/src/main/java/com/yonsz/z1/version5/scene/ModelSortAdapter.java new file mode 100644 index 0000000..852e50d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/scene/ModelSortAdapter.java @@ -0,0 +1,267 @@ +package com.yonsz.z1.version5.scene; + +import android.content.Context; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.helper.ItemTouchHelper; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity5.ModelSortEntity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; + +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +import static android.support.v7.widget.helper.ItemTouchHelper.ACTION_STATE_DRAG; +import static android.support.v7.widget.helper.ItemTouchHelper.ACTION_STATE_IDLE; +import static com.yonsz.z1.net.NetWorkUrl.SCENE_CONTROL_SORT; + +/** + * Created by Administrator on 2018/7/18. + */ + +public class ModelSortAdapter extends RecyclerView.Adapter { + + private List mObjEntity; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private boolean isShowAll = true; + private boolean isLongClick = false; + // private ItemTouchHelper itemTouchHelper; + private RecyclerView.ViewHolder lastDragViewHolder; + private int fromPosition; + private int toPosition; + private String modeId; + private boolean isExpanded = true; + + public ModelSortAdapter(Context mContext, List mObjEntity, String modeId) { + super(); + this.mContext = mContext; + this.mObjEntity = mObjEntity; + this.modeId = modeId; + } + + public void isShowAll(boolean isShowAll) { + this.isShowAll = isShowAll; + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_model_sort, + parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mObjEntity == null ? 0 : mObjEntity.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + private void setSceneControlSort() { + for (int i = 0; i < mObjEntity.size(); i++) { + ModelSortEntity.DataBean dataBean = mObjEntity.get(i); + dataBean.setSort(i + 1); + for (int j = 0; j < dataBean.getControls().size(); j++) { + dataBean.getControls().get(j).setSort(String.valueOf(j + 1)); + dataBean.getControls().get(j).setControlId(dataBean.getControls().get(j).getId()); + } + } + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("modeId", modeId); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + netWorkUtil.requestPostByAsyBody(SCENE_CONTROL_SORT, map, JSONObject.toJSONString(mObjEntity), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("setSceneControlSort", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + } + + @Override + public void onFail(String message) { + } + }); + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private final RelativeLayout root_relativelayout; + private TextView deviceName; + private View line2; + private RecyclerView mGridView; + private ModelSortChildAdapter mAdapter; + private ImageView iv_device_pic; + + + public MessageViewHolder(View view) { + super(view); + iv_device_pic = (ImageView) view.findViewById(R.id.iv_device_pic); + line2 = (View) view.findViewById(R.id.line2); + deviceName = (TextView) view.findViewById(R.id.tv_device_name); + root_relativelayout = (RelativeLayout) view.findViewById(R.id.root_relativelayout); + mGridView = (RecyclerView) view.findViewById(R.id.vertical_RecyclerView); + GridLayoutManager manager = new GridLayoutManager(mContext, 1); + mGridView.setLayoutManager(manager); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + deviceName.setText(mObjEntity.get(position).getAddressName() + mObjEntity.get(position).getName()); + // List controlsBeans = new ArrayList<>(); + List controlsBeans = mObjEntity.get(position).getControls(); + // controlsBeans.addAll(controls); + mAdapter = new ModelSortChildAdapter(mContext, mObjEntity.get(position).getControls()); + mGridView.setAdapter(mAdapter); + + ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.Callback() { + @Override + public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { + Log.i("getMovementFlags", "getMovementFlags: "); + int dragFlags; + int swipeFlags; + if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { + dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | + ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; + swipeFlags = 0; + } else { + dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN; + swipeFlags = 0; + } + return makeMovementFlags(dragFlags, swipeFlags); + } + + @Override + public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { + fromPosition = viewHolder.getAdapterPosition(); + toPosition = target.getAdapterPosition(); + Log.i("onMove", "onMove: " + fromPosition + "===" + toPosition + "===" + controlsBeans.size()); + if (fromPosition == controlsBeans.size() || toPosition == controlsBeans.size()) { + return false; + } + if (fromPosition < toPosition) { + for (int i = fromPosition; i < toPosition; i++) { + Collections.swap(controlsBeans, i, i + 1); + } + } else { + for (int i = fromPosition; i > toPosition; i--) { + Collections.swap(controlsBeans, i, i - 1); + } + } + mAdapter.notifyItemMoved(fromPosition, toPosition); + // modelAdapter.notifyDataSetChanged(); + return true; + } + + @Override + public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { + Log.i("onSwiped", "onSwiped: "); + + } + + @Override + public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { + super.onSelectedChanged(viewHolder, actionState); + if (viewHolder != null && actionState == ACTION_STATE_DRAG) { + lastDragViewHolder = viewHolder; + } + //ACTION_STATE_IDLE就是松开了,把大小改为原状 + if (lastDragViewHolder != null && actionState == ACTION_STATE_IDLE) { + Log.i("onSelectedChanged", "onSelectedChanged: "); + lastDragViewHolder = null; + setSceneControlSort(); + } + } + + @Override + public boolean isLongPressDragEnabled() { + return false; + } + }); + itemTouchHelper.attachToRecyclerView(mGridView); + + + mAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + + @Override + public void onClick(View view, int position, int i) { + /*if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(view, position, i); + }*/ + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + if (position != controlsBeans.size()) { + itemTouchHelper.startDrag(viewHolder); + } + } + }); + + root_relativelayout.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + /*controlsBeans.clear(); + mAdapter.notifyDataSetChanged(); + isLongClick = true;*/ + } + return false; + } + }); + + root_relativelayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mObjEntity.get(position).isExpanded()) { + mGridView.setVisibility(View.GONE); + iv_device_pic.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrow_up)); + mObjEntity.get(position).setExpanded(false); + return; + } + if (!mObjEntity.get(position).isExpanded()) { + mGridView.setVisibility(View.VISIBLE); + mObjEntity.get(position).setExpanded(true); + iv_device_pic.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrow_down)); + return; + } + } + }); + + + /*root_relativelayout.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_UP && isLongClick && controlsBeans.size() == 0) { + controlsBeans.addAll(controls); + mAdapter.notifyDataSetChanged(); + isLongClick = false; + } + return false; + } + });*/ + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/scene/ModelSortChildAdapter.java b/app/src/main/java/com/yonsz/z1/version5/scene/ModelSortChildAdapter.java new file mode 100644 index 0000000..2a35ab6 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/scene/ModelSortChildAdapter.java @@ -0,0 +1,407 @@ +package com.yonsz.z1.version5.scene; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.ModelSortEntity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.CURTAINS_TAG; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FAN_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GATE_WAY; +import static com.yonsz.z1.net.Constans.GEMSTONE_ELVES; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.Img; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.RGB_LIGHT; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SECURITY_MANIPULATOR; +import static com.yonsz.z1.net.Constans.SECURITY_TRIGGER; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SKYWORTH_TV; +import static com.yonsz.z1.net.Constans.SWEEP_TAG; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; + +public class ModelSortChildAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + + public ModelSortChildAdapter(Context context, List mDataBeans) { + this.mDataBeans = mDataBeans; + mContext = context; + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_model_sort_child, parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) { + ViewHolder holder = (ViewHolder) viewHolder; + holder.setViews(viewHolder, position); + } + + @Override + public int getItemCount() { + return mDataBeans.size(); + } + + + class ViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.icon) + ImageView icon; + @BindView(R.id.tv_child_device) + TextView title; + @BindView(R.id.tv_child_device_position) + TextView devicePosition; + @BindView(R.id.ll_device_detail_top) + LinearLayout childRl; + + ViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(RecyclerView.ViewHolder holder, final int position) { + title.setText(mDataBeans.get(position).getDeviceName()); + setIcon(position); + + childRl.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + + private void setIcon(int position) { + String deviceModel = mDataBeans.get(position).getDeviceModel(); + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getConndeviceAddress())); + switch (mDataBeans.get(position).getDeviceType()) { + case TV_TAG: + icon.setImageResource(Img[0]); + break; + case TVONE_TAG: + icon.setImageResource(R.drawable.icon_set_top_box); + break; + case AIR_CLEANER: + icon.setImageResource(R.drawable.icon_purifier); + break; + case MOVIE_CAMERA: + icon.setImageResource(R.drawable.icon_device_projector); + break; + case AIR_TAG: + icon.setImageResource(Img[1]); + break; + case FAN_TAG: + icon.setImageResource(Img[2]); + break; + case SWEEP_TAG: + icon.setImageResource(Img[3]); + break; + case MUSIC_TAG: + icon.setImageResource(Img[13]); + break; + case LIGHT_TAG: + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getConndeviceAddress())); + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_light); + } else { + switch (mDataBeans.get(position).getSubType()) { + case "0"://灯光 + icon.setImageResource(R.drawable.icon_light); + break; + case "1"://筒灯 + icon.setImageResource(R.drawable.icon_tubelamp); + break; + case "2"://灯带 + icon.setImageResource(R.drawable.icon_lightbelt); + break; + case "3"://射灯 + icon.setImageResource(R.drawable.icon_lamp); + break; + case "4"://壁灯 + icon.setImageResource(R.drawable.icon_walllamp); + break; + case "5"://吊灯 + icon.setImageResource(R.drawable.icon_chandelier); + break; + case "6"://廊灯 + icon.setImageResource(R.drawable.icon_porchlamp); + break; + case "7"://排气扇 + icon.setImageResource(R.drawable.icon_exhaust); + break; + default: + icon.setImageResource(R.drawable.icon_light); + break; + } + } + break; + case CURTAINS_TAG: + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getConndeviceAddress())); + icon.setImageResource(R.drawable.icon_curtains); + break; + case SWITCH_TAG: + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getConndeviceAddress())); + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_chazuo); + } else { + switch (mDataBeans.get(position).getSubType()) { + case "0"://插座 + switch (mDataBeans.get(position).getDeviceModel()) { + case "0": + icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + case "1"://台灯 + icon.setImageResource(R.drawable.icon_desklamp); + break; + case "2"://热水器(厨电) + icon.setImageResource(R.drawable.icon_kitchenpower); + break; + case "3"://墙壁插座 + if (AppIdUtil.isZhiKong()) { + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + } else { + icon.setImageResource(R.drawable.icon_wallsocket); + } + break; + case "4"://热水壶 + icon.setImageResource(R.drawable.icon_kettle); + break; + case "5"://取暖器 + icon.setImageResource(R.drawable.icon_heater); + break; + case "6"://电蚊香 + icon.setImageResource(R.drawable.icon_dwx); + case "7":// + icon.setImageResource(R.drawable.icon_sterilizing_lamp); + break; + default: + switch (mDataBeans.get(position).getDeviceModel()) { + case "0": + icon.setImageResource(R.drawable.icon_device_plug_t1); + break; + case "1": + icon.setImageResource(R.drawable.icon_device_wallsocket_t2); + break; + case "2": + icon.setImageResource(R.drawable.icon_device_plug_t4); + break; + case "4": + icon.setImageResource(R.drawable.icon_device_wifi_socket); + break; + default: + icon.setImageResource(R.drawable.icon_chazuo); + break; + } + break; + } + } + break; + case DOOR_LOCK_TAG: + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getConndeviceAddress())); + if (deviceModel.equals("0")) { + icon.setImageResource(R.drawable.icon_gatemagnetic); + } else { + icon.setImageResource(R.drawable.pic_magnetism_dh); + } + break; + case INFRARED_TAG: + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getConndeviceAddress())); + if (deviceModel.equals("0")) { + icon.setImageResource(R.drawable.icon_infrared); + } else { + icon.setImageResource(R.drawable.pic_infrared_dh); + } + break; + case INFRARED_CURTAIN_DETECTOR: + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getConndeviceAddress())); + icon.setImageResource(R.drawable.pic_curtain_dh); + break; + case INTELLIGENT_DOOR_LOCK: + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getConndeviceAddress())); + icon.setImageResource(R.drawable.pic_lock_dh); + break; + case WIRELESS_EMERGENCY_BUTTON: + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getConndeviceAddress())); + icon.setImageResource(R.drawable.pic_panic_button_dh); + break; + case WINDOW_OPENER: + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getConndeviceAddress())); + icon.setImageResource(R.drawable.icon_window_opener); + break; + case MULTIFUNCTIONAL_CONTROLLER: + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getConndeviceAddress())); + switch (mDataBeans.get(position).getSubType()) { + case "0": + icon.setImageResource(R.drawable.icon_curtains); + break; + case "1": + if (AppIdUtil.isWork()) { + icon.setImageResource(R.drawable.icon_curtains); + } else { + icon.setImageResource(R.drawable.icon_gauze); + } + break; + case "2": + icon.setImageResource(R.drawable.icon_window_opener); + break; + case "3"://车库门 + icon.setImageResource(R.drawable.pic_garage); + break; + case "4"://遮阳棚 + icon.setImageResource(R.drawable.pic_sunshade); + break; + case "5"://电动门 + icon.setImageResource(R.drawable.pic_autogate); + break; + case "6"://投影升降机 + icon.setImageResource(R.drawable.pic_elevator); + break; + case "7"://幕布升降机 + icon.setImageResource(R.drawable.pic_curtain_elevator); + break; + case "8"://电动喷淋 + icon.setImageResource(R.drawable.pic_spray); + break; + case "9"://卷闸门 + icon.setImageResource(R.drawable.pic_garage); + break; + default: + icon.setImageResource(R.drawable.icon_multifunctional); + break; + } + break; + case GEMSTONE_ELVES: + devicePosition.setVisibility(View.VISIBLE); + devicePosition.setText(AddressNameUtil.getAddressName(mDataBeans.get(position).getConndeviceAddress())); + icon.setImageResource(R.drawable.icon_gemstone_elves); + break; + case CLOTHES_HANGER: + devicePosition.setVisibility(View.VISIBLE); + icon.setImageResource(R.drawable.icon_airer); + break; + case SAFETY_VALVE: + devicePosition.setVisibility(View.VISIBLE); + icon.setImageResource(R.drawable.icon_valve_controller); + break; + case SECURITY_MANIPULATOR: + devicePosition.setVisibility(View.VISIBLE); + icon.setImageResource(R.drawable.icon_security_manipulator); + break; + case TEMP_CONTROL: + case FRESH_AIR: + case FLOOR_HEATING: + devicePosition.setVisibility(View.VISIBLE); + icon.setImageResource(R.drawable.icon_device_temperature); + break; + case SITUATIONAL_TRIGGER: + devicePosition.setVisibility(View.VISIBLE); + icon.setImageResource(R.drawable.icon_multifunctional); + break; + case SERVICE_PANEL_485: + if (mDataBeans.get(position).getDeviceModel().equals("1")) { + icon.setImageResource(R.drawable.icon_485_12v); + } else { + icon.setImageResource(R.drawable.icon_485); + } + break; + case SECURITY_TRIGGER: + devicePosition.setVisibility(View.VISIBLE); + switch (mDataBeans.get(position).getSubType()) { + case "0": + icon.setImageResource(R.drawable.icon_trigger_gas); + break; + case "1": + icon.setImageResource(R.drawable.icon_trigger_smoke); + break; + case "2": + icon.setImageResource(R.drawable.icon_trigger_infrared); + break; + case "3": + icon.setImageResource(R.drawable.icon_trigger_magnetism); + break; + case "4": + icon.setImageResource(R.drawable.icon_trigger_sos); + break; + } + break; + case RGB_LIGHT: + devicePosition.setVisibility(View.VISIBLE); + icon.setImageResource(R.drawable.icon_rgb_lightbelt); + break; + case SKYWORTH_TV: + devicePosition.setVisibility(View.VISIBLE); + icon.setImageResource(R.drawable.icon_chuangwei_tv); + break; + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/scene/OtherNameAdapter.java b/app/src/main/java/com/yonsz/z1/version5/scene/OtherNameAdapter.java new file mode 100644 index 0000000..e751301 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/scene/OtherNameAdapter.java @@ -0,0 +1,126 @@ +package com.yonsz.z1.version5.scene; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.database.entity.entity5.NewSceneEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.view.SwitchView; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +import static com.yonsz.z1.net.Constans.AIR_CLEANER; +import static com.yonsz.z1.net.Constans.CARD_ACCESS; +import static com.yonsz.z1.net.Constans.CLOTHES_HANGER; +import static com.yonsz.z1.net.Constans.DOOR_LOCK_TAG; +import static com.yonsz.z1.net.Constans.FLOOR_HEATING; +import static com.yonsz.z1.net.Constans.FRESH_AIR; +import static com.yonsz.z1.net.Constans.GATE_WAY; +import static com.yonsz.z1.net.Constans.INFRARED_CURTAIN_DETECTOR; +import static com.yonsz.z1.net.Constans.INFRARED_TAG; +import static com.yonsz.z1.net.Constans.INTELLIGENT_DOOR_LOCK; +import static com.yonsz.z1.net.Constans.KUQI_PANEL; +import static com.yonsz.z1.net.Constans.MOVIE_CAMERA; +import static com.yonsz.z1.net.Constans.MULTIFUNCTIONAL_CONTROLLER; +import static com.yonsz.z1.net.Constans.RGB_LIGHT; +import static com.yonsz.z1.net.Constans.SERVICE_PANEL_485; +import static com.yonsz.z1.net.Constans.SITUATIONAL_TRIGGER; +import static com.yonsz.z1.net.Constans.SKYWORTH_TV; +import static com.yonsz.z1.net.Constans.TEMP_CONTROL; +import static com.yonsz.z1.net.Constans.WINDOW_OPENER; +import static com.yonsz.z1.net.Constans.WIRELESS_EMERGENCY_BUTTON; + +public class OtherNameAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + private int timeType; + + + public OtherNameAdapter(Context context, List mDataBeans, int timeType) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.timeType = timeType; + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_other_name, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.tv_model_name_home) + TextView mTvModelName; + @BindView(R.id.tv_model_address) + TextView mTvModelAddress; + @BindView(R.id.tv_model_alias) + TextView mTvModelAlias; + @BindView(R.id.ll_bg) + RelativeLayout mLlBg; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + mTvModelAlias.setText(mDataBeans.get(position).getModeAlias()); + switch (mDataBeans.get(position).getExecType()) { + case "single": + mTvModelName.setText("单独"); + mTvModelAddress.setText("(" + mDataBeans.get(position).getGatewayAddressName() + mDataBeans.get(position).getGatewayName() + ")"); + break; + case "group": + mTvModelName.setText("组合"); + mTvModelAddress.setText("(" + mDataBeans.get(position).getName() + ")"); + break; + default: + mTvModelName.setText("全局模式别名:"); + break; + } + + + mLlBg.setOnClickListener(new NoDoubleClickListener() { + @Override + public void onNoDoubleClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 1); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/time/TimeManagerActivity.java b/app/src/main/java/com/yonsz/z1/version5/time/TimeManagerActivity.java new file mode 100644 index 0000000..4a70ac6 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/time/TimeManagerActivity.java @@ -0,0 +1,187 @@ +package com.yonsz.z1.version5.time; + +import android.content.Context; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.version4.fragment.ScrollViewPager; +import com.yonsz.z1.version5.weidget.BaseFragmentPagerAdapter; +import com.yonsz.z1.view.TitleView; +import com.yonsz.z1.view.magicindicator.MagicIndicator; +import com.yonsz.z1.view.magicindicator.ViewPagerHelper; +import com.yonsz.z1.view.magicindicator.buildins.UIUtil; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.CommonNavigator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.titles.CommonPagerTitleView; + +import java.util.ArrayList; +import java.util.List; + +import static com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator.MODE_WRAP_CONTENT; + +/** + * Created by Administrator on 2020/2/11. + */ + +public class TimeManagerActivity extends BaseActivity { + private TitleView titleView; + private List fragmentList; + private View changeHeightView; + private List mStringList = new ArrayList<>(); + private BaseFragmentPagerAdapter mExamplePagerAdapter; + + private MagicIndicator magicIndicator; + private ScrollViewPager mViewPager; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_time_manager); + initView(); + } + + private void initView() { + fragmentList = new ArrayList<>(); + magicIndicator = (MagicIndicator) findViewById(R.id.magic_indicator); + mViewPager = (ScrollViewPager) findViewById(R.id.view_pager); + titleView = (TitleView) findViewById(R.id.title_time_manager); + titleView.setHead(R.string.time_manager); + titleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + initAllDevice(); + } + + @Override + public void callBackUiThread(Message msg) { + + } + + private void initAllDevice() { + final List dataFloor = new ArrayList<>(); + mStringList.add("场景"); + mStringList.add("设备"); + fragmentList.clear(); + for (int i = 0; i < mStringList.size(); i++) { + List devicesBean = new ArrayList<>(); + TimeTypeFragment roomFragment = TimeTypeFragment.getInstance(this, devicesBean, i, this.getSupportFragmentManager()); + fragmentList.add(roomFragment); + } + mExamplePagerAdapter = new BaseFragmentPagerAdapter(this.getSupportFragmentManager(), fragmentList); + mViewPager.setScanScroll(false); + mViewPager.setAdapter(mExamplePagerAdapter); + mViewPager.setOffscreenPageLimit(fragmentList.size()); + mExamplePagerAdapter.notifyDataSetChanged(); + + + magicIndicator.setBackgroundColor(Color.TRANSPARENT); + CommonNavigator commonNavigator = new CommonNavigator(this); + commonNavigator.setAdapter(new CommonNavigatorAdapter() { + + @Override + public int getCount() { + return mStringList == null ? 0 : mStringList.size(); + } + + @Override + public IPagerTitleView getTitleView(Context context, final int index) { + CommonPagerTitleView commonPagerTitleView = new CommonPagerTitleView(context); + + // load custom layout + View customLayout = LayoutInflater.from(context).inflate(R.layout.simple_pager_title_time_manager, null); + final TextView titleText = (TextView) customLayout.findViewById(R.id.title_text); + titleText.setText(mStringList.get(index)); + commonPagerTitleView.setContentView(customLayout); + + commonPagerTitleView.setOnPagerTitleChangeListener(new CommonPagerTitleView.OnPagerTitleChangeListener() { + + @Override + public void onSelected(int index, int totalCount) { + if (AppIdUtil.isWork()) { + titleText.setTextColor(0xff24C1DA); + } else { + titleText.setTextColor(0xff398DEE); + } + Log.i("TAG", "HomepagerRecycleAdapter onSelected()" + index); + } + + @Override + public void onDeselected(int index, int totalCount) { + titleText.setTextColor(0xff333333); + } + + @Override + public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) { + + } + + @Override + public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) { + Log.i("TAG", "LoadCustomLayoutExampleActivity onEnter()" + (1.1f + (0.9f - 1.1f) * enterPercent) + "===" + index); + } + }); + + commonPagerTitleView.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + mViewPager.setCurrentItem(index); + } + }); + + return commonPagerTitleView; + } + + @Override + public IPagerIndicator getIndicator(Context context) { + LinePagerIndicator indicator = new LinePagerIndicator(context); + if (AppIdUtil.isWork()) { + indicator.setColors(Color.parseColor("#24C1DA")); + } else { + indicator.setColors(Color.parseColor("#398DEE")); + } + indicator.setLineHeight(UIUtil.dip2px(context, 2)); + indicator.setMode(MODE_WRAP_CONTENT); + indicator.setXOffset(10.0f); + return indicator; + } + }); + magicIndicator.setNavigator(commonNavigator); + ViewPagerHelper.bind(magicIndicator, mViewPager); + + } + + public void setLayoutParamsHeight(int height) { + changeHeightView.getLayoutParams().height = height; + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/time/TimeManagerAdapter.java b/app/src/main/java/com/yonsz/z1/version5/time/TimeManagerAdapter.java new file mode 100644 index 0000000..5d4a0f7 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/time/TimeManagerAdapter.java @@ -0,0 +1,216 @@ +package com.yonsz.z1.version5.time; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.view.SwitchView; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class TimeManagerAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private OnRecyclerTypeClickListener mOnItemClickListener; + private List photos = null; + private int timeType; + + + public TimeManagerAdapter(Context context, List mDataBeans, int timeType) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.timeType = timeType; + } + + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_model_time, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size(); + } + + public void setmOnItemClickListener(OnRecyclerTypeClickListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + private void setWeek(TimeSetEntity.DataBean objEntity, TextView weekTv) { + if (objEntity.getOnceFlag() == 0) { + if (objEntity.getWeekNum1() != null) { + String str = ""; + if (objEntity.getWeekNum1().equals("1")) { + str += mContext.getString(R.string.Monday); + } else { + } + if (objEntity.getWeekNum2().equals("1")) { + str += mContext.getString(R.string.Tuesday); + } else { + } + if (objEntity.getWeekNum3().equals("1")) { + str += mContext.getString(R.string.Wednesday); + } else { + } + if (objEntity.getWeekNum4().equals("1")) { + str += mContext.getString(R.string.Thursday); + } else { + } + if (objEntity.getWeekNum5().equals("1")) { + str += mContext.getString(R.string.Friday); + } else { + } + if (objEntity.getWeekNum6().equals("1")) { + str += mContext.getString(R.string.Saturday); + } else { + } + if (objEntity.getWeekNum7().equals("1")) { + str += mContext.getString(R.string.Sunday); + } else { + } + weekTv.setText(str); + } + } else { + weekTv.setText(""); + } + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_model_type_pic) + ImageView mIvModelPic; + @BindView(R.id.tv_model_name_home) + TextView mTvModelName; + @BindView(R.id.tv_model_name) + TextView mTvModelZiName; + @BindView(R.id.tv_model_stage_home) + TextView mTvModelStage; + @BindView(R.id.tv_once_time_home) + TextView onceTimeHome; + @BindView(R.id.tv_week_home) + TextView weekTvHome; + @BindView(R.id.ll_bg) + RelativeLayout mLlBg; + @BindView(R.id.stv_third) + SwitchView timeOpenCb; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + mTvModelName.setText(mDataBeans.get(position).getName()); + /*if (mDataBeans.get(position).getExecType().equals("single")) { + mTvModelZiName.setText(mDataBeans.get(position).getZiName()); + } else { + mTvModelZiName.setText(mDataBeans.get(position).getGroupName()); + }*/ + mTvModelZiName.setText(mDataBeans.get(position).getGatewayDesc()); + if (mDataBeans.get(position).getOpenFlag() == 0) { + mTvModelStage.setText(R.string.timing_close); + timeOpenCb.setOpened(false); + } else { + mTvModelStage.setText(R.string.timing_open); + timeOpenCb.setOpened(true); + } + if (timeType == 0) { + if (mDataBeans.get(position).getExecTime() != null) { + onceTimeHome.setText(mDataBeans.get(position).getExecTime()); + } + } else { + String cmdType = String.valueOf(mDataBeans.get(position).getCmdType()); + if (mDataBeans.get(position).getOnceFlag() == 1) { + int remainTime = mDataBeans.get(position).getRemainTime(); + int restMin = remainTime / 60 + 1; + if (restMin < 60) { + if (cmdType.equals("1")) { + onceTimeHome.setText(restMin + "分钟后开启"); + } else { + onceTimeHome.setText(restMin + "分钟后关闭"); + } + } else { + int minite = restMin % 60; + int hour = restMin / 60; + if (minite == 0) { + if (cmdType.equals("1")) { + onceTimeHome.setText(hour + "小时后开启"); + } else { + onceTimeHome.setText(hour + "小时后关闭"); + } + } else { + if (cmdType.equals("1")) { + onceTimeHome.setText(hour + "小时" + minite + "分钟后开启"); + } else { + onceTimeHome.setText(hour + "小时" + minite + "分钟后关闭"); + } + } + } + } else { + if (mDataBeans.get(position).getExecTime() != null) { + if (cmdType.equals("1")) { + onceTimeHome.setText(mDataBeans.get(position).getExecTime() + "开启"); + } else { + onceTimeHome.setText(mDataBeans.get(position).getExecTime() + "关闭"); + } + } + } + } + + setWeek(mDataBeans.get(position), weekTvHome); + + + timeOpenCb.setOnClickListener(new NoDoubleClickListener() { + @Override + public void onNoDoubleClick(View v) { + if (timeOpenCb.isOpened()) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 1); + } + } else { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 0); + } + } + + } + }); + + mLlBg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position, 100); + } + } + }); + mLlBg.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/time/TimeManagerFragment.java b/app/src/main/java/com/yonsz/z1/version5/time/TimeManagerFragment.java new file mode 100644 index 0000000..3676906 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/time/TimeManagerFragment.java @@ -0,0 +1,264 @@ +package com.yonsz.z1.version5.time; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity4.ChooseHomeEvent; +import com.yonsz.z1.database.entity.entitya2.AddModelEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.homemanage.TimeSetting4Activity; +import com.yonsz.z1.listener.OnRecyclerTypeClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.childdevice.SwitcherTimeActivity; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.io.Serializable; +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_FAIL; +import static com.yonsz.z1.net.Constans.ADD_MODEL_BASIC_SUCCESS; +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.MODEL_REAPEAT; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.TIMEMANAGER_LIST; +import static com.yonsz.z1.net.NetWorkUrl.TIMEMANAGER_UPDATEOPENFLAG; + +/** + * Created by Administrator on 2020/2/11. + */ + +public class TimeManagerFragment extends BaseFragment { + private View fragView; + private UIHandle mHandler; + private TitleView mTitleView; + private List mDatas = new ArrayList<>(); + private int timeType; + private RecyclerView mRecyclerView; + private TimeManagerAdapter modelAdapter; + private String isScene = "false"; + private LinearLayout cardView_add; + private TextView tv_no_timer; + + public static TimeManagerFragment getInstance(List mDatas, int timeType) { + TimeManagerFragment fragment = new TimeManagerFragment(); + fragment.mDatas = mDatas; + fragment.timeType = timeType; + return fragment; + } + + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.fragment_time_manager, null); + initView(fragView); + return fragView; + } + + private void initView(View fragView) { + mRecyclerView = (RecyclerView) fragView.findViewById(R.id.recyclerView); + cardView_add = (LinearLayout) fragView.findViewById(R.id.cardView_add); + tv_no_timer = (TextView) fragView.findViewById(R.id.tv_no_timer); + tv_no_timer.setText("暂无定时"); + + setData(); + } + + @Override + public void onResume() { + super.onResume(); + switch (timeType) { + case 0: + isScene = "true"; + break; + default: + break; + } + } + + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + /*TimeSetEntity timeSetEntity = (TimeSetEntity) msg.obj; + mDatas.clear(); + mDatas.addAll(timeSetEntity.getData()); + setData();*/ + break; + case ADD_MODEL_BASIC_SUCCESS: + String obj = (String) msg.obj; + if (obj.isEmpty()) { + + } else { + modelAdapter.notifyDataSetChanged(); + EventBus.getDefault().post( + new ChooseHomeEvent("10")); + } + break; + case ADD_MODEL_BASIC_FAIL: + case SELECT_MODEL_TIME_FAIL: + case UPDATE_MODEL_TIME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + case UPDATE_MODEL_TIME_SUCCESS: + + break; + } + } + + private void setData() { + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(getContext()); + manager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(manager); + modelAdapter = new TimeManagerAdapter(getContext(), mDatas, timeType); + mRecyclerView.setAdapter(modelAdapter); + if (mDatas.size() != 0) { + cardView_add.setVisibility(View.GONE); + } else { + cardView_add.setVisibility(View.VISIBLE); + } + + modelAdapter.setmOnItemClickListener(new OnRecyclerTypeClickListener() { + @Override + public void onClick(View view, int position, int i) { + if (i == 100) { + Intent intent; + switch (timeType) { + case 0: + intent = new Intent(getContext(), TimeSetting4Activity.class); + intent.putExtra("model", "1"); + if (mDatas.get(position).getId().isEmpty()) { + intent.putExtra("isAdd", false); + } else { + intent.putExtra("isAdd", true); + } + intent.putExtra("modelId", mDatas.get(position).getModelId()); + intent.putExtra("timeId", mDatas.get(position).getId()); + intent.putExtra("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + intent.putExtra("execType", mDatas.get(position).getExecType()); + intent.putExtra("groupId", mDatas.get(position).getGroupId()); + intent.putExtra("ziId", mDatas.get(position).getZiId()); + intent.putExtra("mObjEntity", (Serializable) mDatas.get(position)); + startActivityForResult(intent, MODEL_REAPEAT); + break; + case 1: + intent = new Intent(getContext(), SwitcherTimeActivity.class); + intent.putExtra("ziId", mDatas.get(position).getZiId()); + intent.putExtra("id", mDatas.get(position).getDeviceId()); + intent.putExtra("deviceType", mDatas.get(position).getDeviceType()); + startActivity(intent); + break; + /*case 2: + intent = new Intent(getContext(), SwitcherTimeActivity.class); + intent.putExtra("ziId", mDatas.get(position).getZiId()); + intent.putExtra("id", mDatas.get(position).getDeviceId()); + intent.putExtra("deviceType", SWITCH_TAG); + startActivity(intent); + break; + case 3: + intent = new Intent(getContext(), TimeReserveActivity.class); + intent.putExtra("ziId", mDatas.get(position).getZiId()); + startActivity(intent); + break;*/ + } + } else { + if (i == 1) { + updateModelTime(mDatas.get(position).getId(), 1, mDatas.get(position).getCmdType()); + } else { + updateModelTime(mDatas.get(position).getId(), 0, mDatas.get(position).getCmdType()); + mDatas.remove(position); + modelAdapter.notifyDataSetChanged(); + /*EventBus.getDefault().post( + new EventBusEntity("刷新定时"));*/ + } + } + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + } + + private void updateModelTime(String id, int openFlag, String cmdType) { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("id", id); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("openFlag", String.valueOf(openFlag)); + map.put("isScene", isScene); + map.put("cmdType", cmdType); + netWorkUtil.requestPostByAsynewApi(TIMEMANAGER_UPDATEOPENFLAG, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("updateModelTime", "ShareDeviceActivity onSuccess()" + respone); + AddModelEntity obj = JSON.parseObject(respone, AddModelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(TimeManagerFragment activity) { + weakReference = new WeakReference(activity); + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + TimeManagerFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/time/TimeTypeFragment.java b/app/src/main/java/com/yonsz/z1/version5/time/TimeTypeFragment.java new file mode 100644 index 0000000..3a73c4a --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/time/TimeTypeFragment.java @@ -0,0 +1,304 @@ +package com.yonsz.z1.version5.time; + +import android.content.Context; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.annotation.Nullable; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.database.entity.entitya2.TimeSetEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.listener.NoDoubleClickListener; +import com.yonsz.z1.net.Constans; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.AddressNameUtil; +import com.yonsz.z1.utils.AppIdUtil; +import com.yonsz.z1.utils.SharedpreferencesUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.fragment.ScrollViewPager; +import com.yonsz.z1.version5.weidget.BaseFragmentPagerAdapter; +import com.yonsz.z1.view.magicindicator.MagicIndicator; +import com.yonsz.z1.view.magicindicator.ViewPagerHelper; +import com.yonsz.z1.view.magicindicator.buildins.UIUtil; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.CommonNavigator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; +import com.yonsz.z1.view.magicindicator.buildins.commonnavigator.titles.CommonPagerTitleView; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.AIR_TAG; +import static com.yonsz.z1.net.Constans.LIGHT_TAG; +import static com.yonsz.z1.net.Constans.SAFETY_VALVE; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_MODEL_TIME_SUCCESS; +import static com.yonsz.z1.net.Constans.SWITCH_TAG; +import static com.yonsz.z1.net.NetWorkUrl.TIMEMANAGER_LIST; +import static com.yonsz.z1.view.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator.MODE_WRAP_CONTENT; + +/** + * Created by Administrator on 2020/2/11. + */ + +public class TimeTypeFragment extends BaseFragment { + private View fragView; + private UIHandle mHandler; + private List fragmentList; + private View changeHeightView; + private List mStringList = new ArrayList<>(); + private BaseFragmentPagerAdapter mExamplePagerAdapter; + + private MagicIndicator magicIndicator; + private ScrollViewPager mViewPager; + + private List mDatas = new ArrayList<>(); + private int timeType; + private Context mContext; + private android.support.v4.app.FragmentManager manager; + + public static TimeTypeFragment getInstance(Context context, List mDatas, int timeType, android.support.v4.app.FragmentManager supportFragmentManager) { + TimeTypeFragment fragment = new TimeTypeFragment(); + fragment.mDatas = mDatas; + fragment.timeType = timeType; + fragment.mContext = context; + fragment.manager = supportFragmentManager; + return fragment; + } + + /* public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + if (msg.equals("刷新定时")) { + mStringList.clear(); + fragmentList.clear(); + getTimemanageList(); + } + }*/ + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mHandler = new UIHandle(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + fragView = View.inflate(getActivity(), R.layout.activity_time_type, null); + initView(fragView); + return fragView; + } + + private void initView(View fragView) { + fragmentList = new ArrayList<>(); + magicIndicator = (MagicIndicator) fragView.findViewById(R.id.magic_indicator); + mViewPager = (ScrollViewPager) fragView.findViewById(R.id.view_pager); + getTimemanageList(); +// initAllDevice(mDatas); + } + + private void initAllDevice(List mDatas) { + switch (timeType) { + case 0: + mStringList.add("场景"); + fragmentList.clear(); + List devicesBean = new ArrayList<>(); + for (int i = 0; i < mDatas.size(); i++) { + if (mDatas.get(i).getTimerType().equals("scene")) { + devicesBean.add(mDatas.get(i)); + } + } + TimeManagerFragment roomFragment = TimeManagerFragment.getInstance(devicesBean, 0); + fragmentList.add(roomFragment); + break; + default: + mStringList.add("全部"); + fragmentList.clear(); + List devicesBean1 = new ArrayList<>(); + for (int i = 0; i < mDatas.size(); i++) { + if (mDatas.get(i).getTimerType().equals("device")) { + devicesBean1.add(mDatas.get(i)); + } + } + TimeManagerFragment roomFragment1 = TimeManagerFragment.getInstance(devicesBean1, 1); + fragmentList.add(roomFragment1); + + List devicesBean2; + for (int i = 0; i < mDatas.size(); i++) { + if (mDatas.get(i).getTimerType().equals("device")) { + String deviceTypeName = AddressNameUtil.getDeviceTypeName(mDatas.get(i).getDeviceType()); + if (!mStringList.contains(deviceTypeName)) { + mStringList.add(deviceTypeName); + devicesBean2 = new ArrayList<>(); + for (int j = 0; j < mDatas.size(); j++) { + if (mDatas.get(j).getDeviceType().equals(mDatas.get(i).getDeviceType())) { + devicesBean2.add(mDatas.get(j)); + } + } + TimeManagerFragment roomFragment2 = TimeManagerFragment.getInstance(devicesBean2, 1); + fragmentList.add(roomFragment2); + } + } + } + } + mExamplePagerAdapter = new BaseFragmentPagerAdapter(getChildFragmentManager(), fragmentList); + mViewPager.setScanScroll(true); + mViewPager.setAdapter(mExamplePagerAdapter); + mViewPager.setOffscreenPageLimit(fragmentList.size()); + mExamplePagerAdapter.notifyDataSetChanged(); + + + magicIndicator.setBackgroundColor(Color.TRANSPARENT); + CommonNavigator commonNavigator = new CommonNavigator(mContext); + commonNavigator.setAdapter(new CommonNavigatorAdapter() { + + @Override + public int getCount() { + return mStringList == null ? 0 : mStringList.size(); + } + + @Override + public IPagerTitleView getTitleView(Context context, final int index) { + CommonPagerTitleView commonPagerTitleView = new CommonPagerTitleView(context); + + // load custom layout + View customLayout = LayoutInflater.from(context).inflate(R.layout.title_time_manager, null); + final TextView titleText = (TextView) customLayout.findViewById(R.id.title_text); + titleText.setText(mStringList.get(index)); + commonPagerTitleView.setContentView(customLayout); + + commonPagerTitleView.setOnPagerTitleChangeListener(new CommonPagerTitleView.OnPagerTitleChangeListener() { + + @Override + public void onSelected(int index, int totalCount) { + if (AppIdUtil.isWork()) { + titleText.setTextColor(0xff24C1DA); + } else { + titleText.setTextColor(0xffffffff); + titleText.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee_20dp)); + } + Log.i("TAG", "HomepagerRecycleAdapter onSelected()" + index); + } + + @Override + public void onDeselected(int index, int totalCount) { + titleText.setTextColor(0xff333333); + titleText.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_000000)); + } + + @Override + public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) { + + } + + @Override + public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) { + Log.i("TAG", "LoadCustomLayoutExampleActivity onEnter()" + (1.1f + (0.9f - 1.1f) * enterPercent) + "===" + index); + } + }); + + commonPagerTitleView.setOnClickListener(new NoDoubleClickListener() { + @Override + protected void onNoDoubleClick(View v) { + mViewPager.setCurrentItem(index); + } + }); + + return commonPagerTitleView; + } + + @Override + public IPagerIndicator getIndicator(Context context) { + LinePagerIndicator indicator = new LinePagerIndicator(context); + if (AppIdUtil.isWork()) { + indicator.setColors(Color.parseColor("#24C1DA")); + } else { + indicator.setColors(Color.parseColor("#398DEE")); + } + indicator.setLineHeight(UIUtil.dip2px(context, 0)); + indicator.setMode(MODE_WRAP_CONTENT); + indicator.setXOffset(10.0f); + return indicator; + } + }); + magicIndicator.setNavigator(commonNavigator); + ViewPagerHelper.bind(magicIndicator, mViewPager); + + } + + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_MODEL_TIME_SUCCESS: + TimeSetEntity timeSetEntity = (TimeSetEntity) msg.obj; + mDatas.clear(); + mDatas.addAll(timeSetEntity.getData()); + initAllDevice(mDatas); + break; + case SELECT_MODEL_TIME_FAIL: + ToastUtil.show(getContext(), (String) msg.obj); + break; + } + } + + + private void getTimemanageList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("houseId", SharedpreferencesUtil.get(Constans.HOUSEID, "")); + map.put("isQueryAll", "true"); + netWorkUtil.requestGetByAsy(TIMEMANAGER_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + // Log.i("getZ1Info", "MainFragment4 onSuccess()" + respone); + ToastUtil.i("getTimemanageList", respone); + TimeSetEntity obj = JSON.parseObject(respone, TimeSetEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(SELECT_MODEL_TIME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + + static class UIHandle extends Handler { + WeakReference weakReference; + + public UIHandle(TimeTypeFragment activity) { + weakReference = new WeakReference(activity); + } + + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + TimeTypeFragment activity = weakReference.get(); + activity.callBackUiThread(msg); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/tv/ChannelBindActivity.java b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelBindActivity.java new file mode 100644 index 0000000..d2d6638 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelBindActivity.java @@ -0,0 +1,156 @@ +package com.yonsz.z1.version5.tv; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.helper.ItemTouchHelper; +import android.util.Log; +import android.view.Gravity; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_FAIL; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.TVCHANNEL_ACTION_EXEC; +import static com.yonsz.z1.net.NetWorkUrl.TVCHANNEL_LIST; + +public class ChannelBindActivity extends BaseActivity { + private TitleView mTitleView; + private RecyclerView frequencyChannelRv; + private ChannelBindAdapter mAdapter; + private List dataList; + + public void onEventMainThread(EventBusEntity event) { + getTvChannelList(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_channel_bind); + initView(); + } + + private void initView() { + frequencyChannelRv = (RecyclerView) findViewById(R.id.rv_channel_bind); + mTitleView = (TitleView) findViewById(R.id.title_frequency_channel); + mTitleView.setHead("频道设置"); + mTitleView.clearBackGroud(); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + getTvChannelList(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case HOUSE_TYPE_LIST_SUCCESS: + HouseEntity houseEntity = (HouseEntity) msg.obj; + dataList = houseEntity.getData(); + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(this); + frequencyChannelRv.setLayoutManager(manager); + mAdapter = new ChannelBindAdapter(this, dataList, false); + frequencyChannelRv.setAdapter(mAdapter); + + mAdapter.setmOnItemClickListener(new OnRecyclerListener() { + @Override + public void onClick(View view, final int position) { + Intent intent = new Intent(ChannelBindActivity.this, ChannelChangeBindActivity.class); + intent.putExtra("hardwareChannel", String.valueOf(position + 1)); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("nameTag", ""); + intent.putExtra("id", getIntent().getExtras().get("id").toString()); + intent.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + intent.putExtra("deviceType", ""); + startActivity(intent); + } + + @Override + public void onLongClick(RecyclerView.ViewHolder view, int position) { + } + }); + break; + case HOUSE_TYPE_LIST_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + } + } + + private void getTvChannelList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("id").toString()); + map.put("onlyHardwareBind", "true"); + netWorkUtil.requestGetByAsy(TVCHANNEL_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getTvChannelList", "onSuccess()" + respone); + HouseEntity obj = JSON.parseObject(respone, HouseEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/tv/ChannelBindAdapter.java b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelBindAdapter.java new file mode 100644 index 0000000..c1ba674 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelBindAdapter.java @@ -0,0 +1,132 @@ +package com.yonsz.z1.version5.tv; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.listener.OnRecyclerListener; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + + +public class ChannelBindAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private boolean isEdit; + private OnRecyclerListener mOnItemClickListener; + + + public ChannelBindAdapter(Context context, List mDataBeans, boolean isEdit) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.isEdit = isEdit; + } + + public void setIsEdit(List mDataBeans, boolean isTdit) { + this.isEdit = isTdit; + this.mDataBeans = mDataBeans; + this.notifyDataSetChanged(); + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_channel_bind, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return 10; + } + + public void setmOnItemClickListener(OnRecyclerListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.tv_channel_key) + TextView mTvChannelKey; + @BindView(R.id.tv_channel_value) + TextView mTvChannelValue; + @BindView(R.id.iv_channel_value) + ImageView mIvChannelValue; + @BindView(R.id.rl_channel_value) + RelativeLayout mRlChannelValue; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + String channelNum = ""; + int thisPosition = position + 1; + switch (String.valueOf(thisPosition)) { + case "1": + channelNum = "一"; + break; + case "2": + channelNum = "二"; + break; + case "3": + channelNum = "三"; + break; + case "4": + channelNum = "四"; + break; + case "5": + channelNum = "五"; + break; + case "6": + channelNum = "六"; + break; + case "7": + channelNum = "七"; + break; + case "8": + channelNum = "八"; + break; + case "9": + channelNum = "九"; + break; + case "10": + channelNum = "十"; + break; + } + mTvChannelKey.setText("频道" + channelNum); + for (int i = 0; i < mDataBeans.size(); i++) { + String bindHardwareChannel = mDataBeans.get(i).getBindHardwareChannel(); + if (bindHardwareChannel.equals(String.valueOf(thisPosition))) { + mTvChannelValue.setText(mDataBeans.get(i).getTvChannelName()); + mRlChannelValue.setBackground((mContext.getResources().getDrawable(R.drawable.btn_round_5dp_strok))); + mIvChannelValue.setVisibility(View.GONE); + } + } + mTvChannelValue.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/tv/ChannelChangeBindActivity.java b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelChangeBindActivity.java new file mode 100644 index 0000000..5d14882 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelChangeBindActivity.java @@ -0,0 +1,175 @@ +package com.yonsz.z1.version5.tv; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.View; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_FAIL; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.TVCHANNEL_LIST; + +public class ChannelChangeBindActivity extends BaseActivity { + private TitleView mTitleView; + private RecyclerView frequencyChannelRv; + private ChannelChangeBindAdapter mAdapter; + private List dataList; + + public void onEventMainThread(EventBusEntity event) { + getTvChannelList(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_channel_change_bind); + initView(); + } + + private void initView() { + frequencyChannelRv = (RecyclerView) findViewById(R.id.rv_channel_bind); + mTitleView = (TitleView) findViewById(R.id.title_frequency_channel); + mTitleView.setHead("快捷频道"); + mTitleView.setHeadColor(Color.BLACK); + mTitleView.clearBackGroud(); + mTitleView.setBackFuntion(R.drawable.icon_nav_back_black); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + getTvChannelList(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case HOUSE_TYPE_LIST_SUCCESS: + HouseEntity houseEntity = (HouseEntity) msg.obj; + dataList = houseEntity.getData(); + RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(this); + frequencyChannelRv.setLayoutManager(manager); + mAdapter = new ChannelChangeBindAdapter(this, dataList, false); + frequencyChannelRv.setAdapter(mAdapter); + + mAdapter.setmOnItemClickListener(new OnRecyclerListener() { + @Override + public void onClick(View view, final int position) { + tvchannelBind(String.valueOf(dataList.get(position).getId())); + } + + @Override + public void onLongClick(RecyclerView.ViewHolder view, int position) { + } + }); + break; + case HOUSE_TYPE_LIST_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + EventBus.getDefault().post( + new EventBusEntity("关闭")); + finish(); + break; + } + } + + private void tvchannelBind(String userChannelId) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("hardwareChannel", getIntent().getExtras().get("hardwareChannel").toString()); + map.put("userChannelId", userChannelId); + util.requestPostByAsyBody(NetWorkUrl.TVCHANNEL_BIND, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("tvchannelBind", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getTvChannelList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("id").toString()); + netWorkUtil.requestGetByAsy(TVCHANNEL_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getTvChannelList", "onSuccess()" + respone); + HouseEntity obj = JSON.parseObject(respone, HouseEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/tv/ChannelChangeBindAdapter.java b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelChangeBindAdapter.java new file mode 100644 index 0000000..58ab3f8 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelChangeBindAdapter.java @@ -0,0 +1,83 @@ +package com.yonsz.z1.version5.tv; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.listener.OnRecyclerListener; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + + +public class ChannelChangeBindAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private boolean isEdit; + private OnRecyclerListener mOnItemClickListener; + + + public ChannelChangeBindAdapter(Context context, List mDataBeans, boolean isEdit) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.isEdit = isEdit; + } + + public void setIsEdit(List mDataBeans, boolean isTdit) { + this.isEdit = isTdit; + this.mDataBeans = mDataBeans; + this.notifyDataSetChanged(); + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_channel_change_bind, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans != null ? mDataBeans.size() : 0; + } + + public void setmOnItemClickListener(OnRecyclerListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.tv_channel_key) + TextView mTvChannelKey; + @BindView(R.id.root) + RelativeLayout root; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + mTvChannelKey.setText(mDataBeans.get(position).getTvChannelName()); + root.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + } + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/tv/ChannelKeyAdapter.java b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelKeyAdapter.java new file mode 100644 index 0000000..0f50c7d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelKeyAdapter.java @@ -0,0 +1,124 @@ +package com.yonsz.z1.version5.tv; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import com.lechange.demo.business.Business; +import com.lechange.demo.business.entity.ChannelInfo; +import com.lechange.demo.mediaplay.MediaPlayActivity; +import com.yonsz.z1.R; +import com.yonsz.z1.database.entity.entity5.ChannelLearnEntity; + +import java.util.List; + +/** + * Created by Administrator on 2019/2/27. + */ + +public class ChannelKeyAdapter extends RecyclerView.Adapter { + + private List mChannelInfoList; + private Context mContext; + + public ChannelKeyAdapter(Context mContext, List mChannelInfoList) { + super(); + this.mContext = mContext; + this.mChannelInfoList = mChannelInfoList; + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tv_key_name, + parent, false); + return new ChannelKeyAdapter.MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(ChannelKeyAdapter.MessageViewHolder holder, int position) { + holder.setViews(position); + } + + @Override + public int getItemCount() { + return mChannelInfoList != null ? mChannelInfoList.size() : 0; + } + + @Override + public long getItemId(int position) { + return super.getItemId(position); + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + private TextView mKeyName; + private LinearLayout mListShade; + private ChannelInfo mInfo; + + public MessageViewHolder(View convertView) { + super(convertView); + mKeyName = (TextView) convertView.findViewById(R.id.tv_key_name); + } + + public void setViews(final int position) { + String key = ""; + switch (mChannelInfoList.get(position).getKey()) { + case "power": + key = "开关"; + break; + case "up": + key = "上"; + break; + case "down": + key = "下"; + break; + case "left": + key = "左"; + break; + case "right": + key = "右"; + break; + case "boot": + key = "主页"; + break; + case "menu": + key = "菜单"; + break; + case "back": + key = "返回"; + break; + case "volplus": + key = "音量+"; + break; + case "volminus": + key = "音量-"; + break; + case "powerbox": + key = "机顶盒"; + break; + case "signal": + key = "信号源"; + break; + case "mute": + key = "静音"; + break; + default: + key = mChannelInfoList.get(position).getKey(); + break; + } + mKeyName.setText(key); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/tv/ChannelLearnActivity.java b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelLearnActivity.java new file mode 100644 index 0000000..8a2b855 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelLearnActivity.java @@ -0,0 +1,779 @@ +package com.yonsz.z1.version5.tv; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.support.annotation.Nullable; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.View; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SimpleEntty; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.database.entity.entity5.ChannelLearnEntity; +import com.yonsz.z1.database.entity.entity5.Key5Entity; +import com.yonsz.z1.device.tv.FanItem; +import com.yonsz.z1.device.tv.OnFanItemClickListener; +import com.yonsz.z1.device.tv.PieChartView; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version5.weidget.RecyclerViewNoBugLinearLayoutManager; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import de.greenrobot.event.EventBus; + +import static com.yonsz.z1.R.id.tv_no_voice; +import static com.yonsz.z1.R.id.tv_tv_voice; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_BRAND_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_FAIL; +import static com.yonsz.z1.net.Constans.SELECT_CONNDEVICE_PUSHKEY_SUCCESS; +import static com.yonsz.z1.net.Constans.TVONE_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.SUBSET_GETCONTROLKEYS; + +/** + * Created by Administrator on 2018/8/8. + */ + +public class ChannelLearnActivity extends BaseActivity { + public int mId; + private TitleView mTitleView; + private PieChartView chartView; + private String ziId; + private TextView mOpenClose, mVoice, mNoVoice, mOk, mOk1, mHome, mBack, mMenu, mVolAdd, mVolReduce, mDown, mLeft, mUp, mRight, mSignal; + private TextView numerOne, numerTwo, numerThree, numerFour, numerFive, numerSix, numerSeven, numerEight, numerNine, numerZero; + private TextView mOpenCloseBg, mVoiceBg, mNoVoiceBg, mOkBg, mHomeBg, mBackBg, mMenuBg, mVolAddBg, mVolReduceBg; + private TextView numerOneBg, numerTwoBg, numerThreeBg, numerFourBg, numerFiveBg, numerSixBg, numerSevenBg, numerEightBg, numerNineBg, numerZeroBg, mSignalBg; + private boolean mOpenCloseTag, mVoiceTag, mNoVoiceTag, mOkTag, mHomeTag, mBackTag, mMenuTag, mVolAddTag, mVolReduceTag, mDownTag, mLeftTag, mUpTag, mRightTag, mSignalTag; + private boolean numerOneTag, numerTwoTag, numerThreeTag, numerFourTag, numerFiveTag, numerSixTag, numerSevenTag, numerEightTag, numerNineTag, numerZeroTag; + private ImageView mVoicePic, mNoVoicePic, mHomePic, mBackPic, mMenuPic, mVolAddPic, mVolRedPic; + private boolean isTv = true; + private List channelLearnEntities = new ArrayList<>(); + private String deviceId; + private long startTime; + private TextView rerecordTv, saveTv, topDeclareTv; + private RelativeLayout allKeyModelRl; + private RecyclerView horizontalRecyclerView; + private ChannelKeyAdapter mHorizontalAdapter; + private String deviceModel; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_channel_learn); + initView(); + initListener(); + } + + private void initView() { + ziId = getIntent().getExtras().get("ziId").toString(); + deviceId = getIntent().getExtras().get("deviceId").toString(); + deviceModel = getIntent().getExtras().get("deviceModel").toString(); + mDown = (TextView) findViewById(R.id.iv_down); + mLeft = (TextView) findViewById(R.id.iv_left); + mUp = (TextView) findViewById(R.id.iv_up); + mRight = (TextView) findViewById(R.id.iv_right); + mOpenClose = (TextView) findViewById(R.id.tv_tv_open); + mVoice = (TextView) findViewById(tv_tv_voice); + mNoVoice = (TextView) findViewById(tv_no_voice); + mOk = (TextView) findViewById(R.id.tv_tv_ok); + mOk1 = (TextView) findViewById(R.id.tv_ok); + mHome = (TextView) findViewById(R.id.tv_tv_home); + mMenu = (TextView) findViewById(R.id.tv_tv_menu); + mBack = (TextView) findViewById(R.id.tv_tv_back); + mSignal = (TextView) findViewById(R.id.tv_tv_signal); + mVolAdd = (TextView) findViewById(R.id.tv_tv_voladd); + mVolReduce = (TextView) findViewById(R.id.tv_tv_volreduce); + numerOne = (TextView) findViewById(R.id.tv_tv_one); + numerTwo = (TextView) findViewById(R.id.tv_tv_two); + numerThree = (TextView) findViewById(R.id.tv_tv_three); + numerFour = (TextView) findViewById(R.id.tv_tv_four); + numerFive = (TextView) findViewById(R.id.tv_tv_five); + numerSix = (TextView) findViewById(R.id.tv_tv_six); + numerSeven = (TextView) findViewById(R.id.tv_tv_seven); + numerEight = (TextView) findViewById(R.id.tv_tv_eight); + numerNine = (TextView) findViewById(R.id.tv_tv_nine); + numerZero = (TextView) findViewById(R.id.tv_tv_zero); + topDeclareTv = (TextView) findViewById(R.id.tv_top_declare); + rerecordTv = (TextView) findViewById(R.id.tv_rerecord); + saveTv = (TextView) findViewById(R.id.tv_save); + allKeyModelRl = (RelativeLayout) findViewById(R.id.rl_allkey_model); + horizontalRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); + + mOpenCloseBg = (TextView) findViewById(R.id.tv_tv_open_bg); + mVoiceBg = (TextView) findViewById(R.id.tv_tv_voice_bg); + mNoVoiceBg = (TextView) findViewById(R.id.tv_no_voice_bg); + mOkBg = (TextView) findViewById(R.id.tv_tv_ok_bg); + mHomeBg = (TextView) findViewById(R.id.tv_tv_home_bg); + mMenuBg = (TextView) findViewById(R.id.tv_tv_menu_bg); + mBackBg = (TextView) findViewById(R.id.tv_tv_back_bg); + mSignalBg = (TextView) findViewById(R.id.tv_tv_signal_bg); + mVolAddBg = (TextView) findViewById(R.id.tv_tv_voladd_bg); + mVolReduceBg = (TextView) findViewById(R.id.tv_tv_volreduce_bg); + numerOneBg = (TextView) findViewById(R.id.tv_tv_one_bg); + numerTwoBg = (TextView) findViewById(R.id.tv_tv_two_bg); + numerThreeBg = (TextView) findViewById(R.id.tv_tv_three_bg); + numerFourBg = (TextView) findViewById(R.id.tv_tv_four_bg); + numerFiveBg = (TextView) findViewById(R.id.tv_tv_five_bg); + numerSixBg = (TextView) findViewById(R.id.tv_tv_six_bg); + numerSevenBg = (TextView) findViewById(R.id.tv_tv_seven_bg); + numerEightBg = (TextView) findViewById(R.id.tv_tv_eight_bg); + numerNineBg = (TextView) findViewById(R.id.tv_tv_nine_bg); + numerZeroBg = (TextView) findViewById(R.id.tv_tv_zero_bg); + + mVoicePic = (ImageView) findViewById(R.id.iv_tv_voice); + mNoVoicePic = (ImageView) findViewById(R.id.iv_no_voice); + mHomePic = (ImageView) findViewById(R.id.iv_tv_home); + mMenuPic = (ImageView) findViewById(R.id.iv_tv_menu); + mBackPic = (ImageView) findViewById(R.id.iv_tv_back); + mVolAddPic = (ImageView) findViewById(R.id.iv_tv_add); + mVolRedPic = (ImageView) findViewById(R.id.iv_tv_reduce); + // mHandler.sendEmptyMessage(MSG_PROGRESS_UPDATE); + mTitleView = (TitleView) findViewById(R.id.title_tv); + mTitleView.clearBackGroud(); + mTitleView.setHead("机顶盒"); + mTitleView.setHeadFuntionTxt("更多按键"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + if (mTitleView.getHeadFuntionTxt().equals("更多按键")) { + mTitleView.setHeadFuntionTxt("收起"); + allKeyModelRl.setVisibility(View.VISIBLE); + mOk1.setVisibility(View.GONE); + } else { + mTitleView.setHeadFuntionTxt("更多按键"); + allKeyModelRl.setVisibility(View.GONE); + mOk1.setVisibility(View.VISIBLE); + } + } + + @Override + public void onFunctionText() { + + } + }); + + chartView = (PieChartView) findViewById(R.id.pieChartView); + chartView.setFanClickAbleData( + new double[]{90, 90, 90, 90}, + new int[]{Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT, Color.TRANSPARENT}, 0, mHandler); + setPanClick(); + + // selectConnDevicePushkey(); + subsetGetControlKeys(); + + + mHorizontalAdapter = new ChannelKeyAdapter(this, channelLearnEntities); + RecyclerViewNoBugLinearLayoutManager manage = new RecyclerViewNoBugLinearLayoutManager(this); + manage.setOrientation(LinearLayoutManager.HORIZONTAL); + horizontalRecyclerView.setHasFixedSize(true); + horizontalRecyclerView.setLayoutManager(manage); + horizontalRecyclerView.setAdapter(mHorizontalAdapter); + } + + private void setPanClick() { + chartView.setOnFanClick(new OnFanItemClickListener() { + @Override + public void onFanClick(FanItem fanItem) { + mId = fanItem.getId(); + Intent intent; + switch (mId) { + case 0: + if (!mDownTag) { + mDown.setClickable(false); + mDown.setEnabled(false); + } else { + mDown.setEnabled(true); + mDown.setVisibility(View.VISIBLE); + } + break; + case 1: + if (!mLeftTag) { + mLeft.setEnabled(false); + } else { + mLeft.setEnabled(true); + mLeft.setVisibility(View.VISIBLE); + } + break; + case 2: + if (!mUpTag) { + mUp.setEnabled(false); + } else { + mUp.setEnabled(true); + mUp.setVisibility(View.VISIBLE); + } + break; + case 3: + if (!mRightTag) { + mRight.setEnabled(false); + } else { + mRight.setEnabled(true); + mRight.setVisibility(View.VISIBLE); + } + break; + } + } + + @Override + public void onFanLongClick(FanItem fanItem) { + } + + @Override + public void onUp(FanItem fanItem) { + if (fanItem != null) { + mId = fanItem.getId(); + } + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + switch (mId) { + case 0: + if (mDownTag) { + sentControlOrder("down"); + } + mDown.setVisibility(View.INVISIBLE); + break; + case 1: + if (mLeftTag) { + sentControlOrder("left"); + } + mLeft.setVisibility(View.INVISIBLE); + break; + case 2: + if (mUpTag) { + sentControlOrder("up"); + } + mUp.setVisibility(View.INVISIBLE); + break; + case 3: + if (mRightTag) { + sentControlOrder("right"); + } + mRight.setVisibility(View.INVISIBLE); + break; + } + } + }, 200); + } + }); + } + + private void initListener() { + mOpenClose.setOnClickListener(this); + mVoice.setOnClickListener(this); + mNoVoice.setOnClickListener(this); + mOk.setOnClickListener(this); + mOk1.setOnClickListener(this); + mHome.setOnClickListener(this); + mMenu.setOnClickListener(this); + mBack.setOnClickListener(this); + mSignal.setOnClickListener(this); + mVolAdd.setOnClickListener(this); + mVolReduce.setOnClickListener(this); + numerOne.setOnClickListener(this); + numerTwo.setOnClickListener(this); + numerThree.setOnClickListener(this); + numerFour.setOnClickListener(this); + numerFive.setOnClickListener(this); + numerSix.setOnClickListener(this); + numerSeven.setOnClickListener(this); + numerEight.setOnClickListener(this); + numerNine.setOnClickListener(this); + numerZero.setOnClickListener(this); + rerecordTv.setOnClickListener(this); + saveTv.setOnClickListener(this); + } + + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_tv_open: + sentControlOrder("powertv"); + break; + case tv_tv_voice: + sentControlOrder("power"); + break; + case R.id.tv_no_voice: + sentControlOrder("mute"); + break; + case R.id.tv_tv_ok: + case R.id.tv_ok: + sentControlOrder("ok"); + break; + case R.id.tv_tv_home: + sentControlOrder("boot"); + break; + case R.id.tv_tv_menu: + sentControlOrder("menu"); + break; + case R.id.tv_tv_back: + sentControlOrder("back"); + break; + case R.id.tv_tv_voladd: + sentControlOrder("volplus"); + break; + case R.id.tv_tv_volreduce: + sentControlOrder("volminus"); + break; + case R.id.tv_tv_one: + sentControlOrder("1"); + break; + case R.id.tv_tv_two: + sentControlOrder("2"); + break; + case R.id.tv_tv_three: + sentControlOrder("3"); + break; + case R.id.tv_tv_four: + sentControlOrder("4"); + break; + case R.id.tv_tv_five: + sentControlOrder("5"); + break; + case R.id.tv_tv_six: + sentControlOrder("6"); + break; + case R.id.tv_tv_seven: + sentControlOrder("7"); + break; + case R.id.tv_tv_eight: + sentControlOrder("8"); + break; + case R.id.tv_tv_nine: + sentControlOrder("9"); + break; + case R.id.tv_tv_zero: + sentControlOrder("0"); + break; + case R.id.tv_tv_signal: + sentControlOrder("signal"); + break; + case R.id.tv_rerecord: + channelLearnEntities.clear(); + topDeclareTv.setVisibility(View.VISIBLE); + mHorizontalAdapter.notifyDataSetChanged(); + break; + case R.id.tv_save: + if (channelLearnEntities.size() != 0) { + tvchannelAdd(); + } else { + ToastUtil.show(this, "选择您对应的数字按键设置快捷频道"); + } + break; + } + } + + private void sentControlOrder(String order) { + subsetControl(order); + topDeclareTv.setVisibility(View.GONE); + if (channelLearnEntities.size() == 0) { + startTime = System.currentTimeMillis(); + } + if (channelLearnEntities.size() > 7) { + return; + } + long endTime = System.currentTimeMillis(); + ChannelLearnEntity learnEntity = new ChannelLearnEntity(); + learnEntity.setDeviceId(deviceId); + if (startTime == endTime) { + learnEntity.setInterval(0); + } else { + int l = (int) (endTime - startTime); + learnEntity.setInterval(l); + startTime = endTime; + } + learnEntity.setKey(order); + learnEntity.setOrder(channelLearnEntities.size()); + learnEntity.setZiId(ziId); + channelLearnEntities.add(learnEntity); + mHorizontalAdapter.notifyDataSetChanged(); + } + + private void subsetControl(String key) { + ShakeUtil.setShake(this); + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", TVONE_TAG); + map.put("ziId", ziId); + map.put("oper", key); + util.requestPostByAsyBody(NetWorkUrl.SUBSET_CONTROL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("subsetControl", "ShareDeviceActivity onSuccess()" + respone); + SimpleEntty obj = JSON.parseObject(respone, SimpleEntty.class); + if (1 == obj.getFlag()) { + + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void tvchannelAdd() { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("ziId", ziId); + map.put("tvChannelId", getIntent().getExtras().get("tvChannelId").toString()); + util.requestPostByAsyBody(NetWorkUrl.TVCHANNEL_ADD, map, JSONObject.toJSONString(channelLearnEntities), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("tvchannelAdd", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case SELECT_CONNDEVICE_PUSHKEY_SUCCESS: + Key5Entity entity1 = (Key5Entity) msg.obj; + setIsLearned(entity1); + showControl(); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + EventBus.getDefault().post( + new EventBusEntity("关闭")); + finish(); + break; + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + + } + } + + private void setIsLearned(Key5Entity entity1) { + List entity1Obj = entity1.getData(); + if (entity1Obj != null && entity1Obj.size() != 0) { + for (int i = 0; i < entity1Obj.size(); i++) { + switch (entity1Obj.get(i).getName()) { + case "powertv": + mOpenCloseTag = true; + break; + case "up": + mUpTag = true; + break; + case "down": + mDownTag = true; + break; + case "left": + mLeftTag = true; + break; + case "right": + mRightTag = true; + break; + case "ok": + mOkTag = true; + break; + case "boot": + mHomeTag = true; + break; + case "back": + mBackTag = true; + break; + case "menu": + mMenuTag = true; + break; + case "volplus": + mVolAddTag = true; + break; + case "volminus": + mVolReduceTag = true; + break; + case "power": + isTv = false; + mVoiceTag = true; + break; + case "mute": + mNoVoiceTag = true; + break; + case "1": + numerOneTag = true; + break; + case "2": + numerTwoTag = true; + break; + case "3": + numerThreeTag = true; + break; + case "4": + numerFourTag = true; + break; + case "5": + numerFiveTag = true; + break; + case "6": + numerSixTag = true; + break; + case "7": + numerSevenTag = true; + break; + case "8": + numerEightTag = true; + break; + case "9": + numerNineTag = true; + break; + case "0": + numerZeroTag = true; + break; + case "signal": + mSignalTag = true; + break; + } + } + } + } + + + private void showControl() { + controlShowAlph(); + } + + private void controlShowAlph() { + if (!mOpenCloseTag) { + mOpenClose.setAlpha(0.5f); + mOpenClose.setEnabled(false); + } else { + mOpenClose.setAlpha(1.0f); + mOpenClose.setEnabled(true); + } + if (!mVoiceTag) { + mVoice.setAlpha(0.5f); + mVoicePic.setAlpha(0.5f); + } else { + mVoice.setAlpha(1.0f); + mVoicePic.setAlpha(1.0f); + } + if (!mNoVoiceTag) { + mNoVoice.setAlpha(0.5f); + mNoVoicePic.setAlpha(0.5f); + mNoVoice.setEnabled(false); + } else { + mNoVoice.setAlpha(1.0f); + mNoVoicePic.setAlpha(1.0f); + mNoVoice.setEnabled(true); + } + if (!mOkTag) { + mOk.setAlpha(0.5f); + mOk.setEnabled(false); + mOk1.setAlpha(0.5f); + mOk1.setEnabled(false); + } else { + mOk.setAlpha(1.0f); + mOk.setEnabled(true); + mOk1.setAlpha(1.0f); + mOk1.setEnabled(true); + } + if (!mHomeTag) { + mHome.setAlpha(0.5f); + mHomePic.setAlpha(0.5f); + mHome.setEnabled(false); + } else { + mHome.setAlpha(1.0f); + mHomePic.setAlpha(1.0f); + mHome.setEnabled(true); + } + if (!mBackTag) { + mBack.setAlpha(0.5f); + mBackPic.setAlpha(0.5f); + mBack.setEnabled(false); + } else { + mBack.setAlpha(1.0f); + mBackPic.setAlpha(1.0f); + mBack.setEnabled(true); + } + if (!mMenuTag) { + mMenu.setAlpha(0.5f); + mMenuPic.setAlpha(0.5f); + mMenu.setEnabled(false); + } else { + mMenu.setAlpha(1.0f); + mMenuPic.setAlpha(1.0f); + mMenu.setEnabled(true); + } + if (!mVolAddTag) { + mVolAdd.setAlpha(0.5f); + mVolAddPic.setAlpha(0.5f); + mVolAdd.setEnabled(false); + } else { + mVolAdd.setAlpha(1.0f); + mVolAddPic.setAlpha(1.0f); + mVolAdd.setEnabled(true); + } + if (!mVolReduceTag) { + mVolReduce.setAlpha(0.5f); + mVolRedPic.setAlpha(0.5f); + mVolReduce.setEnabled(false); + } else { + mVolReduce.setAlpha(1.0f); + mVolRedPic.setAlpha(1.0f); + mVolReduce.setEnabled(true); + } + + if (!numerOneTag) { + numerOne.setAlpha(0.5f); + numerOne.setEnabled(false); + } else { + numerOne.setAlpha(1.0f); + numerOne.setEnabled(true); + } + if (!numerTwoTag) { + numerTwo.setAlpha(0.5f); + numerTwo.setEnabled(false); + } else { + numerTwo.setAlpha(1.0f); + numerTwo.setEnabled(true); + } + if (!numerThreeTag) { + numerThree.setAlpha(0.5f); + numerThree.setEnabled(false); + } else { + numerThree.setAlpha(1.0f); + numerThree.setEnabled(true); + } + if (!numerFourTag) { + numerFour.setAlpha(0.5f); + numerFour.setEnabled(false); + } else { + numerFour.setAlpha(1.0f); + numerFour.setEnabled(true); + } + if (!numerFiveTag) { + numerFive.setAlpha(0.5f); + numerFive.setEnabled(false); + } else { + numerFive.setAlpha(1.0f); + numerFive.setEnabled(true); + } + if (!numerSixTag) { + numerSix.setAlpha(0.5f); + numerSix.setEnabled(false); + } else { + numerSix.setAlpha(1.0f); + numerSix.setEnabled(true); + } + if (!numerSevenTag) { + numerSeven.setAlpha(0.5f); + numerSeven.setEnabled(false); + } else { + numerSeven.setAlpha(1.0f); + numerSeven.setEnabled(true); + } + if (!numerEightTag) { + numerEight.setAlpha(0.5f); + numerEight.setEnabled(false); + } else { + numerEight.setAlpha(1.0f); + numerEight.setEnabled(true); + } + if (!numerNineTag) { + numerNine.setAlpha(0.5f); + numerNine.setEnabled(false); + } else { + numerNine.setAlpha(1.0f); + numerNine.setEnabled(true); + } + if (!numerZeroTag) { + numerZero.setAlpha(0.5f); + numerZero.setEnabled(false); + } else { + numerZero.setAlpha(1.0f); + numerZero.setEnabled(true); + } + if (!mSignalTag) { + mSignal.setAlpha(0.5f); + mSignal.setEnabled(false); + } else { + mSignal.setAlpha(1.0f); + mSignal.setEnabled(true); + } + } + + private void subsetGetControlKeys() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", deviceId); + map.put("deviceModel", deviceModel); + map.put("deviceType", TVONE_TAG); + map.put("ziId", ziId); + netWorkUtil.requestGetByAsy(SUBSET_GETCONTROLKEYS, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("subsetGetControlKeys", "onSuccess()" + respone); + Key5Entity obj = JSON.parseObject(respone, Key5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(SELECT_CONNDEVICE_PUSHKEY_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_BRAND_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/tv/ChannelListActivity.java b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelListActivity.java new file mode 100644 index 0000000..c7da877 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/tv/ChannelListActivity.java @@ -0,0 +1,279 @@ +package com.yonsz.z1.version5.tv; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.Log; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ListView; +import android.widget.TextView; + +import com.alibaba.fastjson.JSON; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.SystemChannelEntity; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.devicelist.CharacterParser; +import com.yonsz.z1.version4.devicelist.ClearEditText; +import com.yonsz.z1.version4.devicelist.PinyinComparator; +import com.yonsz.z1.version4.devicelist.SideBar; +import com.yonsz.z1.version4.devicelist.SortAdapter; +import com.yonsz.z1.version4.devicelist.SortModel; +import com.yonsz.z1.view.TitleView; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_BRAND_FAIL; +import static com.yonsz.z1.net.Constans.QUERY_DEVICE_BRAND_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.TVCHANNEL_SYSLIST; + +/** + * Created by Administrator on 2018/5/30. + */ + +public class ChannelListActivity extends BaseActivity { + private List stringList; + private TitleView mTitleView; + private String deviceType; + private ListView sortListView; + private SideBar sideBar; + private TextView dialog; + private SortAdapter adapter; + private ClearEditText mClearEditText; + private String rid; + /** + * 汉字转换成拼音的类 + */ + private CharacterParser characterParser; + private List SourceDateList; + + /** + * 根据拼音来排列ListView里面的数据类 + */ + private PinyinComparator pinyinComparator; + private String ziId; + private String id; + private List dataList; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_brand_list4); + deviceType = getIntent().getExtras().get("deviceType").toString(); + initView(); +// queryDeviceBrand(deviceType); + getTvChannelSysList(); + } + + private void getTvChannelSysList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + netWorkUtil.requestGetByAsy(TVCHANNEL_SYSLIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getTvChannelSysList", "onSuccess()" + respone); + SystemChannelEntity obj = JSON.parseObject(respone, SystemChannelEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_BRAND_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_BRAND_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(QUERY_DEVICE_BRAND_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + public void onEventMainThread(EventBusEntity event) { + String msg = event.getMsg(); + Log.e("nettyUtil", msg); + Message message = new Message(); + message.what = CLOSE_THIS_ACTIVITY; + mHandler.sendMessage(message); + } + + private void initView() { + dataList = (List) getIntent().getSerializableExtra("dataList"); + ziId = getIntent().getExtras().get("ziId").toString(); + stringList = new ArrayList<>(); + mTitleView = (TitleView) findViewById(R.id.title_brand_list); + mTitleView.setHead("选择机顶盒频道"); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + + } + + @Override + public void onFunctionText() { + + } + }); + + //实例化汉字转拼音类 + characterParser = CharacterParser.getInstance(); + pinyinComparator = new PinyinComparator(); + sideBar = (SideBar) findViewById(R.id.sidrbar); + dialog = (TextView) findViewById(R.id.dialog); + sideBar.setTextView(dialog); + //设置右侧触摸监听 + sideBar.setOnTouchingLetterChangedListener(new SideBar.OnTouchingLetterChangedListener() { + + @Override + public void onTouchingLetterChanged(String s) { + //该字母首次出现的位置 + int position = adapter.getPositionForSection(s.charAt(0)); + if (position != -1) { + sortListView.setSelection(position); + } + } + }); + sortListView = (ListView) findViewById(R.id.country_lvcountry); + sortListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + //这里要利用adapter.getItem(position)来获取当前position所对应的对象 +// Toast.makeText(getApplication(), ((SortModel) adapter.getItem(position)).getName(), Toast.LENGTH_SHORT).show(); + for (int i = 0; i < dataList.size(); i++) { + String id1 = String.valueOf(dataList.get(i).getTvChannelName()); + if (id1.equals(((SortModel) adapter.getItem(position)).getName())) { + ToastUtil.show(ChannelListActivity.this, "该频道已设置完成,请设置其它频道!"); + return; + } + } + Intent intent = new Intent(ChannelListActivity.this, ChannelLearnActivity.class); + intent.putExtra("tvChannelId", ((SortModel) adapter.getItem(position)).getId()); + intent.putExtra("ziId", ziId); + intent.putExtra("deviceId", getIntent().getExtras().get("id").toString()); + intent.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + startActivity(intent); + } + }); + + mClearEditText = (ClearEditText) findViewById(R.id.et_search); + + //根据输入框输入值的改变来过滤搜索 + mClearEditText.addTextChangedListener(new TextWatcher() { + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + //当输入框里面的值为空,更新为原来的列表,否则为过滤数据列表 + filterData(s.toString()); + } + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, + int after) { + + } + + @Override + public void afterTextChanged(Editable s) { + } + }); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case CLOSE_THIS_ACTIVITY: + finish(); + break; + case QUERY_DEVICE_BRAND_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case QUERY_DEVICE_BRAND_SUCCESS: + SystemChannelEntity entity2 = (SystemChannelEntity) msg.obj; + stringList = entity2.getData(); + SourceDateList = filledData(stringList); + // 根据a-z进行排序源数据 + Collections.sort(SourceDateList, pinyinComparator); + adapter = new SortAdapter(this, SourceDateList); + sortListView.setAdapter(adapter); + break; + } + } + + /** + * 为ListView填充数据 + * + * @param date + * @return + */ + private List filledData(List date) { + List mSortList = new ArrayList(); + if (date.size() != 0) { + for (int i = 0; i < date.size(); i++) { + SortModel sortModel = new SortModel(); + sortModel.setName(date.get(i).getName()); + sortModel.setId(date.get(i).getId()); + //汉字转换成拼音 + String pinyin = characterParser.getSelling(date.get(i).getName()); + String sortString = pinyin.substring(0, 1).toUpperCase(); + // 正则表达式,判断首字母是否是英文字母 + if (sortString.matches("[A-Z]")) { + sortModel.setSortLetters(sortString.toUpperCase()); + } else { + sortModel.setSortLetters("#"); + } + mSortList.add(sortModel); + } + } else { + + } + return mSortList; + } + + /** + * 根据输入框中的值来过滤数据并更新ListView + * + * @param filterStr + */ + private void filterData(String filterStr) { + List filterDateList = new ArrayList(); + + if (TextUtils.isEmpty(filterStr)) { + filterDateList = SourceDateList; + } else { + filterDateList.clear(); + for (SortModel sortModel : SourceDateList) { + String name = sortModel.getName(); + if (name.indexOf(filterStr.toString()) != -1 || characterParser.getSelling(name).startsWith(filterStr.toString())) { + filterDateList.add(sortModel); + } + } + } + + // 根据a-z进行排序 + Collections.sort(filterDateList, pinyinComparator); + adapter.updateListView(filterDateList); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/tv/FrequencyChannelActivity.java b/app/src/main/java/com/yonsz/z1/version5/tv/FrequencyChannelActivity.java new file mode 100644 index 0000000..b02f117 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/tv/FrequencyChannelActivity.java @@ -0,0 +1,398 @@ +package com.yonsz.z1.version5.tv; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.helper.ItemTouchHelper; +import android.text.TextUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.yonsz.z1.R; +import com.yonsz.z1.activity.BaseActivity; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.database.entity.EventBusEntity; +import com.yonsz.z1.database.entity.entity5.BaseVersion5Entity; +import com.yonsz.z1.device.VoiceDeclareActivity; +import com.yonsz.z1.listener.OnRecyclerListener; +import com.yonsz.z1.listener.OnTitleItemClickListener; +import com.yonsz.z1.mine.aboutversion.customview.ConfirmDialog; +import com.yonsz.z1.mine.aboutversion.customview.DeviceBottomDialog; +import com.yonsz.z1.mine.aboutversion.feature.Callback; +import com.yonsz.z1.net.NetWorkUrl; +import com.yonsz.z1.net.NetWorkUtil; +import com.yonsz.z1.utils.ShakeUtil; +import com.yonsz.z1.utils.ToastUtil; +import com.yonsz.z1.version4.devicelist.DeviceList4Activity; +import com.yonsz.z1.view.TitleView; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_FAIL; +import static com.yonsz.z1.net.Constans.HOUSE_TYPE_LIST_SUCCESS; +import static com.yonsz.z1.net.Constans.MUSIC_TAG; +import static com.yonsz.z1.net.Constans.SHOW_ADD_HOME; +import static com.yonsz.z1.net.Constans.TV_TAG; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_FAIL; +import static com.yonsz.z1.net.Constans.UPDATE_BLINDENTITY_NAME_SUCCESS; +import static com.yonsz.z1.net.NetWorkUrl.TVCHANNEL_ACTION_EXEC; +import static com.yonsz.z1.net.NetWorkUrl.TVCHANNEL_LIST; + +public class FrequencyChannelActivity extends BaseActivity { + private TitleView mTitleView; + private RecyclerView frequencyChannelRv; + private TvChannelAdapter mAdapter; + private List dataList; + private ItemTouchHelper itemTouchHelper; + private boolean isEdit = false; + List channelList = new ArrayList<>(); + + public void onEventMainThread(EventBusEntity event) { + getTvChannelList(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_frequency_channel); + initView(); + } + + private void initView() { + frequencyChannelRv = (RecyclerView) findViewById(R.id.rv_frequency_channel); + mTitleView = (TitleView) findViewById(R.id.title_frequency_channel); + mTitleView.setHead("快捷频道"); + mTitleView.clearBackGroud(); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + mTitleView.setTitleListener(new OnTitleItemClickListener() { + @Override + public void onBack() { + finish(); + } + + @Override + public void onFunction() { + if (mTitleView.getHeadFuntionTxt().equals("完成") && !mTitleView.getHeadFuntionImg()) { + mAdapter.setIsEdit(dataList, false); + mTitleView.setHeadFuntionTxtGone(); + mTitleView.setHeadFuntion(R.drawable.icon_device_more); + isEdit = false; + tvchannelSort(); + } else { + DeviceBottomDialog dialog2 = new DeviceBottomDialog(FrequencyChannelActivity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + //取消 + break; + case 1: + //编辑电视频道 + mAdapter.setIsEdit(dataList, true); + mTitleView.setHeadFuntionGone(); + mTitleView.setHeadFuntionTxt("完成"); + isEdit = true; + break; + case 2: + //重新命名 + break; + case 3: + Intent intent = new Intent(FrequencyChannelActivity.this, ChannelBindActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("nameTag", ""); + intent.putExtra("id", getIntent().getExtras().get("id").toString()); + intent.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + intent.putExtra("deviceType", ""); + Bundle bundle = new Bundle(); + bundle.putSerializable("dataList", (Serializable) dataList); + intent.putExtras(bundle); + startActivity(intent); + break; + case 4: + //遥控学习 + break; + } + } + }); + dialog2.setContent(); + dialog2.setLearn(); + dialog2.setModifyName(); + dialog2.setOtherNameGone(); + dialog2.setBottom("频道编辑"); + dialog2.setTop("关联语音管家"); + dialog2.setCancelable(false); + Window dialogWindow = dialog2.getWindow(); + dialogWindow.setGravity(Gravity.BOTTOM); + //获得窗体的属性 + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + lp.width = WindowManager.LayoutParams.MATCH_PARENT; + // 将属性设置给窗体 + dialogWindow.setAttributes(lp); + dialog2.show(); + } + } + + @Override + public void onFunctionText() { + + } + }); + + getTvChannelList(); + } + + @Override + public void callBackUiThread(Message msg) { + switch (msg.what) { + case HOUSE_TYPE_LIST_SUCCESS: + HouseEntity houseEntity = (HouseEntity) msg.obj; + dataList = houseEntity.getData(); + GridLayoutManager manager = new GridLayoutManager(this, 3); + frequencyChannelRv.setLayoutManager(manager); + mAdapter = new TvChannelAdapter(this, dataList, false); + frequencyChannelRv.setAdapter(mAdapter); + + itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.Callback() { + @Override + public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { + Log.i("getMovementFlags", "getMovementFlags: "); + int dragFlags; + int swipeFlags; + if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { + dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | + ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; + swipeFlags = 0; + } else { + dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN; + swipeFlags = 0; + } + return makeMovementFlags(dragFlags, swipeFlags); + } + + @Override + public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { + int fromPosition = viewHolder.getAdapterPosition(); + int toPosition = target.getAdapterPosition(); + Log.i("onMove", "onMove: " + fromPosition + "===" + toPosition + "===" + dataList.size()); + if (fromPosition == dataList.size() || toPosition == dataList.size()) { + return false; + } + if (fromPosition < toPosition) { + for (int i = fromPosition; i < toPosition; i++) { + Collections.swap(dataList, i, i + 1); + } + } else { + for (int i = fromPosition; i > toPosition; i--) { + Collections.swap(dataList, i, i - 1); + } + } + mAdapter.notifyItemMoved(fromPosition, toPosition); + return true; + } + + @Override + public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { + Log.i("onSwiped", "onSwiped: "); + } + + @Override + public boolean isLongPressDragEnabled() { + return false; + } + }); + itemTouchHelper.attachToRecyclerView(frequencyChannelRv); + + mAdapter.setmOnItemClickListener(new OnRecyclerListener() { + @Override + public void onClick(View view, final int position) { + if (position == dataList.size()) { + Intent intent = new Intent(FrequencyChannelActivity.this, ChannelListActivity.class); + intent.putExtra("ziId", getIntent().getExtras().get("ziId").toString()); + intent.putExtra("nameTag", ""); + intent.putExtra("id", getIntent().getExtras().get("id").toString()); + intent.putExtra("deviceModel", getIntent().getExtras().get("deviceModel").toString()); + intent.putExtra("deviceType", ""); + Bundle bundle = new Bundle(); + bundle.putSerializable("dataList", (Serializable) dataList); + intent.putExtras(bundle); + startActivity(intent); + } else { + if (isEdit) { + ConfirmDialog dialog = new ConfirmDialog(FrequencyChannelActivity.this, new Callback() { + @Override + public void callback(int position1) { + switch (position1) { + case 0: + break; + case 1: + tvchannelDel(position); + break; + } + } + }); + dialog.setContent("是否确定删除电视频道"); + dialog.setCancleBtn(R.string.cancel); + dialog.setSureBtn(R.string.sure); + dialog.setCancelable(false); + dialog.show(); + } else { + channelActionExec(dataList.get(position).getId()); + } + } + } + + @Override + public void onLongClick(RecyclerView.ViewHolder view, int position) { + if (position != dataList.size()) { + itemTouchHelper.startDrag(view); + } + } + }); + break; + case HOUSE_TYPE_LIST_FAIL: + case UPDATE_BLINDENTITY_NAME_FAIL: + ToastUtil.show(this, (String) msg.obj); + break; + case UPDATE_BLINDENTITY_NAME_SUCCESS: + int obj = (int) msg.obj; + dataList.remove(obj); + mAdapter.notifyDataSetChanged(); + break; + } + } + + private void tvchannelSort() { + if (dataList.size() == 0) { + return; + } + channelList.clear(); + for (int i = 0; i < dataList.size(); i++) { + channelList.add(String.valueOf(dataList.get(i).getId())); + } + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + util.requestPostByAsyBody(NetWorkUrl.TVCHANNEL_SORT, map, JSONObject.toJSONString(channelList), new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("tvchannelSort", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + /*Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg);*/ + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void tvchannelDel(final int position) { + NetWorkUtil util = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userChannelId", dataList.get(position).getId()); + util.requestPostByAsyBody(NetWorkUrl.TVCHANNEL_DEL, map, "{}", new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + Log.i("tvchannelDel", "ShareDeviceActivity onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_SUCCESS); + msg.obj = position; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(UPDATE_BLINDENTITY_NAME_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void getTvChannelList() { + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("deviceId", getIntent().getExtras().get("deviceId").toString()); + netWorkUtil.requestGetByAsy(TVCHANNEL_LIST, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("getTvChannelList", "onSuccess()" + respone); + HouseEntity obj = JSON.parseObject(respone, HouseEntity.class); + if (1 == obj.getFlag()) { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg); + } else { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } + + private void channelActionExec(String userChannelId) { + ShakeUtil.setShake(this); + NetWorkUtil netWorkUtil = NetWorkUtil.instans(); + HashMap map = new HashMap<>(); + map.put("userChannelId", String.valueOf(userChannelId)); + netWorkUtil.requestGetByAsy(TVCHANNEL_ACTION_EXEC, map, new NetWorkUtil.ReqCallBack() { + @Override + public void onSuccess(String respone) { + ToastUtil.i("channelActionExec", "onSuccess()" + respone); + BaseVersion5Entity obj = JSON.parseObject(respone, BaseVersion5Entity.class); + if (1 == obj.getFlag()) { + /*Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_SUCCESS); + msg.obj = obj; + mHandler.sendMessage(msg);*/ + } else { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_FAIL); + msg.obj = obj.getMsg(); + mHandler.sendMessage(msg); + } + } + + @Override + public void onFail(String message) { + Message msg = mHandler.obtainMessage(HOUSE_TYPE_LIST_FAIL); + msg.obj = message; + mHandler.sendMessage(msg); + } + }); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/tv/TvChannelAdapter.java b/app/src/main/java/com/yonsz/z1/version5/tv/TvChannelAdapter.java new file mode 100644 index 0000000..c92f741 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/tv/TvChannelAdapter.java @@ -0,0 +1,167 @@ +package com.yonsz.z1.version5.tv; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; +import com.yonsz.z1.createfamily.HouseEntity; +import com.yonsz.z1.listener.OnRecyclerListener; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + + +public class TvChannelAdapter extends RecyclerView.Adapter { + private List mDataBeans; + private Context mContext; + private boolean isEdit; + private OnRecyclerListener mOnItemClickListener; + private List photos = null; + + + public TvChannelAdapter(Context context, List mDataBeans, boolean isEdit) { + this.mDataBeans = mDataBeans; + this.mContext = context; + this.isEdit = isEdit; + } + + public void setIsEdit(List mDataBeans, boolean isTdit) { + this.isEdit = isTdit; + this.mDataBeans = mDataBeans; + this.notifyDataSetChanged(); + } + + @Override + public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tv_channel, parent, false); + return new MessageViewHolder(view); + } + + @Override + public void onBindViewHolder(MessageViewHolder holder, int position) { + holder.setViews(holder, position); + } + + @Override + public int getItemCount() { + return mDataBeans == null ? 0 : mDataBeans.size() + 1; + } + + public void setmOnItemClickListener(OnRecyclerListener mOnItemClickListener) { + this.mOnItemClickListener = mOnItemClickListener; + } + + class MessageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.iv_channel_add) + ImageView mIvChannelAdd; + @BindView(R.id.tv_channel_control) + TextView mTvChannelControl; + @BindView(R.id.tv_delete) + TextView mTvDelete; + @BindView(R.id.tv_channel_voice) + TextView mTvChannelVoice; + + public MessageViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + + public void setViews(final RecyclerView.ViewHolder holder, final int position) { + if (position < mDataBeans.size()) { + mIvChannelAdd.setVisibility(View.GONE); + if (!TextUtils.isEmpty(mDataBeans.get(position).getTvChannelName())) { + mTvChannelControl.setText(mDataBeans.get(position).getTvChannelName()); + } else { + mTvChannelControl.setText(""); + } + if (isEdit) { + mTvDelete.setVisibility(View.VISIBLE); + mTvChannelVoice.setVisibility(View.GONE); + } else { + mTvDelete.setVisibility(View.GONE); + mTvChannelVoice.setVisibility(View.VISIBLE); + if (!TextUtils.isEmpty(mDataBeans.get(position).getBindHardwareChannel())) { + String channelNum = ""; + switch (mDataBeans.get(position).getBindHardwareChannel()) { + case "1": + channelNum = "一"; + break; + case "2": + channelNum = "二"; + break; + case "3": + channelNum = "三"; + break; + case "4": + channelNum = "四"; + break; + case "5": + channelNum = "五"; + break; + case "6": + channelNum = "六"; + break; + case "7": + channelNum = "七"; + break; + case "8": + channelNum = "八"; + break; + case "9": + channelNum = "九"; + break; + case "10": + channelNum = "十"; + break; + } + mTvChannelVoice.setText("频道" + channelNum); + } else { + mTvChannelVoice.setVisibility(View.GONE); + } + } + } else { + mIvChannelAdd.setVisibility(View.VISIBLE); + mTvDelete.setVisibility(View.GONE); + mTvChannelControl.setText(""); + mTvChannelVoice.setVisibility(View.GONE); + } + + mTvDelete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null && isEdit && position < mDataBeans.size()) { + mOnItemClickListener.onClick(v, position); + } + } + }); + mTvChannelControl.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mOnItemClickListener != null) { + mOnItemClickListener.onClick(v, position); + } + } + }); + mTvChannelControl.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mOnItemClickListener != null && isEdit && position < mDataBeans.size()) { + mOnItemClickListener.onLongClick(holder, position); + } + return false; + } + }); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/AsImageTextView.java b/app/src/main/java/com/yonsz/z1/version5/weidget/AsImageTextView.java new file mode 100644 index 0000000..ab1dff8 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/AsImageTextView.java @@ -0,0 +1,99 @@ +package com.yonsz.z1.version5.weidget; + +import android.content.Context; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; +import android.view.View; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.yonsz.z1.R; + +/** + * Created by ruedy on 2016/11/30. + */ + +public class AsImageTextView extends RelativeLayout implements View.OnClickListener { + private ImageView ivImagetext; + private TextView tvImagetext; + + public ImageView getIvImagetext() { + return ivImagetext; + } + + public void setIvImagetext(ImageView ivImagetext) { + this.ivImagetext = ivImagetext; + } + + public TextView getTvImagetext() { + return tvImagetext; + } + + public void setTvImagetext(TextView tvImagetext) { + this.tvImagetext = tvImagetext; + } + + public AsImageTextView(Context context) { + this(context, null); + } + + public AsImageTextView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public AsImageTextView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + View.inflate(context, R.layout.asimagetextview, this); + ivImagetext = ((ImageView) findViewById(R.id.iv_imagetext)); + tvImagetext = ((TextView) findViewById(R.id.tv_imagetext)); + initattrs(); + //ivImagetext.setOnClickListener(this); + // tvImagetext.setOnClickListener(this); + } + + private void initattrs() { + +//如果需要静态设置,此处可拓展 + } + + public void setIvImagetext(int imageid) { + Drawable drawable = getResources().getDrawable(imageid); + + if (drawable != null) { + ivImagetext.setImageDrawable(drawable); + } + } + + public void setTvImagetext(String typename) { + + if (typename != null) { + tvImagetext.setText(typename + ""); + + } + + } + + @Override + public void onClick(View view) { + if (imagetextclick != null) { + imagetextclick.setImagetextclick(); + + } + } + + public interface Imagetextclick { + public void setImagetextclick(); + + } + + public Imagetextclick imagetextclick; + + public Imagetextclick getImagetextclic() { + return imagetextclick; + } + + public void setImagetextclick(Imagetextclick imagetextclick) { + this.imagetextclick = imagetextclick; + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/BaseFragmentPagerAdapter.java b/app/src/main/java/com/yonsz/z1/version5/weidget/BaseFragmentPagerAdapter.java new file mode 100644 index 0000000..a820c52 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/BaseFragmentPagerAdapter.java @@ -0,0 +1,211 @@ +package com.yonsz.z1.version5.weidget; + +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; +import android.support.v4.app.FragmentTransaction; +import android.util.SparseArray; + +import com.yonsz.z1.fragment.BaseFragment; + +import java.util.List; + +/** + * Created by Administrator on 2019/4/12. + */ + +public class BaseFragmentPagerAdapter extends FragmentPagerAdapter { + private List mFragmentList; + private FragmentManager mFragmentManager; + /** + * 下面两个值用来保存Fragment的位置信息,用以判断该位置是否需要更新 + */ + private SparseArray mFragmentPositionMap; + private SparseArray mFragmentPositionMapAfterUpdate; + + public BaseFragmentPagerAdapter(FragmentManager fm, List fragments) { + super(fm); + mFragmentList = fragments; + mFragmentManager = fm; + mFragmentList = fragments; + mFragmentPositionMap = new SparseArray<>(); + mFragmentPositionMapAfterUpdate = new SparseArray<>(); + setFragmentPositionMap(); + setFragmentPositionMapForUpdate(); + } + + /** + * 保存更新之前的位置信息,用的键值对结构来保存 + */ + private void setFragmentPositionMap() { + mFragmentPositionMap.clear(); + for (int i = 0; i < mFragmentList.size(); i++) { + mFragmentPositionMap.put(Long.valueOf(getItemId(i)).intValue(), String.valueOf(i)); + } + } + + /** + * 保存更新之后的位置信息,用的键值对结构来保存 + */ + private void setFragmentPositionMapForUpdate() { + mFragmentPositionMapAfterUpdate.clear(); + for (int i = 0; i < mFragmentList.size(); i++) { + mFragmentPositionMapAfterUpdate.put(Long.valueOf(getItemId(i)).intValue(), String.valueOf(i)); + } + } + + /** + * 在此方法中找到需要更新的位置返回POSITION_NONE,否则返回POSITION_UNCHANGED即可 + */ + @Override + public int getItemPosition(Object object) { + int hashCode = object.hashCode(); + //查找object在更新后的列表中的位置 + String position = mFragmentPositionMapAfterUpdate.get(hashCode); + //更新后的列表中不存在该object的位置了 + if (position == null) { + return POSITION_NONE; + } else { + //如果更新后的列表中存在该object的位置, 查找该object之前的位置并判断位置是否发生了变化 + int size = mFragmentPositionMap.size(); + for (int i = 0; i < size; i++) { + int key = mFragmentPositionMap.keyAt(i); + if (key == hashCode) { + String index = mFragmentPositionMap.get(key); + if (position.equals(index)) { + //位置没变依然返回POSITION_UNCHANGED + return POSITION_UNCHANGED; + } else { + //位置变了 + return POSITION_NONE; + } + } + } + } + return POSITION_UNCHANGED; + } + + /** + * 将指定的Fragment替换/更新为新的Fragment + * + * @param oldFragment 旧Fragment + * @param newFragment 新Fragment + */ + public void replaceFragment(BaseFragment oldFragment, BaseFragment newFragment) { + int position = mFragmentList.indexOf(oldFragment); + if (position == -1) { + return; + } + //从Transaction移除旧的Fragment + removeFragmentInternal(oldFragment); + //替换List中对应的Fragment + mFragmentList.set(position, newFragment); + //刷新Adapter + notifyItemChanged(); + } + + /** + * 将指定位置的Fragment替换/更新为新的Fragment,同{@link #replaceFragment(BaseFragment oldFragment, BaseFragment newFragment)} + * + * @param position 旧Fragment的位置 + * @param newFragment 新Fragment + */ + public void replaceFragment(int position, BaseFragment newFragment) { + BaseFragment oldFragment = mFragmentList.get(position); + removeFragmentInternal(oldFragment); + mFragmentList.set(position, newFragment); + notifyItemChanged(); + } + + /** + * 移除指定的Fragment + * + * @param fragment 目标Fragment + */ + public void removeFragment(BaseFragment fragment) { + //先从List中移除 + mFragmentList.remove(fragment); + //然后从Transaction移除 + removeFragmentInternal(fragment); + //最后刷新Adapter + notifyItemChanged(); + } + + /** + * 移除指定位置的Fragment,同 {@link #removeFragment(BaseFragment fragment)} + * + * @param position + */ + public void removeFragment(int position) { + BaseFragment fragment = mFragmentList.get(position); + //然后从List中移除 + mFragmentList.remove(fragment); + //先从Transaction移除 + removeFragmentInternal(fragment); + //最后刷新Adapter + notifyItemChanged(); + } + + /** + * 添加Fragment + * + * @param fragment 目标Fragment + */ + public void addFragment(BaseFragment fragment) { + mFragmentList.add(fragment); + notifyItemChanged(); + } + + /** + * 在指定位置插入一个Fragment + * + * @param position 插入位置 + * @param fragment 目标Fragment + */ + public void insertFragment(int position, BaseFragment fragment) { + mFragmentList.add(position, fragment); + notifyItemChanged(); + } + + private void notifyItemChanged() { + //刷新之前重新收集位置信息 + setFragmentPositionMapForUpdate(); + notifyDataSetChanged(); + setFragmentPositionMap(); + } + + /** + * 从Transaction移除Fragment + * + * @param fragment 目标Fragment + */ + private void removeFragmentInternal(BaseFragment fragment) { + FragmentTransaction transaction = mFragmentManager.beginTransaction(); + transaction.remove(fragment); + transaction.commitNow(); + } + + /** + * 此方法不用position做返回值即可破解fragment tag异常的错误 + */ + @Override + public long getItemId(int position) { + // 获取当前数据的hashCode,其实这里不用hashCode用自定义的可以关联当前Item对象的唯一值也可以,只要不是直接返回position + return mFragmentList.get(position).hashCode(); + } + + @Override + public Fragment getItem(int position) { + return mFragmentList.get(position); + } + + @Override + public int getCount() { + return mFragmentList.size(); + } + + public List getFragments() { + return mFragmentList; + } + +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/ImageUtils.java b/app/src/main/java/com/yonsz/z1/version5/weidget/ImageUtils.java new file mode 100644 index 0000000..19fb063 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/ImageUtils.java @@ -0,0 +1,54 @@ +package com.yonsz.z1.version5.weidget; + +import android.app.Activity; +import android.content.Context; +import android.os.Build; +import android.widget.ImageView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.yonsz.z1.R; + +/** + * Author:Hikin + * Data:2016/12/12 + */ + +public class ImageUtils { +// public static void load(Context context, String url, ImageView iv) { //使用Glide加载圆形ImageView(如头像)时,不要使用占位图 +// if (!SharedPreferenceUtil.getNoImageState()) { +// Glide.with(context).load(url).crossFade().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(iv); +// } +// } + + /*public static void load(Activity activity, String url, ImageView iv) { //使用Glide加载圆形ImageView(如头像)时,不要使用占位图 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + if (!activity.isDestroyed()) { + Glide.with(Myappplication.mContext).load(url).error(R.mipmap.ic_launcher).crossFade().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(iv); + } + } + }*/ + + + public static void load(Context context, String url, ImageView iv) { //使用Glide加载圆形ImageView(如头像)时,不要使用占位图 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + Glide.with(context).load(url).crossFade().diskCacheStrategy(DiskCacheStrategy.SOURCE) + .error(R.mipmap.ic_launcher) + .into(iv); + } + } + + public static void loadAll(Context context, String url, ImageView iv) { //不缓存,全部从网络加载 + Glide.with(context).load(url).crossFade().skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE) + .error(R.mipmap.ic_launcher) + .into(iv); + } + + public static void loadAll(Activity activity, String url, ImageView iv) { //不缓存,全部从网络加载 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + if (!activity.isDestroyed()) { + Glide.with(activity).load(url).error(R.mipmap.ic_launcher).crossFade().skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE).into(iv); + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/InnerRecyclerView1.java b/app/src/main/java/com/yonsz/z1/version5/weidget/InnerRecyclerView1.java new file mode 100644 index 0000000..ca83acd --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/InnerRecyclerView1.java @@ -0,0 +1,126 @@ +package com.yonsz.z1.version5.weidget; + +import android.content.Context; +import android.support.annotation.Nullable; +import android.support.v7.widget.RecyclerView; +import android.util.AttributeSet; +import android.util.Log; +import android.view.MotionEvent; + +/** + * Created by Administrator on 2018/9/5. + * Description : InnerRecyclerView + */ + +public class InnerRecyclerView1 extends RecyclerView { + + private boolean isNeedConsume; + private float downX ; //按下时 的X坐标 + private float downY ; //按下时 的Y坐标 + private int maxY; + + + + private NeedIntercepectListener needIntercepectListener; + public InnerRecyclerView1(Context context) { + super(context); + } + + public InnerRecyclerView1(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + public InnerRecyclerView1(Context context, @Nullable AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + + + @Override + public boolean onTouchEvent(MotionEvent e) { + float x= e.getX(); + float y = e.getY(); + switch (e.getAction()){ + case MotionEvent.ACTION_DOWN: + //将按下时的坐标存储 + downX = x; + downY = y; + getParent().requestDisallowInterceptTouchEvent(true); + break; + case MotionEvent.ACTION_MOVE: + //获取到距离差 + float dx= x-downX; + float dy = y-downY; + Log.d("ACTION_MOVE","ACTION_MOVE"); + //通过距离差判断方向 + int orientation = getOrientation(dx, dy); + int[] location={0,0}; + getLocationOnScreen(location); + switch (orientation) { + case 'b': + //内层RecyclerView下拉到最顶部时候不再处理事件 + if(!canScrollVertically(-1)){ + getParent().requestDisallowInterceptTouchEvent(false); + if(needIntercepectListener!=null){ + needIntercepectListener.needIntercepect(false); + } + }else{ + getParent().requestDisallowInterceptTouchEvent(true); + if(needIntercepectListener!=null){ + needIntercepectListener.needIntercepect(true); + } + } + break; + case 't': + Log.d("maxY",maxY+""); + Log.d("location[1]",location[1]+""); + if(location[1]<=maxY){ + getParent().requestDisallowInterceptTouchEvent(true); + if(needIntercepectListener!=null){ + needIntercepectListener.needIntercepect(true); + Log.d("不要拦截","不要拦截"); + } + }else{ + getParent().requestDisallowInterceptTouchEvent(false); + if(needIntercepectListener!=null){ + needIntercepectListener.needIntercepect(false); + return true; + } + } + break; + case 'r': + getParent().requestDisallowInterceptTouchEvent(false); + break; + //左右滑动交给ViewPager处理 + case 'l': + getParent().requestDisallowInterceptTouchEvent(false); + break; + } + break; + } + return super.onTouchEvent(e); + } + + + + private int getOrientation(float dx, float dy) { + if (Math.abs(dx)> Math.abs(dy)){ + //X轴移动 + return dx>0?'r':'l';//右,左 + }else{ + //Y轴移动 + return dy>0?'b':'t';//下//上 + } + } + + public void setMaxY(int height) { + this.maxY=height; + } + + public interface NeedIntercepectListener{ + void needIntercepect(boolean needIntercepect); + } + public void setNeedIntercepectListener(NeedIntercepectListener needIntercepectListener) { + this.needIntercepectListener = needIntercepectListener; + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/Main6FragmentPagerAdapter.java b/app/src/main/java/com/yonsz/z1/version5/weidget/Main6FragmentPagerAdapter.java new file mode 100644 index 0000000..94f0bcb --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/Main6FragmentPagerAdapter.java @@ -0,0 +1,227 @@ +package com.yonsz.z1.version5.weidget; + +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; +import android.support.v4.app.FragmentTransaction; +import android.util.SparseArray; + +import com.yonsz.z1.database.entity.entity5.AllDeviceEntity; +import com.yonsz.z1.fragment.BaseFragment; +import com.yonsz.z1.utils.AddressNameUtil; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2019/4/12. + */ + +public class Main6FragmentPagerAdapter extends FragmentPagerAdapter { + private List mFragmentList; + private FragmentManager mFragmentManager; + /** + * 下面两个值用来保存Fragment的位置信息,用以判断该位置是否需要更新 + */ + private SparseArray mFragmentPositionMap; + private SparseArray mFragmentPositionMapAfterUpdate; + private List dataFloor = new ArrayList<>(); + + public Main6FragmentPagerAdapter(FragmentManager fm, List fragments, List data) { + super(fm); + mFragmentList = fragments; + mFragmentManager = fm; + mFragmentList = fragments; + dataFloor = data; + mFragmentPositionMap = new SparseArray<>(); + mFragmentPositionMapAfterUpdate = new SparseArray<>(); + setFragmentPositionMap(); + setFragmentPositionMapForUpdate(); + } + + /** + * 保存更新之前的位置信息,用的键值对结构来保存 + */ + private void setFragmentPositionMap() { + mFragmentPositionMap.clear(); + for (int i = 0; i < mFragmentList.size(); i++) { + mFragmentPositionMap.put(Long.valueOf(getItemId(i)).intValue(), String.valueOf(i)); + } + } + + /** + * 保存更新之后的位置信息,用的键值对结构来保存 + */ + private void setFragmentPositionMapForUpdate() { + mFragmentPositionMapAfterUpdate.clear(); + for (int i = 0; i < mFragmentList.size(); i++) { + mFragmentPositionMapAfterUpdate.put(Long.valueOf(getItemId(i)).intValue(), String.valueOf(i)); + } + } + + /** + * 在此方法中找到需要更新的位置返回POSITION_NONE,否则返回POSITION_UNCHANGED即可 + */ + @Override + public int getItemPosition(Object object) { + int hashCode = object.hashCode(); + //查找object在更新后的列表中的位置 + String position = mFragmentPositionMapAfterUpdate.get(hashCode); + //更新后的列表中不存在该object的位置了 + if (position == null) { + return POSITION_NONE; + } else { + //如果更新后的列表中存在该object的位置, 查找该object之前的位置并判断位置是否发生了变化 + int size = mFragmentPositionMap.size(); + for (int i = 0; i < size; i++) { + int key = mFragmentPositionMap.keyAt(i); + if (key == hashCode) { + String index = mFragmentPositionMap.get(key); + if (position.equals(index)) { + //位置没变依然返回POSITION_UNCHANGED + return POSITION_UNCHANGED; + } else { + //位置变了 + return POSITION_NONE; + } + } + } + } + return POSITION_UNCHANGED; + } + + /** + * 将指定的Fragment替换/更新为新的Fragment + * + * @param oldFragment 旧Fragment + * @param newFragment 新Fragment + */ + public void replaceFragment(BaseFragment oldFragment, BaseFragment newFragment) { + int position = mFragmentList.indexOf(oldFragment); + if (position == -1) { + return; + } + //从Transaction移除旧的Fragment + removeFragmentInternal(oldFragment); + //替换List中对应的Fragment + mFragmentList.set(position, newFragment); + //刷新Adapter + notifyItemChanged(); + } + + /** + * 将指定位置的Fragment替换/更新为新的Fragment,同{@link #replaceFragment(BaseFragment oldFragment, BaseFragment newFragment)} + * + * @param position 旧Fragment的位置 + * @param newFragment 新Fragment + */ + public void replaceFragment(int position, BaseFragment newFragment) { + BaseFragment oldFragment = mFragmentList.get(position); + removeFragmentInternal(oldFragment); + mFragmentList.set(position, newFragment); + notifyItemChanged(); + } + + /** + * 移除指定的Fragment + * + * @param fragment 目标Fragment + */ + public void removeFragment(BaseFragment fragment) { + //先从List中移除 + mFragmentList.remove(fragment); + //然后从Transaction移除 + removeFragmentInternal(fragment); + //最后刷新Adapter + notifyItemChanged(); + } + + /** + * 移除指定位置的Fragment,同 {@link #removeFragment(BaseFragment fragment)} + * + * @param position + */ + public void removeFragment(int position) { + BaseFragment fragment = mFragmentList.get(position); + //然后从List中移除 + mFragmentList.remove(fragment); + //先从Transaction移除 + removeFragmentInternal(fragment); + //最后刷新Adapter + notifyItemChanged(); + } + + /** + * 添加Fragment + * + * @param fragment 目标Fragment + */ + public void addFragment(BaseFragment fragment) { + mFragmentList.add(fragment); + notifyItemChanged(); + } + + /** + * 在指定位置插入一个Fragment + * + * @param position 插入位置 + * @param fragment 目标Fragment + */ + public void insertFragment(int position, BaseFragment fragment) { + mFragmentList.add(position, fragment); + notifyItemChanged(); + } + + private void notifyItemChanged() { + //刷新之前重新收集位置信息 + setFragmentPositionMapForUpdate(); + notifyDataSetChanged(); + setFragmentPositionMap(); + } + + /** + * 从Transaction移除Fragment + * + * @param fragment 目标Fragment + */ + private void removeFragmentInternal(BaseFragment fragment) { + FragmentTransaction transaction = mFragmentManager.beginTransaction(); + transaction.remove(fragment); + transaction.commitNow(); + } + + /** + * 此方法不用position做返回值即可破解fragment tag异常的错误 + */ + @Override + public long getItemId(int position) { + // 获取当前数据的hashCode,其实这里不用hashCode用自定义的可以关联当前Item对象的唯一值也可以,只要不是直接返回position + return mFragmentList.get(position).hashCode(); + } + + @Nullable + @Override + public CharSequence getPageTitle(int position) { + if (null != dataFloor && dataFloor.size() != 0) { + return dataFloor.get(position).getAddressType().getName(); + } else { + return ""; + } + } + + @Override + public Fragment getItem(int position) { + return mFragmentList.get(position); + } + + @Override + public int getCount() { + return mFragmentList.size(); + } + + public List getFragments() { + return mFragmentList; + } + +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/MyHistoryViewPager.java b/app/src/main/java/com/yonsz/z1/version5/weidget/MyHistoryViewPager.java new file mode 100644 index 0000000..da3715d --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/MyHistoryViewPager.java @@ -0,0 +1,39 @@ +package com.yonsz.z1.version5.weidget; + +import android.content.Context; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; +import android.view.View; + +/** + * Created by Administrator on 2019/4/15. + */ + +public class MyHistoryViewPager extends ViewPager { + public MyHistoryViewPager(Context context) { + super(context); + } + + + public MyHistoryViewPager(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + + int height = 0; + for (int i = 0; i < getChildCount(); i++) { + View child = getChildAt(i); + child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); + int h = child.getMeasuredHeight(); + if (h > height) + height = h; + } + + heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, + MeasureSpec.EXACTLY); + + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/MyStaggerGrildLayoutManger.java b/app/src/main/java/com/yonsz/z1/version5/weidget/MyStaggerGrildLayoutManger.java new file mode 100644 index 0000000..c075d78 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/MyStaggerGrildLayoutManger.java @@ -0,0 +1,61 @@ +package com.yonsz.z1.version5.weidget; + +import android.content.Context; +import android.graphics.PointF; +import android.support.v7.widget.LinearSmoothScroller; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.StaggeredGridLayoutManager; +import android.util.DisplayMetrics; + +/** + * Created by ruedy on 2017/1/9. + * 用于改变recycleview加载更多结束以后向上滑动一段距离是,平滑, 可以控制时间 + */ + +public class MyStaggerGrildLayoutManger extends StaggeredGridLayoutManager { + + + private float MILLISECONDS_PER_INCH = 1f; + private Context contxt; + + public MyStaggerGrildLayoutManger(Context context, int spanCount, int orientation) { + super(spanCount, orientation); + } + + @Override + public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) { + LinearSmoothScroller linearSmoothScroller = + new LinearSmoothScroller(recyclerView.getContext()) { + @Override + public PointF computeScrollVectorForPosition(int targetPosition) { +// return MyStaggerGrildLayoutManger.this.computeScrollVectorForPosition(targetPosition); + return null; + } + + //This returns the milliseconds it takes to + //scroll one pixel. + @Override + protected float calculateSpeedPerPixel + (DisplayMetrics displayMetrics) { + return MILLISECONDS_PER_INCH / displayMetrics.density; + //返回滑动一个pixel需要多少毫秒 + } + + }; + linearSmoothScroller.setTargetPosition(position); + startSmoothScroll(linearSmoothScroller); + } + + + public void setSpeedSlow() { + //自己在这里用density去乘,希望不同分辨率设备上滑动速度相同 + //0.3f是自己估摸的一个值,可以根据不同需求自己修改 + MILLISECONDS_PER_INCH = contxt.getResources().getDisplayMetrics().density * 0.3f; + } + + public void setSpeedFast() { + MILLISECONDS_PER_INCH = contxt.getResources().getDisplayMetrics().density * 0.03f; + } + + +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/MyTabLayout.java b/app/src/main/java/com/yonsz/z1/version5/weidget/MyTabLayout.java new file mode 100644 index 0000000..4a3ec01 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/MyTabLayout.java @@ -0,0 +1,43 @@ +package com.yonsz.z1.version5.weidget; + +import android.content.Context; +import android.support.design.widget.TabLayout; +import android.util.AttributeSet; + +import java.lang.reflect.Field; + +public class MyTabLayout extends TabLayout { + private static final int TabViewNumber = 8; + private static final String SCROLLABLE_TAB_MIN_WIDTH = "mScrollableTabMinWidth"; + + public MyTabLayout(Context context) { + super(context); + initTabMinWidth(); + } + + public MyTabLayout(Context context, AttributeSet attrs) { + super(context, attrs); + initTabMinWidth(); + } + + public MyTabLayout(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + initTabMinWidth(); + } + + private void initTabMinWidth() { + int screenWidth = getResources().getDisplayMetrics().widthPixels; + int tabMinWidth = screenWidth / TabViewNumber; + + Field field; + try { + field = TabLayout.class.getDeclaredField(SCROLLABLE_TAB_MIN_WIDTH); + field.setAccessible(true); + field.set(this, tabMinWidth); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/NestRecyclerView.java b/app/src/main/java/com/yonsz/z1/version5/weidget/NestRecyclerView.java new file mode 100644 index 0000000..cce76d1 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/NestRecyclerView.java @@ -0,0 +1,127 @@ +package com.yonsz.z1.version5.weidget; + +import android.content.Context; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.AttributeSet; +import android.util.Log; +import android.view.MotionEvent; + +/** + * Created by Administrator on 2019/4/11. + */ + +public class NestRecyclerView extends RecyclerView { + + private int lastVisibleItemPosition; + private int firstVisibleItemPosition; + private float mLastY = 0;// 记录上次Y位置 + private boolean isTopToBottom = false; + private boolean isBottomToTop = false; + + public NestRecyclerView(Context context) { + this(context, null); + } + + public NestRecyclerView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public NestRecyclerView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + /*@Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + int action = ev.getAction(); + switch (action) { + case MotionEvent.ACTION_DOWN: + getParent().requestDisallowInterceptTouchEvent(true); + break; + case MotionEvent.ACTION_MOVE: + break; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_CANCEL: + getParent().requestDisallowInterceptTouchEvent(false); + break; + } + return super.onInterceptTouchEvent(ev); + }*/ + + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + return super.dispatchTouchEvent(ev); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + int action = event.getAction(); + switch (action) { + case MotionEvent.ACTION_DOWN: + mLastY = event.getY(); + //不允许父View拦截事件 + getParent().requestDisallowInterceptTouchEvent(true); + break; + case MotionEvent.ACTION_MOVE: + float nowY = event.getY(); + isIntercept(nowY); + if (isBottomToTop || isTopToBottom) { + getParent().requestDisallowInterceptTouchEvent(false); + return false; + } else { + getParent().requestDisallowInterceptTouchEvent(true); + } + mLastY = nowY; + break; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_CANCEL: + getParent().requestDisallowInterceptTouchEvent(false); + break; + } + return super.onTouchEvent(event); + } + + private void isIntercept(float nowY) { + + isTopToBottom = false; + isBottomToTop = false; + + RecyclerView.LayoutManager layoutManager = getLayoutManager(); + if (layoutManager instanceof GridLayoutManager) { + //得到当前界面,最后一个子视图对应的position + lastVisibleItemPosition = ((GridLayoutManager) layoutManager) + .findLastVisibleItemPosition(); + //得到当前界面,第一个子视图的position + firstVisibleItemPosition = ((GridLayoutManager) layoutManager) + .findFirstVisibleItemPosition(); + } + //得到当前界面可见数据的大小 + int visibleItemCount = layoutManager.getChildCount(); + //得到RecyclerView对应所有数据的大小 + int totalItemCount = layoutManager.getItemCount(); + Log.d("nestScrolling", "onScrollStateChanged"); + if (visibleItemCount > 0) { + if (lastVisibleItemPosition == totalItemCount - 1) { + //最后视图对应的position等于总数-1时,说明上一次滑动结束时,触底了 + Log.d("nestScrolling", "触底了"); + if (NestRecyclerView.this.canScrollVertically(-1) && nowY < mLastY) { + // 不能向上滑动 + Log.d("nestScrolling", "不能向上滑动"); + isBottomToTop = true; + } else { + Log.d("nestScrolling", "向下滑动"); + } + } else if (firstVisibleItemPosition == 0) { + //第一个视图的position等于0,说明上一次滑动结束时,触顶了 + Log.d("nestScrolling", "触顶了"); + if (NestRecyclerView.this.canScrollVertically(1) && nowY > mLastY) { + // 不能向下滑动 + Log.d("nestScrolling", "不能向下滑动"); + isTopToBottom = true; + } else { + Log.d("nestScrolling", "向上滑动"); + } + } + } + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/OutRecyclerView.java b/app/src/main/java/com/yonsz/z1/version5/weidget/OutRecyclerView.java new file mode 100644 index 0000000..8f9b156 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/OutRecyclerView.java @@ -0,0 +1,82 @@ +package com.yonsz.z1.version5.weidget; + +import android.content.Context; +import android.support.annotation.Nullable; +import android.support.v7.widget.RecyclerView; +import android.util.AttributeSet; +import android.view.MotionEvent; + +/** + * Created by Administrator on 2018/9/3. + * Description : OutRecyclerView + */ + +public class OutRecyclerView extends RecyclerView { + private boolean isNeedIntercept = false; + private float downX ; //按下时 的X坐标 + private float downY ; //按下时 的Y坐标 + + boolean isStick=false; + + public OutRecyclerView(Context context) { + super(context); + } + + public OutRecyclerView(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + public OutRecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + + @Override + public boolean onInterceptTouchEvent(MotionEvent e) { + float x= e.getX(); + float y = e.getY(); + switch (e.getAction()){ + case MotionEvent.ACTION_DOWN: + //将按下时的坐标存储 + downX = x; + downY = y; + break; + case MotionEvent.ACTION_MOVE: + //获取到距离差 + float dx= x-downX; + float dy = y-downY; + //通过距离差判断方向 + int orientation = getOrientation(dx, dy); + switch (orientation) { + //左右滑动交给ViewPager处理 + case 'r': + setNeedIntercept(false); + break; + //左右滑动交给ViewPager处理 + case 'l': + setNeedIntercept(false); + break; + } + return isNeedIntercept; + } + return super.onInterceptTouchEvent(e); + } + + public void setNeedIntercept(boolean needIntercept) { + isNeedIntercept = needIntercept; + } + + private int getOrientation(float dx, float dy) { + if (Math.abs(dx)> Math.abs(dy)){ + //X轴移动 + return dx>0?'r':'l';//右,左 + }else{ + //Y轴移动 + return dy>0?'b':'t';//下//上 + } + } + + + + +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/RecyclerViewNoBugLinearLayoutManager.java b/app/src/main/java/com/yonsz/z1/version5/weidget/RecyclerViewNoBugLinearLayoutManager.java new file mode 100644 index 0000000..dbf6207 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/RecyclerViewNoBugLinearLayoutManager.java @@ -0,0 +1,31 @@ +package com.yonsz.z1.version5.weidget; + +import android.content.Context; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.AttributeSet; + +public class RecyclerViewNoBugLinearLayoutManager extends LinearLayoutManager { + public RecyclerViewNoBugLinearLayoutManager(Context context) { + super(context); + } + + public RecyclerViewNoBugLinearLayoutManager(Context context, int orientation, boolean reverseLayout) { + super(context, orientation, reverseLayout); + } + + public RecyclerViewNoBugLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + } + + @Override + public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) { + try { + //try catch一下 + super.onLayoutChildren(recycler, state); + } catch (IndexOutOfBoundsException e) { + e.printStackTrace(); + } + + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/RoomPopupWindow.java b/app/src/main/java/com/yonsz/z1/version5/weidget/RoomPopupWindow.java new file mode 100644 index 0000000..5c089a8 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/RoomPopupWindow.java @@ -0,0 +1,171 @@ +package com.yonsz.z1.version5.weidget; + +import android.app.Activity; +import android.graphics.drawable.ColorDrawable; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.DisplayMetrics; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.WindowManager; +import android.widget.AdapterView; +import android.widget.GridView; +import android.widget.LinearLayout; +import android.widget.PopupWindow; + +import com.yonsz.z1.R; +import com.yonsz.z1.createfamily.floor.FloorChangeAdapter; +import com.yonsz.z1.listener.OnRecyclerListener; + +import java.util.List; + +import static com.yonsz.z1.net.Constans.deviceNumListPosition; +import static com.yonsz.z1.net.Constans.homeListEntity; + +public class RoomPopupWindow extends PopupWindow { + private final FloorChangeAdapter mHorizontalAdapter; + private RoomPopupWindowAdapter mListPopupWindowAdapter; + private Listener mListener; + + public RoomPopupWindow(final Activity context, List list, List list1, String selectName, Listener listener, View view, int flag) { + super(context); + mListener = listener; + //拿到基本的item高度,这里给定每个Item的高度和宽度 + DisplayMetrics metric = new DisplayMetrics(); + context.getWindowManager().getDefaultDisplay().getMetrics(metric); + float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5) + int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240) + float titleItemHeight = density * 50; //50dp,高 + float paddingWight = density * 12; //12dp + WindowManager wm = context.getWindowManager(); + WindowManager.LayoutParams lp1 = context.getWindow().getAttributes(); + lp1.alpha = 0.8f; //0.0-1.0 + context.getWindow().setAttributes(lp1); + int width = wm.getDefaultDisplay().getWidth(); + //拿到要显示的总高度,超过5个条目时只显示5个,其余滑动显示 + int height; + if (((list.size() / 4) > 3)) { + height = (int) titleItemHeight * 4; + } else if (((list.size() % 4) == 0)) { + height = (int) titleItemHeight * ((list.size() / 4)); + } else { + height = (int) titleItemHeight * ((list.size() / 4) + 1); + } + + this.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT); + this.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT); + View contentView = LayoutInflater.from(context).inflate(R.layout.popup_window_ranking_classify1, null); + this.setContentView(contentView); + + GridView listView = (GridView) contentView.findViewById(R.id.lv_ranking_classify); + listView.setNumColumns(4); + listView.setPadding(30, 0, 0, 0); + LinearLayout.LayoutParams lp; + lp = (LinearLayout.LayoutParams) listView.getLayoutParams(); + lp.height = height; + lp.width = width - (int) paddingWight; //两边有点点空隙 + //设置整个ListView的给定宽高 + listView.setLayoutParams(lp); + //初始化list适配器,并把数据设置入listView中 + if (mListPopupWindowAdapter != null) { + mListPopupWindowAdapter = null; + } + mListPopupWindowAdapter = new RoomPopupWindowAdapter(context, list, list1, selectName, titleItemHeight); + listView.setAdapter(mListPopupWindowAdapter); + + + RecyclerView listView1 = (RecyclerView) contentView.findViewById(R.id.lv_ranking_classify1); + mHorizontalAdapter = new FloorChangeAdapter(context, homeListEntity.getData().get(deviceNumListPosition).getFloorList()); + GridLayoutManager manage = new GridLayoutManager(context, 4); + listView1.setHasFixedSize(true); + listView1.setLayoutManager(manage); + listView1.setAdapter(mHorizontalAdapter); + listView1.setPadding(30, 0, 0, 0); + /*LinearLayout.LayoutParams lp1; + lp1 = (LinearLayout.LayoutParams) listView1.getLayoutParams(); + lp1.height = (int) titleItemHeight; + lp1.width = width - (int) paddingWight; //两边有点点空隙 + //设置整个ListView的给定宽高 + listView1.setLayoutParams(lp);*/ + + + this.setFocusable(true); + this.setAnimationStyle(R.style.AnimList); + ColorDrawable dw = new ColorDrawable(context.getResources().getColor(R.color.transparent)); + this.setBackgroundDrawable(dw); + this.showAsDropDown(view, view.getWidth(), -5); + /*ColorDrawable dw = new ColorDrawable(context.getResources().getColor(R.color.transparent)); + this.setBackgroundDrawable(dw); + if (flag == 1) { + listView.setBackground(context.getResources().getDrawable(R.drawable.icon_home_switch)); + this.showAsDropDown(view, view.getWidth(), -5); + } else { + listView.setBackground(context.getResources().getDrawable(R.drawable.icon_home_switch)); + this.showAsDropDown(view, 0, -10); + }*/ + + mHorizontalAdapter.setmOnItemClickListener(new OnRecyclerListener() { + @Override + public void onClick(View view, int position) { + dismiss(); + if (position != 100) { + mListener.onBottomItemClickListener(position); + } + } + + @Override + public void onLongClick(RecyclerView.ViewHolder viewHolder, int position) { + + } + }); + + //点击Item + listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + dismiss(); + mListener.onItemClickListener(position); + } + }); + //点击返回键 + listView.setOnKeyListener(new View.OnKeyListener() { + @Override + public boolean onKey(View v, int keyCode, KeyEvent event) { + // TODO Auto-generated method stub + dismiss(); + return true; + } + }); + + //消失监听 + this.setOnDismissListener(new OnDismissListener() { + @Override + public void onDismiss() { + mListener.onPopupWindowDismissListener(); + WindowManager.LayoutParams lp1 = context.getWindow().getAttributes(); + lp1.alpha = 1.0f; //0.0-1.0 + context.getWindow().setAttributes(lp1); + } + }); + + //点击外围 + this.getContentView().setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + setFocusable(false); + dismiss(); + return true; + } + }); + } + + public interface Listener { + void onPopupWindowDismissListener(); //弹框消失监听 + + void onItemClickListener(int position); //条目点击监听 + + void onBottomItemClickListener(int position); //条目点击监听 + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/RoomPopupWindowAdapter.java b/app/src/main/java/com/yonsz/z1/version5/weidget/RoomPopupWindowAdapter.java new file mode 100644 index 0000000..c701023 --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/RoomPopupWindowAdapter.java @@ -0,0 +1,94 @@ +package com.yonsz.z1.version5.weidget; + +import android.content.Context; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.nostra13.universalimageloader.core.ImageLoader; +import com.yonsz.z1.R; +import com.yonsz.z1.UniKongApp; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Administrator on 2018/8/31. + */ + +public class RoomPopupWindowAdapter extends BaseAdapter { + private List mStringList = new ArrayList<>(); + private List mImgList = new ArrayList<>(); + private Context mContext; + private String nowSeleteName; + private int itemHeight; + + public RoomPopupWindowAdapter(Context context, List list, List list1, String selectName, float height) { + mContext = context; + mStringList = list; + mImgList = list1; + nowSeleteName = selectName; + itemHeight = (int) height; + } + + @Override + public int getCount() { + return mStringList.size(); + } + + @Override + public Object getItem(int i) { + return mStringList.get(i); + } + + @Override + public long getItemId(int i) { + return i; + } + + @Override + public int getItemViewType(int position) { + return super.getItemViewType(position); + } + + @Override + public View getView(int i, View view, ViewGroup viewGroup) { + ViewHolder lViewHolder = null; //一开始为null + if (view == null) { + lViewHolder = new ViewHolder(); + view = View.inflate(mContext, R.layout.grid_item_rank_title_content, null); + lViewHolder.itemTextView = (TextView) view.findViewById(R.id.tv_ranking_title_item); + lViewHolder.title_img = (ImageView) view.findViewById(R.id.title_img); + view.setTag(lViewHolder); + } else { + lViewHolder = (ViewHolder) view.getTag(); + } + //文字内容设置 + lViewHolder.itemTextView.setText(mStringList.get(i)); + LinearLayout.LayoutParams lp; + lp = (LinearLayout.LayoutParams) lViewHolder.itemTextView.getLayoutParams(); + lp.height = itemHeight; + lViewHolder.itemTextView.setLayoutParams(lp); + + ImageLoader.getInstance().displayImage(mImgList.get(i), lViewHolder.title_img, UniKongApp.getHiApp().getImageLoaderOption()); + + + if (mStringList.get(i).equals(nowSeleteName)) { //判断选中项 + lViewHolder.itemTextView.setTextColor(mContext.getResources().getColor(R.color.z1_398dee)); + // lViewHolder.itemTextView.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.drop_down_list_item_selected)); + } else { + // lViewHolder.itemTextView.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.drop_down_list_item_normal)); + lViewHolder.itemTextView.setTextColor(mContext.getResources().getColor(R.color.z1_333333)); + } + return view; + } + + private class ViewHolder { + TextView itemTextView; + ImageView title_img; + + } +} diff --git a/app/src/main/java/com/yonsz/z1/version5/weidget/YViewPager.java b/app/src/main/java/com/yonsz/z1/version5/weidget/YViewPager.java new file mode 100644 index 0000000..d2bd0af --- /dev/null +++ b/app/src/main/java/com/yonsz/z1/version5/weidget/YViewPager.java @@ -0,0 +1,4197 @@ +package com.yonsz.z1.version5.weidget; + +import android.content.Context; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.database.DataSetObserver; +import android.graphics.Canvas; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.os.Build; +import android.os.Bundle; +import android.os.Parcel; +import android.os.Parcelable; +import android.os.SystemClock; +import android.support.v4.os.ParcelableCompat; +import android.support.v4.os.ParcelableCompatCreatorCallbacks; +import android.support.v4.view.AbsSavedState; +import android.support.v4.view.AccessibilityDelegateCompat; +import android.support.v4.view.MotionEventCompat; +import android.support.v4.view.PagerAdapter; +import android.support.v4.view.VelocityTrackerCompat; +import android.support.v4.view.ViewCompat; +import android.support.v4.view.ViewPager; +import android.support.v4.view.WindowInsetsCompat; +import android.support.v4.view.accessibility.AccessibilityEventCompat; +import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat; +import android.support.v4.view.accessibility.AccessibilityRecordCompat; +import android.support.v4.widget.EdgeEffectCompat; +import android.util.AttributeSet; +import android.util.Log; +import android.view.FocusFinder; +import android.view.Gravity; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.SoundEffectConstants; +import android.view.VelocityTracker; +import android.view.View; +import android.view.ViewConfiguration; +import android.view.ViewGroup; +import android.view.ViewParent; +import android.view.accessibility.AccessibilityEvent; +import android.view.animation.Interpolator; +import android.widget.Scroller; + +import com.yonsz.z1.R; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +public class YViewPager extends ViewPager { + private static final String TAG = "YViewPager"; + private static final boolean DEBUG = true; + private static final boolean USE_CACHE = false; + private static final int DEFAULT_OFFSCREEN_PAGES = 1; + private static final int MAX_SETTLE_DURATION = 600; // ms + private static final int MIN_DISTANCE_FOR_FLING = 50; // dips + private static final int DEFAULT_GUTTER_SIZE = 16; // dips + private static final int MIN_FLING_VELOCITY = 400; // dips + + private static final int[] LAYOUT_ATTRS = new int[]{ + android.R.attr.layout_gravity + }; + private static final int DEFAULT_OFFSCREEN_SCROLL_COUNT = 800; + + /** + * Used to track what the expected number of items in the adapter should be. + * If the app changes this when we don't expect it, we'll throw a big obnoxious exception. + */ + private int mExpectedAdapterCount; + + + private int mDestY; + private int mVelocityY = 100; + private boolean isCirculatory = false; + private int mAdapterCirculatoryCount = DEFAULT_OFFSCREEN_SCROLL_COUNT; + private boolean isVertical = false; + private int mCurrentStartPos = 0; + + static class ItemInfo { + Object object; + int position; + boolean scrolling; + float widthFactor; + float offset; + + @Override + public String toString() { + return "ItemInfo{" + + "object=" + object + + ", position=" + position + + ", scrolling=" + scrolling + + ", widthFactor=" + widthFactor + + ", offset=" + offset + + '}'; + } + } + + private static final Comparator COMPARATOR = new Comparator() { + @Override + public int compare(YViewPager.ItemInfo lhs, YViewPager.ItemInfo rhs) { + return lhs.position - rhs.position; + } + }; + + private static final Interpolator sInterpolator = new Interpolator() { + @Override + public float getInterpolation(float t) { + t -= 1.0f; + return t * t * t * t * t + 1.0f; + } + }; + + private final ArrayList mItems = new ArrayList(); + private final YViewPager.ItemInfo mTempItem = new YViewPager.ItemInfo(); + private final Rect mTempRect = new Rect(); + private PagerAdapter mAdapter; + private int mCurItem; // Index of currently displayed page. + private int mRestoredCurItem = -1; + private Parcelable mRestoredAdapterState = null; + private ClassLoader mRestoredClassLoader = null; + private Scroller mScroller; + private boolean mIsScrollStarted; + private PagerObserver mObserver; + private int mPageMargin; + private Drawable mMarginDrawable; + + //for horizontal + private int mTopPageBounds; + private int mBottomPageBounds; + + //for vertical + private int mLeftPageBounds; + private int mRightPageBounds; + + // Offsets of the first and last items, if known. + // Set during population, used to determine if we are at the beginning + // or end of the pager data set during touch scrolling. + private float mFirstOffset = -Float.MAX_VALUE; + private float mLastOffset = Float.MAX_VALUE; + + private int mChildWidthMeasureSpec; + private int mChildHeightMeasureSpec; + private boolean mInLayout; + + private boolean mScrollingCacheEnabled; + + private boolean mPopulatePending; + private int mOffscreenPageLimit = DEFAULT_OFFSCREEN_PAGES; + + private boolean mIsBeingDragged; + private boolean mIsUnableToDrag; + private int mDefaultGutterSize; + private int mGutterSize; + private int mTouchSlop; + /** + * Position of the last motion event. + */ + private float mLastMotionX; + private float mLastMotionY; + private float mInitialMotionX; + private float mInitialMotionY; + /** + * ID of the active pointer. This is used to retain consistency during + * drags/flings if multiple pointers are used. + */ + private int mActivePointerId = INVALID_POINTER; + /** + * Sentinel value for no current active pointer. + * Used by {@link #mActivePointerId}. + */ + private static final int INVALID_POINTER = -1; + + /** + * Determines speed during touch scrolling + */ + private VelocityTracker mVelocityTracker; + private int mMinimumVelocity; + private int mMaximumVelocity; + private int mFlingDistance; + private int mCloseEnough; + + // If the pager is at least this close to its final position, complete the scroll + // on touch down and let the user interact with the content inside instead of + // "catching" the flinging pager. + private static final int CLOSE_ENOUGH = 2; // dp + + private boolean mFakeDragging; + private long mFakeDragBeginTime; + + private EdgeEffectCompat mLeftEdge; + private EdgeEffectCompat mRightEdge; + private EdgeEffectCompat mTopEdge; + private EdgeEffectCompat mBottomEdge; + + private boolean mFirstLayout = true; + private boolean mNeedCalculatePageOffsets = false; + private boolean mCalledSuper; + private int mDecorChildCount; + + private List mOnPageChangeListeners; + private OnPageChangeListener mOnPageChangeListener; + private OnPageChangeListener mInternalPageChangeListener; + private List mAdapterChangeListeners; + private PageTransformer mPageTransformer; + private Method mSetChildrenDrawingOrderEnabled; + + private static final int DRAW_ORDER_DEFAULT = 0; + private static final int DRAW_ORDER_FORWARD = 1; + private static final int DRAW_ORDER_REVERSE = 2; + private int mDrawingOrder; + private ArrayList mDrawingOrderedChildren; + private static final ViewPositionComparator sPositionComparator = new ViewPositionComparator(); + + public static final int VERTICAL = 0; + public static final int HORIZONTAL = 1; + + /** + * Indicates that the pager is in an idle, settled state. The current page + * is fully in view and no animation is in progress. + */ + public static final int SCROLL_STATE_IDLE = 0; + + /** + * Indicates that the pager is currently being dragged by the user. + */ + public static final int SCROLL_STATE_DRAGGING = 1; + + /** + * Indicates that the pager is in the process of settling to a final position. + */ + public static final int SCROLL_STATE_SETTLING = 2; + + + private final Runnable mEndScrollRunnable = new Runnable() { + @Override + public void run() { + setScrollState(SCROLL_STATE_IDLE); + if (isVertical) { + populateVertical(); + } else { + populateHorizontal(); + } + } + }; + + private int mScrollState = SCROLL_STATE_IDLE; + + public YViewPager(Context context) { + super(context); + initStyle(context, null); + initViewPager(); + } + + + public YViewPager(Context context, AttributeSet attrs) { + super(context, attrs); + initStyle(context, attrs); + initViewPager(); + } + + private void initStyle(Context context, AttributeSet attrs) { + TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.YViewPager); + int direction = array.getInt(R.styleable.YViewPager_orientation, HORIZONTAL); + isCirculatory = array.getBoolean(R.styleable.YViewPager_circulatory, false); + mCurrentStartPos = mAdapterCirculatoryCount / 2; + + if (direction == HORIZONTAL) { + isVertical = false; + } else if (direction == VERTICAL) { + isVertical = true; + } + array.recycle(); + } + + void initViewPager() { + setWillNotDraw(false); + setDescendantFocusability(FOCUS_AFTER_DESCENDANTS); + setFocusable(true); + final Context context = getContext(); + mScroller = new Scroller(context, sInterpolator); + final ViewConfiguration configuration = ViewConfiguration.get(context); + final float density = context.getResources().getDisplayMetrics().density; + + mTouchSlop = configuration.getScaledPagingTouchSlop(); + mMinimumVelocity = (int) (MIN_FLING_VELOCITY * density); + mMaximumVelocity = configuration.getScaledMaximumFlingVelocity(); + mLeftEdge = new EdgeEffectCompat(context); + mRightEdge = new EdgeEffectCompat(context); + mTopEdge = new EdgeEffectCompat(context); + mBottomEdge = new EdgeEffectCompat(context); + + mFlingDistance = (int) (MIN_DISTANCE_FOR_FLING * density); + mCloseEnough = (int) (CLOSE_ENOUGH * density); + mDefaultGutterSize = (int) (DEFAULT_GUTTER_SIZE * density); + + ViewCompat.setAccessibilityDelegate(this, new YViewPager.MyAccessibilityDelegate()); + + if (ViewCompat.getImportantForAccessibility(this) + == ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_AUTO) { + ViewCompat.setImportantForAccessibility(this, + ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES); + } + + ViewCompat.setOnApplyWindowInsetsListener(this, + new android.support.v4.view.OnApplyWindowInsetsListener() { + private final Rect mTempRect = new Rect(); + + @Override + public WindowInsetsCompat onApplyWindowInsets(final View v, + final WindowInsetsCompat originalInsets) { + // First let the ViewPager itself try and consume them... + final WindowInsetsCompat applied = + ViewCompat.onApplyWindowInsets(v, originalInsets); + if (applied.isConsumed()) { + // If the ViewPager consumed all insets, return now + return applied; + } + + // Now we'll manually dispatch the insets to our children. Since ViewPager + // children are always full-height, we do not want to use the standard + // ViewGroup dispatchApplyWindowInsets since if child 0 consumes them, + // the rest of the children will not receive any insets. To workaround this + // we manually dispatch the applied insets, not allowing children to + // consume them from each other. We do however keep track of any insets + // which are consumed, returning the union of our children's consumption + final Rect res = mTempRect; + res.left = applied.getSystemWindowInsetLeft(); + res.top = applied.getSystemWindowInsetTop(); + res.right = applied.getSystemWindowInsetRight(); + res.bottom = applied.getSystemWindowInsetBottom(); + + for (int i = 0, count = getChildCount(); i < count; i++) { + final WindowInsetsCompat childInsets = ViewCompat + .dispatchApplyWindowInsets(getChildAt(i), applied); + // Now keep track of any consumed by tracking each dimension's min + // value + res.left = Math.min(childInsets.getSystemWindowInsetLeft(), + res.left); + res.top = Math.min(childInsets.getSystemWindowInsetTop(), + res.top); + res.right = Math.min(childInsets.getSystemWindowInsetRight(), + res.right); + res.bottom = Math.min(childInsets.getSystemWindowInsetBottom(), + res.bottom); + } + + // Now return a new WindowInsets, using the consumed window insets + return applied.replaceSystemWindowInsets( + res.left, res.top, res.right, res.bottom); + } + }); + } + + + @Override + protected void onDetachedFromWindow() { + removeCallbacks(mEndScrollRunnable); + // To be on the safe side, abort the scroller + if ((mScroller != null) && !mScroller.isFinished()) { + mScroller.abortAnimation(); + } + super.onDetachedFromWindow(); + } + + private void setScrollState(int newState) { + if (mScrollState == newState) { + return; + } + + mScrollState = newState; + if (mPageTransformer != null) { + // PageTransformers can do complex things that benefit from hardware layers. + enableLayers(newState != SCROLL_STATE_IDLE); + } + dispatchOnScrollStateChanged(newState); + } + + /** + * Set a PagerAdapter that will supply views for this pager as needed. + * + * @param adapter Adapter to use + */ + public void setAdapter(PagerAdapter adapter) { + Log.d(TAG, "setAdapter() in"); + if (mAdapter != null) { + try { + Class aClass = mAdapter.getClass(); + Method method = aClass.getMethod("setViewPagerObserver"); + method.invoke(mAdapter, new Object[]{}); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } +// mAdapter.setViewPagerObserver(null); + mAdapter.startUpdate(this); + for (int i = 0; i < mItems.size(); i++) { + final ItemInfo ii = mItems.get(i); + mAdapter.destroyItem(this, ii.position, ii.object); + } + mAdapter.finishUpdate(this); + mItems.clear(); + removeNonDecorViews(); +// mCurItem = 0; + mCurItem = isCirculatory ? getAdapterCount() / 2 : 0; + Log.d(TAG, "setAdapter() mCurItem1=>" + mCurItem); + scrollTo(0, 0); + } + + final PagerAdapter oldAdapter = mAdapter; + mAdapter = adapter; + mExpectedAdapterCount = 0; + if (mAdapter != null) { + if (mObserver == null) { + mObserver = new PagerObserver(); + } + + try { + Class aClass = mAdapter.getClass(); + Method method = aClass.getMethod("setViewPagerObserver"); + method.invoke(mAdapter, mObserver); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + + +// mAdapter.setViewPagerObserver(mObserver); + mPopulatePending = false; + final boolean wasFirstLayout = mFirstLayout; + mFirstLayout = true; + mExpectedAdapterCount = getAdapterCount(); +// mExpectedAdapterCount = mAdapter.getCount(); + mCurItem = isCirculatory ? getAdapterCount() / 2 : 0; + Log.d(TAG, "setAdapter() mCurItem2=>" + mCurItem); + if (mRestoredCurItem >= 0) { + mAdapter.restoreState(mRestoredAdapterState, mRestoredClassLoader); + if (isVertical) { + setCurrentItemInternalVertical(mRestoredCurItem, false, true); + } else { + setCurrentItemInternalHorizontal(mRestoredCurItem, false, true); + } + mRestoredCurItem = -1; + mRestoredAdapterState = null; + mRestoredClassLoader = null; + } else if (!wasFirstLayout) { + if (isVertical) { + populateVertical(); + } else { + populateHorizontal(); + } + } else { + requestLayout(); + } + } + + // Dispatch the change to any listeners + if (mAdapterChangeListeners != null && !mAdapterChangeListeners.isEmpty()) { + for (int i = 0, count = mAdapterChangeListeners.size(); i < count; i++) { + mAdapterChangeListeners.get(i).onAdapterChanged(this, oldAdapter, adapter); + } + } + } + + private int getAdapterCount() { + if (isCirculatory) { + return mAdapterCirculatoryCount; + } else { + return mAdapter.getCount(); + } + } + + private void removeNonDecorViews() { + for (int i = 0; i < getChildCount(); i++) { + final View child = getChildAt(i); + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + if (!lp.isDecor) { + removeViewAt(i); + i--; + } + } + } + + /** + * Retrieve the current adapter supplying pages. + * + * @return The currently registered PagerAdapter + */ + public PagerAdapter getAdapter() { + return mAdapter; + } + + /** + * Add a listener that will be invoked whenever the adapter for this ViewPager changes. + * + * @param listener listener to add + */ + public void addOnAdapterChangeListener(OnAdapterChangeListener listener) { + if (mAdapterChangeListeners == null) { + mAdapterChangeListeners = new ArrayList<>(); + } + mAdapterChangeListeners.add(listener); + } + + /** + * Remove a listener that was previously added via + * addOnAdapterChangeListener(OnAdapterChangeListener). + * + * @param listener listener to remove + */ + public void removeOnAdapterChangeListener(OnAdapterChangeListener listener) { + if (mAdapterChangeListeners != null) { + mAdapterChangeListeners.remove(listener); + } + } + + + private int getClientWidth() { + return getMeasuredWidth() - getPaddingLeft() - getPaddingRight(); + } + + private int getClientHeight() { + return getMeasuredHeight() - getPaddingTop() - getPaddingBottom(); + } + + /** + * Set the currently selected page. If the ViewPager has already been through its first + * layout with its current adapter there will be a smooth animated transition between + * the current item and the specified item. + * + * @param item Item index to select + */ + public void setCurrentItem(int item) { + mPopulatePending = false; + if (item >= mAdapter.getCount()) { + throw new IllegalArgumentException("adapter's count is" + mAdapter.getCount() + ",but you set the position" + + "is:" + item + ",it bigger than the max count"); + } else if (item < 0) { + throw new IllegalArgumentException("you set the position" + + "is:" + item + ",it less than 0"); + } +// int newPos = 0; +// if (mCurrentStartPos == 0) { //init status +// newPos = isCirculatory ? getAdapterCount() / 2 + item : item; +// } else { //already scrolled status +// newPos = isCirculatory ? mCurrentStartPos + item : item; +// } + if (isVertical) { + setCurrentItemInternalVertical(item, !mFirstLayout, false); + } else { + setCurrentItemInternalHorizontal(item, !mFirstLayout, false); + } + } + + /** + * Set the currently selected page. + * + * @param item Item index to select + * @param smoothScroll True to smoothly scroll to the new item, false to transition immediately + */ + public void setCurrentItem(int item, boolean smoothScroll) { + mPopulatePending = false; + if (item >= mAdapter.getCount()) { + throw new IllegalArgumentException("adapter's count is:" + mAdapter.getCount() + ",but you set the position" + + "is:" + item + ",it bigger than the max count"); + } else if (item < 0) { + throw new IllegalArgumentException("you set the position" + + "is:" + item + ",it less than 0"); + } + int newPos = 0; + if (mCurrentStartPos == 0) { //init status + newPos = isCirculatory ? getAdapterCount() / 2 : item; + } else { //already scrolled status + newPos = isCirculatory ? mCurrentStartPos + item : item; + } + if (isVertical) { + setCurrentItemInternalVertical(newPos, smoothScroll, false); + } else { + setCurrentItemInternalHorizontal(newPos, smoothScroll, false); + } + } + + public int getCurrentItem() { + int finalPos = isCirculatory ? mCurItem % mAdapter.getCount() : mCurItem; + return finalPos; + } + + void setCurrentItemInternalHorizontal(int item, boolean smoothScroll, boolean always) { + setCurrentItemInternalHorizontal(item, smoothScroll, always, 0); + } + + void setCurrentItemInternalVertical(int item, boolean smoothScroll, boolean always) { + setCurrentItemInternalVertical(item, smoothScroll, always, 0); + } + + void setCurrentItemInternalHorizontal(int item, boolean smoothScroll, boolean always, int velocity) { + if (mAdapter == null || getAdapterCount() <= 0) { + setScrollingCacheEnabled(false); + return; + } + if (!always && mCurItem == item && mItems.size() != 0) { + setScrollingCacheEnabled(false); + return; + } + + if (item < 0) { + item = 0; + } else if (item >= getAdapterCount()) { + item = getAdapterCount() - 1; + } + final int pageLimit = mOffscreenPageLimit; + if (item > (mCurItem + pageLimit) || item < (mCurItem - pageLimit)) { + // We are doing a jump by more than one page. To avoid + // glitches, we want to keep all current pages in the view + // until the scroll ends. + for (int i = 0; i < mItems.size(); i++) { + mItems.get(i).scrolling = true; + } + } + final boolean dispatchSelected = mCurItem != item; + + if (mFirstLayout) { + // We don't have any idea how big we are yet and shouldn't have any pages either. + // Just set things up and let the pending layout handle things. + mCurItem = item; + if (dispatchSelected) { + dispatchOnPageSelected(item); + } + requestLayout(); + } else { + populateHorizontal(item); + scrollToItemHorizontal(item, smoothScroll, velocity, dispatchSelected); + } + } + + void setCurrentItemInternalVertical(int item, boolean smoothScroll, boolean always, int velocity) { + if (mAdapter == null || getAdapterCount() <= 0) { + setScrollingCacheEnabled(false); + return; + } + if (!always && mCurItem == item && mItems.size() != 0) { + setScrollingCacheEnabled(false); + return; + } + + if (item < 0) { + item = 0; + } else if (item >= getAdapterCount()) { + item = getAdapterCount() - 1; + } + final int pageLimit = mOffscreenPageLimit; + if (item > (mCurItem + pageLimit) || item < (mCurItem - pageLimit)) { + // We are doing a jump by more than one page. To avoid + // glitches, we want to keep all current pages in the view + // until the scroll ends. + for (int i = 0; i < mItems.size(); i++) { + mItems.get(i).scrolling = true; + } + } + final boolean dispatchSelected = mCurItem != item; + + if (mFirstLayout) { + // We don't have any idea how big we are yet and shouldn't have any pages either. + // Just set things up and let the pending layout handle things. + mCurItem = item; + if (dispatchSelected) { + dispatchOnPageSelected(item); + } + requestLayout(); + } else { + populateVertical(item); + scrollToItemVertical(item, smoothScroll, velocity, dispatchSelected); + } + } + + + private void scrollToItemHorizontal(int item, boolean smoothScroll, int velocity, + boolean dispatchSelected) { + final ItemInfo curInfo = infoForPosition(item); + int destX = 0; + if (curInfo != null) { + final int width = getClientWidth(); + destX = (int) (width * Math.max(mFirstOffset, + Math.min(curInfo.offset, mLastOffset))); + } + + if (smoothScroll) { + smoothScrollToHorizontal(destX, 0, velocity); + if (dispatchSelected) { + dispatchOnPageSelected(item); + } + } else { + if (dispatchSelected) { + dispatchOnPageSelected(item); + } + completeScrollHorizontal(false); + scrollTo(destX, 0); + pageScrolledHorizontal(destX); + } + } + + private void scrollToItemVertical(int item, boolean smoothScroll, int velocity, + boolean dispatchSelected) { + final ItemInfo curInfo = infoForPosition(item); + int destY = 0; + if (curInfo != null) { + final int height = getClientHeight(); + destY = (int) (height * Math.max(mFirstOffset, + Math.min(curInfo.offset, mLastOffset))); + mDestY = destY; + } + + if (smoothScroll) { + smoothScrollToVertical(0, destY, velocity); + if (dispatchSelected) { + dispatchOnPageSelected(item); + } + } else { + if (dispatchSelected) { + dispatchOnPageSelected(item); + } + completeScrollVertical(false); + scrollTo(0, destY); + pageScrolledVertical(destY); + } + } + + /** + * Set a listener that will be invoked whenever the page changes or is incrementally + * scrolled. See OnPageChangeListener. + * + * @param listener Listener to set + * addOnPageChangeListener(OnPageChangeListener) + * and #removeOnPageChangeListener(OnPageChangeListener)} instead. + */ + @Deprecated + public void setOnPageChangeListener(OnPageChangeListener listener) { + mOnPageChangeListener = listener; + } + + + public void addOnPageChangeListener(OnPageChangeListener listener) { + if (mOnPageChangeListeners == null) { + mOnPageChangeListeners = new ArrayList<>(); + } + mOnPageChangeListeners.add(listener); + } + + /** + * Remove a listener that was previously added via + * {addOnPageChangeListener(OnPageChangeListener)}. + * + * @param listener listener to remove + */ + public void removeOnPageChangeListener(OnPageChangeListener listener) { + if (mOnPageChangeListeners != null) { + mOnPageChangeListeners.remove(listener); + } + } + + /** + * Remove all listeners that are notified of any changes in scroll state or position. + */ + public void clearOnPageChangeListeners() { + if (mOnPageChangeListeners != null) { + mOnPageChangeListeners.clear(); + } + } + + + public void setPageTransformer(boolean reverseDrawingOrder, PageTransformer transformer) { + if (Build.VERSION.SDK_INT >= 11) { + final boolean hasTransformer = transformer != null; + final boolean needsPopulate = hasTransformer != (mPageTransformer != null); + mPageTransformer = transformer; + setChildrenDrawingOrderEnabledCompat(hasTransformer); + if (hasTransformer) { + mDrawingOrder = reverseDrawingOrder ? DRAW_ORDER_REVERSE : DRAW_ORDER_FORWARD; + } else { + mDrawingOrder = DRAW_ORDER_DEFAULT; + } + if (!isVertical && needsPopulate) { + populateHorizontal(); + } else if (isVertical && needsPopulate) { + populateVertical(); + } + } + } + + void setChildrenDrawingOrderEnabledCompat(boolean enable) { + if (Build.VERSION.SDK_INT >= 7) { + if (mSetChildrenDrawingOrderEnabled == null) { + try { + mSetChildrenDrawingOrderEnabled = ViewGroup.class.getDeclaredMethod( + "setChildrenDrawingOrderEnabled", new Class[]{Boolean.TYPE}); + } catch (NoSuchMethodException e) { + Log.e(TAG, "Can't find setChildrenDrawingOrderEnabled", e); + } + } + try { + mSetChildrenDrawingOrderEnabled.invoke(this, enable); + } catch (Exception e) { + Log.e(TAG, "Error changing children drawing order", e); + } + } + + } + + @Override + protected int getChildDrawingOrder(int childCount, int i) { + final int index = mDrawingOrder == DRAW_ORDER_REVERSE ? childCount - 1 - i : i; + final int result = getLpChildIndex(((LayoutParams) mDrawingOrderedChildren.get(index).getLayoutParams())); +// ((LayoutParams) mDrawingOrderedChildren.get(index).getLayoutParams()).childIndex; + return result; + + } + + + /** + * Set a separate OnPageChangeListener for internal use by the support library. + * + * @param listener Listener to set + * @return The old listener that was set, if any. + */ + OnPageChangeListener setInternalPageChangeListener(OnPageChangeListener listener) { + OnPageChangeListener oldListener = mInternalPageChangeListener; + mInternalPageChangeListener = listener; + return oldListener; + } + + /** + * Returns the number of pages that will be retained to either side of the + * current page in the view hierarchy in an idle state. Defaults to 1. + * + * @return How many pages will be kept offscreen on either side + * @see #setOffscreenPageLimit(int) + */ + public int getOffscreenPageLimit() { + return mOffscreenPageLimit; + } + + + public void setOffscreenPageLimit(int limit) { + if (limit < DEFAULT_OFFSCREEN_PAGES) { + Log.w(TAG, "Requested offscreen page limit " + limit + " too small; defaulting to " + + DEFAULT_OFFSCREEN_PAGES); + limit = DEFAULT_OFFSCREEN_PAGES; + } + if (limit != mOffscreenPageLimit) { + mOffscreenPageLimit = limit; + if (isVertical) { + populateVertical(); + } else { + populateHorizontal(); + } + } + } + + /** + * Set the margin between pages. + * + * @param marginPixels Distance between adjacent pages in pixels + * @see #getPageMargin() + * @see #setPageMarginDrawable(Drawable) + * @see #setPageMarginDrawable(int) + */ + public void setPageMargin(int marginPixels) { + final int oldMargin = mPageMargin; + mPageMargin = marginPixels; + + final int width = getWidth(); + if (isVertical) { + recomputeScrollPositionVertical(getHeight(), getHeight(), marginPixels, oldMargin); + } else { + recomputeScrollPositionHorizontal(width, width, marginPixels, oldMargin); + } + + requestLayout(); + } + + /** + * Return the margin between pages. + * + * @return The size of the margin in pixels + */ + public int getPageMargin() { + return mPageMargin; + } + + /** + * Set a drawable that will be used to fill the margin between pages. + * + * @param d Drawable to display between pages + */ + public void setPageMarginDrawable(Drawable d) { + mMarginDrawable = d; + if (d != null) refreshDrawableState(); + setWillNotDraw(d == null); + invalidate(); + } + + /** + * Set a drawable that will be used to fill the margin between pages. + * + * @param resId Resource ID of a drawable to display between pages + */ + public void setPageMarginDrawable(int resId) { + setPageMarginDrawable(getContext().getResources().getDrawable(resId)); + } + + @Override + protected boolean verifyDrawable(Drawable who) { + return super.verifyDrawable(who) || who == mMarginDrawable; + } + + @Override + protected void drawableStateChanged() { + super.drawableStateChanged(); + final Drawable d = mMarginDrawable; + if (d != null && d.isStateful()) { + d.setState(getDrawableState()); + } + } + + // We want the duration of the page snap animation to be influenced by the distance that + // the screen has to travel, however, we don't want this duration to be effected in a + // purely linear fashion. Instead, we use this method to moderate the effect that the distance + // of travel has on the overall snap duration. + float distanceInfluenceForSnapDuration(float f) { + f -= 0.5f; // center the values about 0. + f *= 0.3f * Math.PI / 2.0f; + return (float) Math.sin(f); + } + + /** + * Like {@link View#scrollBy}, but scroll smoothly instead of immediately. + * + * @param x the number of pixels to scroll by on the X axis + * @param y the number of pixels to scroll by on the Y axis + */ +// void smoothScrollTo(int x, int y) { +// smoothScrollTo(x, y, 0); +// } + + /** + * Like {@link View#scrollBy}, but scroll smoothly instead of immediately. + * + * @param x the number of pixels to scroll by on the X axis + * @param y the number of pixels to scroll by on the Y axis + * @param velocity the velocity associated with a fling, if applicable. (0 otherwise) + */ + void smoothScrollToHorizontal(int x, int y, int velocity) { + if (getChildCount() == 0) { + // Nothing to do. + setScrollingCacheEnabled(false); + return; + } + int sx; + boolean wasScrolling = (mScroller != null) && !mScroller.isFinished(); + if (wasScrolling) { + // We're in the middle of a previously initiated scrolling. Check to see + // whether that scrolling has actually started (if we always call getStartX + // we can get a stale value from the scroller if it hadn't yet had its first + // computeScrollOffset call) to decide what is the current scrolling position. + + sx = mIsScrollStarted ? mScroller.getCurrX() : mScroller.getStartX(); + // And abort the current scrolling. + + mScroller.abortAnimation(); + setScrollingCacheEnabled(false); + } else { + sx = getScrollX(); + } + + int sy = getScrollY(); + int dx = x - sx; + int dy = y - sy; + if (dx == 0 && dy == 0) { + // TODO: 2017/2/11 completeScroll + completeScrollHorizontal(false); + populateHorizontal(); + setScrollState(SCROLL_STATE_IDLE); + return; + } + + setScrollingCacheEnabled(true); + setScrollState(SCROLL_STATE_SETTLING); + + final int width = getClientWidth(); + final int halfWidth = width / 2; + final float distanceRatio = Math.min(1f, 1.0f * Math.abs(dx) / width); + final float distance = halfWidth + halfWidth + * distanceInfluenceForSnapDuration(distanceRatio); + int duration; + velocity = Math.abs(velocity); + if (velocity > 0) { + duration = 4 * Math.round(1000 * Math.abs(distance / velocity)); + } else { + final float pageWidth = width * mAdapter.getPageWidth(mCurItem); + final float pageDelta = (float) Math.abs(dx) / (pageWidth + mPageMargin); + duration = (int) ((pageDelta + 1) * 100); + } + duration = Math.min(duration, MAX_SETTLE_DURATION); + + // Reset the "scroll started" flag. It will be flipped to true in all places + // where we call computeScrollOffset(). + mIsScrollStarted = false; + mScroller.startScroll(sx, sy, dx, dy, duration); + ViewCompat.postInvalidateOnAnimation(this); + } + + void smoothScrollToVertical(int x, int y, int velocity) { + if (getChildCount() == 0) { + // Nothing to do. + setScrollingCacheEnabled(false); + return; + } + int sy; + boolean wasScrolling = (mScroller != null) && !mScroller.isFinished(); + if (wasScrolling) { + // We're in the middle of a previously initiated scrolling. Check to see + // whether that scrolling has actually started (if we always call getStartX + // we can get a stale value from the scroller if it hadn't yet had its first + // computeScrollOffset call) to decide what is the current scrolling position. + + sy = mIsScrollStarted ? mScroller.getCurrY() : mScroller.getStartY(); + + // And abort the current scrolling. + + mScroller.abortAnimation(); + setScrollingCacheEnabled(false); + } else { + //getScrollX() http://www.bubuko.com/infodetail-916594.html + sy = getScrollY(); + } + + int sx = getScrollX(); + int dx = x - sx; + int dy = y - sy; + if (dx == 0 && dy == 0) { + // TODO: 2017/2/11 completeScroll + completeScrollVertical(false); + populateVertical(); + setScrollState(SCROLL_STATE_IDLE); + return; + } + + setScrollingCacheEnabled(true); + setScrollState(SCROLL_STATE_SETTLING); + + final int height = getClientHeight(); + final int halfHeight = height / 2; + final float distanceRatio = Math.min(1f, 1.0f * Math.abs(dy) / height); + final float distance = halfHeight + halfHeight + * distanceInfluenceForSnapDuration(distanceRatio); + + int duration; + velocity = Math.abs(velocity); + if (velocity > 0) { + duration = 4 * Math.round(1000 * Math.abs(distance / velocity)); + } else { + final float pageHeight = height * mAdapter.getPageWidth(mCurItem); + final float pageDelta = (float) Math.abs(dy) / (pageHeight + mPageMargin); + duration = (int) ((pageDelta + 1) * 100); + } + duration = Math.min(duration, MAX_SETTLE_DURATION); + + // Reset the "scroll started" flag. It will be flipped to true in all places + // where we call computeScrollOffset(). + mIsScrollStarted = false; + mScroller.startScroll(sx, sy, dx, dy, duration); + ViewCompat.postInvalidateOnAnimation(this); + } + + private int mTotalNum = Integer.MAX_VALUE; + + ItemInfo addNewItem(int position, int index) { + int newPos = position % mAdapter.getCount(); + Log.d(TAG, "addNewItem newPos=>" + newPos + ",position=>" + position); + if (newPos == 0) { + mCurrentStartPos = position; + Log.d(TAG, "addNewItem mCurrentStartPos=>" + mCurrentStartPos); + } + ItemInfo ii = new ItemInfo(); + ii.position = position; + ii.object = mAdapter.instantiateItem(this, newPos); + ii.widthFactor = mAdapter.getPageWidth(newPos); + if (index < 0 || index >= mItems.size()) { + mItems.add(ii); + } else { + mItems.add(index, ii); + } + return ii; + } + + void dataSetChanged() { + // This method only gets called if our observer is attached, so mAdapter is non-null. + + final int adapterCount = getAdapterCount(); + mExpectedAdapterCount = adapterCount; + boolean needPopulate = mItems.size() < mOffscreenPageLimit * 2 + 1 + && mItems.size() < adapterCount; + int newCurrItem = mCurItem; + + boolean isUpdating = false; + for (int i = 0; i < mItems.size(); i++) { + final YViewPager.ItemInfo ii = mItems.get(i); + final int newPos = mAdapter.getItemPosition(ii.object); + + if (newPos == PagerAdapter.POSITION_UNCHANGED) { + continue; + } + + if (newPos == PagerAdapter.POSITION_NONE) { + mItems.remove(i); + i--; + + if (!isUpdating) { + mAdapter.startUpdate(this); + isUpdating = true; + } + + mAdapter.destroyItem(this, ii.position, ii.object); + needPopulate = true; + + if (mCurItem == ii.position) { + // Keep the current item in the valid range + newCurrItem = Math.max(0, Math.min(mCurItem, adapterCount - 1)); + needPopulate = true; + } + continue; + } + + if (ii.position != newPos) { + if (ii.position == mCurItem) { + // Our current item changed position. Follow it. + newCurrItem = newPos; + } + + ii.position = newPos; + needPopulate = true; + } + } + + if (isUpdating) { + mAdapter.finishUpdate(this); + } + + Collections.sort(mItems, COMPARATOR); + + if (needPopulate) { + // Reset our known page widths; populate will recompute them. + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + if (!lp.isDecor) { + setFieldValue(lp, "widthFactor", 0.f); +// lp.widthFactor = 0.f; + } + } + if (isVertical) { + setCurrentItemInternalVertical(newCurrItem, false, true); + } else { + setCurrentItemInternalHorizontal(newCurrItem, false, true); + } + requestLayout(); + } + } + + void populateHorizontal() { + populateHorizontal(mCurItem); + } + + void populateVertical() { + populateVertical(mCurItem); + } + + + void populateHorizontal(int newCurrentItem) { + ItemInfo oldCurInfo = null; + if (mCurItem != newCurrentItem) { + oldCurInfo = infoForPosition(mCurItem); + mCurItem = newCurrentItem; + } + + if (mAdapter == null) { + sortChildDrawingOrder(); + return; + } + + // Bail now if we are waiting to populate. This is to hold off + // on creating views from the time the user releases their finger to + // fling to a new position until we have finished the scroll to + // that position, avoiding glitches from happening at that point. + if (mPopulatePending) { + if (DEBUG) Log.i(TAG, "populate is pending, skipping for now..."); + sortChildDrawingOrder(); + return; + } + + // Also, don't populate until we are attached to a window. This is to + // avoid trying to populate before we have restored our view hierarchy + // state and conflicting with what is restored. + if (getWindowToken() == null) { + return; + } + + mAdapter.startUpdate(this); + final int pageLimit = mOffscreenPageLimit; + + //calculate the startPos,and the for-calculating while do when pos>=startPos + int startPos = Math.max(0, mCurItem - pageLimit); + final int N = getAdapterCount(); + final int endPos = Math.min(N - 1, mCurItem + pageLimit); + if (N != mExpectedAdapterCount) { + String resName; + try { + resName = getResources().getResourceName(getId()); + } catch (Resources.NotFoundException e) { + resName = Integer.toHexString(getId()); + } + throw new IllegalStateException("The application's PagerAdapter changed the adapter's" + + " contents without calling PagerAdapter#notifyDataSetChanged!" + + " Expected adapter item count: " + mExpectedAdapterCount + ", found: " + N + + " Pager id: " + resName + + " Pager class: " + getClass() + + " Problematic adapter: " + mAdapter.getClass()); + } + + // Locate the currently focused item or add it if needed. + int curIndex = -1; + ItemInfo curItem = null; + for (curIndex = 0; curIndex < mItems.size(); curIndex++) { + final ItemInfo ii = mItems.get(curIndex); + if (ii.position >= mCurItem) { + if (ii.position == mCurItem) { + curItem = ii; + } + break; + } + } + + //when we doesn't find the cached-item from the mItems + //this means that doesn't cached this page,so we add it to mItems + if (curItem == null && N > 0) { + Log.d(TAG, "populateHorizontal() mCurItem=>" + mCurItem); + curItem = addNewItem(mCurItem, curIndex); + } + + // Fill 3x the available width or up to the number of offscreen + // pages requested to either side, whichever is larger. + // If we have no current item we have no work to do. + if (curItem != null) { + float extraWidthLeft = 0.f; + //curIndex is the pos of the current page. + //we let it -1 means that we calculate from this page to it's left pages + int itemIndex = curIndex - 1; + ItemInfo ii = itemIndex >= 0 ? mItems.get(itemIndex) : null; + final int clientWidth = getClientWidth(); + + //normally the code : 2.f-curItem.widthFactor may equals the value of 1.f + //and the (float) getPaddingLeft() / (float) clientWidth always is 0.f + //so the leftWidthNeeded always is 1.0,which means that we at least calculate one page from current page to left + final float leftWidthNeeded = clientWidth <= 0 ? 0 : + 2.f - curItem.widthFactor + (float) getPaddingLeft() / (float) clientWidth; + + for (int pos = mCurItem - 1; pos >= 0; pos--) { + if (extraWidthLeft >= leftWidthNeeded && pos < startPos) { + if (ii == null) { + break; + } + + if (pos == ii.position && !ii.scrolling) { + mItems.remove(itemIndex); + mAdapter.destroyItem(this, pos, ii.object); + itemIndex--; + curIndex--; + ii = itemIndex >= 0 ? mItems.get(itemIndex) : null; + } + } else if (ii != null && pos == ii.position) { + extraWidthLeft += ii.widthFactor; + itemIndex--; + ii = itemIndex >= 0 ? mItems.get(itemIndex) : null; + } else { + ii = addNewItem(pos, itemIndex + 1); + extraWidthLeft += ii.widthFactor; + curIndex++; + ii = itemIndex >= 0 ? mItems.get(itemIndex) : null; + } + } + + float extraWidthRight = curItem.widthFactor; + itemIndex = curIndex + 1; + if (extraWidthRight < 2.f) { + ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null; + final float rightWidthNeeded = clientWidth <= 0 ? 0 : + (float) getPaddingRight() / (float) clientWidth + 2.f; + + for (int pos = mCurItem + 1; pos < N; pos++) { + + if (extraWidthRight >= rightWidthNeeded && pos > endPos) { + if (ii == null) { + break; + } + if (pos == ii.position && !ii.scrolling) { + mItems.remove(itemIndex); + mAdapter.destroyItem(this, pos, ii.object); + ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null; + } + } else if (ii != null && pos == ii.position) { + extraWidthRight += ii.widthFactor; + itemIndex++; + ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null; + } else { + ii = addNewItem(pos, itemIndex); + itemIndex++; + extraWidthRight += ii.widthFactor; + ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null; + } + } + } + calculatePageOffsetsHorizontal(curItem, curIndex, oldCurInfo); + } + + if (DEBUG) { + Log.i(TAG, "Current page list:"); + for (int i = 0; i < mItems.size(); i++) { + Log.i(TAG, "#" + i + ": page " + mItems.get(i).position); + } + } + + //Called to inform the adapter of which item is currently considered to + //be the "primary", that is the one show to the user as the current page. + mAdapter.setPrimaryItem(this, mCurItem, curItem != null ? curItem.object : null); + + //Called when the a change in the shown pages has been completed. At this + //point you must ensure that all of the pages have actually been added or + //removed from the container as appropriate. + mAdapter.finishUpdate(this); + + // Check width measurement of current pages and drawing sort order. + // Update LayoutParams as needed. + // + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + setFieldValue(lp, "childIndex", i); +// lp.childIndex = i; + if (!lp.isDecor && getLpWidthFactor(lp) == 0.f) { + // 0 means requery the adapter for this, it doesn't have a valid width. + final ItemInfo ii = infoForChild(child); + if (ii != null) { + setFieldValue(lp, "widthFactor", ii.widthFactor); + setFieldValue(lp, "position", ii.position); +// lp.widthFactor = ii.widthFactor; +// lp.position = ii.position; + } + } + } + + sortChildDrawingOrder(); + + if (hasFocus()) { + View currentFocused = findFocus(); + ItemInfo ii = currentFocused != null ? infoForAnyChild(currentFocused) : null; + if (ii == null || ii.position != mCurItem) { + for (int i = 0; i < getChildCount(); i++) { + View child = getChildAt(i); + ii = infoForChild(child); + if (ii != null && ii.position == mCurItem) { + if (child.requestFocus(View.FOCUS_FORWARD)) { + break; + } + } + } + } + } + } + + void populateVertical(int newCurrentItem) { + ItemInfo oldCurInfo = null; + if (mCurItem != newCurrentItem) { + oldCurInfo = infoForPosition(mCurItem); + mCurItem = newCurrentItem; + } + + if (mAdapter == null) { + sortChildDrawingOrder(); + return; + } + + // Bail now if we are waiting to populate. This is to hold off + // on creating views from the time the user releases their finger to + // fling to a new position until we have finished the scroll to + // that position, avoiding glitches from happening at that point. + if (mPopulatePending) { + if (DEBUG) Log.i(TAG, "populate is pending, skipping for now..."); + sortChildDrawingOrder(); + return; + } + + // Also, don't populate until we are attached to a window. This is to + // avoid trying to populate before we have restored our view hierarchy + // state and conflicting with what is restored. + if (getWindowToken() == null) { + return; + } + + mAdapter.startUpdate(this); + + final int pageLimit = mOffscreenPageLimit; + final int startPos = Math.max(0, mCurItem - pageLimit); + + final int N = getAdapterCount(); + final int endPos = Math.min(N - 1, mCurItem + pageLimit); + if (N != mExpectedAdapterCount) { + String resName; + try { + resName = getResources().getResourceName(getId()); + } catch (Resources.NotFoundException e) { + resName = Integer.toHexString(getId()); + } + throw new IllegalStateException("The application's PagerAdapter changed the adapter's" + + " contents without calling PagerAdapter#notifyDataSetChanged!" + + " Expected adapter item count: " + mExpectedAdapterCount + ", found: " + N + + " Pager id: " + resName + + " Pager class: " + getClass() + + " Problematic adapter: " + mAdapter.getClass()); + } + + // Locate the currently focused item or add it if needed. + int curIndex = -1; + ItemInfo curItem = null; + for (curIndex = 0; curIndex < mItems.size(); curIndex++) { + final ItemInfo ii = mItems.get(curIndex); + if (ii.position >= mCurItem) { + if (ii.position == mCurItem) { + curItem = ii; + } + break; + } + } + + if (curItem == null && N > 0) { + curItem = addNewItem(mCurItem, curIndex); + } + + // Fill 3x the available width or up to the number of offscreen + // pages requested to either side, whichever is larger. + // If we have no current item we have no work to do. + if (curItem != null) { + float extraHeightTop = 0.f; + int itemIndex = curIndex - 1; + ItemInfo ii = itemIndex >= 0 ? mItems.get(itemIndex) : null; + final int clientHeight = getClientHeight(); + + final float topHeightNeeded = clientHeight <= 0 ? 0 : + 2.f - curItem.widthFactor + (float) getPaddingTop() / (float) clientHeight; + + for (int pos = mCurItem - 1; pos >= 0; pos--) { + if (extraHeightTop >= topHeightNeeded && pos < startPos) { + if (ii == null) { + break; + } + + if (pos == ii.position && !ii.scrolling) { + mItems.remove(itemIndex); + mAdapter.destroyItem(this, pos, ii.object); + itemIndex--; + curIndex--; + ii = itemIndex >= 0 ? mItems.get(itemIndex) : null; + } + } else if (ii != null && pos == ii.position) { + extraHeightTop += ii.widthFactor; + itemIndex--; + ii = itemIndex >= 0 ? mItems.get(itemIndex) : null; + } else { + ii = addNewItem(pos, itemIndex + 1); + extraHeightTop += ii.widthFactor; + curIndex++; + ii = itemIndex >= 0 ? mItems.get(itemIndex) : null; + } + } + + float extraHeightBottom = curItem.widthFactor; + itemIndex = curIndex + 1; + if (extraHeightBottom < 2.f) { + ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null; + final float bottomHeightNeeded = clientHeight <= 0 ? 0 : + (float) getPaddingBottom() / (float) clientHeight + 2.f; + + for (int pos = mCurItem + 1; pos < N; pos++) { + if (extraHeightBottom >= bottomHeightNeeded && pos > endPos) { + if (ii == null) { + break; + } + if (pos == ii.position && !ii.scrolling) { + mItems.remove(itemIndex); + mAdapter.destroyItem(this, pos, ii.object); + ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null; + } + } else if (ii != null && pos == ii.position) { + extraHeightBottom += ii.widthFactor; + itemIndex++; + ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null; + } else { + ii = addNewItem(pos, itemIndex); + itemIndex++; + extraHeightBottom += ii.widthFactor; + ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null; + } + } + } + calculatePageOffsetsVertical(curItem, curIndex, oldCurInfo); + } + + if (DEBUG) { + Log.i(TAG, "Current page list:"); + for (int i = 0; i < mItems.size(); i++) { + Log.i(TAG, "#" + i + ": page " + mItems.get(i).position); + } + } + mAdapter.setPrimaryItem(this, mCurItem, curItem != null ? curItem.object : null); + mAdapter.finishUpdate(this); + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + float widthFactor = 0.0f; + try { + Class aClass = lp.getClass(); + Field field = aClass.getField("childIndex"); + field.setAccessible(true); + field.set(lp, i); + Field field1 = aClass.getField("widthFactor"); + field1.setAccessible(true); + widthFactor = (float) field1.get(lp); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } +// lp.childIndex = i; + + if (!lp.isDecor && widthFactor == 0.f) { + final ItemInfo ii = infoForChild(child); + if (ii != null) { + try { + Class aClass = lp.getClass(); + Field field = aClass.getField("childIndex"); + field.setAccessible(true); + field.set(lp, ii.position); + + Field field1 = aClass.getField("widthFactor"); + field1.setAccessible(true); + field1.set(lp, ii.widthFactor); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } +// lp.widthFactor = ii.widthFactor; +// lp.position = ii.position; + } + } + } + + sortChildDrawingOrder(); + + if (hasFocus()) { + View currentFocused = findFocus(); + ItemInfo ii = currentFocused != null ? infoForAnyChild(currentFocused) : null; + if (ii == null || ii.position != mCurItem) { + for (int i = 0; i < getChildCount(); i++) { + View child = getChildAt(i); + ii = infoForChild(child); + if (ii != null && ii.position == mCurItem) { + if (child.requestFocus(View.FOCUS_FORWARD)) { + break; + } + } + } + } + } + } + + + private void sortChildDrawingOrder() { + if (mDrawingOrder != DRAW_ORDER_DEFAULT) { + if (mDrawingOrderedChildren == null) { + mDrawingOrderedChildren = new ArrayList(); + } else { + mDrawingOrderedChildren.clear(); + } + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + mDrawingOrderedChildren.add(child); + } + Collections.sort(mDrawingOrderedChildren, sPositionComparator); + } + } + + + private void calculatePageOffsetsHorizontal(ItemInfo curItem, int curIndex, ItemInfo oldCurInfo) { + final int N = getAdapterCount(); + final int width = getClientWidth(); + final float marginOffset = width > 0 ? (float) mPageMargin / width : 0; + + // Fix up offsets for later layout. + if (oldCurInfo != null) { + final int oldCurPosition = oldCurInfo.position; + // Base offsets off of oldCurInfo. + if (oldCurPosition < curItem.position) { + int itemIndex = 0; + ItemInfo ii = null; + float offset = oldCurInfo.offset + oldCurInfo.widthFactor + marginOffset; + for (int pos = oldCurPosition + 1; pos <= curItem.position && itemIndex < mItems.size(); pos++) { + ii = mItems.get(itemIndex); + while (pos > ii.position && itemIndex < mItems.size() - 1) { + itemIndex++; + ii = mItems.get(itemIndex); + } + + while (pos < ii.position) { + // We don't have an item populated for this, + // ask the adapter for an offset. + offset += mAdapter.getPageWidth(pos) + marginOffset; + pos++; + } + ii.offset = offset; + offset += ii.widthFactor + marginOffset; + } + } else if (oldCurPosition > curItem.position) { + int itemIndex = mItems.size() - 1; + ItemInfo ii = null; + float offset = oldCurInfo.offset; + for (int pos = oldCurPosition - 1; pos >= curItem.position && itemIndex >= 0; pos--) { + ii = mItems.get(itemIndex); + while (pos < ii.position && itemIndex > 0) { + itemIndex--; + ii = mItems.get(itemIndex); + } + while (pos > ii.position) { + // We don't have an item populated for this, + // ask the adapter for an offset. + offset -= mAdapter.getPageWidth(pos) + marginOffset; + pos--; + } + offset -= ii.widthFactor + marginOffset; + ii.offset = offset; + } + } + } + + // Base all offsets off of curItem. + final int itemCount = mItems.size(); + float offset = curItem.offset; + int pos = curItem.position - 1; + mFirstOffset = curItem.position == 0 ? curItem.offset : -Float.MAX_VALUE; + mLastOffset = curItem.position == N - 1 + ? curItem.offset + curItem.widthFactor - 1 : Float.MAX_VALUE; + + + for (int i = curIndex - 1; i >= 0; i--, pos--) { + final ItemInfo ii = mItems.get(i); + // TODO: 2017/2/16 + while (pos > ii.position) { + offset -= mAdapter.getPageWidth(pos--) + marginOffset; + } + offset -= ii.widthFactor + marginOffset; + ii.offset = offset; + + if (ii.position == 0) { + mFirstOffset = offset; + } + } + offset = curItem.offset + curItem.widthFactor + marginOffset; + pos = curItem.position + 1; + for (int i = curIndex + 1; i < itemCount; i++, pos++) { + final ItemInfo ii = mItems.get(i); + while (pos < ii.position) { + offset += mAdapter.getPageWidth(pos++) + marginOffset; + } + if (ii.position == N - 1) { + mLastOffset = offset + ii.widthFactor - 1; + } + + ii.offset = offset; + offset += ii.widthFactor + marginOffset; + } + + mNeedCalculatePageOffsets = false; + } + + private void calculatePageOffsetsVertical(ItemInfo curItem, int curIndex, ItemInfo oldCurInfo) { + final int N = getAdapterCount(); + final int height = getClientHeight(); + final float marginOffset = height > 0 ? (float) mPageMargin / height : 0; + + // Fix up offsets for later layout. + if (oldCurInfo != null) { + final int oldCurPosition = oldCurInfo.position; + if (oldCurPosition < curItem.position) { + int itemIndex = 0; + ItemInfo ii = null; + float offset = oldCurInfo.offset + oldCurInfo.widthFactor + marginOffset; + for (int pos = oldCurPosition + 1; pos <= curItem.position && itemIndex < mItems.size(); pos++) { + ii = mItems.get(itemIndex); + while (pos > ii.position && itemIndex < mItems.size() - 1) { + itemIndex++; + ii = mItems.get(itemIndex); + } + + while (pos < ii.position) { + // We don't have an item populated for this, + // ask the adapter for an offset. + offset += mAdapter.getPageWidth(pos) + marginOffset; + pos++; + } + ii.offset = offset; + offset += ii.widthFactor + marginOffset; + } + } else if (oldCurPosition > curItem.position) { + int itemIndex = mItems.size() - 1; + ItemInfo ii = null; + float offset = oldCurInfo.offset; + for (int pos = oldCurPosition - 1; pos >= curItem.position && itemIndex >= 0; pos--) { + ii = mItems.get(itemIndex); + while (pos < ii.position && itemIndex > 0) { + itemIndex--; + ii = mItems.get(itemIndex); + } + while (pos > ii.position) { + // We don't have an item populated for this, + // ask the adapter for an offset. + offset -= mAdapter.getPageWidth(pos) + marginOffset; + pos--; + } + offset -= ii.widthFactor + marginOffset; + ii.offset = offset; + } + } + } + + // Base all offsets off of curItem. + final int itemCount = mItems.size(); + float offset = curItem.offset; + int pos = curItem.position - 1; + mFirstOffset = curItem.position == 0 ? curItem.offset : -Float.MAX_VALUE; + mLastOffset = curItem.position == N - 1 + ? curItem.offset + curItem.widthFactor - 1 : Float.MAX_VALUE; + for (int i = curIndex - 1; i >= 0; i--, pos--) { + final ItemInfo ii = mItems.get(i); + // TODO: 2017/2/16 + while (pos > ii.position) { + offset -= mAdapter.getPageWidth(pos--) + marginOffset; + } + offset -= ii.widthFactor + marginOffset; + ii.offset = offset; + if (ii.position == 0) { + mFirstOffset = offset; + } + } + offset = curItem.offset + curItem.widthFactor + marginOffset; + pos = curItem.position + 1; + for (int i = curIndex + 1; i < itemCount; i++, pos++) { + final ItemInfo ii = mItems.get(i); + while (pos < ii.position) { + offset += mAdapter.getPageWidth(pos++) + marginOffset; + } + if (ii.position == N - 1) { + mLastOffset = offset + ii.widthFactor - 1; + } + + ii.offset = offset; + offset += ii.widthFactor + marginOffset; + } + + mNeedCalculatePageOffsets = false; + } + + /** + * This is the persistent state that is saved by ViewPager. Only needed + * if you are creating a sublass of ViewPager that must save its own + * state, in which case it should implement a subclass of this which + * contains that state. + */ + public static class SavedState extends AbsSavedState { + int position; + Parcelable adapterState; + ClassLoader loader; + + public SavedState(Parcelable superState) { + super(superState); + } + + @Override + public void writeToParcel(Parcel out, int flags) { + super.writeToParcel(out, flags); + out.writeInt(position); + out.writeParcelable(adapterState, flags); + } + + @Override + public String toString() { + return "FragmentPager.SavedState{" + + Integer.toHexString(System.identityHashCode(this)) + + " position=" + position + "}"; + } + + public static final Creator CREATOR = ParcelableCompat.newCreator( + new ParcelableCompatCreatorCallbacks() { + @Override + public YViewPager.SavedState createFromParcel(Parcel in, ClassLoader loader) { + return new YViewPager.SavedState(in, loader); + } + + @Override + public YViewPager.SavedState[] newArray(int size) { + return new YViewPager.SavedState[size]; + } + }); + + SavedState(Parcel in, ClassLoader loader) { + super(in, loader); + if (loader == null) { + loader = getClass().getClassLoader(); + } + position = in.readInt(); + adapterState = in.readParcelable(loader); + this.loader = loader; + } + } + + @Override + public Parcelable onSaveInstanceState() { + Parcelable superState = super.onSaveInstanceState(); + YViewPager.SavedState ss = new YViewPager.SavedState(superState); + ss.position = mCurItem; + if (mAdapter != null) { + ss.adapterState = mAdapter.saveState(); + } + return ss; + } + + @Override + public void onRestoreInstanceState(Parcelable state) { + if (!(state instanceof YViewPager.SavedState)) { + super.onRestoreInstanceState(state); + return; + } + + YViewPager.SavedState ss = (YViewPager.SavedState) state; + super.onRestoreInstanceState(ss.getSuperState()); + + if (mAdapter != null) { + mAdapter.restoreState(ss.adapterState, ss.loader); + if (isVertical) { + setCurrentItemInternalVertical(ss.position, false, true); + } else { + setCurrentItemInternalHorizontal(ss.position, false, true); + } + } else { + mRestoredCurItem = ss.position; + mRestoredAdapterState = ss.adapterState; + mRestoredClassLoader = ss.loader; + } + } + + @Override + public void addView(View child, int index, ViewGroup.LayoutParams params) { + if (!checkLayoutParams(params)) { + params = generateLayoutParams(params); + } + final LayoutParams lp = (LayoutParams) params; + // Any views added via inflation should be classed as part of the decor + lp.isDecor |= isDecorView(child); + if (mInLayout) { + if (lp != null && lp.isDecor) { + throw new IllegalStateException("Cannot add pager decor view during layout"); + } + try { + Class aClass = lp.getClass(); + Field field = aClass.getField("needsMeasure"); + field.setAccessible(true); + field.set(lp, true); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } +// lp.needsMeasure = true; + addViewInLayout(child, index, params); + } else { + ViewParent parent = child.getParent(); + if (parent != null) { + ((ViewGroup) parent).removeView(child); + } + super.addView(child, index, params); + } + + if (USE_CACHE) { + if (child.getVisibility() != GONE) { + child.setDrawingCacheEnabled(mScrollingCacheEnabled); + } else { + child.setDrawingCacheEnabled(false); + } + } + } + + private static boolean isDecorView(View view) { + Class clazz = view.getClass(); + return clazz.getAnnotation(DecorView.class) != null; + } + + @Override + public void removeView(View view) { + if (mInLayout) { + removeViewInLayout(view); + } else { + super.removeView(view); + } + } + + + ItemInfo infoForChild(View child) { + for (int i = 0; i < mItems.size(); i++) { + ItemInfo ii = mItems.get(i); + if (mAdapter.isViewFromObject(child, ii.object)) { + return ii; + } + } + return null; + } + + ItemInfo infoForAnyChild(View child) { + ViewParent parent; + while ((parent = child.getParent()) != this) { + if (parent == null || !(parent instanceof View)) { + return null; + } + child = (View) parent; + } + return infoForChild(child); + } + + + ItemInfo infoForPosition(int position) { + for (int i = 0; i < mItems.size(); i++) { + ItemInfo ii = mItems.get(i); + if (ii.position == position) { + return ii; + } + } + return null; + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + mFirstLayout = true; + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + // For simple implementation, our internal size is always 0. + // We depend on the container to specify the layout size of + // our view. We can't really know what it is since we will be + // adding and removing different arbitrary views and do not + // want the layout to change as this happens. + + + setMeasuredDimension(getDefaultSize(0, widthMeasureSpec), + getDefaultSize(0, heightMeasureSpec)); + + final int measuredWidth = getMeasuredWidth(); + + final int maxGutterSize = measuredWidth / 10; + mGutterSize = Math.min(maxGutterSize, mDefaultGutterSize); + + int childWidthSize = measuredWidth - getPaddingLeft() - getPaddingRight(); + int childHeightSize = getMeasuredHeight() - getPaddingTop() - getPaddingBottom(); + + /* + * Make sure all children have been properly measured. Decor views first. + * Right now we cheat and make this less complicated by assuming decor + * views won't intersect. We will pin to edges based on gravity. + */ + int size = getChildCount(); + for (int i = 0; i < size; ++i) { + final View child = getChildAt(i); + if (child.getVisibility() != GONE) { + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + if (lp != null && lp.isDecor) { + final int hgrav = lp.gravity & Gravity.HORIZONTAL_GRAVITY_MASK; + final int vgrav = lp.gravity & Gravity.VERTICAL_GRAVITY_MASK; + int widthMode = MeasureSpec.AT_MOST; + int heightMode = MeasureSpec.AT_MOST; + boolean consumeVertical = vgrav == Gravity.TOP || vgrav == Gravity.BOTTOM; + boolean consumeHorizontal = hgrav == Gravity.LEFT || hgrav == Gravity.RIGHT; + if (consumeVertical) { + widthMode = MeasureSpec.EXACTLY; + } else if (consumeHorizontal) { + heightMode = MeasureSpec.EXACTLY; + } + int widthSize = childWidthSize; + int heightSize = childHeightSize; + + //Can be one of the constants FILL_PARENT (replaced by MATCH_PARENT + //in API Level 8) or WRAP_CONTENT, or an exact size. + if (lp.width != LayoutParams.WRAP_CONTENT) { + widthMode = MeasureSpec.EXACTLY; + if (lp.width != LayoutParams.MATCH_PARENT) { + widthSize = lp.width; + } + } + if (lp.height != LayoutParams.WRAP_CONTENT) { + heightMode = MeasureSpec.EXACTLY; + if (lp.height != LayoutParams.MATCH_PARENT) { + heightSize = lp.height; + } + } + final int widthSpec = MeasureSpec.makeMeasureSpec(widthSize, widthMode); + final int heightSpec = MeasureSpec.makeMeasureSpec(heightSize, heightMode); + child.measure(widthSpec, heightSpec); + + if (consumeVertical) { + childHeightSize -= child.getMeasuredHeight(); + } else if (consumeHorizontal) { + childWidthSize -= child.getMeasuredWidth(); + } + } + } + } + + mChildWidthMeasureSpec = MeasureSpec.makeMeasureSpec(childWidthSize, MeasureSpec.EXACTLY); + mChildHeightMeasureSpec = MeasureSpec.makeMeasureSpec(childHeightSize, MeasureSpec.EXACTLY); + + // Make sure we have created all fragments that we need to have shown. + mInLayout = true; + if (isVertical) { + populateVertical(); + } else { + populateHorizontal(); + } + mInLayout = false; + + size = getChildCount(); + for (int i = 0; i < size; ++i) { + final View child = getChildAt(i); + if (child.getVisibility() != GONE) { + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + if (!isVertical && (lp == null || !lp.isDecor)) { + final int widthSpec = MeasureSpec.makeMeasureSpec( + (int) (childWidthSize * getLpWidthFactor(lp)), MeasureSpec.EXACTLY); + child.measure(widthSpec, mChildHeightMeasureSpec); + } else if (isVertical && (lp == null || !lp.isDecor)) { + final int heightSpec = MeasureSpec.makeMeasureSpec( + (int) (childHeightSize * getLpWidthFactor(lp)), MeasureSpec.EXACTLY); + child.measure(mChildWidthMeasureSpec, heightSpec); + } + } + } + } + + void setFieldValue(LayoutParams layoutParams, String fieldName, Object value) { + try { + Class aClass = layoutParams.getClass(); + Field field = aClass.getField(fieldName); + field.setAccessible(true); + field.set(layoutParams, value); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + + float getLpWidthFactor(LayoutParams lp) { + try { + Class aClass = lp.getClass(); + Field field = aClass.getField("widthFactor"); + field.setAccessible(true); + return (float) field.get(lp); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + return 1.0f; + } + + boolean getLpNeedsMeasure(LayoutParams lp) { + try { + Class aClass = lp.getClass(); + Field field = aClass.getField("needsMeasure"); + field.setAccessible(true); + return (boolean) field.get(lp); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + return true; + } + + static int getLpPosition(LayoutParams lp) { + try { + Class aClass = lp.getClass(); + Field field = aClass.getField("position"); + field.setAccessible(true); + return (int) field.get(lp); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + return 0; + } + + int getLpChildIndex(LayoutParams lp) { + try { + Class aClass = lp.getClass(); + Field field = aClass.getField("childIndex"); + field.setAccessible(true); + return (int) field.get(lp); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + return 0; + } + + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + + // Make sure scroll position is set correctly. + if (isVertical && h != oldh) { + recomputeScrollPositionVertical(h, oldh, mPageMargin, mPageMargin); + } else if (!isVertical && w != oldw) { + recomputeScrollPositionHorizontal(w, oldw, mPageMargin, mPageMargin); + } + } + + private void recomputeScrollPositionHorizontal(int width, int oldWidth, int margin, int oldMargin) { + if (oldWidth > 0 && !mItems.isEmpty()) { + if (!mScroller.isFinished()) { + mScroller.setFinalX(getCurrentItem() * getClientWidth()); + } else { + final int widthWithMargin = width - getPaddingLeft() - getPaddingRight() + margin; + final int oldWidthWithMargin = oldWidth - getPaddingLeft() - getPaddingRight() + + oldMargin; + final int xpos = getScrollX(); + final float pageOffset = (float) xpos / oldWidthWithMargin; + final int newOffsetPixels = (int) (pageOffset * widthWithMargin); + + scrollTo(newOffsetPixels, getScrollY()); + } + } else { + final YViewPager.ItemInfo ii = infoForPosition(mCurItem); + final float scrollOffset = ii != null ? Math.min(ii.offset, mLastOffset) : 0; + final int scrollPos = + (int) (scrollOffset * (width - getPaddingLeft() - getPaddingRight())); + if (scrollPos != getScrollX()) { + completeScrollHorizontal(false); + scrollTo(scrollPos, getScrollY()); + } + } + } + + private void recomputeScrollPositionVertical(int height, int oldHeight, int margin, int oldMargin) { + if (oldHeight > 0 && !mItems.isEmpty()) { + if (!mScroller.isFinished()) { + mScroller.setFinalY(getCurrentItem() * getClientHeight()); + } else { + final int heightWithMargin = height - getPaddingTop() - getPaddingBottom() + margin; + final int oldHeightWithMargin = oldHeight - getPaddingTop() - getPaddingBottom() + + oldMargin; + final int ypos = getScrollY(); + final float pageOffset = (float) ypos / oldHeightWithMargin; + final int newOffsetPixels = (int) (pageOffset * heightWithMargin); + + scrollTo(getScrollX(), newOffsetPixels); + } + } else { + final ItemInfo ii = infoForPosition(mCurItem); + final float scrollOffset = ii != null ? Math.min(ii.offset, mLastOffset) : 0; + final int scrollPos = + (int) (scrollOffset * (height - getPaddingTop() - getPaddingBottom())); + if (scrollPos != getScrollY()) { + completeScrollVertical(false); + scrollTo(getScrollX(), scrollPos); + } + } + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + final int count = getChildCount(); + int width = r - l; + int height = b - t; + int paddingLeft = getPaddingLeft(); + int paddingTop = getPaddingTop(); + int paddingRight = getPaddingRight(); + int paddingBottom = getPaddingBottom(); + + // TODO: 2017/2/10 + final int scrollX = getScrollX(); + final int scrollY = getScrollY(); + + int decorCount = 0; + + // First pass - decor views. We need to do this in two passes so that + // we have the proper offsets for non-decor views later. + for (int i = 0; i < count; i++) { + final View child = getChildAt(i); + if (child.getVisibility() != GONE) { + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + int childLeft = 0; + int childTop = 0; + if (lp.isDecor) { + final int hgrav = lp.gravity & Gravity.HORIZONTAL_GRAVITY_MASK; + final int vgrav = lp.gravity & Gravity.VERTICAL_GRAVITY_MASK; + + switch (hgrav) { + default: + childLeft = paddingLeft; + break; + case Gravity.LEFT: + childLeft = paddingLeft; + paddingLeft += child.getMeasuredWidth(); + break; + case Gravity.CENTER_HORIZONTAL: + childLeft = Math.max((width - child.getMeasuredWidth()) / 2, + paddingLeft); + break; + case Gravity.RIGHT: + childLeft = width - paddingRight - child.getMeasuredWidth(); + paddingRight += child.getMeasuredWidth(); + break; + } + switch (vgrav) { + default: + childTop = paddingTop; + break; + case Gravity.TOP: + childTop = paddingTop; + paddingTop += child.getMeasuredHeight(); + break; + case Gravity.CENTER_VERTICAL: + childTop = Math.max((height - child.getMeasuredHeight()) / 2, + paddingTop); + break; + case Gravity.BOTTOM: + childTop = height - paddingBottom - child.getMeasuredHeight(); + paddingBottom += child.getMeasuredHeight(); + break; + } + if (isVertical) { + childTop += scrollY; + } else { + childLeft += scrollX; + } + child.layout(childLeft, childTop, + childLeft + child.getMeasuredWidth(), + childTop + child.getMeasuredHeight()); + + decorCount++; + } + } + } + + final int childWidth = width - paddingLeft - paddingRight; + final int childHeight = height - paddingTop - paddingBottom; + // Page views. Do this once we have the right padding offsets from above. + for (int i = 0; i < count; i++) { + final View child = getChildAt(i); + if (child.getVisibility() != GONE) { + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + // TODO: 2017/2/10 ItemInfo + ItemInfo ii; + if (!lp.isDecor && (ii = infoForChild(child)) != null) { + // TODO: 2017/2/10 ii.offset + int loff = (int) (childWidth * ii.offset); + int toff = (int) (childHeight * ii.offset); + int childLeft = !isVertical ? paddingLeft + loff : paddingLeft; + int childTop = !isVertical ? paddingTop : paddingTop + toff; + if (getLpNeedsMeasure(lp)) { + // This was added during layout and needs measurement. + // Do it now that we know what we're working with. + + setFieldValue(lp, "needsMeasure", false); +// lp.needsMeasure = false; + + int widthSpec; + int heightSpec; + if (!isVertical) { + widthSpec = MeasureSpec.makeMeasureSpec( + (int) (childWidth * getLpWidthFactor(lp)), + MeasureSpec.EXACTLY); + heightSpec = MeasureSpec.makeMeasureSpec( + (int) (height - paddingTop - paddingBottom), + MeasureSpec.EXACTLY); + } else { + widthSpec = MeasureSpec.makeMeasureSpec( + (int) (width * getLpWidthFactor(lp)), + MeasureSpec.EXACTLY); + heightSpec = MeasureSpec.makeMeasureSpec( + (int) (childHeight - paddingTop - paddingBottom), + MeasureSpec.EXACTLY); + } + child.measure(widthSpec, heightSpec); + } + if (DEBUG) { + Log.v(TAG, "Positioning #" + i + " " + child + " f=" + ii.object + + ":" + childLeft + "," + childTop + " " + child.getMeasuredWidth() + + "x" + child.getMeasuredHeight()); + } + child.layout(childLeft, childTop, + childLeft + child.getMeasuredWidth(), + childTop + child.getMeasuredHeight()); + } + } + } + if (!isVertical) { + mTopPageBounds = paddingTop; + mBottomPageBounds = height - paddingBottom; + } else { + mLeftPageBounds = paddingLeft; + mRightPageBounds = width - paddingRight; + } + mDecorChildCount = decorCount; + + + if (isVertical && mFirstLayout) { + scrollToItemVertical(mCurItem, false, 0, false); + } else if (!isVertical && mFirstLayout) { + scrollToItemHorizontal(mCurItem, false, 0, false); + } + mFirstLayout = false; + } + + + @Override + public void computeScroll() { + mIsScrollStarted = true; + if (!mScroller.isFinished() && mScroller.computeScrollOffset()) { + int oldX = getScrollX(); + int oldY = getScrollY(); + int x = mScroller.getCurrX(); + int y = mScroller.getCurrY(); + if (oldY != y || oldX != x) { + scrollTo(x, y); + + if (!isVertical && !pageScrolledHorizontal(x)) { + mScroller.abortAnimation(); + scrollTo(0, y); + } else if (isVertical && pageScrolledVertical(y)) { + mScroller.abortAnimation(); +// scrollTo(x, mDestY); + smoothScrollToVertical(x, mDestY, mVelocityY); + } + } + + // Keep on drawing until the animation has finished. + ViewCompat.postInvalidateOnAnimation(this); + return; + } + + // Done with scroll, clean up state. + if (isVertical) { + completeScrollVertical(true); + } else { + completeScrollHorizontal(true); + } + } + + + private boolean pageScrolledHorizontal(int xpos) { + if (mItems.size() == 0) { + if (mFirstLayout) { + // If we haven't been laid out yet, we probably just haven't been populated yet. + // Let's skip this call since it doesn't make sense in this state + return false; + } + + mCalledSuper = false; + + // TODO: 2017/2/11 + onPageScrolledHorizontal(0, 0, 0); + if (!mCalledSuper) { + throw new IllegalStateException( + "onPageScrolled did not call superclass implementation"); + } + return false; + } + // TODO: 2017/2/11 + final ItemInfo ii = infoForCurrentScrollPositionHorizontal(); + + final int width = getClientWidth(); + final int widthWithMargin = width + mPageMargin; + final float marginOffset = (float) mPageMargin / width; + + final int currentPage = ii.position; + final float pageOffset = (((float) xpos / width) - ii.offset) + / (ii.widthFactor + marginOffset); + final int offsetPixels = (int) (pageOffset * widthWithMargin); + mCalledSuper = false; + onPageScrolledHorizontal(currentPage, pageOffset, offsetPixels); + if (!mCalledSuper) { + throw new IllegalStateException( + "onPageScrolled did not call superclass implementation"); + } + return true; + } + + public void setDirection(int direction) { + if (direction == HORIZONTAL && isVertical) { + isVertical = false; + } else if (direction == VERTICAL && !isVertical) { + isVertical = true; + } + requestLayout(); + } + + + private boolean pageScrolledVertical(int ypos) { + if (mItems.size() == 0) { + if (mFirstLayout) { + // If we haven't been laid out yet, we probably just haven't been populated yet. + // Let's skip this call since it doesn't make sense in this state + return false; + } + mCalledSuper = false; + + onPageScrolledVertical(0, 0, 0); + + if (!mCalledSuper) { + throw new IllegalStateException( + "onPageScrolled did not call superclass implementation"); + } + return false; + } + // TODO: 2017/2/11 + final ItemInfo ii = infoForCurrentScrollPositionVertical(); + + final int height = getClientHeight(); + final int heightWithMargin = height + mPageMargin; + final float marginOffset = (float) mPageMargin / height; + + final int currentPage = ii.position; + + final float pageOffset = (((float) ypos / height) - ii.offset) + / (ii.widthFactor + marginOffset); + final int offsetPixels = (int) (pageOffset * heightWithMargin); + mCalledSuper = false; + onPageScrolledVertical(currentPage, pageOffset, offsetPixels); + if (!mCalledSuper) { + throw new IllegalStateException( + "onPageScrolled did not call superclass implementation"); + } + return true; + } + + /** + * This method will be invoked when the current page is scrolled, either as part + * of a programmatically initiated smooth scroll or a user initiated touch scroll. + * If you override this method you must call through to the superclass implementation + * (e.g. super.onPageScrolled(position, offset, offsetPixels)) before onPageScrolled + * returns. + * + * @param position Position index of the first page currently being displayed. + * Page position+1 will be visible if positionOffset is nonzero. + * @param offset Value from [0, 1) indicating the offset from the page at position. + * @param offsetPixels Value in pixels indicating the offset from position. + */ + + protected void onPageScrolledHorizontal(int position, float offset, int offsetPixels) { + // Offset any decor views if needed - keep them on-screen at all times. + + if (mDecorChildCount > 0) { + final int scrollX = getScrollX(); + int paddingLeft = getPaddingLeft(); + int paddingRight = getPaddingRight(); + final int width = getWidth(); + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + if (!lp.isDecor) continue; + + final int hgrav = lp.gravity & Gravity.HORIZONTAL_GRAVITY_MASK; + int childLeft = 0; + switch (hgrav) { + default: + childLeft = paddingLeft; + break; + case Gravity.LEFT: + childLeft = paddingLeft; + paddingLeft += child.getWidth(); + break; + case Gravity.CENTER_HORIZONTAL: + childLeft = Math.max((width - child.getMeasuredWidth()) / 2, + paddingLeft); + break; + case Gravity.RIGHT: + childLeft = width - paddingRight - child.getMeasuredWidth(); + paddingRight += child.getMeasuredWidth(); + break; + } + childLeft += scrollX; + final int childOffset = childLeft - child.getLeft(); + if (childOffset != 0) { + child.offsetLeftAndRight(childOffset); + } + } + } + + dispatchOnPageScrolled(position, offset, offsetPixels); + + if (mPageTransformer != null) { + final int scrollX = getScrollX(); + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + if (lp.isDecor) continue; + // TODO: 2017/2/11 + final float transformPos = (float) (child.getLeft() - scrollX) / getClientWidth(); + mPageTransformer.transformPage(child, transformPos); + } + } + mCalledSuper = true; + } + + /** + * This method will be invoked when the current page is scrolled, either as part + * of a programmatically initiated smooth scroll or a user initiated touch scroll. + * If you override this method you must call through to the superclass implementation + * (e.g. super.onPageScrolled(position, offset, offsetPixels)) before onPageScrolled + * returns. + * + * @param position Position index of the first page currently being displayed. + * Page position+1 will be visible if positionOffset is nonzero. + * @param offset Value from [0, 1) indicating the offset from the page at position. + * @param offsetPixels Value in pixels indicating the offset from position. + */ + + protected void onPageScrolledVertical(int position, float offset, int offsetPixels) { + // Offset any decor views if needed - keep them on-screen at all times. + + if (mDecorChildCount > 0) { + final int scrollY = getScrollY(); + int paddingTop = getPaddingTop(); + int paddingBottom = getPaddingBottom(); + final int height = getHeight(); + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + if (!lp.isDecor) continue; + + final int vgrav = lp.gravity & Gravity.VERTICAL_GRAVITY_MASK; + int childTop = 0; + switch (vgrav) { + default: + childTop = paddingTop; + break; + case Gravity.TOP: + childTop = paddingTop; + paddingTop += child.getHeight(); + break; + case Gravity.CENTER_VERTICAL: + childTop = Math.max((height - child.getMeasuredHeight()) / 2, + paddingTop); + break; + case Gravity.BOTTOM: + childTop = height - paddingTop - child.getMeasuredHeight(); + paddingTop += child.getMeasuredHeight(); + break; + } + childTop += scrollY; + + final int childOffset = childTop - child.getTop(); + if (childOffset != 0) { + child.offsetTopAndBottom(childOffset); + } + } + } + + dispatchOnPageScrolled(position, offset, offsetPixels); + + if (mPageTransformer != null) { + final int scrollY = getScrollY(); + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + if (lp.isDecor) continue; + final float transformPos = (float) (child.getTop() - scrollY) / getClientHeight(); + mPageTransformer.transformPage(child, transformPos); + } + } + mCalledSuper = true; + } + + + private void dispatchOnPageScrolled(int position, float offset, int offsetPixels) { + int newPosition = isCirculatory ? position % mAdapter.getCount() : position; + if (mOnPageChangeListener != null) { + mOnPageChangeListener.onPageScrolled(newPosition, offset, offsetPixels); + } + if (mOnPageChangeListeners != null) { + for (int i = 0, z = mOnPageChangeListeners.size(); i < z; i++) { + OnPageChangeListener listener = mOnPageChangeListeners.get(i); + if (listener != null) { + listener.onPageScrolled(newPosition, offset, offsetPixels); + } + } + } + if (mInternalPageChangeListener != null) { + mInternalPageChangeListener.onPageScrolled(newPosition, offset, offsetPixels); + } + } + + private void dispatchOnPageSelected(int position) { + int newPosition = isCirculatory ? position % mAdapter.getCount() : position; + if (mOnPageChangeListener != null) { + mOnPageChangeListener.onPageSelected(newPosition); + } + if (mOnPageChangeListeners != null) { + for (int i = 0, z = mOnPageChangeListeners.size(); i < z; i++) { + OnPageChangeListener listener = mOnPageChangeListeners.get(i); + if (listener != null) { + listener.onPageSelected(newPosition); + } + } + } + if (mInternalPageChangeListener != null) { + mInternalPageChangeListener.onPageSelected(newPosition); + } + } + + private void dispatchOnScrollStateChanged(int state) { + if (mOnPageChangeListener != null) { + mOnPageChangeListener.onPageScrollStateChanged(state); + } + if (mOnPageChangeListeners != null) { + for (int i = 0, z = mOnPageChangeListeners.size(); i < z; i++) { + OnPageChangeListener listener = mOnPageChangeListeners.get(i); + if (listener != null) { + listener.onPageScrollStateChanged(state); + } + } + } + if (mInternalPageChangeListener != null) { + mInternalPageChangeListener.onPageScrollStateChanged(state); + } + } + + + private void completeScrollHorizontal(boolean postEvents) { + boolean needPopulate = mScrollState == SCROLL_STATE_SETTLING; + if (needPopulate) { + setScrollingCacheEnabled(false); + boolean wasScrolling = !mScroller.isFinished(); + if (wasScrolling) { + mScroller.abortAnimation(); + + int oldX = getScrollX(); + int oldY = getScrollY(); + int x = mScroller.getCurrX(); + int y = mScroller.getCurrY(); + if (oldX != x || oldY != y) { + scrollTo(x, y); + if (x != oldX) { + pageScrolledHorizontal(x); + } + } + } + } + mPopulatePending = false; + + for (int i = 0; i < mItems.size(); i++) { + ItemInfo ii = mItems.get(i); + if (ii.scrolling) { + needPopulate = true; + ii.scrolling = false; + } + } + if (needPopulate) { + if (postEvents) { + ViewCompat.postOnAnimation(this, mEndScrollRunnable); + } else { + mEndScrollRunnable.run(); + } + } + } + + private void completeScrollVertical(boolean postEvents) { + boolean needPopulate = mScrollState == SCROLL_STATE_SETTLING; + if (needPopulate) { + // Done with scroll, no longer want to cache view drawing. + setScrollingCacheEnabled(false); + boolean wasScrolling = !mScroller.isFinished(); + if (wasScrolling) { + mScroller.abortAnimation(); + + int oldX = getScrollX(); + int oldY = getScrollY(); + int x = mScroller.getCurrX(); + int y = mScroller.getCurrY(); + if (oldX != x || oldY != y) { + scrollTo(x, y); + if (y != oldY) { + pageScrolledVertical(y); + } + } + } + } + mPopulatePending = false; + + for (int i = 0; i < mItems.size(); i++) { + ItemInfo ii = mItems.get(i); + if (ii.scrolling) { + needPopulate = true; + ii.scrolling = false; + } + } + if (needPopulate) { + if (postEvents) { + ViewCompat.postOnAnimation(this, mEndScrollRunnable); + } else { + mEndScrollRunnable.run(); + } + } + } + + private boolean isGutterDragHorizontal(float x, float dx) { + return (x < mGutterSize && dx > 0) || (x > getWidth() - mGutterSize && dx < 0); + } + + private boolean isGutterDragVertical(float y, float dy) { + return (y < mGutterSize && dy > 0) || (y > getHeight() - mGutterSize && dy < 0); + } + + private void enableLayers(boolean enable) { + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final int layerType = enable + ? ViewCompat.LAYER_TYPE_HARDWARE : ViewCompat.LAYER_TYPE_NONE; + ViewCompat.setLayerType(getChildAt(i), layerType, null); + } + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + /* + * This method JUST determines whether we want to intercept the motion. + * If we return true, onMotionEvent will be called and we do the actual + * scrolling there. + */ + + final int action = ev.getAction() & MotionEventCompat.ACTION_MASK; + + // Always take care of the touch gesture being complete. + if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) { + // Release the drag. + if (DEBUG) Log.v(TAG, "Intercept done!"); + resetTouch(); + return false; + } + + // Nothing more to do here if we have decided whether or not we + // are dragging. + if (action != MotionEvent.ACTION_DOWN) { + if (mIsBeingDragged) { + if (DEBUG) Log.v(TAG, "Intercept returning true!"); + return true; + } + if (mIsUnableToDrag) { + if (DEBUG) Log.v(TAG, "Intercept returning false!"); + return false; + } + } + + switch (action) { + case MotionEvent.ACTION_MOVE: { + /* + * mIsBeingDragged == false, otherwise the shortcut would have caught it. Check + * whether the user has moved far enough from his original down touch. + */ + + /* + * Locally do absolute value. mLastMotionY is set to the y value + * of the down event. + */ + + final int activePointerId = mActivePointerId; + if (activePointerId == INVALID_POINTER) { + // If we don't have a valid id, the touch down wasn't on content. + break; + } + // + final int pointerIndex = ev.findPointerIndex(activePointerId); + final float x = ev.getX(pointerIndex); + final float dx = isVertical ? x - mInitialMotionX : x - mLastMotionX; + final float xDiff = Math.abs(dx); + final float y = ev.getY(pointerIndex); + + final float dy = isVertical ? y - mLastMotionY : y - mInitialMotionY; + final float yDiff = Math.abs(dy); + + if (DEBUG) Log.v(TAG, "Moved x to " + x + "," + y + " diff=" + xDiff + "," + yDiff); + + if (!isVertical && dx != 0 && !isGutterDragHorizontal(mLastMotionX, dx) + && canScrollHorizontal(this, false, (int) dx, (int) x, (int) y)) { + // Nested view has scrollable area under this point. Let it be handled there. + mLastMotionX = x; + mLastMotionY = y; + mIsUnableToDrag = true; + return false; + } else if (isVertical && dy != 0 && isGutterDragVertical(mLastMotionY, dy) + && canScrollVertical(this, false, (int) dy, (int) x, (int) y)) { + mLastMotionX = x; + mLastMotionY = y; + mIsUnableToDrag = true; + return false; + } + + if (!isVertical && xDiff > mTouchSlop && xDiff * 0.5f > yDiff) { + mIsBeingDragged = true; + requestParentDisallowInterceptTouchEvent(true); + setScrollState(SCROLL_STATE_DRAGGING); + mLastMotionX = dx > 0 + ? mInitialMotionX + mTouchSlop : mInitialMotionX - mTouchSlop; + mLastMotionY = y; + setScrollingCacheEnabled(true); + } else if (!isVertical && yDiff > mTouchSlop) { + // The finger has moved enough in the vertical + // direction to be counted as a drag... abort + // any attempt to drag horizontally, to work correctly + // with children that have scrolling containers. + mIsUnableToDrag = true; + } else if (isVertical && yDiff > mTouchSlop && yDiff * 0.5f > xDiff) { + mIsBeingDragged = true; + requestParentDisallowInterceptTouchEvent(true); + setScrollState(SCROLL_STATE_DRAGGING); + mLastMotionY = dy > 0 + ? mInitialMotionY + mTouchSlop : mInitialMotionY - mTouchSlop; + mLastMotionX = x; + setScrollingCacheEnabled(true); + } else if (isVertical && xDiff > mTouchSlop) { + mIsUnableToDrag = true; + } + + if (mIsBeingDragged) { + // Scroll to follow the motion event + if (isVertical && performDragVertical(y)) { + ViewCompat.postInvalidateOnAnimation(this); + } else if (!isVertical && performDragHorizontal(x)) { + ViewCompat.postInvalidateOnAnimation(this); + } + } + break; + } + + case MotionEvent.ACTION_DOWN: { + /* + * Remember location of down touch. + * ACTION_DOWN always refers to pointer index 0. + */ + mLastMotionX = mInitialMotionX = ev.getX(); + mLastMotionY = mInitialMotionY = ev.getY(); + mActivePointerId = ev.getPointerId(0); + mIsUnableToDrag = false; + mIsScrollStarted = true; + + mScroller.computeScrollOffset(); + if (!isVertical && mScrollState == SCROLL_STATE_SETTLING + && Math.abs(mScroller.getFinalX() - mScroller.getCurrX()) > mCloseEnough) { + // Let the user 'catch' the pager as it animates. + mScroller.abortAnimation(); + // + mPopulatePending = false; + if (isVertical) { + populateVertical(); + } else { + populateHorizontal(); + } + mIsBeingDragged = true; + requestParentDisallowInterceptTouchEvent(true); + setScrollState(SCROLL_STATE_DRAGGING); + } else if (!isVertical) { + completeScrollHorizontal(false); + mIsBeingDragged = false; + } else if (isVertical && mScrollState == SCROLL_STATE_SETTLING + && Math.abs(mScroller.getFinalY() - mScroller.getCurrY()) > mCloseEnough) { + // Let the user 'catch' the pager as it animates. + mScroller.abortAnimation(); + // + mPopulatePending = false; + if (isVertical) { + populateVertical(); + } else { + populateHorizontal(); + } + mIsBeingDragged = true; + requestParentDisallowInterceptTouchEvent(true); + setScrollState(SCROLL_STATE_DRAGGING); + } else if (isVertical) { + completeScrollVertical(false); + mIsBeingDragged = false; + } + + if (DEBUG) { + Log.v(TAG, "Down at " + mLastMotionX + "," + mLastMotionY + + " mIsBeingDragged=" + mIsBeingDragged + + "mIsUnableToDrag=" + mIsUnableToDrag); + } + break; + } + + case MotionEventCompat.ACTION_POINTER_UP: + if (!isVertical) { + onSecondaryPointerUpHorizontal(ev); + } else { + onSecondaryPointerUpVertical(ev); + } + break; + } + + if (mVelocityTracker == null) { + mVelocityTracker = VelocityTracker.obtain(); + } + mVelocityTracker.addMovement(ev); + + /* + * The only time we want to intercept motion events is if we are in the + * drag mode. + */ + return mIsBeingDragged; + } + + @Override + public boolean onTouchEvent(MotionEvent ev) { + if (mFakeDragging) { + // A fake drag is in progress already, ignore this real one + // but still eat the touch events. + // (It is likely that the user is multi-touching the screen.) + return true; + } + + if (ev.getAction() == MotionEvent.ACTION_DOWN && ev.getEdgeFlags() != 0) { + // Don't handle edge touches immediately -- they may actually belong to one of our + // descendants. + return false; + } + + if (mAdapter == null || getAdapterCount() == 0) { + // Nothing to present or scroll; nothing to touch. + return false; + } + + if (mVelocityTracker == null) { + mVelocityTracker = VelocityTracker.obtain(); + } + mVelocityTracker.addMovement(ev); + + final int action = ev.getAction(); + boolean needsInvalidate = false; + + switch (action & MotionEventCompat.ACTION_MASK) { + case MotionEvent.ACTION_DOWN: { + mScroller.abortAnimation(); + mPopulatePending = false; + if (isVertical) { + populateVertical(); + } else { + populateHorizontal(); + } + // Remember where the motion event started + mLastMotionX = mInitialMotionX = ev.getX(); + mLastMotionY = mInitialMotionY = ev.getY(); + mActivePointerId = ev.getPointerId(0); + break; + } + case MotionEvent.ACTION_MOVE: + if (!mIsBeingDragged) { + final int pointerIndex = ev.findPointerIndex(mActivePointerId); + if (pointerIndex == -1) { + // A child has consumed some touch events and put us into an inconsistent + // state. + needsInvalidate = resetTouch(); + break; + } + final float x = ev.getX(pointerIndex); + final float xDiff = Math.abs(x - mLastMotionX); + final float y = ev.getY(pointerIndex); + final float yDiff = Math.abs(y - mLastMotionY); + if (!isVertical && xDiff > mTouchSlop && xDiff > yDiff) { + mIsBeingDragged = true; + requestParentDisallowInterceptTouchEvent(true); + mLastMotionX = x - mInitialMotionX > 0 ? mInitialMotionX + mTouchSlop : + mInitialMotionX - mTouchSlop; + mLastMotionY = y; + setScrollState(SCROLL_STATE_DRAGGING); + setScrollingCacheEnabled(true); + + // Disallow Parent Intercept, just in case + ViewParent parent = getParent(); + if (parent != null) { + parent.requestDisallowInterceptTouchEvent(true); + } + } else if (isVertical && yDiff > mTouchSlop && yDiff > xDiff) { + mIsBeingDragged = true; + requestParentDisallowInterceptTouchEvent(true); + + mLastMotionY = y - mInitialMotionY > 0 ? mInitialMotionY + mTouchSlop : + mInitialMotionY - mTouchSlop; + mLastMotionX = x; + setScrollState(SCROLL_STATE_DRAGGING); + setScrollingCacheEnabled(true); + + // Disallow Parent Intercept, just in case + ViewParent parent = getParent(); + if (parent != null) { + parent.requestDisallowInterceptTouchEvent(true); + } + } + } + // Not else! Note that mIsBeingDragged can be set above. + if (!isVertical && mIsBeingDragged) { + // Scroll to follow the motion event + final int activePointerIndex = ev.findPointerIndex(mActivePointerId); + final float x = ev.getX(activePointerIndex); + needsInvalidate |= performDragHorizontal(x); + } else if (isVertical && mIsBeingDragged) { + // Scroll to follow the motion event + final int activePointerIndex = ev.findPointerIndex(mActivePointerId); + final float y = ev.getY(activePointerIndex); + needsInvalidate |= performDragVertical(y); + } + break; + case MotionEvent.ACTION_UP: + if (mIsBeingDragged) { + final VelocityTracker velocityTracker = mVelocityTracker; + velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity); + //initialVelocityX for horizontal + int initialVelocityX = (int) VelocityTrackerCompat.getXVelocity( + velocityTracker, mActivePointerId); + //initialVelocityY for vertical + int initialVelocityY = (int) VelocityTrackerCompat.getYVelocity( + velocityTracker, mActivePointerId); + mVelocityY = initialVelocityY; + mPopulatePending = true; + final int width = getClientWidth(); + final int height = getClientHeight(); + + final int scrollX = getScrollX(); + final int scrollY = getScrollY(); + + final ItemInfo iiHorizontal = infoForCurrentScrollPositionHorizontal(); + final ItemInfo iiVertical = infoForCurrentScrollPositionVertical(); + + final float marginOffsetHorizontal = (float) mPageMargin / width; + final float marginOffsetVertical = (float) mPageMargin / height; + final int currentPageHorizontal = iiHorizontal.position; + final int currentPageVertical = iiVertical.position; + + final float pageOffsetHorizontal = (((float) scrollX / width) - iiHorizontal.offset) + / (iiHorizontal.widthFactor + marginOffsetHorizontal); + final float pageOffsetVertical = (((float) scrollY / height) - iiVertical.offset) + / (iiVertical.widthFactor + marginOffsetVertical); + + final int activePointerIndex = ev.findPointerIndex(mActivePointerId); + final float x = ev.getX(activePointerIndex); + final float y = ev.getY(activePointerIndex); + + final int totalDeltaHorizontal = (int) (x - mInitialMotionX); + final int totalDeltaVertical = (int) (y - mInitialMotionY); + int nextPage = isVertical ? determineTargetPageVertical(currentPageVertical, pageOffsetVertical, initialVelocityY, totalDeltaVertical) + : determineTargetPageHorizontal(currentPageHorizontal, pageOffsetHorizontal, initialVelocityX, totalDeltaHorizontal); + if (!isVertical) { + setCurrentItemInternalHorizontal(nextPage, true, true, initialVelocityX); + } else { + //initialVelocityY>0 ==> swipe down ELSE swipe up + setCurrentItemInternalVertical(nextPage, true, true, initialVelocityY); + } + needsInvalidate = resetTouch(); + } + break; + case MotionEvent.ACTION_CANCEL: + if (!isVertical && mIsBeingDragged) { + scrollToItemHorizontal(mCurItem, true, 0, false); + } else if (isVertical && mIsBeingDragged) { + scrollToItemVertical(mCurItem, true, 0, false); + } + needsInvalidate = resetTouch(); + break; + case MotionEventCompat.ACTION_POINTER_DOWN: { + final int index = MotionEventCompat.getActionIndex(ev); + final float x = ev.getX(index); + final float y = ev.getY(index); + if (!isVertical) { + mLastMotionX = x; + } else { + mLastMotionY = y; + } + mActivePointerId = ev.getPointerId(index); + break; + } + case MotionEventCompat.ACTION_POINTER_UP: + if (!isVertical) { + onSecondaryPointerUpHorizontal(ev); + mLastMotionX = ev.getX(ev.findPointerIndex(mActivePointerId)); + } else { + onSecondaryPointerUpVertical(ev); + mLastMotionY = ev.getY(ev.findPointerIndex(mActivePointerId)); + } + break; + } + if (needsInvalidate) { + ViewCompat.postInvalidateOnAnimation(this); + } + return true; + } + + private boolean resetTouch() { + boolean needsInvalidate; + mActivePointerId = INVALID_POINTER; + endDrag(); + + needsInvalidate = isVertical ? mTopEdge.onRelease() | mBottomEdge.onRelease() : + mLeftEdge.onRelease() | mRightEdge.onRelease(); + return needsInvalidate; + } + + private void requestParentDisallowInterceptTouchEvent(boolean disallowIntercept) { + final ViewParent parent = getParent(); + if (parent != null) { + parent.requestDisallowInterceptTouchEvent(disallowIntercept); + } + } + + private boolean performDragHorizontal(float x) { + boolean needsInvalidate = false; + final float deltaX = mLastMotionX - x; + mLastMotionX = x; + + float oldScrollX = getScrollX(); + float scrollX = oldScrollX + deltaX; + final int width = getClientWidth(); + + float leftBound = width * mFirstOffset; + float rightBound = width * mLastOffset; + + boolean leftAbsolute = true; + boolean rightAbsolute = true; + + final ItemInfo firstItem = mItems.get(0); + final ItemInfo lastItem = mItems.get(mItems.size() - 1); + if (firstItem.position != 0) { + leftAbsolute = false; + leftBound = firstItem.offset * width; + } + + if (lastItem.position != getAdapterCount() - 1) { + rightAbsolute = false; + rightBound = lastItem.offset * width; + } + + if (scrollX < leftBound) { + if (leftAbsolute) { + float over = leftBound - scrollX; + needsInvalidate = mLeftEdge.onPull(Math.abs(over) / width); + } + scrollX = leftBound; + } else if (scrollX > rightBound) { + if (rightAbsolute) { + float over = scrollX - rightBound; + needsInvalidate = mRightEdge.onPull(Math.abs(over) / width); + } + scrollX = rightBound; + } + // Don't lose the rounded component + mLastMotionX += scrollX - (int) scrollX; + scrollTo((int) scrollX, getScrollY()); + pageScrolledHorizontal((int) scrollX); + return needsInvalidate; + } + + private boolean performDragVertical(float y) { + boolean needsInvalidate = false; + + final float deltaY = mLastMotionY - y; + mLastMotionY = y; + + float oldScrollY = getScrollY(); + float scrollY = oldScrollY + deltaY; + final int height = getClientHeight(); + + float topBound = height * mFirstOffset; + float bottomBound = height * mLastOffset; + + boolean topAbsolute = true; + boolean bottomAbsolute = true; + + final ItemInfo firstItem = mItems.get(0); + final ItemInfo lastItem = mItems.get(mItems.size() - 1); + if (firstItem.position != 0) { + topAbsolute = false; + topBound = firstItem.offset * height; + } + + if (lastItem.position != getAdapterCount() - 1) { + bottomAbsolute = false; + bottomBound = lastItem.offset * height; + } + + if (scrollY < topBound) { + if (topAbsolute) { + float over = topBound - scrollY; + needsInvalidate = mTopEdge.onPull(Math.abs(over) / height); + } + scrollY = topBound; + } else if (scrollY > bottomBound) { + if (bottomAbsolute) { + float over = scrollY - bottomBound; + needsInvalidate = mBottomEdge.onPull(Math.abs(over) / height); + } + scrollY = bottomBound; + } + // Don't lose the rounded component + mLastMotionY += scrollY - (int) scrollY; + scrollTo(getScrollX(), (int) scrollY); + pageScrolledVertical((int) scrollY); + return needsInvalidate; + } + + /** + * @return Info about the page at the current scroll position. + * This can be synthetic for a missing middle page; the 'object' field can be null. + */ + + private ItemInfo infoForCurrentScrollPositionHorizontal() { + final int width = getClientWidth(); + final float scrollOffset = width > 0 ? (float) getScrollX() / width : 0; + final float marginOffset = width > 0 ? (float) mPageMargin / width : 0; + + int lastPos = -1; + float lastOffset = 0.f; + float lastWidth = 0.f; + boolean first = true; + + ItemInfo lastItem = null; + for (int i = 0; i < mItems.size(); i++) { + ItemInfo ii = mItems.get(i); + float offset; + + + if (!first && ii.position != lastPos + 1) { + // Create a synthetic item for a missing page. + ii = mTempItem; + ii.offset = lastOffset + lastWidth + marginOffset; + ii.position = lastPos + 1; + ii.widthFactor = mAdapter.getPageWidth(ii.position); + i--; + } + offset = ii.offset; + + final float leftBound = offset; + + final float rightBound = offset + ii.widthFactor + marginOffset; + + if (first || scrollOffset >= leftBound) { + if (scrollOffset < rightBound || i == mItems.size() - 1) { + return ii; + } + } else { + return lastItem; + } + + first = false; + lastPos = ii.position; + lastOffset = offset; + lastWidth = ii.widthFactor; + lastItem = ii; + + } + return lastItem; + } + + private ItemInfo infoForCurrentScrollPositionVertical() { + final int height = getClientHeight(); + + final float scrollOffset = height > 0 ? (float) getScrollY() / height : 0; + final float marginOffset = height > 0 ? (float) mPageMargin / height : 0; + + int lastPos = -1; + float lastOffset = 0.f; + float lastHeight = 0.f; + boolean first = true; + + ItemInfo lastItem = null; + for (int i = 0; i < mItems.size(); i++) { + ItemInfo ii = mItems.get(i); + float offset; + + + if (!first && ii.position != lastPos + 1) { + // Create a synthetic item for a missing page. + ii = mTempItem; + ii.offset = lastOffset + lastHeight + marginOffset; + ii.position = lastPos + 1; + ii.widthFactor = mAdapter.getPageWidth(ii.position); + i--; + } + + offset = ii.offset; + + final float topBound = offset; + + final float bottomBound = offset + ii.widthFactor + marginOffset; + + if (first || scrollOffset >= topBound) { + if (scrollOffset < bottomBound || i == mItems.size() - 1) { + return ii; + } + } else { + return lastItem; + } + + first = false; + lastPos = ii.position; + lastOffset = offset; + lastHeight = ii.widthFactor; + lastItem = ii; + } + return lastItem; + } + + private int determineTargetPageHorizontal(int currentPage, float pageOffset, int velocity, int deltaX) { + int targetPage; + if (Math.abs(deltaX) > mFlingDistance && Math.abs(velocity) > mMinimumVelocity) { + targetPage = velocity > 0 ? currentPage : currentPage + 1; + } else { + final float truncator = currentPage >= mCurItem ? 0.4f : 0.6f; + targetPage = currentPage + (int) (pageOffset + truncator); + } + if (mItems.size() > 0) { + final YViewPager.ItemInfo firstItem = mItems.get(0); + final YViewPager.ItemInfo lastItem = mItems.get(mItems.size() - 1); + // Only let the user target pages we have items for + targetPage = Math.max(firstItem.position, Math.min(targetPage, lastItem.position)); + } + return targetPage; + } + + private int determineTargetPageVertical(int currentPage, float pageOffset, int velocity, int deltaY) { + int targetPage; + if (Math.abs(deltaY) > mFlingDistance && Math.abs(velocity) > mMinimumVelocity) { + targetPage = velocity > 0 ? currentPage : currentPage + 1; + } else { + final float truncator = currentPage >= mCurItem ? 0.2f : 0.6f; + targetPage = currentPage + (int) (pageOffset + truncator); + } + if (mItems.size() > 0) { + final ItemInfo firstItem = mItems.get(0); + final ItemInfo lastItem = mItems.get(mItems.size() - 1); + // Only let the user target pages we have items for + targetPage = Math.max(firstItem.position, Math.min(targetPage, lastItem.position)); + } + return targetPage; + } + + @Override + public void draw(Canvas canvas) { + super.draw(canvas); + boolean needsInvalidate = false; + + final int overScrollMode = getOverScrollMode(); + if (overScrollMode == View.OVER_SCROLL_ALWAYS + || (overScrollMode == View.OVER_SCROLL_IF_CONTENT_SCROLLS + && mAdapter != null && getAdapterCount() > 1)) { + if (!isVertical && !mLeftEdge.isFinished()) { + final int restoreCount = canvas.save(); + final int height = getHeight() - getPaddingTop() - getPaddingBottom(); + final int width = getWidth(); + canvas.rotate(270); + canvas.translate(-height + getPaddingTop(), mFirstOffset * width); + mLeftEdge.setSize(height, width); + needsInvalidate |= mLeftEdge.draw(canvas); + canvas.restoreToCount(restoreCount); + } else if (isVertical && !mTopEdge.isFinished()) { + final int restoreCount = canvas.save(); + final int height = getHeight(); + final int width = getWidth() - getPaddingLeft() - getPaddingRight(); + canvas.translate(getPaddingLeft(), mFirstOffset * height); + mTopEdge.setSize(width, height); + needsInvalidate |= mTopEdge.draw(canvas); + canvas.restoreToCount(restoreCount); + } + if (!isVertical && !mRightEdge.isFinished()) { + final int restoreCount = canvas.save(); + final int width = getWidth(); + final int height = getHeight() - getPaddingTop() - getPaddingBottom(); + + canvas.rotate(90); + canvas.translate(-getPaddingTop(), -(mLastOffset + 1) * width); + mRightEdge.setSize(height, width); + needsInvalidate |= mRightEdge.draw(canvas); + canvas.restoreToCount(restoreCount); + } else if (isVertical && !mBottomEdge.isFinished()) { + final int restoreCount = canvas.save(); + final int width = getWidth() - getPaddingLeft() - getPaddingRight(); + final int height = getHeight(); + canvas.rotate(180, width, 0); + canvas.translate(width - getPaddingLeft(), -(mLastOffset + 1) * height); + mBottomEdge.setSize(width, height); + needsInvalidate |= mBottomEdge.draw(canvas); + canvas.restoreToCount(restoreCount); + } + } else if (!isVertical) { + mLeftEdge.finish(); + mRightEdge.finish(); + } else if (isVertical) { + mTopEdge.finish(); + mBottomEdge.finish(); + } + + if (needsInvalidate) { + // Keep animating + ViewCompat.postInvalidateOnAnimation(this); + } + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + + // Draw the margin drawable between pages if needed. + if (mPageMargin > 0 && mMarginDrawable != null && mItems.size() > 0 && mAdapter != null) { + final int scrollX = getScrollX(); + final int scrollY = getScrollY(); + + final int width = getWidth(); + final int height = getHeight(); + + final float marginOffsetHorizontal = (float) mPageMargin / width; + final float marginOffsetVertical = (float) mPageMargin / height; + + int itemIndex = 0; + ItemInfo ii = mItems.get(0); + float offset = ii.offset; + final int itemCount = mItems.size(); + final int firstPos = ii.position; + final int lastPos = mItems.get(itemCount - 1).position; + for (int pos = firstPos; pos < lastPos; pos++) { + while (pos > ii.position && itemIndex < itemCount) { + ii = mItems.get(++itemIndex); + } + + float drawAt = 0; + if (!isVertical && pos == ii.position) { + drawAt = (ii.offset + ii.widthFactor) * width; + offset = ii.offset + ii.widthFactor + marginOffsetHorizontal; + } else if (!isVertical) { + float widthFactor = mAdapter.getPageWidth(pos); + drawAt = (offset + widthFactor) * width; + offset += widthFactor + marginOffsetHorizontal; + } else if (isVertical && pos == ii.position) { + drawAt = (ii.offset + ii.widthFactor) * height; + offset = ii.offset + ii.widthFactor + marginOffsetVertical; + } else if (isVertical) { + float widthFactor = mAdapter.getPageWidth(pos); + drawAt = (offset + widthFactor) * height; + offset += widthFactor + marginOffsetVertical; + } + + if (!isVertical && drawAt + mPageMargin > scrollX) { + mMarginDrawable.setBounds(Math.round(drawAt), mTopPageBounds, + Math.round(drawAt + mPageMargin), mBottomPageBounds); + mMarginDrawable.draw(canvas); + } else if (isVertical && drawAt + mPageMargin > scrollY) { + mMarginDrawable.setBounds(Math.round(drawAt), mTopPageBounds, + Math.round(drawAt + mPageMargin), mRightPageBounds); + mMarginDrawable.draw(canvas); + } + + if (!isVertical && drawAt > scrollX + width) { + break; // No more visible, no sense in continuing + } else if (isVertical && drawAt > scrollY + height) { + break; + } + } + } + } + + + public boolean beginFakeDrag() { + if (mIsBeingDragged) { + return false; + } + mFakeDragging = true; + setScrollState(SCROLL_STATE_DRAGGING); + mInitialMotionX = mLastMotionX = 0; + if (mVelocityTracker == null) { + mVelocityTracker = VelocityTracker.obtain(); + } else { + mVelocityTracker.clear(); + } + final long time = SystemClock.uptimeMillis(); + final MotionEvent ev = MotionEvent.obtain(time, time, MotionEvent.ACTION_DOWN, 0, 0, 0); + mVelocityTracker.addMovement(ev); + ev.recycle(); + mFakeDragBeginTime = time; + return true; + } + + /** + * End a fake drag of the pager. + * + * @see #beginFakeDrag() + * @see #fakeDragBy(float) + */ +// public void endFakeDrag() { +// if (!mFakeDragging) { +// throw new IllegalStateException("No fake drag in progress. Call beginFakeDrag first."); +// } +// +// if (mAdapter != null) { +// final VelocityTracker velocityTracker = mVelocityTracker; +// velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity); +// int initialVelocity = (int) VelocityTrackerCompat.getXVelocity( +// velocityTracker, mActivePointerId); +// mPopulatePending = true; +// final int width = getClientWidth(); +// final int scrollX = getScrollX(); +// final YViewPager.ItemInfo ii = infoForCurrentScrollPosition(); +// final int currentPage = ii.position; +// final float pageOffset = (((float) scrollX / width) - ii.offset) / ii.widthFactor; +// final int totalDelta = (int) (mLastMotionX - mInitialMotionX); +// int nextPage = determineTargetPage(currentPage, pageOffset, initialVelocity, +// totalDelta); +// setCurrentItemInternal(nextPage, true, true, initialVelocity); +// } +// endDrag(); +// +// mFakeDragging = false; +// } + + /** + * Fake drag by an offset in pixels. You must have called {@link #beginFakeDrag()} first. + * + * @param xOffset Offset in pixels to drag by. + * @see #beginFakeDrag() + * @see #endFakeDrag() + */ +// public void fakeDragBy(float xOffset) { +// if (!mFakeDragging) { +// throw new IllegalStateException("No fake drag in progress. Call beginFakeDrag first."); +// } +// +// if (mAdapter == null) { +// return; +// } +// +// mLastMotionX += xOffset; +// +// float oldScrollX = getScrollX(); +// float scrollX = oldScrollX - xOffset; +// final int width = getClientWidth(); +// +// float leftBound = width * mFirstOffset; +// float rightBound = width * mLastOffset; +// +// final YViewPager.ItemInfo firstItem = mItems.get(0); +// final YViewPager.ItemInfo lastItem = mItems.get(mItems.size() - 1); +// if (firstItem.position != 0) { +// leftBound = firstItem.offset * width; +// } +// if (lastItem.position != mAdapter.getCount() - 1) { +// rightBound = lastItem.offset * width; +// } +// +// if (scrollX < leftBound) { +// scrollX = leftBound; +// } else if (scrollX > rightBound) { +// scrollX = rightBound; +// } +// // Don't lose the rounded component +// mLastMotionX += scrollX - (int) scrollX; +// scrollTo((int) scrollX, getScrollY()); +// pageScrolled((int) scrollX); +// +// // Synthesize an event for the VelocityTracker. +// final long time = SystemClock.uptimeMillis(); +// final MotionEvent ev = MotionEvent.obtain(mFakeDragBeginTime, time, MotionEvent.ACTION_MOVE, +// mLastMotionX, 0, 0); +// mVelocityTracker.addMovement(ev); +// ev.recycle(); +// } + + /** + * Returns true if a fake drag is in progress. + * + * @return true if currently in a fake drag, false otherwise. + * @see #beginFakeDrag() + */ + public boolean isFakeDragging() { + return mFakeDragging; + } + + private void onSecondaryPointerUpHorizontal(MotionEvent ev) { + final int pointerIndex = MotionEventCompat.getActionIndex(ev); + final int pointerId = ev.getPointerId(pointerIndex); + if (pointerId == mActivePointerId) { + // This was our active pointer going up. Choose a new + // active pointer and adjust accordingly. + final int newPointerIndex = pointerIndex == 0 ? 1 : 0; + mLastMotionX = ev.getX(newPointerIndex); + mActivePointerId = ev.getPointerId(newPointerIndex); + if (mVelocityTracker != null) { + mVelocityTracker.clear(); + } + } + } + + private void onSecondaryPointerUpVertical(MotionEvent ev) { + final int pointerIndex = MotionEventCompat.getActionIndex(ev); + final int pointerId = ev.getPointerId(pointerIndex); + if (pointerId == mActivePointerId) { + // This was our active pointer going up. Choose a new + // active pointer and adjust accordingly. + final int newPointerIndex = pointerIndex == 0 ? 1 : 0; + mLastMotionY = ev.getY(newPointerIndex); + mActivePointerId = ev.getPointerId(newPointerIndex); + if (mVelocityTracker != null) { + mVelocityTracker.clear(); + } + } + } + + private void endDrag() { + mIsBeingDragged = false; + mIsUnableToDrag = false; + + if (mVelocityTracker != null) { + mVelocityTracker.recycle(); + mVelocityTracker = null; + } + } + + private void setScrollingCacheEnabled(boolean enabled) { + if (mScrollingCacheEnabled != enabled) { + mScrollingCacheEnabled = enabled; + if (USE_CACHE) { + final int size = getChildCount(); + for (int i = 0; i < size; ++i) { + final View child = getChildAt(i); + if (child.getVisibility() != GONE) { + child.setDrawingCacheEnabled(enabled); + } + } + } + } + } + + /** + * Check if this ViewPager can be scrolled horizontally in a certain direction. + * + * @param direction Negative to check scrolling left, positive to check scrolling right. + * @return Whether this ViewPager can be scrolled in the specified direction. It will always + * return false if the specified direction is 0. + */ + public boolean canScrollHorizontally(int direction) { + if (mAdapter == null) { + return false; + } + + final int width = getClientWidth(); + final int scrollX = getScrollX(); + if (direction < 0) { + return (scrollX > (int) (width * mFirstOffset)); + } else if (direction > 0) { + return (scrollX < (int) (width * mLastOffset)); + } else { + return false; + } + } + + /** + * Tests scrollability within child views of v given a delta of dx. + * + * @param v View to test for horizontal scrollability + * @param checkV Whether the view v passed should itself be checked for scrollability (true), + * or just its children (false). + * @param dx Delta scrolled in pixels + * @param x X coordinate of the active touch point + * @param y Y coordinate of the active touch point + * @return true if child views of v can be scrolled by delta of dx. + */ + protected boolean canScrollHorizontal(View v, boolean checkV, int dx, int x, int y) { + if (v instanceof ViewGroup) { + final ViewGroup group = (ViewGroup) v; + final int scrollX = v.getScrollX(); + final int scrollY = v.getScrollY(); + final int count = group.getChildCount(); + for (int i = count - 1; i >= 0; i--) { + // TODO: Add versioned support here for transformed views. + final View child = group.getChildAt(i); + if (x + scrollX >= child.getLeft() && x + scrollX < child.getRight() + && y + scrollY >= child.getTop() && y + scrollY < child.getBottom() + && canScrollHorizontal(child, true, dx, x + scrollX - child.getLeft(), + y + scrollY - child.getTop())) { + return true; + } + } + } + return checkV && ViewCompat.canScrollHorizontally(v, -dx); + } + + /** + * Tests scrollability within child views of v given a delta of dx. + * + * @param v View to test for horizontal scrollability + * @param checkV Whether the view v passed should itself be checked for scrollability (true), + * or just its children (false). + * @param dy Delta scrolled in pixels + * @param x X coordinate of the active touch point + * @param y Y coordinate of the active touch point + * @return true if child views of v can be scrolled by delta of dx. + */ + protected boolean canScrollVertical(View v, boolean checkV, int dy, int x, int y) { + if (v instanceof ViewGroup) { + final ViewGroup group = (ViewGroup) v; + final int scrollX = v.getScrollX(); + final int scrollY = v.getScrollY(); + final int count = group.getChildCount(); + // Count backwards - let topmost views consume scroll distance first. + for (int i = count - 1; i >= 0; i--) { + // TODO: Add versioned support here for transformed views. + // This will not work for transformed views in Honeycomb+ + final View child = group.getChildAt(i); + + if (x + scrollX >= child.getLeft() && x + scrollX < child.getRight() + && y + scrollY >= child.getTop() && y + scrollY < child.getBottom() + && canScrollVertical(child, true, dy, x + scrollX - child.getLeft(), + y + scrollY - child.getTop())) { + return true; + } + } + } + return checkV && ViewCompat.canScrollVertically(v, -dy); + } + + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + // Let the focused view and/or our descendants get the key first + return super.dispatchKeyEvent(event) || executeKeyEvent(event); + } + + /** + * You can call this function yourself to have the scroll view perform + * scrolling from a key event, just as if the event had been dispatched to + * it by the view hierarchy. + * + * @param event The key event to execute. + * @return Return true if the event was handled, else false. + */ + public boolean executeKeyEvent(KeyEvent event) { + boolean handled = false; + if (event.getAction() == KeyEvent.ACTION_DOWN) { + switch (event.getKeyCode()) { + case KeyEvent.KEYCODE_DPAD_LEFT: + handled = arrowScroll(FOCUS_LEFT); + break; + case KeyEvent.KEYCODE_DPAD_RIGHT: + handled = arrowScroll(FOCUS_RIGHT); + break; + case KeyEvent.KEYCODE_TAB: + if (Build.VERSION.SDK_INT >= 11) { + // The focus finder had a bug handling FOCUS_FORWARD and FOCUS_BACKWARD + // before Android 3.0. Ignore the tab key on those devices. + if (event.hasNoModifiers()) { + handled = arrowScroll(FOCUS_FORWARD); + } else if (event.hasModifiers(KeyEvent.META_SHIFT_ON)) { + handled = arrowScroll(FOCUS_BACKWARD); + } + } + break; + } + } + return handled; + } + + /** + * Handle scrolling in response to a left or right arrow click. + * + * @param direction The direction corresponding to the arrow key that was pressed. It should be + * either {@link View#FOCUS_LEFT} or {@link View#FOCUS_RIGHT}. + * @return Whether the scrolling was handled successfully. + */ + public boolean arrowScroll(int direction) { + View currentFocused = findFocus(); + if (currentFocused == this) { + currentFocused = null; + } else if (currentFocused != null) { + boolean isChild = false; + for (ViewParent parent = currentFocused.getParent(); parent instanceof ViewGroup; + parent = parent.getParent()) { + if (parent == this) { + isChild = true; + break; + } + } + if (!isChild) { + // This would cause the focus search down below to fail in fun ways. + final StringBuilder sb = new StringBuilder(); + sb.append(currentFocused.getClass().getSimpleName()); + for (ViewParent parent = currentFocused.getParent(); parent instanceof ViewGroup; + parent = parent.getParent()) { + sb.append(" => ").append(parent.getClass().getSimpleName()); + } + Log.e(TAG, "arrowScroll tried to find focus based on non-child " + + "current focused view " + sb.toString()); + currentFocused = null; + } + } + + boolean handled = false; + + View nextFocused = FocusFinder.getInstance().findNextFocus(this, currentFocused, + direction); + if (nextFocused != null && nextFocused != currentFocused) { + if (direction == View.FOCUS_LEFT) { + // If there is nothing to the left, or this is causing us to + // jump to the right, then what we really want to do is page left. + final int nextLeft = getChildRectInPagerCoordinates(mTempRect, nextFocused).left; + final int currLeft = getChildRectInPagerCoordinates(mTempRect, currentFocused).left; + if (currentFocused != null && nextLeft >= currLeft) { + handled = pageLeft(); + } else { + handled = nextFocused.requestFocus(); + } + } else if (direction == View.FOCUS_RIGHT) { + // If there is nothing to the right, or this is causing us to + // jump to the left, then what we really want to do is page right. + final int nextLeft = getChildRectInPagerCoordinates(mTempRect, nextFocused).left; + final int currLeft = getChildRectInPagerCoordinates(mTempRect, currentFocused).left; + if (currentFocused != null && nextLeft <= currLeft) { + handled = pageRight(); + } else { + handled = nextFocused.requestFocus(); + } + } + } else if (direction == FOCUS_LEFT || direction == FOCUS_BACKWARD) { + // Trying to move left and nothing there; try to page. + handled = pageLeft(); + } else if (direction == FOCUS_RIGHT || direction == FOCUS_FORWARD) { + // Trying to move right and nothing there; try to page. + handled = pageRight(); + } + if (handled) { + playSoundEffect(SoundEffectConstants.getContantForFocusDirection(direction)); + } + return handled; + } + + private Rect getChildRectInPagerCoordinates(Rect outRect, View child) { + if (outRect == null) { + outRect = new Rect(); + } + if (child == null) { + outRect.set(0, 0, 0, 0); + return outRect; + } + outRect.left = child.getLeft(); + outRect.right = child.getRight(); + outRect.top = child.getTop(); + outRect.bottom = child.getBottom(); + + ViewParent parent = child.getParent(); + while (parent instanceof ViewGroup && parent != this) { + final ViewGroup group = (ViewGroup) parent; + outRect.left += group.getLeft(); + outRect.right += group.getRight(); + outRect.top += group.getTop(); + outRect.bottom += group.getBottom(); + + parent = group.getParent(); + } + return outRect; + } + + boolean pageLeft() { + if (mCurItem > 0) { + setCurrentItem(mCurItem - 1, true); + return true; + } + return false; + } + + boolean pageRight() { + if (mAdapter != null && mCurItem < (getAdapterCount() - 1)) { + setCurrentItem(mCurItem + 1, true); + return true; + } + return false; + } + + /** + * We only want the current page that is being shown to be focusable. + */ + @Override + public void addFocusables(ArrayList views, int direction, int focusableMode) { + final int focusableCount = views.size(); + + final int descendantFocusability = getDescendantFocusability(); + + if (descendantFocusability != FOCUS_BLOCK_DESCENDANTS) { + for (int i = 0; i < getChildCount(); i++) { + final View child = getChildAt(i); + if (child.getVisibility() == VISIBLE) { + YViewPager.ItemInfo ii = infoForChild(child); + if (ii != null && ii.position == mCurItem) { + child.addFocusables(views, direction, focusableMode); + } + } + } + } + + // we add ourselves (if focusable) in all cases except for when we are + // FOCUS_AFTER_DESCENDANTS and there are some descendants focusable. this is + // to avoid the focus search finding layouts when a more precise search + // among the focusable children would be more interesting. + if (descendantFocusability != FOCUS_AFTER_DESCENDANTS + || (focusableCount == views.size())) { // No focusable descendants + // Note that we can't call the superclass here, because it will + // add all views in. So we need to do the same thing View does. + if (!isFocusable()) { + return; + } + if ((focusableMode & FOCUSABLES_TOUCH_MODE) == FOCUSABLES_TOUCH_MODE + && isInTouchMode() && !isFocusableInTouchMode()) { + return; + } + if (views != null) { + views.add(this); + } + } + } + + /** + * We only want the current page that is being shown to be touchable. + */ + @Override + public void addTouchables(ArrayList views) { + // Note that we don't call super.addTouchables(), which means that + // we don't call View.addTouchables(). This is okay because a ViewPager + // is itself not touchable. + for (int i = 0; i < getChildCount(); i++) { + final View child = getChildAt(i); + if (child.getVisibility() == VISIBLE) { + YViewPager.ItemInfo ii = infoForChild(child); + if (ii != null && ii.position == mCurItem) { + child.addTouchables(views); + } + } + } + } + + /** + * We only want the current page that is being shown to be focusable. + */ + @Override + protected boolean onRequestFocusInDescendants(int direction, + Rect previouslyFocusedRect) { + int index; + int increment; + int end; + int count = getChildCount(); + if ((direction & FOCUS_FORWARD) != 0) { + index = 0; + increment = 1; + end = count; + } else { + index = count - 1; + increment = -1; + end = -1; + } + for (int i = index; i != end; i += increment) { + View child = getChildAt(i); + if (child.getVisibility() == VISIBLE) { + YViewPager.ItemInfo ii = infoForChild(child); + if (ii != null && ii.position == mCurItem) { + if (child.requestFocus(direction, previouslyFocusedRect)) { + return true; + } + } + } + } + return false; + } + + @Override + public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { + // Dispatch scroll events from this ViewPager. + if (event.getEventType() == AccessibilityEventCompat.TYPE_VIEW_SCROLLED) { + return super.dispatchPopulateAccessibilityEvent(event); + } + + // Dispatch all other accessibility events from the current page. + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + if (child.getVisibility() == VISIBLE) { + final YViewPager.ItemInfo ii = infoForChild(child); + if (ii != null && ii.position == mCurItem + && child.dispatchPopulateAccessibilityEvent(event)) { + return true; + } + } + } + + return false; + } + + @Override + protected ViewGroup.LayoutParams generateDefaultLayoutParams() { + return new LayoutParams(); + } + + @Override + protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) { + return generateDefaultLayoutParams(); + } + + @Override + protected boolean checkLayoutParams(ViewGroup.LayoutParams p) { + return p instanceof LayoutParams && super.checkLayoutParams(p); + } + + @Override + public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs) { + return new LayoutParams(getContext(), attrs); + } + + class MyAccessibilityDelegate extends AccessibilityDelegateCompat { + + public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) { + super.onInitializeAccessibilityEvent(host, event); + event.setClassName(YViewPager.class.getName()); + final AccessibilityRecordCompat recordCompat = + AccessibilityEventCompat.asRecord(event); + recordCompat.setScrollable(canScroll()); + if (event.getEventType() == AccessibilityEventCompat.TYPE_VIEW_SCROLLED + && mAdapter != null) { + recordCompat.setItemCount(getAdapterCount()); + recordCompat.setFromIndex(mCurItem); + recordCompat.setToIndex(mCurItem); + } + } + + public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) { + super.onInitializeAccessibilityNodeInfo(host, info); + info.setClassName(YViewPager.class.getName()); + info.setScrollable(canScroll()); + if (canScrollHorizontally(1)) { + info.addAction(AccessibilityNodeInfoCompat.ACTION_SCROLL_FORWARD); + } + if (canScrollHorizontally(-1)) { + info.addAction(AccessibilityNodeInfoCompat.ACTION_SCROLL_BACKWARD); + } + } + + public boolean performAccessibilityAction(View host, int action, Bundle args) { + if (super.performAccessibilityAction(host, action, args)) { + return true; + } + switch (action) { + case AccessibilityNodeInfoCompat.ACTION_SCROLL_FORWARD: { + if (canScrollHorizontally(1)) { + setCurrentItem(mCurItem + 1); + return true; + } + } + return false; + case AccessibilityNodeInfoCompat.ACTION_SCROLL_BACKWARD: { + if (canScrollHorizontally(-1)) { + setCurrentItem(mCurItem - 1); + return true; + } + } + return false; + } + return false; + } + + private boolean canScroll() { + return (mAdapter != null) && (getAdapterCount() > 1); + } + } + + private class PagerObserver extends DataSetObserver { + @Override + public void onChanged() { + dataSetChanged(); + } + + @Override + public void onInvalidated() { + dataSetChanged(); + } + } + +// /** +// * Layout parameters that should be supplied for views added to a +// * ViewPager. +// */ +// public static class LayoutParams extends ViewGroup.LayoutParams { +// /** +// * true if this view is a decoration on the pager itself and not +// * a view supplied by the adapter. +// */ +// public boolean isDecor; +// +// /** +// * Gravity setting for use on decor views only: +// * Where to position the view page within the overall ViewPager +// * container; constants are defined in {@link Gravity}. +// */ +// public int gravity; +// +// /** +// * Width as a 0-1 multiplier of the measured pager width +// */ +// float widthFactor = 0.f; +// +// /** +// * true if this view was added during layout and needs to be measured +// * before being positioned. +// */ +// boolean needsMeasure; +// +// /** +// * Adapter position this view is for if !isDecor +// */ +// int position; +// +// /** +// * Current child index within the ViewPager that this view occupies +// */ +// int childIndex; +// +// public LayoutParams() { +// super(MATCH_PARENT, MATCH_PARENT); +// } +// +// public LayoutParams(Context context, AttributeSet attrs) { +// super(context, attrs); +// +// final TypedArray a = context.obtainStyledAttributes(attrs, LAYOUT_ATTRS); +// gravity = a.getInteger(0, Gravity.TOP); +// a.recycle(); +// } +// } + + static class ViewPositionComparator implements Comparator { + @Override + public int compare(View lhs, View rhs) { + final LayoutParams llp = (LayoutParams) lhs.getLayoutParams(); + final LayoutParams rlp = (LayoutParams) rhs.getLayoutParams(); + if (llp.isDecor != rlp.isDecor) { + return llp.isDecor ? 1 : -1; + } + return getLpPosition(llp) - getLpPosition(rlp); + } + } +}